ホーム>source

ジェンキンスにマルチブランチパイプラインがあります。

ブランチが名前と一致するかどうかを確認できることは知っています。

<前>ウィズウィズ

残念ながら、デフォルトのブランチはmasterという名前ではなく、デフォルトのブランチの名前は定期的に変更されます。

名前を確認せずに、特定のブランチがデフォルトのブランチであるかどうかを確認する方法はありますか?

<前>ウィズウィズ

またはこのようなもの?

前もって感謝します!

when { branch "master" }
あなたの答え
  • 解決した方法 # 1

    SCRのAPIを使用して、デフォルトのブランチを取得できます。使用するSCRに応じて、APIの呼び出しは異なります。

    GitLabでは、Project REST APIにクエリを実行でき、その応答で default_branch が見つかります  この情報を含むフィールド

    ウィズウィズ

    GitHubでは、Repositories REST APIにクエリを実行でき、応答には GET /projects/:id が含まれます。  この情報を含むフィールド。

    ウィズウィズ

    GitHubレスポンスには default_branch という名前の3つのフィールドが含まれているため、注意してください 、1つは実際のリポジトリ用、1つは親リポジトリ用、最後の1つはソースリポジトリ用です。 jsonのルートにあるものを探しています。これは、照会しているリポジトリ用のものです。

  • 解決した方法 # 2

    <前>ウィズウィズ

    Gitlabと共同でリモートヘッドを使用して「デフォルトのブランチ」をマークするため、これは回避策です 「git ls-remote -q --symref」でリモート参照を取得できます。

    リモートヘッドが最初のラインになるので、パイプヘッド-1で最初のラインを選択できます。 これにより、「デフォルトブランチ」のハッシュが得られます。

    GET /repos/:owner/:repo

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ wordpress - WooCommerceカテゴリ固有の[カートに追加]ボタンのテキスト