如何在groovy Jenkinsfile中读取GitHub有效载荷?



我在GitHub org中配置了一个web hook,每次创建新的repo时都会触发一个Jenkins管道。我要做的是从触发作业的有效载荷中获得一些值,并在管道内的脚本中使用它们。一个这样的例子是回购名称,例如有效负载看起来像这样:

{
"action": "created",
"repository": {
"name": "my-new-repo"
[...]
}
[...]
}

我尝试将存储库["name"]值分配给Jenkinsfile中的一个变量,但这似乎不起作用:

pipeline{
environment {
REPO_NAME = $.repository.name
}
[...]
}

也尝试了引号和其他格式化方法,但仍然无法将其分配给REPO_NAME变量。

下面是一个如何从Webhook请求中读取不同属性的示例。

pipeline {
agent any
triggers {
GenericTrigger(
genericVariables: [
[key: 'REPO_NAME', value: '$.repository.name', defaultValue: 'null'],
[key: 'PR_TYPE', value: '$.pullrequest.type', defaultValue: 'null']
],
causeString: 'Triggered By Github',
token: '12345678',
tokenCredentialId: '',
printContributedVariables: true,
printPostContent: true,
silentResponse: false
)
}
stages {
stage('ProcessWebHook') {
steps {
script {
echo "Received a Webhook Request from Guthub."
echo "RepoName: $REPO_NAME"

}
}
}
}
}

相关内容

  • 没有找到相关文章

最新更新