我希望Jenkins(1.561)通过合并请求Web钩子触发来构build提交给GitLab(6.7.5)的合并(拉)请求。 我有一个参数化版本,Jenkins插件“GitLab Merge Request Builder”(1.2.0)和“GitLab Hook”(1.0.0)。 迁移到jenkinsCI是不幸的,不是一个真正的select。
只要variablesgitlabMergeRequestId , gitlabTargetBranch和gitlabSourceBranch可用,合并请求生成器插件就可以构build合并请求。 当插件轮询版本库本身,或者我使用手动载荷触发构build时(例如curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters ),但是我无法做到这一点一个钩子。
使用GitLab Hook插件,我可以在JSON负载中获取必要的数据,但是这些值有“错误”的键:
gitlabMergeRequestId是id gitlabTargetBranch是target_branch gitlabSourceBranch是source_branch 我已经尝试使用GitLab Merge Request Builder插件的要求configuration构build参数作为Name和variables值作为Default Value 。 不幸的是(也许是有意的), Default Value字段中的variables不会被replace,所以Jenkins正在寻找一个id ${id}和类似分支值的合并请求。
我没有findconfigurationGitLab发送的负载的方法,GitLab Hook插件和GitLab Merge Request Builder插件使用的参数名称都没有configuration选项。
我正在考虑编写一个小的PHP脚本来拦截和改变POST的有效载荷,然后传递给Jenkins。 虽然我确信这会起作用,但它绝对看起来不必要的复杂。
我能看到的唯一的另一个实际选项是改变插件的来源,但这使得它们升级成PITA。
我忽略了一些显而易见的事情,还是真的没有简单的方法来触发合并请求的构build与从GitLab到Jenkins的Web钩子?
看看插件Gitlab合并请求生成器插件。configurationjenkins从pipe理jenkins和设置gitlab的合并请求生成器的URL。按照https://github.com/timols/jenkins-gitlab-merge-request-builder – 插件 1
检查这个新插件 (gitlab插件),也许它有帮助。 这个插件模拟Jenkins作为GitlabCI Web服务与GitlabHQ一起使用。
您可以使用Jenkins的通用Webhook触发器。 它可以从webhook JSON结构中为构build贡献任何值。
https://wiki.jenkins.io/display/JENKINS/Generic+Webhook+Trigger+Plugin