我按照本教程设置了一个Jenkins作业,只要对gitlab存储库进行推送就会运行.我测试了webhook,我可以看到工作被触发了.但是,我没有在有效载荷中看到任何内容.
只是想知道,如果有人试图读取从gitlab webhook收到的有效载荷?
只要Gitlab仓库中发生任何事件,Jenkins Gitlab插件就会将这些POST参数发送给Jenkins.
您可以添加env
Jenkins控制台以获取所有Gitlab参数导出到Jenkins环境的内容.然后您可以打印或使用所需的变量.
例如
echo $gitlabSourceRepoURL
echo $gitlabAfter
echo $gitlabTargetBranch
echo $gitlabSourceRepoHttpUrl
echo $gitlabMergeRequestLastCommit
echo $gitlabSourceRepoSshUrl
echo $gitlabSourceRepoHomepage
echo $gitlabBranch
echo $gitlabSourceBranch
echo $gitlabUserEmail
echo $gitlabBefore
echo $gitlabSourceRepoName
echo $gitlabSourceNamespace
echo $gitlabUserName
Run Code Online (Sandbox Code Playgroud)
小智 0
我做到了。它适用于某些场景。
如果您使用 /gitlab/buildnow,则可以访问有效负载对象。他们全部。但您必须在“此构建已参数化”下命名它们。然后您可以通过名称访问它们,例如 ${AUTHOR_NAME}。
文档: https: //github.com/elvanja/jenkins-gitlab-hook-plugin#parameterized-projects
但请注意,如果您使用 /gitlab/notifycommit,它将不起作用,因为触发 jenkins 和实际开始工作之间存在间隙(轮询)。在这种情况下,所有有效负载数据都是空的。
但要小心使用 /gitlab/buildnow,因为你无法控制是否要构建,就像当 Maven 提交回一些文件时,构建不应该被触发。
我所做的是用 Python 编写一个小工具来接收所有 gitlab 通知,并且该工具与 GitLab 和 Jenkins 进行对话,以触发(或不触发)作业,并收集状态。
我的起点: 如何在 Python 中接收 Github Webhooks(最后一个答案,而不是选择的答案)。
我两天前开始开发它。已经完成了,但我仍在验证它。
归档时间: |
|
查看次数: |
9098 次 |
最近记录: |