| When using git lfs and cloning a repo that uses a set of credentials that are hooked up via the GIT_SSH environment variable the 'pull' fails.
using credential xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Cloning the remote Git repository
Cloning repository g...@bitbucket.org:someorg/ourrepo.git
> git init /home/jenkins2/workspace/ourrepo # timeout=10
Fetching upstream changes from g...@bitbucket.org:someorg/ourrepo.git
> git --version # timeout=10
using GIT_SSH to set credentials Our Bitbucket PR Builder
> git fetch --tags --progress g...@bitbucket.org:someorg/ourrepo.git +refs/heads/*:refs/remotes/origin/* # timeout=10
> git config remote.origin.url g...@bitbucket.org:someorg/ourrepo.git # timeout=10
> git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
> git config remote.origin.url g...@bitbucket.org:someorg/ourrepo.git # timeout=10
Fetching upstream changes from g...@bitbucket.org:someorg/ourrepo.git
using GIT_SSH to set credentials Our Bitbucket PR Builder
> git fetch --tags --progress g...@bitbucket.org:someorg/ourrepo.git +refs/heads/*:refs/remotes/origin/* # timeout=10
Checking out Revision fffffffffff2883fd545b3723b59dccd234c90e5 (refs/remotes/origin/master)
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
> git config core.sparsecheckout # timeout=10
> git checkout -f ffffffffffff883fd545b3723b59dccd234c90e5 # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
hudson.plugins.git.GitException: Command "git checkout -f ffffffffff32883fd545b3723b59dccd234c90e5" returned status code 128:
stdout:
stderr: Downloading code/someClassification.model (50 KB)
Error downloading object: code/someClassification.model (951f9b4): Smudge error: Error downloading code/someClassification.model (fffffffffffffffffffffffffffffffffffffffffffffffffffffffff6a35802): batch request: Permission denied (publickey).: exit status 255Errors logged to /home/jenkins2/workspace/ourrepo/.git/lfs/logs/20200207T160753.778675346.log
Use `git lfs logs last` to view the log.
error: external filter 'git-lfs filter-process' failed
fatal: code/someClassification.model: smudge filter lfs failed at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2298)
Jenkins logs the line 'using GIT_SSH' before each of the commands where it expects to be using ssh to download content from the network, the git checkout line isn't one of those. If I replicate the problem, I can fix it locally by doing the exact same git checkout, but if I have GIT_SSH setup to sort out the credentials it will work. The config for this job is in a Jenkinsfile where I've asked it to do an LFS pull too:
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'GitLFSPull']],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
url: 'g...@bitbucket.org:someorg/ourrepo.git']]])
When doing git lfs, and using credentials that are provided using the GIT_SSH env var I would expect it to run the git checkout step with the env var setup so that the checkout works. |