YouTrack サーバー 2024.2 ヘルプ

GitLab CI/CD 統合

このページの指示に従って、GitLab CI/CD との統合を構成します。

YouTrack と、gitlab.com(英語)、自己ホスト型の GitLab Community Edition (CE) または自己ホスト型の GitLab Enterprise Edition (EE) サーバーでホストされている VCS リポジトリとの間の接続を確立すると、GitLab CI/CD との統合が可能になります。YouTrack を GitLab と統合する方法については、GitLab の統合を参照してください。

YouTrack と GitLab CI/CD の統合により、両方のアプリケーションで有用な機能が有効になります。

  • GitLab CI/CD で接続されたプロジェクトからパイプライン ID をプルし、解決された課題のビルド番号を格納するカスタムフィールドの値を自動的に更新します。

  • GitLab CI/CD が課題を参照するコミットを含むジョブを実行するときに、YouTrack の課題にコマンドを適用します。

前提条件

開始する前に、GitLab 統合に使用した認証トークンが有効であることを確認してください。少し前にセットアップされた GitLab 統合設定に GitLab CI/CD 統合を追加する場合、トークンは近い将来期限切れになる可能性があります。トークンの有効期限を確認し、GitLab の個人アクセストークンページで新しいトークンを生成できます。

GitLab CI/CD 統合ジョブを定義する

GitLab CI/CD との統合機能の使用を開始するには、YouTrack で 1 つまたは複数の統合ジョブを定義します。

各統合ジョブは、名前で Gitlab CI/CD の既存のジョブと一致する必要があります。既存の GitLab 統合の設定で統合ジョブを定義できます。

新しい GitLab CI/CD 統合ジョブを定義するには:

  1. YouTrack の 管理メニューから、統合 > VCS 統合を選択します。

  2. 構成済みの統合のリストからターゲットの GitLab 統合を選択します。

    The option to add a new GitLab CI/CD integration.
  3. サイドバーで、GitLab CI/CD セクションまでスクロールします。

  4. 新しい統合ボタンをクリックしてください。

  5. 統合ジョブの名前を追加します。ジョブ名は、GitLab CI/CD 構成ファイル .gitlab-ci.yml のジョブ名と一致します。GitLab CI/CD のジョブが YouTrack の統合ジョブと一致しない場合、YouTrack では処理されません。

    The setting for storing the name of a GitLab job.
  6. 追加ボタンをクリックしてください。

    • 新しい統合ジョブを追加して有効化しました。

  7. 新しいジョブの設定を定義します。

    Settings for a new job in GitLab.

    これらの設定の詳細については、統合設定を参照してください。

  8. 保存ボタンをクリックしてください。

    • GitLab CI/CD 統合の新しい統合ジョブを定義しました。

統合設定

統合ジョブでは、次の設定を使用できます。

オプション

説明

完了したジョブからデータを取得する

統合が GitLabCI/CD によって終了したすべてのジョブをリッスンするか、成功したジョブのみを考慮するかを決定します。

パイプライン ID をカスタムフィールドの値セットに追加する

統合された YouTrack プロジェクトでビルド番号が入力されるカスタムフィールドを決定します。選択は、build タイプを格納するカスタムフィールドに制限されています。

GitLab CI/CD はビルドではなくパイプラインで動作するため、YouTrack はビルド番号ではなくパイプライン ID をカスタムフィールド値として保存します。

選択したフィールドの値は、統合によって更新されるすべての課題で自動的に設定されます。統合の更新する課題を選択してくださいセクションの設定により、ビルド番号が割り当てられる課題が決まります。

次のオプションを使用できます。

  • 課題を参照しないパイプラインを含める⏤すべてのパイプラインが統合によって処理されるか、YouTrack 課題への参照を含むパイプラインのみが処理されるかを決定します。このオプションで考慮されるパイプラインは、組み立てられたビルドからデータをプルする設定の影響を受けます。

    このオプションを有効にすると、ユーザーは最初に手動でビルド番号を追加しなくても、課題のビルド番号を手動で調整できます。

更新する課題を選択してください

このセクションのオプションにより、統合によってビルド番号が割り当てられる課題が決まります。次のオプションを使用できます。

  • コミットメッセージ、ブランチ名で参照されている課題を更新するか、次の検索条件に一致するコメントを作成します⏤コミットメッセージ、ブランチ名、ビルドコメントに参照が含まれる課題を統合がどのように処理するかを決定します。

    クエリ入力フィールドを使用して、自動ビルド番号割り当てから除外したいメンションのある課題を除外します。コミットメッセージで参照されている課題を更新するオプションが選択解除されている場合、フィルターも同様に無視されます。

  • 次の検索条件に一致する課題を更新します issue 課題の参照が含まれているかどうかにかかわらず、どの課題にビルド番号を割り当てるかを決定します。

    標準の検索基準は次のとおりです。

    State: Fixed State: Verified resolved date: ${prev.build.time} .. ${build.time}

    このクエリは、最後に成功したビルドと現在のビルド以降に解決された課題のみが考慮されることを保証します。

    検索条件に一致する課題を更新するオプションが選択解除されている場合、クエリも無視されます。

両方のオプションが有効になっている場合、ビルド番号はこれら 2 つの条件のいずれかを満たす課題に自動的に割り当てられます。

選択した課題を更新

