我已经部署了代码管道docker demo with multibranch。
它运作正常。我添加了我的github用户名作为组织,当我发出拉取请求时,运行测试。
然而,当其他一些用户发出拉取请求时,他们的测试也会运行。我想手动批准外部贡献者的哪些拉取请求可以在我的jenkins服务器中运行。有没有办法做到这一点?
我可以使用ghprb执行此操作,但它与管道不兼容,我想将我的作业迁移到管道。
答案 0 :(得分:-2)
请尝试在管道脚本中添加以下行:
node('slaveName') {
properties([
parameters([
string(
defaultValue: 'whitelisted1@gmail.com,whitelisted2@gmail.com',
description: 'comma separated whitelisted emails',
name: 'WHITELIST'
)
])
])
def authorEmail
stage('Git') {
authorEmail = sh([
// git log format docs here: https://git-scm.com/docs/pretty-formats
script : "git log -1 --format='%aE'",
returnStdout: true
]).trim()
boolean allowRun = isWhitelisted(env.WHITELIST, authorEmail)
if (allowRun) {
echo "email ${authorEmail} is whitelisted, proceed execution"
} else {
echo "email ${authorEmail} is not in whitelist ${env.WHITELIST}, proceed jenkins job?"
input message: 'Proceed?'
// or just abort build with non-zero shell exit
// currentBuild.result = 'FAILURE'
// sh "exit 10"
}
}
}
}
@NonCPS
boolean isWhitelisted(whitelist, email) {
def res = whitelist.tokenize(" ,;").find { white -> white == email }
return null != res
}