GitLab for Jira Cloudアプリ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このページには、GitLab for Jira Cloudアプリのユーザー向けドキュメントが掲載されています。管理者向けドキュメントについては、GitLab for Jira Cloudアプリの管理を参照してください。
GitLab for Jira Cloudアプリを使用すると、GitLabとJira Cloudを接続して、開発情報をリアルタイムで同期できます。この情報は、Jira開発パネルで表示できます。
GitLab for Jira Cloudアプリを使用して、トップレベルグループまたはサブグループをリンクできます。プロジェクトやパーソナルネームスペースを直接リンクすることはできません。
GitLab.comでGitLab for Jira Cloudアプリを設定するには、GitLab for Jira Cloudアプリをインストールします。
アプリを設定した後、Atlassianが開発および管理しているプロジェクトツールチェーンを使用して、GitLabリポジトリをJiraプロジェクトにリンクできます。プロジェクトツールチェーンは、GitLabとJira Cloud間で開発情報を同期する方法には影響しません。
Jira Data CenterまたはJira Serverには、Atlassianが開発および管理しているJira DVCSコネクタを使用してください。
Jiraに同期されたGitLabデータ
グループをリンクした後、そのグループ内のすべてのプロジェクトでは、JiraのイシューIDをメンションした際に次のGitLabデータがJiraに同期されます:
- 既存のプロジェクトデータ(グループをリンクする前に作成):
- 直近の400件のマージリクエスト
- 直近の400個のブランチと、それらの各ブランチへの最新のコミット(GitLab 15.11以降)
- 新しいプロジェクトデータ(グループをリンクした後に作成):
- マージリクエスト
- マージリクエスト作成者
- ブランチ
- コミット
- コミット作成者
- パイプライン
- デプロイ
- 機能フラグ
- マージリクエスト
GitLab for Jira Cloudアプリをインストールする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
前提要件:
- ネットワークは、GitLabとJira間の受信接続と送信接続を許可する必要があります。
- 特定のJiraユーザー要件を満たしている必要があります。
GitLab for Jira Cloudアプリをインストールするには、次の手順に従います:
- Apps > Explore more appsを選択し、
GitLab for Jira Cloudを検索します。 - GitLab for Jira Cloudを選択してから、Get it now(今すぐ入手)を選択します。
または、Atlassian Marketplaceからアプリを直接入手してください。
これで、GitLab for Jira Cloudアプリを設定できます。
概要については、Installing the GitLab for Jira Cloud app from the Atlassian Marketplace for GitLab.com(GitLab.comにAtlassian MarketplaceからGitLab for Jira Cloudアプリをインストールする)を参照してください。
上記のビデオでは、以前のUniversalプラグインManagerインターフェースが示されていますが、新しいJira Cloudインスタンスでは利用できない場合があります。以下の手順では、新旧両方のアプリ管理インターフェースについて説明します。
GitLab for Jira Cloudアプリを設定する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
前提要件:
- 少なくともGitLabグループのメンテナーロールを持っている必要があります。
- 特定のJiraユーザー要件を満たしている必要があります。
GitLab for Jira Cloudアプリを1つ以上のGitLabグループにリンクすることで、GitLabからJiraにデータを同期できます。GitLab for Jira Cloudアプリを設定するには、次の手順に従います:
Jiraで、Apps(アプリ)の横にある水平方向の省略記号( )を選択し、Manage your apps(アプリを管理)を選択します。
次のいずれかの方法でアプリに移動します:
集中型アプリ管理を設定したインスタンスの場合:
- 「アプリ管理が管理に移動しました」と表示された場合は、Take me there(そちらに移動) を選択します。それ以外の場合は、以下のFor instances with legacy app management(従来のアプリ管理を設定したインスタンスの場合)の手順に従ってください。
- Installed apps(インストール済みアプリ)タブで、GitLab for Jira(Jira用)を探します。アプリのインストール方法に応じて、アプリの名前は次のようになります:
- GitLab for Jira (gitlab.com): Atlassian Marketplaceからアプリをインストールした場合。
- GitLab for Jira (
<gitlab.example.com>): アプリを手動でインストールした場合。
- 水平方向の省略記号( )を選択し、始めましょうを選択して、インテグレーションを設定します。
従来のアプリ管理を設定したインスタンスの場合:
- GitLab for Jiraを展開します。アプリのインストール方法に応じて、アプリの名前は次のようになります:
- GitLab for Jira (gitlab.com): Atlassian Marketplaceからアプリをインストールした場合。
- GitLab for Jira (
<gitlab.example.com>): アプリを手動でインストールした場合。
- 始めましょうを選択して、インテグレーションを設定します。
オプション。GitLab Self-ManagedをJiraにリンクするには、GitLabのバージョンを変更を選択します。
- すべてのチェックボックスをオンにし、次へを選択します。
- GitLabインスタンスのURLを入力し、保存を選択します。
GitLabにサインインを選択します。
グループのパスワード認証が無効になっている Enterpriseユーザーは、まずグループのシングルサインオンURLでGitLabにサインインする必要があります。
GitLabでは、グループをリンクするためにサインインする必要がありますが、設定を特定のユーザーに関連付けることはありません。GitLabインスタンスは、Jiraで情報を更新するために使用されるJiraからのトークンを受信します。詳細については、JiraへのGitLabアクセスを参照してください。
許可するを選択します。これで、グループのリストが表示されるようになります。
グループをリンクを選択します。
グループにリンクするには、リンクを選択します。
GitLabグループにリンクした後:
- そのグループ内のすべてのプロジェクトのデータがJiraに同期されます。初回のデータ同期は、1分あたり20プロジェクトのバッチで実行されます。プロジェクト数の多いグループでは、一部のプロジェクトのデータ同期が遅れる場合があります。
- GitLab for Jira Cloudアプリのインテグレーションは、グループとそのグループ内のすべてのサブグループまたはプロジェクトに対して自動的に有効になります。このインテグレーションにより、Jira Service Managementを設定できるようになります。
Jira Service Managementを設定する
この機能はコミュニティのコントリビュートとして追加され、GitLabコミュニティのみが開発および管理を行っています。
前提要件:
- GitLab for Jira Cloudアプリをインストールしている必要があります。
- GitLab for Jira Cloudアプリの設定でリンクするGitLabグループが存在する必要があります。
GitLabをITサービスプロジェクトに接続して、デプロイを追跡できます。
設定は、GitLabのGitLab for Jira Cloudアプリインテグレーションで行います。GitLabグループをリンクすると、そのグループ、サブグループ、およびプロジェクトに対してインテグレーションが有効になります。
GitLab for Jira Cloudアプリインテグレーションの有効化と無効化は、グループのリンクを通じて完全に自動的に行われ、GitLabインテグレーションフォームやAPIを介して操作することはできません。
Jira Service Managementで、次の手順を実行します:
- サービスプロジェクトで、プロジェクトの設定 > Change management(変更管理)に移動します。
- Connect Pipeline(パイプラインの接続) > GitLabを選択し、設定フローの最後にあるサービスIDをコピーします。
GitLabで、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにした場合、このフィールドは上部のバーにあります。
- 設定 > インテグレーションを選択します。
- GitLab for Jira Cloudアプリを選択します。インテグレーションが無効になっている場合は、まずGitLabグループをリンクします。これにより、そのグループ、サブグループ、プロジェクトに対して、GitLab for Jira Cloudアプリインテグレーションが有効になります。
- サービスIDフィールドに、このプロジェクトにマップするサービスIDを入力します。複数のサービスIDを使用する場合は、各サービスIDをカンマで区切ります。
最大100個のサービスをマップできます。
Jiraでのデプロイ追跡の詳細については、Set up deployment tracking(デプロイ追跡の設定)を参照してください。
GitLabでデプロイゲートを設定する
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
この機能はコミュニティのコントリビュートとして追加され、GitLabコミュニティのみが開発および管理を行っています。
デプロイゲートを設定して、GitLabの変更リクエストの承認を得るためにJira Service Managementに送信できます。デプロイゲートを使用すると、指定した環境へのGitLabのデプロイはすべてJira Service Managementに自動的に送信され、承認された場合にのみデプロイされます。
サービスアカウントトークンを作成する
GitLabでサービスアカウントトークンを作成するには、まずパーソナルアクセストークンを作成する必要があります。このトークンは、Jira Service ManagementでGitLabのデプロイを管理するために使用されるサービスアカウントトークンを認証します。
サービスアカウントトークンを作成するには、次の手順に従います:
- サービスアカウントユーザーを作成します。
- パーソナルアクセストークンを使用して、サービスアカウントをグループまたはプロジェクトに追加します。
- サービスアカウントを保護環境に追加します。
- パーソナルアクセストークンを使用して、サービスアカウントトークンを生成します。
- サービスアカウントトークンの値をコピーします。
デプロイゲートを有効にする
デプロイゲートを有効にするには、次の手順に従います:
GitLabで、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにした場合、このフィールドは上部のバーにあります。
- 設定 > インテグレーションを選択します。
- GitLab for Jira Cloudアプリを選択します。
- Deployment gating(デプロイゲート)で、Enable deployment gating(デプロイゲートを有効にする)チェックボックスをオンにします。
- Environment tiers(環境ティア)テキストボックスに、デプロイゲートを有効にする環境の名前を入力します。複数の環境名を入力する場合は、カンマで区切ります(例:
production, staging, testing, development)。小文字のみを使用してください。 - 変更を保存を選択します。
Jira Service Managementで、次の手順を実行します:
- デプロイゲートを設定します。
- Service account token(サービスアカウントトークン)テキストボックスに、GitLabからコピーしたサービスアカウントトークンの値を貼り付けます。
サービスアカウントを保護環境に追加する
GitLabの保護環境にサービスアカウントを追加するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにした場合、このフィールドは上部のバーにあります。
- 設定 > CI/CDを選択します。
- 保護された環境を展開し、環境を保護を選択します。
- 環境を選択ドロップダウンリストから、保護する環境を選択します(例: staging(stagingステージ))。
- デプロイ許可ドロップダウンリストから、この環境にデプロイできるユーザーを選択します(例: デベロッパー + メンテナー)。
- 承認者ドロップダウンリストから、作成したサービスアカウントを選択します。
- 保護を選択します。
APIリクエストの例
サービスアカウントユーザーを作成します:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=<name_of_your_choice>&username=<username_of_your_choice>" "<https://gitlab.com/api/v4/groups/<group_id>/service_accounts"パーソナルアクセストークンを使用して、サービスアカウントをグループまたはプロジェクトに追加します:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ --data "user_id=<service_account_id>&access_level=30" "https://gitlab.com/api/v4/groups/<group_id>/members" curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ --data "user_id=<service_account_id>&access_level=30" "https://gitlab.com/api/v4/projects/<project_id>/members"パーソナルアクセストークンを使用して、サービスアカウントトークンを生成します:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.com/api/v4/groups/<group_id>/service_accounts/<service_account_id>/personal_access_tokens" --data "scopes[]=api,read_user,read_repository" --data "name=service_accounts_token"
GitLab for Jira Cloudアプリを更新する
アプリのほとんどの更新は自動的に行われます。詳細については、Atlassianのドキュメントを参照してください。
アプリに追加の権限が必要な場合は、Jiraで更新を手動で承認する必要があります。
セキュリティに関する考慮事項
GitLab for Jira Cloudアプリは、GitLabとJiraを接続します。データは2つのアプリケーション間で共有する必要があり、双方向でアクセスを許可する必要があります。
GitLabからJiraへのアクセス
GitLab for Jira Cloudアプリを設定すると、GitLabはJiraからshared secret token(共有シークレットトークン)を受け取ります。このトークンは、Jiraプロジェクトに対するREAD、WRITE、DELETEアプリスコープをGitLabに付与します。これらのスコープは、Jiraプロジェクトの開発パネル内の情報を更新するために必要です。このトークンは、アプリがインストールされているJiraプロジェクト以外のAtlassian製品に対して、GitLabのアクセスを許可するものではありません。
このトークンはAES256-GCMで暗号化され、GitLabに保存されます。JiraプロジェクトからGitLab for Jira Cloudアプリがアンインストールされると、GitLabはトークンを削除します。
JiraからGitLabへのアクセス
Jiraは、GitLabへのアクセス権を取得しません。
GitLabからJiraに送信されるデータ
Jiraに送信されるすべてのデータについては、Jiraに同期されたGitLabデータを参照してください。
Jiraに送信される特定のデータプロパティの詳細については、データ同期に関係するシリアライザークラスを参照してください。
JiraからGitLabに送信されるデータ
GitLab for Jira Cloudアプリがインストールまたはアンインストールされると、GitLabはJiraからライフサイクルイベントを受信します。イベントには、後続のライフサイクルイベントを検証したり、Jiraにデータを送信する際に認証したりするためのトークンが含まれています。Jiraからのライフサイクルイベントリクエストは検証されます。
Atlassian MarketplaceのGitLab for Jira Cloudアプリを使用するGitLab Self-Managedインスタンスの場合、GitLab.comがライフサイクルイベントを処理し、GitLab Self-Managedインスタンスに転送します。詳細については、GitLab.comにおけるアプリのライフサイクルイベントの処理を参照してください。
Jiraによって保存されるデータ
Jiraに送信されたデータは、Jiraによって保存され、Jira開発パネルに表示されます。
GitLab for Jira Cloudアプリがアンインストールされると、Jiraはこのデータを完全に削除します。このプロセスは非同期で行われ、数時間かかる場合があります。
Atlassian Marketplaceのプライバシーとセキュリティの詳細
詳細については、Atlassian Marketplaceリストのプライバシーとセキュリティの詳細を参照してください。
トラブルシューティング
GitLab for Jira Cloudアプリを操作する際に、次の問題が発生する可能性があります。
管理者向けドキュメントについては、GitLab for Jira Cloudアプリの管理を参照してください。
エラー: Failed to link group
GitLab for Jira Cloudアプリを接続する際に、次のエラーが発生する場合があります:
Failed to link group. Please try again.権限が不十分でJiraからユーザー情報を取得できない場合、403 Forbiddenが返されます。
この問題を解決するには、特定のJiraユーザー要件を満たしていることを確認してください。
GitLabグループにリンクした後、Jiraコードが動作しない
GitLab for Jira CloudアプリをGitLabグループにリンクした後、Jiraコードが動作しない場合があります。この問題を解決するには、BitbucketとJiraの両方を設定する必要があります。
Bitbucketの設定:
- Atlassianアカウントにサインインします。
- ワークスペースを作成し、名前を入力します。
Jiraの設定:
- プロジェクトで、対象プロジェクトを選択します。
- 開発 > コードを選択します。
- Connect Bitbucket > Link Bitbucket Cloud workspace(Bitbucket Cloudワークスペース)にリンクを選択します。
- Bitbucketで作成したワークスペースを選択します。
- アクセス許可を選択します。
これで、リポジトリがJiraコードに表示されます。
詳細については、Jira CloudイシューJRACLOUD-95847を参照してください。