如何在groovy Jenkinsfile中读取GitHub负载?

jum4pzuy  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(170)

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

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

我尝试将repository[“name”]值分配给Jenkinsfile中的一个变量,但似乎不起作用:

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

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

92vpleto

92vpleto1#

下面是一个如何从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"
            
          }
      }
    }
  }
}

相关问题