ユース ケース : 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 を利用したコミット ポリシーの設定の手順は、以下のとおりです。
- JIRA Software と Bitbucket との間で認証を設定する。
- JIRA Software 上でコミット ポリシーを定義する。
- Bitbucket 上の Git リポジトリに対してコミット ポリシーを適用する。
JIRA Software と Bitbucket との間での認証の設定
JIRA Software と Bitbucket との間で OAuth 認証の設定を行います。JIRA Software 側では 受信認証 を、Bitbucket 側では 送信認証 を設定します。
JIRA Software 側の設定
- 管理者権限を持つユーザーとして JIRA Software にログインします。
- ヘッダー右端の アイコン ([管理] メニュー) から [アプリケーション] オプションを選択します。

- 左ペインの [アプリケーション リンク] オプションを選択します。

- Bitbucket の アイコン ([操作] ボタン) から [編集] オプションを選択します ([設定] ダイアログが表示されます)。

- 左ペインの [受信認証] オプションを選択します。
- 右ペインの [OAuth] タブを選択します。

- [2-Legged OAuth] オプションにチェックが入っていることを確認します。
- [2-Legged OAuth を通してユーザーの偽装を許可] オプションにチェックを入れます。

- [更新] ボタンをクリックします。
- 右下の [閉じる] リンクをクリックします。
Bitbucket 側の設定
- 管理者権限を持つユーザーとして Bitbucket にログインします。
- ヘッダー右端の アイコン ([管理] メニュー) をクリックします。

- 左ペインの [アプリケーション リンク] オプションを選択します。

- JIRA Software の [編集] オプションを選択します ([設定] ダイアログが表示されます)。

- 左ペインの [送信認証] オプションを選択します。
- 右ペインの [OAuth] タブを選択します。

- [2-Legged OAuth 送信リクエストの有効化] オプションにチェックが入っていることを確認します。
- [偽装あり 2-Legged OAuth 送信リクエストの有効化] オプションにチェックを入れます。

- [更新] ボタンをクリックします。
- 右下の [閉じる] リンクをクリックします。
JIRA Software 上でのコミット ポリシーの定義
次にコミット ポリシーを JIRA Software 上で定義します。今回は Git リポジトリ demo-repo
へのコミットのコミット メッセージに必ず JIRA プロジェクト デモ プロジェクト
の課題の課題番号が 1 つだけ含まれているようにします。
JIRA Software 上でコミット ポリシーを定義するには、以下の操作を行います。
- 管理者権限を持つユーザーとして JIRA Software にログインします。
- ヘッダー右端の アイコン ([管理] メニュー) から [Commit Policies] オプションを選択します (コミット ポリシーが未定義なので [Add Commit Policy] 画面が表示されます)。

- [Name] フィールド、[Description] フィールド、および [Rejection message] フィールドに必要事項を入力します。
- [Add rule] ボタンをクリックします。

- [Add condition] ドロップダウンから [Commit message must contain issue keys from a JQL query] オプションを選択します。

- 左側のドロップダウンから [exactly one issue] オプションを選択します。
- 右側のフィールドには、以下の JQL (JIRA クエリ言語) を入力します。
project = DEMO

- [Save] ボタンをクリックします。
Bitbucket 上の Git リポジトリへのコミット ポリシーの適用
前セクションで JIRA Software 上で定義したコミット ポリシーを Bitbucket 上の Git リポジトリ demo-repo
に割り当てます。Commit Policy Plugin for Bitbucket を使用することで、この操作は Git リポジトリの設定画面上で行えます。
Bitbucket 上の Git リポジトリ demo-repo
にコミット ポリシーを割り当てるには、以下の操作を行います。
- 管理者権限を持つユーザーとして Bitbucket にログインします。
- ヘッダーの [リポジトリ] ドロップダウンからリポジトリ
demo-repo
を選択します。

- 左ペインの アイコン ([設定] メニュー) をクリックします。

- 中央ペインの [フック] オプションを選択します。

- Commit Policy Verification の [有効化] ボタンをクリックします。

- コミット ポリシーを選択します。

- [有効化] ボタンをクリックします。
動作の確認
現時点では、JIRA Software 上で定義したコミット ポリシーを基に Bitbucket 上の Git リポジトリ demo-repo
へのコミットが自動検証されるようになっています。ここではその動作確認を行います。
JIRA Software 上で定義したコミット ポリシーを基に、Bitbucket 上の Git リポジトリ demo-repo
へのコミットが自動検証されることを確認するには、以下の操作を行います。
- ソース コード
sample-file-1.php
を修正します。
- SourceTree 上の [Pending files] ペインの
sample-file-1.php
にチェックを入れます。

- 以下のコミット メッセージを入力します。
コメントを追加
- [コミット] ボタンをクリックします (エラー画面が表示されます)。


- 先ほどのコミット メッセージを修正するために [コミット メッセージ] フィールド右上の [Commit options] ドロップダウンから [Amend latest commit] オプションを選択します。

- コミット メッセージを以下のとおり修正します。
DEMO-1 コメントを追加
- [コミット] ボタンをクリックします。

- [プッシュ] ボタンをクリックします。
- JIRA Software 上で JIRA 課題
DEMO-1
を表示します。


現在の状態
現時点で完了している設定は、以下のとおりです。
- 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
に対して上記コミット ポリシーが適用されている。
関連記事