触发Jenkins为GitLab Web钩子的合并请求构build

我希望Jenkins(1.561)通过合并请求Web钩子触发来构build提交给GitLab(6.7.5)的合并(拉)请求。 我有一个参数化版本,Jenkins插件“GitLab Merge Request Builder”(1.2.0)和“GitLab Hook”(1.0.0)。 迁移到jenkinsCI是不幸的,不是一个真正的select。

只要variablesgitlabMergeRequestIdgitlabTargetBranchgitlabSourceBranch可用,合并请求生成器插件可以构build合并请求。 当插件轮询版本库本身,或者我使用手动载荷触发构build时(例如curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters ),但是我无法做到这一点一个钩子。

使用GitLab Hook插件,我可以在JSON负载中获取必要的数据,但是这些值有“错误”的键:

  • gitlabMergeRequestIdid
  • gitlabTargetBranchtarget_branch
  • gitlabSourceBranchsource_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