/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 2 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ċ Ġ* Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ċ Ġ* Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ċ Ġ* Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ċ Ġ* Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN Ċ Ġ* ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE Ċ Ġ* ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . bk repo . repository . controller . user Ċ Ċ import Ġcom . tencent . bk repo . common . api . exception . NotFoundException Ċ import Ġcom . tencent . bk repo . common . api . pojo . Response Ċ import Ġcom . tencent . bk repo . common . artifact . message . Artifact Message Code Ċ import Ġcom . tencent . bk repo . common . security . permission . Principal Ċ import Ġcom . tencent . bk repo . common . security . permission . Principal Type Ċ import Ġcom . tencent . bk repo . common . service . util . Response Builder Ċ import Ġcom . tencent . bk repo . repository . pojo . file . File Reference Ċ import Ġcom . tencent . bk repo . repository . service . file . File Reference Service Ċ import Ġcom . tencent . bk repo . repository . service . repo . Repository Service Ċ import Ġio . swagger . annotations . Api Ċ import Ġio . swagger . annotations . ApiOperation Ċ import Ġorg . springframework . web . bind . annotation . GetMapping Ċ import Ġorg . springframework . web . bind . annotation . PathVariable Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestParam Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ Ċ @ Api (" æĸĩä»¶ å¼ķçĶ¨ æİ¥åı£ ") Ċ @ Principal ( Principal Type . ADMIN ) Ċ @ RestController Ċ @ RequestMapping ("/ api / references ") Ċ class ĠUser File Reference Controller ( ĊĠĠĠ Ġprivate Ġval Ġfile Reference Service : ĠFile Reference Service , ĊĠĠĠ Ġprivate Ġval Ġrepository Service : ĠRepository Service Ċ ) Ġ{ ĊĠĠĠ Ġ@ ApiOperation (" èİ·åıĸ æĸĩä»¶ å¼ķçĶ¨ ä¿¡æģ¯ ") ĊĠĠĠ Ġ@ GetMapping ("/ { sha 2 5 6 }") ĊĠĠĠ Ġfun ĠgetFile Reference ( ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" projectId ", Ġrequired Ġ= Ġfalse ) ĠprojectId : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" repo Name ", Ġrequired Ġ= Ġfalse ) Ġrepo Name : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" credentials Key ", Ġrequired Ġ= Ġfalse ) Ġcredentials Key : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ PathVariable (" sha 2 5 6 ") Ġsha 2 5 6 : ĠString ĊĠĠĠ Ġ): ĠResponse < File Reference > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstorage Credentials Key Of Reference Ġ= Ġif Ġ( projectId Ġ!= Ġnull Ġ&& Ġrepo Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= Ġrepository Service . get Repo Info ( projectId , Ġrepo Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠNotFound Exception ( Artifact Message Code . REPOSITORY _ NOT _ FOUND ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo . storage Credentials Key ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Key ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfile Reference Service . get ( storage Credentials Key Of Reference , Ġsha 2 5 6 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Builder . success ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