需要在不安装任何插件的情况下将GitHub有效负载获取到Jenkins文件中的一些帮助。
如果任何人都可以提供Jenkins文件代码片段以从Webhook访问GitHub负载。这将有很大的帮助。
我可以从GitHub webhook调用Jenkins职位。但也需要有效载荷才能进一步处理。
任何帮助将不胜感激。谢谢。
答案 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。