The plugin originally relied on the RequestInterceptor capabilities that were part of the OKHttp3 client backed exposed via sbt.CustomHttp. Additionally it also relied on the GigaHorseURLHandler to leverage the OkHttp3 client. Unfortunately all of this was removed as part of the SBT 1.7.0 release (see pr: https://github.com/sbt/librarymanagement/pull/399).
The OkHttp3 client backed was swapped out for the the Apache HTTP HttpAsyncClient. But as far as i can tell it does not have the same RequestInterceptor capabilities. additionally with the removal of the GigaHorseUrlHandler There isnt any way (from what I could tell) that actually leveraged or used the Apache gigahorse client.
So to get this to work with sbt 1.7.0 I extended the BasicURLHandler that the SBT plugin is using as the default UrlHandler and added logic to add the gitlab credential headers to the getUrlInfo, download, and upload requests when the host name matches provided (or default) gitlab hostname.
From my limited testing capabilities I was able to both publish to and pull from our private self hosted gitlab repo on sbt 1.7 using the plugin without having to make any changes to my sbt files.
Additionally I pulled in the change from issue #25 / pr #27 since there have been a few issues with people naming their resolver gitlab-maven and the publishResolver overwrites it
The plugin originally relied on the
RequestInterceptor
capabilities that were part of theOKHttp3
client backed exposed viasbt.CustomHttp
. Additionally it also relied on theGigaHorseURLHandler
to leverage theOkHttp3
client. Unfortunately all of this was removed as part of the SBT 1.7.0 release (see pr: https://github.com/sbt/librarymanagement/pull/399).The
OkHttp3
client backed was swapped out for the theApache HTTP HttpAsyncClient
. But as far as i can tell it does not have the sameRequestInterceptor
capabilities. additionally with the removal of theGigaHorseUrlHandler
There isnt any way (from what I could tell) that actually leveraged or used the Apache gigahorse client.So to get this to work with
sbt 1.7.0
I extended theBasicURLHandler
that the SBT plugin is using as the default UrlHandler and added logic to add the gitlab credential headers to thegetUrlInfo
,download
, andupload
requests when the host name matches provided (or default) gitlab hostname.From my limited testing capabilities I was able to both publish to and pull from our private self hosted gitlab repo on sbt 1.7 using the plugin without having to make any changes to my sbt files.
Additionally I pulled in the change from issue #25 / pr #27 since there have been a few issues with people naming their resolver
gitlab-maven
and the publishResolver overwrites it