JuliaPackaging / BinaryBuilder.jl

Binary Dependency Builder for Julia
https://binarybuilder.org
Other
384 stars 99 forks source link

Wizard Yggdrasil push is broken #1294

Open Keno opened 9 months ago

Keno commented 9 months ago
[ Info: Checking temporary Yggdrasil out to /tmp/jl_NYh1yK
[ Info: Generating C/charon/build_tarballs.jl
[ Info: Committing and pushing to Keno/Yggdrasil#wizard/charon-v2.2.0_c1a2a2b9...
ERROR: GitError(Code:EAUTH, Class:Callback, The explicitly provided credential is incompatible with the requested authentication methods.)
Keno commented 9 months ago

This might be because I have a global url.ssh://git@github.com/.insteadof=https://github.com/. If so, we should either overwrite this (since we're explicitly passing credentials) or print a better error.

jd-foster commented 8 months ago

Possibly related to the 40 character check raised in #1281 that is out of step with the newer 93 character "Fine-grained tokens": https://github.com/JuliaPackaging/BinaryBuilder.jl/blob/baa1d2b6f363200d491d21514cfd618fe60255ac/src/wizard/github.jl#L9

jd-foster commented 8 months ago

Ok, 93 char vs 40 char check is a thing that should probably be removed, but this issue seems to come from this line https://github.com/JuliaPackaging/BinaryBuilder.jl/blob/baa1d2b6f363200d491d21514cfd618fe60255ac/src/wizard/utils.jl#L272 which can be incompatible with a configuration using ssh://git@github.com/, and would need to instead be

creds = LibGit2.SSHCredential(deepcopy(username), deepcopy(password)) 
tpgillam commented 5 months ago

Just ran into the same thing while prototyping a new jll. I also have the same https -> ssh insteadOf override in my .gitconfig.

I can temporarily comment out the line from my .gitconfig, which ok for my current purpose... did you find a more permanent workaround?

Also I'm wondering whether it's possible to conditionally use the LibGit2.SSHCredential when it would be required. But maybe this is hard, because point of calling with_gitcred we don't necessarily know whether url might be translated from https -> ssh.