在jenkinsfile中获取github有效负载

时间:2018-08-24 06:04:45

标签: jenkins github jenkins-pipeline cloudbees

需要在不安装任何插件的情况下将GitHub有效负载获取到Jenkins文件中的一些帮助。

如果任何人都可以提供Jenkins文件代码片段以从Webhook访问GitHub负载。这将有很大的帮助。

我可以从GitHub webhook调用Jenkins职位。但也需要有效载荷才能进一步处理。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

请找到以下groovy脚本:

            stage('Pull Request Info') {
            agent {
                docker {
                    image 'maven'
                    args '-v $HOME/.m2:/home/jenkins/.m2 -ti -u 496 -e MAVEN_CONFIG=/home/jenkins/.m2 -e MAVEN_OPTS=-Xmx2048m'
                }
            }

            steps {
                script {
                    withCredentials([usernameColonPassword(credentialsId: "${env.STASH_CREDENTIAL_ID}",
                            variable: 'USERPASS')]) {
                        def hasChanges = maven.updateDependencies()
                        if (hasChanges != '') {
                            def pr1 = sh(
                                    script: "curl -s -u ${"$USERPASS" } -H 'Content-Type: application/json' https://xx.example/rest/some/endpoint",
                                    returnStdout: true
                            )
                            def pr = readJSON(text: pr1)
                            println pr.fromRef
                        }
                    }
                }
            }
        }

上面的脚本使用curl来获取有关Pull请求的详细信息。我已将凭据存储在詹金斯中,并为credentialId创建了一个环境变量。

您可以将URL替换为端点。如果已经在计算机中安装了jq,也可以修改脚本以使用jq

在这种情况下,我使用readJSON来解析JSON,它是管道实用程序插件的一部分。我的问题是,为什么不使用该插件,因为它提供了所需的功能?

如果您仍然不想使用插件,请以常规使用json parsing