自動ビルド番号の割り当てに加えて、統合が選択した課題に変更を適用するかどうかを決定します。コマンドを適用するオプションを有効にすると、ビルド番号が割り当てられているすべての課題に適用される定義済みのコマンドを入力できます。

${build} 変数を使用して、GitLab CI/CD のパイプライン ID を参照します。例:

Subsystem Testing Test in build ${build}

このコマンドを使用すると、YouTrack によって処理されるすべての課題がテストサブシステムに割り当てられ、ビルドテストフィールドがビルド番号に設定されます。

使用可能なアクション

統合ジョブを作成すると、このジョブで次のアクションを使用できます。

アクション

説明

編集

統合ジョブの名前を編集できるジョブ名の編集ダイアログを開きます。

除去

YouTrack から統合ジョブを削除します。統合によって行われたすべての変更はそのまま残ります。

プレースホルダー

クエリおよびコマンド設定でプレースホルダーを使用できます。これらのプレースホルダーは、GitLab CI/CD のジョブとパイプライン用に保存されている属性を参照します。ジョブが YouTrack によって処理されると、プレースホルダーは GitLab の対応する値に置き換えられます。次のプレースホルダーを使用できます。

プレースホルダー

説明

${build.time}

YouTrack によって処理されるジョブの日時。

${prev.build.time}

YouTrack によって処理されるジョブより前のジョブの日時。

${build}

YouTrack によって処理されるジョブを含むパイプラインの ID。

トラブルシューティング

YouTrack サイトの vcs.log ファイルには、GitLab およびその他の VCS 統合に関連するイベントの記録が含まれています。処理された課題、適用された設定、エラー、課題に関する情報については、このファイルを確認してください。

このファイルのチェックにサポートが必要な場合は、YouTrack のサポート(英語)にお問い合わせください。

GitLab CI/CD 統合のセットアップで課題が発生した場合は、次の条件のいずれかが当てはまるかどうかを確認してください。

状態 - 統合により、YouTrack の課題にジョブ ID が割り当てられていません。

原因

ソリューション

GitLab に接続する Webhook が、関連するアクティビティをチェックするように構成されていないか、接続の確立に使用されるユーザーアカウントに十分な権限がありません。

リストから VCS 統合を選択し、無効にするボタンをクリックします。統合を無効にしたら、有効にするボタンをクリックします。

この操作には 2 つの結果があります。

  • 既存の Webhook に課題があった場合は、自動的に再構成されます。

  • GitLab での認証に使用されるパーソナルアクセストークンが検証されます。トークンに十分な権限がない場合は、必要な権限スコープが付与された別のトークンを生成します。

条件vcs.log ファイルは、次のようなエラーを報告します。

24/03/22 11:29:42,465 INFO [@csJobProcessor0] [service ] [git_hosting_integration_1481972073@null] [GitLab Integration NP%3C-liubov.dievskaia/development (branch spec: )]: 499957071 -> related issue: NP-164 not matched query 'State: Fixed State: Verified resolved date: 2022-03-24T08:29:42 .. 2022-03-24T08:29:42'

原因

ソリューション

コミットメッセージでメンションされている課題が、統合設定のクエリと一致しません。

設定でクエリを調整するか、関連する課題を既存のクエリと一致させます。

条件vcs.log ファイルは、次のようなエラーを報告します。

24/03/22 11:34:50,966 INFO [@csJobProcessor0] [service ] [git_hosting_integration_1481972073@null] [GitLab Integration NP%3C-liubov.dievskaia/development (branch spec: )]: no suitable build processor for: test

原因

ソリューション

GitLab の YAML 構成ファイル内のジョブの名前が、統合設定内のどのジョブとも一致しません。

統合設定のジョブ名を GitLab CI/CD のジョブ名と一致するように変更します。または、GitLab CI/CD ジョブと一致する名前を持つ新しい統合ジョブを追加します。

関連ページ:

GitLab の統合

このページの指示に従って、gitlab.com、自己ホスト GitLab Community Edition(CE)、または自己ホスト GitLab Enterprise Edition(EE) サーバーでホストされている VCS リポジトリと統合します。GitLab の統合により、YouTrack で次の機能が有効になります。コミットメッセージの YouTrack 課題にコマンドを適用します。詳細については、VCS コミットでのコマンドの適用を参照してください。各課題について、アクティビティス...

Kotlin DSL スニペット

このページの指示に従って、1 つ以上の YouTrack プロジェクトと TeamCity のビルド構成の間の接続を確立します。YouTrack と TeamCity の統合により、両方のアプリケーションで便利な機能が有効になります。接続されているプロジェクトからビルド番号を取得し、解決された課題のビルド番号を格納するカスタムフィールドの値を自動的に更新します。YouTrack のビルド番号には、TeamCity のビルドに直接アクセスできるアイコンが付いています。コミットメッセージまたはブラン...

VCS 統合

YouTrack を使用すると、バージョン管理システムへの接続をセットアップできます。YouTrack は、GitHub、GitLab、Bitbucket との直接統合をサポートしています。YouTrack と、自己ホスト GitHub Enterprise、GitLab Community Edition(CE)、および GitLab Enterprise Edition(EE)、Bitbucket サーバー、Gogs、Gitea サーバー間の統合をセットアップすることもできます。新しい統合を...