package Ġnet . nem eros a . on track . extension . git . graphql Ċ Ċ import Ġgraphql . Scalars . GraphQL String Ċ import Ġgraphql . schema . Data Fetching Environment Ċ import Ġgraphql . schema . GraphQL Field Definition Ċ import Ġgraphql . schema . GraphQL NonNull Ċ import Ġnet . nem eros a . on track . extension . git . Git Issue Search Extension Ċ import Ġnet . nem eros a . on track . extension . git . model . On track Git Issue Info Ċ import Ġnet . nem eros a . on track . extension . git . service . Git Service Ċ import Ġnet . nem eros a . on track . graphql . schema . G QL Root Query Ċ import Ġnet . nem eros a . on track . model . structure . Project Ċ import Ġnet . nem eros a . on track . model . structure . Search Request Ċ import Ġnet . nem eros a . on track . model . structure . Search Service Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ @ Component Ċ class ĠG QL Root Query Git Issue Info ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġon track Git Issue Info : ĠOn track Git Issue Info G QL Type , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsearch Service : ĠSearch Service , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġgit Service : ĠGit Service Ċ ) Ġ: ĠG QL Root Query Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Field Definition (): ĠGraphQL Field Definition Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGraphQL Field Definition . new Field Definition () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" git Issue Info ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" Getting ĠOn track Ġinformation Ġabout Ġa ĠGit Ġissue Ġand Ġa Ġproject .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. argument Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name ( ARG _ ISSUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" Issue Ġkey ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( GraphQL NonNull ( GraphQL String )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( on track Git Issue Info . type Ref ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Fetcher Ġ{ Ġenv Ġ-> Ġget On track Git Issue Info ( env ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun Ġget On track Git Issue Info ( env : ĠData Fetching Environment ): ĠOn track Git Issue Info ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġissue : ĠString Ġ= Ġenv . get Argument ( ARG _ ISSUE ) ĊĠĠĠĠĠĠĠ Ġ// ĠLooking Ġfor Ġthe Ġproject Ġbased Ġon Ġthe Ġcommit Ġonly ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsearch Service . pag inated Search ( Search Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Ġ= Ġissue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠGit Issue Search Extension . GIT _ ISSUE _ SEARCH _ RESULT _ TYPE ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ// ĠGetting Ġthe Ġproject ĊĠĠĠĠĠĠĠ Ġval Ġproject : ĠProject ? Ġ= Ġif Ġ( results . items . isEmpty () Ġ|| Ġresults . items . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġresults . items . first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġresult . data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. get ( Git Issue Search Extension . GIT _ ISSUE _ SEARCH _ RESULT _ DATA _ PROJECT ) Ġas ? ĠProject ? ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠCalling Ġthe ĠGit Ġservice ĊĠĠĠĠĠĠĠ Ġreturn Ġproject ?. let Ġ{ Ġgit Service . get Issue Project Info ( it . id , Ġissue ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠARG _ ISSUE Ġ= Ġ" issue " ĊĠĠĠ Ġ} Ċ }