我在詹金斯有个Github Organisation项目。在我的存储库的根上,我的Jenkinsfile看起来如下所示:
node {
def jenkinsCredsId = 'xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb'
stage 'Checkout'
checkout scm
// I also tried the following:
// checkout scm: [$class: 'GitSCM', source: 'ssh://git@github.com:MY_ORGANISATION/jenkins-testing-temp.git', clean: true, credentialsId: jenkinsCredsId]
stage 'Build'
// generate some artefact (dist.zip)
stage 'Release'
sshagent([jenkinsCredsId]) {
sh '''
git remote -v // show remotes
ssh-add -l // show currently loaded ssh keys fingerprints
git fetch --all --tags // IT FAILS HERE
CURRENT_BUILD_TAG="some_build/${BUILD_NUMBER}"
git tag ${CURRENT_BUILD_TAG}
git push --tags
github-release release \
--security-token ${GITHUB_RELEASE_TOKEN} \
--user MY_ORGANIZATION \
--repo MY_REPO \
--tag ${CURRENT_BUILD_TAG} \
--name ${CURRENT_BUILD_TAG}
github-release upload \
--security-token ${GITHUB_RELEASE_TOKEN} \
--user MY_ORGANIZATION \
--repo MY_REPO \
--tag ${CURRENT_BUILD_TAG} \
--name ${CURRENT_BUILD_TAG} \
--file dist.zip
'''
}这里有几行用于测试存储库访问的代码,目前在 part上失败,有以下错误:
致命:无法读取“https://github.com”的用户名:没有这样的设备或地址
上面的git remote -v命令输出类似于origin https://github.com/MY_ORGANIZATION/MY_REPO的内容。
我的Github Organization git配置如下所示:

我发现了一些相关的问题:
发布于 2016-11-15 19:48:02
事实证明,Github Organization项只对Scan credentials使用https凭据(如上面的图片)。
解决方案是按Advanced按钮,并在Checkout credentials下拉列表中实际选择ssh凭据,而不是默认的- Same as scan credentials -。

请注意,带有星星的凭据是用户/密码条目,这就是我如何发现问题的原因。
这样,checkout scm将使用ssh,sshagent([jenkinsCredsId]) {块将按预期工作,允许您根据权限创建标记、获取和推送。:)
https://stackoverflow.com/questions/40618449
复制相似问题