package Ġcom . br ais gab in . se sh at . github Ċ Ċ import Ġdagger . Bind s Instance Ċ import Ġdagger . Component Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ import Ġretrofit 2 . create Ċ import Ġjavax . inject . Named Ċ Ċ @ Component ( modules Ġ= Ġ[ Github Module :: class ]) Ċ interface ĠGithub Component Ġ{ ĊĊĠĠĠ Ġfun Ġgithub Upload Suggestions Interactor (): ĠGithub Upload Suggestions Interactor ĊĊĠĠĠ Ġ@ Component . Factory ĊĠĠĠ Ġinterface ĠFactory Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Bind s Instance Ġok HttpClient : ĠOk HttpClient , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Named (" github AppId ") Ġ@ Bind s Instance Ġgithub AppId : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Named (" github App Pem ") Ġ@ Bind s Instance Ġgithub App Pem : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠGithub Component ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Module Ċ internal Ġabstract Ġclass ĠGithub Module Ġ{ ĊĊĠĠĠ Ġ@ Module ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġfun Ġretrofit Provider ( ok HttpClient : ĠOk HttpClient ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" https :// api . github . com ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( M oshi Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġfun Ġgithub Adapter Provider ( ret rofit : ĠRet rofit ): ĠGithub Adapter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create < Github Adapter >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Named (" app UserName ") ĊĠĠĠĠĠĠĠ Ġfun Ġapp UserName Provider (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" se sh at - style [ bot ]" Ġ// ĠTODO : ĠThis Ġshould Ġnot Ġbe Ġhardcoded ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