我很难通过credentialParam
下拉列表传递git凭证。
每当我运行从下面的代码生成的作业(我从下拉列表中选择正确的部署密钥)时,git都会说它不接受凭据(它返回Permission denied (publickey).
)
当我在'credentials'闭包中显式对git deploy key的ID进行硬编码时,一切正常。
我想知道为什么没有从REPO_CREDENTIALS
变量中选择它?
这也很奇怪,因为每当我在运行生成的作业之前手动更改git url时,即使该更改也通过环境变量传递,该更改也会立即被该作业选择。
谢谢
job("test-job") {
parameters {
stringParam('GIT_URL', 'git@github.com:myorg/myrepo.git', 'URL or Github repository for the project')
credentialsParam('REPO_CREDENTIALS') {
type('com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey')
required(true)
defaultValue('')
description('Credential to use to pull from Github for this project')
}
stringParam('GIT_BRANCH', 'master', 'Git branch to scan, without \'origin/\' prefix.')
}
multiscm {
git {
remote {
url('$GIT_URL')
credentials('$REPO_CREDENTIALS')
}
branches('$GIT_BRANCH')
}
}
steps {
shell('./run.sh')
}
}
答案 0 :(得分:0)
无法将凭证参数用作Git SCM凭证。 Git插件不支持该字段的变量扩展。也无法在config UI中将变量配置为Git凭据。作业DSL只能生成UI可以生成的配置。如果该功能在配置用户界面中不可用,那么它在Job DSL中也不可用。