I'm having a problem with a pretty normal deps.edn:
{:aliases {:json {:extra-deps {cheshire/cheshire {:mvn/version "5.10.0"}}}
:test {:extra-paths ["test"]
:extra-deps {cheshire./cheshire {:mvn/version "5.10.0"}
cognitect-labs/test-runner
{:git/url "<https://github.com/cognitect-labs/test-runner>"
:sha "cb96e80f6f3d3b307c59cbeb49bb0dcb3a2a780b"}}
:main-opts ["-m" "cognitect.test-runner"]}}}
on CircleCI:
https://app.circleci.com/pipelines/github/babashka/babashka.curl/5/workflows/d90fe806-57a4-4c12-bfb3-0277ff1c5be2/jobs/16
Cloning: <https://github.com/cognitect-labs/test-runner>
Error building classpath. <ssh://git@github.com/cognitect-labs/test-runner>: Auth fail
org.eclipse.jgit.api.errors.TransportException: <ssh://git@github.com/cognitect-labs/test-runner>: Auth fail
huh, wat?This was after upgrading to 739
I'm suspecting it's a CircleCI problem and not a tools.deps problem... not sure.
It seems to clone the repo with ssh//git@...
, I'm not sure why
There are git config settings that can force the transport
git config insteadOf
in .git/config? or on CircleCI?
The former
What are you doing up at 5AM?
¯\(ツ)/¯
But .git/config isn't part of the git repo, that's a local thing right?
The only other time I’ve seen this was with a global git config on a local machine
Not sure how it would manifest on circle
But that’s the only reason I’m aware of that the transport would change like that
On the CircleCI machine:
$ cat /home/circleci/.gitconfig
[url "<ssh://git@github.com>"]
insteadOf = <https://github.com>
[gc]
auto = 0
That seems to be the culprit, but why the heck is this there.
rm -rf /home/circleci/.gitconfig
seems to "fix" the problem. 🤷As someone writing a CI myself, I would speculate that this is there for private repos. Its easier to pass the creds via SSH key pairs than an HTTP clone where git would go through an interactive prompt for username and passwords. Just my assumptions :thinking_face:
https://discuss.circleci.com/t/cloning-another-private-repo-in-the-build/25505/5
Should people not write their own instead of config for this, instead of creating errors like this maybe?
thats what CircleCI recommends, to add your ssh keys. but yes, this is a problematic assumption i would agree
Also I would imagine this is an issue on CI's outside the source platform, GH actions simply sidesteps this issue as being right there with your code 😛
GH has other issues though. Their UI becomes completely unresponsive sometimes and has other weird glitches.
yeah pros and cons of it all i guess
And, I could login via SSH in CircleCI to at least debug this problem :)
thats definitely a plus point. its getting more and more harder to SSH into things nowadays with all ephemeral magic machines on Kubernetes, rainbows and unicorns 😕
the pro being extremely quickly provisioned runners but all a big powerful totally opaque box
yeah, that's what I dislike about it, it's opaque and when it doesn't work, you have nothing to go by