package Ġcom . har ley o conn or . git desk . data . remote . github Ċ Ċ import Ġcom . har ley o conn or . git desk . data . MO SH I Ċ import Ġcom . har ley o conn or . git desk . data . remote . Issue Ċ import Ġcom . har ley o conn or . git desk . data . remote . Label Ċ import Ġcom . har ley o conn or . git desk . data . remote . Platform Ċ import Ġcom . har ley o conn or . git desk . data . remote . PullRequest Ċ import Ġcom . har ley o conn or . git desk . data . remote . Remote Repository Ċ import Ġcom . har ley o conn or . git desk . data . remote . github . search . Issue Search Ċ import Ġcom . har ley o conn or . git desk . data . remote . github . search . PullRequest Search Ċ import Ġcom . har ley o conn or . git desk . util . stream Ċ import Ġcom . squareup . mos hi . Json Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġjava . net . URL Ċ import Ġjava . util . Date Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ import Ġjava . util . concurrent . Executor Ċ Ċ /** Ċ Ġ* Ġ@ author ĠHar ley ĠO ' Conn or Ċ Ġ*/ Ċ class ĠGitHub Remote Repository ( ĊĠĠĠ Ġval Ġid : ĠInt , ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" full _ name ") Ġoverride Ġval Ġname : ĠRemote Repository . Name , ĊĠĠĠ Ġoverride Ġval Ġprivate : ĠBoolean , ĊĠĠĠ Ġoverride Ġval Ġowner : ĠGitHub Repository Owner , ĊĠĠĠ Ġoverride Ġval Ġdescription : ĠString ?, ĊĠĠĠ Ġval Ġfork : ĠBoolean , ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" html _ url ") Ġoverride Ġval Ġurl : ĠURL , ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" created _ at ") Ġoverride Ġval ĠcreatedAt : ĠDate , ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" updated _ at ") Ġoverride Ġval ĠupdatedAt : ĠDate , ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" pus hed _ at ") Ġval Ġpushed At : ĠDate , ĊĠĠĠ Ġval Ġhomepage : ĠString ?, ĊĠĠĠ Ġoverride Ġval Ġsize : ĠInt , ĊĠĠĠ Ġoverride Ġval Ġlanguage : ĠString ?, ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" fork s _ count ") Ġoverride Ġval Ġfor ks : ĠInt , ĊĠĠĠ Ġoverride Ġval Ġlicense : ĠGitHub License ?, ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" has _ issues ") Ġoverride Ġval Ġhas Issues : ĠBoolean , ĊĠĠĠ Ġ@ Json ( name Ġ= Ġ" parent ") Ġprivate Ġval Ġparent Data : ĠParent Repository ? Ċ ) Ġ: ĠRemote Repository Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠAD AP TER : ĠJson Adapter < GitHub Remote Repository > Ġby Ġlazy Ġ{ ĠMO SH I . adapter ( GitHub Remote Repository :: class . java ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġplatform : ĠPlatform Ġ= ĠPlatform . GITHUB ĊĊĠĠĠ Ġoverride Ġval Ġparent : ĠRemote Repository ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( fork ) ĠGitHub Networking . get Remote Repository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Data !!. name . owner Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Data . name . repository Name ĊĠĠĠĠĠĠĠ Ġ) Ġelse Ġnull ĊĊĠĠĠ Ġoverride Ġval Ġlabels : ĠArray < Label > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠGitHub Networking . get Labels ( name ) Ġ?: ĠarrayOf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Branch Url ( ref : ĠString ): ĠURL Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠURL (" https :// github . com /${ name . get FullName () }/ tree /$ ref ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Commit Url ( commit Id : ĠString ): ĠURL Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠURL (" https :// github . com /${ name . get FullName () }/ commit /$ commit Id ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Collabor ator ( username : ĠString ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGitHub Networking . is Collabor ator ( username , Ġname ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Label ( name : ĠString ): ĠLabel ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlabels . stream () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . name Ġ== Ġname Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. findFirst () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Issues ( ĊĠĠĠĠĠĠĠ Ġquery : ĠString , ĊĠĠĠĠĠĠĠ Ġsort : ĠIssue . Sort , ĊĠĠĠĠĠĠĠ Ġsort Order : ĠRemote Repository . SortOrder , ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġexecutor : ĠExecutor ĊĠĠĠ Ġ): ĠCompletableFuture < Array < out ĠIssue >> Ġ= ĠIssue Search ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġquery , ĊĠĠĠĠĠĠĠ Ġsort . git Hub Id , ĊĠĠĠĠĠĠĠ Ġsort Order . git Hub Id , ĊĠĠĠĠĠĠĠĠ 2 0 , ĊĠĠĠĠĠĠĠ Ġpage , ĊĠĠĠĠĠĠĠ Ġexecutor ĊĠĠĠ Ġ). run (). then Apply Ġ{ ĊĠĠĠĠĠĠĠ Ġit . items ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Issue ( title : ĠString , Ġbody : ĠString ): ĠCompletableFuture < Issue > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGitHub Networking . add Issue ( name , Ġtitle , Ġbody ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Pull Requests ( ĊĠĠĠĠĠĠĠ Ġquery : ĠString , ĊĠĠĠĠĠĠĠ Ġsort : ĠIssue . Sort , ĊĠĠĠĠĠĠĠ Ġsort Order : ĠRemote Repository . SortOrder , ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġexecutor : ĠExecutor ĊĠĠĠ Ġ): ĠCompletableFuture < Array < out ĠPull Request >> Ġ= ĠPull Request Search ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġquery , ĊĠĠĠĠĠĠĠ Ġsort . git Hub Id , ĊĠĠĠĠĠĠĠ Ġsort Order . git Hub Id , ĊĠĠĠĠĠĠĠĠ 2 0 , ĊĠĠĠĠĠĠĠ Ġpage , ĊĠĠĠĠĠĠĠ Ġexecutor ĊĠĠĠ Ġ). run (). then Apply Ġ{ ĊĠĠĠĠĠĠĠ Ġit . items ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠParent Repository ( val Ġname : ĠRemote Repository . Name ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠGitHub Remote Repository ĊĠĠĠĠĠĠĠ Ġreturn Ġname Ġ== Ġother . name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . hashCode () ĊĠĠĠ Ġ} ĊĊ Ċ }