ユース ケース : JIRA Software と Bitbucket との統合の強化 (3/3)

2016-04-06 (Wed)  •  By 伊藤  •  活用のヒント  •  Bitbucket JIRA Software

はじめに

本資料は、JIRA Software (Server) と Bitbucket (Server) との連携を効率的に行うためのユース ケースです。全部で 3 部構成となっており、それぞれの概要は以下のとおりです。

  • 第 1 部 : JIRA Software (Server) と Bitbucket (Server) との統合に必要となるアプリケーション リンクの設定について解説しています。
  • 第 2 部 : Bitbucket (Server) 上の Git リポジトリへのコミット アクティビティを JIRA Software (Server) 上で確認する方法について解説しています。
  • 第 3 部 : 本ページです。Bitbucket (Server) 上の Git リポジトリへのコミットにおいて、コミット メッセージを検証する方法について解説しています。

なお、本ページは「ユース ケース : JIRA Software と Bitbucket との統合の強化 (1/3)」および「ユース ケース : JIRA Software と Bitbucket との統合の強化 (2/3)」で解説されている設定が完了してることが前提となっています。

Commit Policy Plugin for JIRA の設定

Commit Policy Plugin for JIRA は、ハンガリーのアトラシアン エキスパート Midori Global Consulting 社が開発する JIRA 用アドオンです。JIRA アプリケーションと バージョン管理システム (VCS) とを統合している環境において、JIRA アプリケーション上で定義したコミット ポリシーを基に VCS 上でコミット メッセージの自動検証を行います。

Commit Policy Plugin for JIRA を使用することでコミット メッセージが条件を満たさないコミットをすべて拒否できるため、ソース コードの修正に関するトレーサビリティを向上できます。

なお、Commit Policy Plugin for JIRA では JIRA アプリケーション上でのコミット ポリシーの定義の他にフック スクリプトの設定が必要となります。Bitbucket と統合している場合は無料のアドオン Commit Policy Plugin for Bitbucket を使用することで、フック スクリプトの設定を簡略化できます。

現時点では、JIRA プロジェクト デモ プロジェクト の課題上で Bitbucket 上の Git リポジトリ demo-repo へのコミット情報を確認できるようになっています。ただし、これはコミット メッセージに JIRA プロジェクト デモ プロジェクト の課題番号が含まれていることが前提条件となっています。コミッターがコミット メッセージに課題番号を含めるのを忘れてしまった場合、JIRA Software 上でそのコミットに関する情報を確認できません。しかし、Commit Policy for JIRA の機能を使用することで、これを防ぐことができます。

Commit Policy for JIRA を利用したコミット ポリシーの設定の手順は、以下のとおりです。

  1. JIRA Software と Bitbucket との間で認証を設定する。
  2. JIRA Software 上でコミット ポリシーを定義する。
  3. Bitbucket 上の Git リポジトリに対してコミット ポリシーを適用する。

JIRA Software と Bitbucket との間での認証の設定

JIRA Software と Bitbucket との間で OAuth 認証の設定を行います。JIRA Software 側では 受信認証 を、Bitbucket 側では 送信認証 を設定します。

JIRA Software 側の設定

  1. 管理者権限を持つユーザーとして JIRA Software にログインします。
  2. ヘッダー右端の アイコン ([管理] メニュー) から [アプリケーション] オプションを選択します。
  3. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  4. 左ペインの [アプリケーション リンク] オプションを選択します。
  5. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  6. Bitbucket の アイコン ([操作] ボタン) から [編集] オプションを選択します ([設定] ダイアログが表示されます)。
  7. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  8. 左ペインの [受信認証] オプションを選択します。
  9. 右ペインの [OAuth] タブを選択します。
  10. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  11. [2-Legged OAuth] オプションにチェックが入っていることを確認します。
  12. [2-Legged OAuth を通してユーザーの偽装を許可] オプションにチェックを入れます。
  13. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  14. [更新] ボタンをクリックします。
  15. 右下の [閉じる] リンクをクリックします。

Bitbucket 側の設定

  1. 管理者権限を持つユーザーとして Bitbucket にログインします。
  2. ヘッダー右端の アイコン ([管理] メニュー) をクリックします。
  3. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  4. 左ペインの [アプリケーション リンク] オプションを選択します。
  5. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  6. JIRA Software の [編集] オプションを選択します ([設定] ダイアログが表示されます)。
  7. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  8. 左ペインの [送信認証] オプションを選択します。
  9. 右ペインの [OAuth] タブを選択します。
  10. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  11. [2-Legged OAuth 送信リクエストの有効化] オプションにチェックが入っていることを確認します。
  12. [偽装あり 2-Legged OAuth 送信リクエストの有効化] オプションにチェックを入れます。
  13. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  14. [更新] ボタンをクリックします。
  15. 右下の [閉じる] リンクをクリックします。

JIRA Software 上でのコミット ポリシーの定義

次にコミット ポリシーを JIRA Software 上で定義します。今回は Git リポジトリ demo-repo へのコミットのコミット メッセージに必ず JIRA プロジェクト デモ プロジェクト の課題の課題番号が 1 つだけ含まれているようにします。

