【发布时间】:2017-01-30 18:51:05
【问题描述】:
我正在使用git plugin,据说它集成了“Jenkins 凭据管理功能”:
凭据:用于连接到存储库的凭据(除非允许匿名访问),使用 Jenkins 凭据管理功能。使用的凭证类型取决于底层协议。对于 SSH 连接,仅支持私钥身份验证。
太好了,“Jenkins 凭据管理功能”对我有用:我能够运行“来自 SCM 的管道脚本”。
那么,如何在 git 插件中使用这些凭据? git 插件文档和网络中都没有示例。这是我的 Jenkinsfile 的相关部分,带有 git 步骤:
node {
stage('Checkout') {
git url: 'ssh://git@5.6.7.8:5999/my/repo.git', branch: 'wip'
}
...
}
【问题讨论】:
-
尝试转到
Jenkins > Credentials > System > Global credentials > Add Credentials,然后选择SSH Username with private key?然后在您的 Jenkins 工作中,您只需在设置工作时引用这些凭据。您不必使用全局凭据,您可以使用不同的域。 -
@Harmelodic:如前所述,添加了凭据,并且它们正在工作。我只是不知道如何在运行管道的 Jenkinsfile 的 Checkout 阶段从 git 命令中引用它们。
-
我没有对此进行测试,但根据documentation(滚动到最后),您可以使用
GenericSCMStep并提供一个credentialId:checkout scm: [$class: 'MercurialSCM', source: 'ssh://hg@bitbucket.org/user/repo', clean: true, credentialsId: '1234-5678-abcd'], poll: false。或者你有this sample使用命令行git客户端和Credentials Binding Plugin,也未经测试。 -
@delavnog 你能解决这个问题吗?我也无法让它使用我的 ssh 凭据