GitLab Webフックからのマージ要求のためのJenkinsビルドのトリガー


10

Jenkins(1.561)が、マージリクエストWebフックによってトリガーされ、GitLab(6.7.5)に送信されたマージ(プル)リクエストをビルドするようにしたい。パラメータ化されたビルドと、Jenkinsプラグイン「GitLab Merge Request Builder」(1.2.0)および「GitLab Hook」(1.0.0)があります。Jenkins CIへの移行は、残念ながら実際の選択肢ではありません。

マージリクエストBuilderプラグインがある長い変数としてとして、マージリクエストを構築することができgitlabMergeRequestIdgitlabTargetBranchおよび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ビルドをトリガーする簡単な方法はありませんか?

回答:



0

この新しいプラグイン(gitlab-plugin)を確認してください。このプラグインは、JenkinsをGitlabHQで使用するGitlabCI Webサービスとしてエミュレートします。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.