package Ġorg . un bro k end ome . gradle . plugins . helm . publishing . publish ers Ċ Ċ import Ġorg . apache . http . auth . Auth Scope Ċ import Ġorg . apache . http . auth . Username Password Credentials Ċ import Ġorg . apache . http . client . config . Cookie Specs Ċ import Ġorg . apache . http . client . config . Request Config Ċ import Ġorg . apache . http . client . methods . RequestBuilder Ċ import Ġorg . apache . http . entity . ContentType Ċ import Ġorg . apache . http . entity . File Entity Ċ import Ġorg . apache . http . impl . client . Basic Credentials Provider Ċ import Ġorg . apache . http . impl . client . Basic Response Handler Ċ import Ġorg . apache . http . impl . client . Closeable HttpClient Ċ import Ġorg . apache . http . impl . client . HttpClient Builder Ċ import Ġorg . gradle . api . credentials . Credentials Ċ import Ġorg . gradle . api . internal . provider . Providers Ċ import Ġorg . gradle . api . provider . Provider Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . un bro k end ome . gradle . plugins . helm . dsl . credentials . Certificate Credentials Ċ import Ġorg . un bro k end ome . gradle . plugins . helm . dsl . credentials . Password Credentials Ċ import Ġorg . un bro k end ome . gradle . plugins . helm . util . if Present Ċ import Ġjava . io . File Ċ import Ġjava . net . URI ĊĊ Ċ /** Ċ Ġ* ĠPub lishes ĠHelm Ġcharts Ġto Ġa Ġremote Ġrepository Ġusing ĠHTTP . Ċ Ġ*/ Ċ internal Ġabstract Ġclass ĠAbstract Http Helm Chart Publisher ( ĊĠĠĠ Ġprivate Ġval Ġurl : ĠURI , ĊĠĠĠ Ġprivate Ġval Ġcredentials : ĠProvider < Credentials > Ġ= ĠPro viders . not Defined () Ċ ) Ġ: ĠHelm Chart Publisher Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( java Class ) ĊĊĊĠĠĠ Ġprotected Ġabstract Ġval Ġupload Method : ĠString ĊĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġupload Path ( chart Name : ĠString , Ġchart Version : ĠString ): ĠString ĊĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġadditional Headers ( ĊĠĠĠĠĠĠĠ Ġchart Name : ĠString , ĊĠĠĠĠĠĠĠ Ġchart Version : ĠString , ĊĠĠĠĠĠĠĠ Ġchart File : ĠFile ĊĠĠĠ Ġ): ĠMap < String , ĠString > Ġ= ĊĠĠĠĠĠĠĠ Ġempty Map () ĊĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠCONTENT _ TYPE _ GZIP : ĠContentType Ġ= ĠContentType . create (" application / x - gzip ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġbuild Full Upload Url ( chart Name : ĠString , Ġchart Version : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġthis . upload Path ( chart Name , Ġchart Version ). remove Prefix ("/") ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( url . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! endsWith ('/') Ġ&& Ġpath . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ('/') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( path ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġpublish ( chart Name : ĠString , Ġchart Version : ĠString , Ġchart File : ĠFile ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġupload Url Ġ= Ġbuild Full Upload Url ( chart Name , Ġchart Version ) ĊĊĠĠĠĠĠĠĠ Ġcreate HttpClient (). use Ġ{ ĠhttpClient Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest Builder . create ( upload Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Uri ( upload Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Headers ( chart Name , Ġchart Version , Ġchart File ). forEach Ġ{ Ġ( key , Ġvalue ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb . add Header ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Entity ( File Entity ( chart File , ĠCONTENT _ TYPE _ GZIP )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Up loading Ġchart Ġfile Ġ{} Ġvia Ġ{} Ġto Ġrepository ĠURL Ġ{}", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchart File , Ġupload Method , Ġupload Url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient . execute ( request , ĠBasic Response Handler ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġcreate HttpClient (): ĠClose able HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠHttpClient Builder . create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġ" default " ĠCookie Spec Ġdoes Ġnot Ġalways Ġunderstand ĠRFC - 6 2 6 5 Ġcompliant Ġcookies , Ġwhich ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmay Ġbe Ġused Ġby ĠArt ifactory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetDefault Request Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Config . custom (). set Cookie Spec ( Cookie Specs . STANDARD ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials . if Present Ġ{ Ġcredentials Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( credentials ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPassword Credentials Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBasic Credentials Provider () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Credentials ( Auth Scope . ANY , Ġcredentials . to HttpClient Credentials ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let ( this :: setDefault Credentials Provider ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCertificate Credentials Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" Authentication Ġby Ġclient Ġcertificates Ġis Ġnot Ġyet Ġimplemented ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Unsupported Ġcredentials Ġtype : Ġ${ credentials . java Class . name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠPassword Credentials . to HttpClient Credentials (): ĠUsername Password Credentials Ġ= ĊĠĠĠĠĠĠĠ ĠUsername Password Credentials ( username . or Null , Ġpassword . or Null ) Ċ } Ċ