日頃より、弊社をご愛顧いただきまして誠にありがとうございます。この度、ゴーツーラボ 株式会社が営むアトラシアン製品ライセンスの販売および SI サービスの提供事業をリックソフト 株式会社に譲渡することで合意し、事業譲渡契約を締結する運びとなりました。詳細については、「事業譲渡に関するお知らせ」をご参照ください。
2016-03-09 (Wed) • By 伊藤 • 活用のヒント • Bitbucket Commit Policy Jira
JIRA Software と Bitbucket Server とを連携させるメリットの 1 つとして、スマート コミット機能があげられます。スマート コミットとは、コミット メッセージに特定の文字列を含めることで、さまざまな操作を行える機能です。このスマート コミットを利用することで、JIRA 課題に対してコメントの作成、作業時間の記録、ステータスの変更などを行えます。ソース コードの修正を JIRA で管理している場合、スマート コミットを活用することでトレーサビリティの向上を図ることが可能です。
スマート コミットの問題点は、コミット メッセージの内容確認がコミッター自身に委ねられていることです。したがって、コミット メッセージに含めるべき情報をうっかり入力し忘れることも考えられます。この問題を解決するのが、今回紹介する Commit Policy Plugin for JIRA です。
Commit Policy Plugin for JIRA は、ハンガリーのアトラシアン エキスパート Midori Global Consulting が開発販売するアドオン製品です。このアドオンは、JIRA 上で定義されたコミット ポリシーを基に、バージョン管理システム (VCS) 上でコミット メッセージの内容を自動検証します。
例えば JIRA Software と Bitbucket Server との連携を考えた場合、一連の処理は以下のとおりとなります。
コミット ポリシーの定義は、条件を指定することで行います。以下はその条件の一例です。
条件を指定には、正規表現、Glob パターン、JQL などを利用します。さらに AND 論理演算子や OR 論理演算子で複数の条件を組み合わせることも可能です。
もちろん、Commit Policy Plugin for JIRA は Bitbucket Server 以外のバージョン管理システム (VCS) にも対応しています。現時点での一覧は、以下のとおりです。ただし、すべてオンプレミス版にのみ対応しています。
通常、フック スクリプトはバージョン管理システムの種類に依存しますが、Commit Policy Plugin for JIRA ではその差異を意識する必要はありません。同じコミット ポリシーを異なるバージョン管理システムに適用することができます。
今回は、以下の 2 条件を同時に満たすコミット メッセージのみを受け付けるコミット ポリシーを考えてみましょう。
コミット メッセージを JIRA 課題にコメントとして反映させるためには、スマート コミットの #comment
コマンドを使用します。また、指定する JIRA 課題の課題番号は MJSP
-(数字) の形式なので、コミット メッセージは以下の書式になります。
MJSP-(数字) #comment (テキスト メッセージ)
Commit Policy Plugin for JIRA の条件オプション “Commit message must match a pattern (コミット メッセージはパターンに必ず一致)” を選択することで、コミット メッセージが上記書式であることを強制できます。また、上記書式を正規表現に直すと以下になりますが、これをオプション フィールドに入力します。
(?:MJSP)-\d+.* (?:#comment).*
Commit Policy Plugin for JIRA の条件オプションには、”Commit message must contain issue keys from a JQL query (コミット メッセージは JQL クエリの実行結果に含まれる課題キーを必ず含む)” が用意されています。コミット メッセージに含まれる JIRA 課題が以下の検索結果に含まれない場合は、エラーを返すようにします。
project = MJSP AND issuetype = タスク AND status = "In Progress"
上記 JQL (JIRA クエリ言語) をオプション フィールドに入力します。
最後に条件 1 と条件 2 のいずれも必須になるように設定します。これは、”The commit must satisfy…” オプションで all を選択するだけです。
The commit must satisfy all of these conditions:
Commit Policy Plugin for JIRA 標準の条件オプションは、以下のとおりです。
これらを組み合わせて使用することで、かなり柔軟な条件の指定ができることがお分かりいただけると思います。
今回は JIRA Software と Bitbucket Server との連携におけるスマート コミットを取り扱いましたが、Midori Global Consulting の Commit Policy Plugin for JIRA は、それ以外のバージョン管理システムを連携している場合でも強力な助っ人となります。コミット メッセージの内容を自動で検証してくれるため、コミッターによるケアレス ミスを減らすことができます。また、コミット メッセージの書式を統一できるのでソース コードのトレーサビリティの向上に結びつきます。コミッターの制限や、コミットできるファイルの制限も指定できるので、セキュリティの強化にも繋がります。ぜひ、一度お試しください。