GitLab Webフックからのマージ要求のためのJenkinsビルドのトリガー
Jenkins(1.561)が、マージリクエストWebフックによってトリガーされ、GitLab(6.7.5)に送信されたマージ(プル)リクエストをビルドするようにしたい。パラメータ化されたビルドと、Jenkinsプラグイン「GitLab Merge Request Builder」(1.2.0)および「GitLab Hook」(1.0.0)があります。Jenkins CIへの移行は、残念ながら実際の選択肢ではありません。 マージリクエストBuilderプラグインがある長い変数としてとして、マージリクエストを構築することができgitlabMergeRequestId、gitlabTargetBranchおよびgitlabSourceBranch利用可能です。これは、プラグインがリポジトリ自体をポーリングするとき、または手動ペイロード(例:)でビルドをトリガーするときにうまく機能します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プラグインの要件として、および変数値としてビルドパラメータを構成してみNameましたDefault Value。残念ながら(おそらく意図的に)、Default Valueフィールドの変数は置き換えられないため、Jenkinsはid ${id}および同様のブランチ値を持つマージ要求を探しています。 GitLabから送信されたペイロードを構成する方法が見つからず、GitLab Hookプラグインにも、GitLab Merge Request Builderプラグインで使用されるパラメーター名にも構成オプションはありません。 Jenkinsに渡す前にPOSTからのペイロードをインターセプトして変更する小さなPHPスクリプトを書くことを検討しています。私はこれがうまくいくと確信していますが、それは間違いなく不必要に複雑に見えます。 私が見ることができる他の唯一の実際のオプションは、プラグインのソースを変更することですが、これにより、プラグインをPITAにアップグレードできます。 明らかなことを見落としたことがありますか、それとも、GitLabからJenkinsへのWebフックを使用してMerge Requestビルドをトリガーする簡単な方法はありませんか?