web-dev-qa-db-ja.com

プルリクエストの発生元のGitHubブランチ名

Jenkinsでマルチブランチパイプラインジョブを使用しています。

GitHubでプルリクエストが発生したブランチ名を見つけるにはどうすればよいですか?

私は/github-webhook/を使用しており、/ghprbhook/も試し、次の環境変数を試しました:GIT_LOCAL_BRANCHGIT_BRANCHghprbSourceBranch、しかししませんでした結果を得る。

何か提案があれば、ぜひ試してみたいと思います。

6
Sunil Boga

CHANGE_BRANCHは、PRのソースブランチの正しい名前を示します。

CHANGE_TARGETPRマージのターゲット名を示します

7
jayas

いくつかの異なるパラメータがあり、コンテキストによっては正しいパラメータを見つけるのが難しい場合があります。

BRANCH_NAME

マルチブランチプロジェクトの場合、これは構築中のブランチの名前に設定されます。たとえば、機能ブランチからではなく、masterから本番環境にデプロイする場合などです。ある種の変更要求に対応する場合、名前は通常任意です(CHANGE_IDおよびCHANGE_TARGETを参照)。

これは、ブランチ名(ブランチビルドなど)またはその他の識別子(プルリクエストIDなど)のいずれかです。ドキュメントはどちらでもかまいませんが、完全なドキュメントを読んでいない場合は驚くべき動作です。

MZ2010による他の回答 は、おそらくチェックアウトとして機能する方法を示しています。プラグインのバージョンに依存する可能性があり、おそらく上記と同じ問題の影響を受けます。

def scmVars = checkout scm
def branchName = scmVars.GIT_BRANCH

それを取得する方法は、CHANGE_BRANCH環境変数をサポートする GitHubブランチソースプラグイン を使用する場合です。これは JENKINS-43418 で追加され、env.CHANGE_BRANCHを使用している場合は参照できるはずです。ただし、マルチブランチジョブでは使用できない場合があります。

1
mkobit

マルチブランチパイプラインの場合は、次を使用します。

env.BRANCH_NAME

ブランチ名にアクセスするため。

編集:環境変数またはgit変数をデバッグする必要がある場合は、次のことを試すことができます。

  1. gIT変数にアクセスする

    def scmVars = checkout scm
    def branchName = scmVars.GIT_BRANCH
    
  2. ENV変数を出力する

    sh("printenv")
    
0
bp2010

documentation によると、プルリクエストIDはCHANGE_ID変数として公開されます。

ところで。環境変数は、env.CHANGE_IDなどのenvを介してパイプラインのGroovyコードでアクセスできます。

0
StephenKing