JIRA Software 上でコミット ポリシーを定義するには、以下の操作を行います。

  1. 管理者権限を持つユーザーとして JIRA Software にログインします。
  2. ヘッダー右端の アイコン ([管理] メニュー) から [Commit Policies] オプションを選択します (コミット ポリシーが未定義なので [Add Commit Policy] 画面が表示されます)。
  3. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  4. [Name] フィールド、[Description] フィールド、および [Rejection message] フィールドに必要事項を入力します。
  5. [Add rule] ボタンをクリックします。
  6. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  7. [Add condition] ドロップダウンから [Commit message must contain issue keys from a JQL query] オプションを選択します。
  8. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  9. 左側のドロップダウンから [exactly one issue] オプションを選択します。
  10. 右側のフィールドには、以下の JQL (JIRA クエリ言語) を入力します。
  11. project = DEMO
    ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  12. [Save] ボタンをクリックします。
  13. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)

Bitbucket 上の Git リポジトリへのコミット ポリシーの適用

前セクションで JIRA Software 上で定義したコミット ポリシーを Bitbucket 上の Git リポジトリ demo-repo に割り当てます。Commit Policy Plugin for Bitbucket を使用することで、この操作は Git リポジトリの設定画面上で行えます。

Bitbucket 上の Git リポジトリ demo-repo にコミット ポリシーを割り当てるには、以下の操作を行います。

  1. 管理者権限を持つユーザーとして Bitbucket にログインします。
  2. ヘッダーの [リポジトリ] ドロップダウンからリポジトリ demo-repo を選択します。
  3. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  4. 左ペインの アイコン ([設定] メニュー) をクリックします。
  5. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  6. 中央ペインの [フック] オプションを選択します。
  7. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  8. Commit Policy Verification の [有効化] ボタンをクリックします。
  9. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  10. コミット ポリシーを選択します。
  11. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  12. [有効化] ボタンをクリックします。
  13. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)

動作の確認

現時点では、JIRA Software 上で定義したコミット ポリシーを基に Bitbucket 上の Git リポジトリ demo-repo へのコミットが自動検証されるようになっています。ここではその動作確認を行います。

JIRA Software 上で定義したコミット ポリシーを基に、Bitbucket 上の Git リポジトリ demo-repo へのコミットが自動検証されることを確認するには、以下の操作を行います。

  1. ソース コード sample-file-1.php を修正します。
  2. SourceTree 上の [Pending files] ペインの sample-file-1.php にチェックを入れます。
  3. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  4. 以下のコミット メッセージを入力します。
  5. コメントを追加
  6. [コミット] ボタンをクリックします (エラー画面が表示されます)。
  7. ユース ケース : JIRA Software と Bitbucket との統合 (3/3) ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  8. 先ほどのコミット メッセージを修正するために [コミット メッセージ] フィールド右上の [Commit options] ドロップダウンから [Amend latest commit] オプションを選択します。
  9. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  10. コミット メッセージを以下のとおり修正します。
  11. DEMO-1 コメントを追加
  12. [コミット] ボタンをクリックします。
  13. ユース ケース : JIRA Software と Bitbucket との統合 (3/3)
  14. [プッシュ] ボタンをクリックします。
  15. JIRA Software 上で JIRA 課題 DEMO-1 を表示します。
  16. ユース ケース : JIRA Software と Bitbucket との統合 (3/3) ユース ケース : JIRA Software と Bitbucket との統合 (3/3) ユース ケース : JIRA Software と Bitbucket との統合 (3/3)

現在の状態

現時点で完了している設定は、以下のとおりです。

  • JIRA Software と Bitbucket との間でアプリケーション リンクが設定されている。
  • 上記アプリケーション リンクでスマート コミットが有効化されている。
  • JIRA Software 上の デモ プロジェクト の JIRA 課題画面には、以下が追加されている。
    • JIRA 課題の左ペインの [アクティビティ] セクションに [Git ロールアップ] タブと [Git コミット] タブ
    • JIRA 課題の右ペインに [Git ソースコード] セクション
    • [コミット] オプションは左ペインの [Git コミット] タブとリンク
    • [ロールアップ] オプションは左ペインの [Git ロールアップ] タブとリンク
  • ヘッダーに [Git] メニュー が追加されている。
    • Git Integration Plugin for JIRA 経由で接続している Git リポジトリ管理画面へのリンク
  • JIRA Software と Bitbucket との間で OAuth 認証 (2-Legged OAuth) が設定されている。
    • JIRA Software 側 : 受信認証
    • Bitbucket 側 : 送信認証
  • JIRA Software 上で以下の条件のコミット ポリシーが定義されている。
    • JIRA 課題を 1 件だけ含む。
    • かつ、その JIRA 課題は JIRA プロジェクト デモ プロジェクト の課題である。
  • Bitbucket 上の Git リポジトリ demo-repo に対して上記コミット ポリシーが適用されている。

関連記事


Related Articles

お気軽にお問い合わせください

お問い合わせ