ほとんどGitHubで完結するのですが、要件を整理するところだけは何か欲しいなとと思いPivotal Trackerを使い始めてみました。Pivotal Trackerの使い方自体はまた別の機会でまとめるとして、ここでは、PivotalTrackerのストーリーと関連するGitHubのコミットを紐づける方法をご紹介します。
PivotalTrackerの設定
まず、PivotalTrackerに接続できるように、APIトークンを発行します。
[PROFILE]ニューから選択して、[API Token]のセクションに[Create New Token]というリンクをクリックします。そうすると、[API Token]が生成され表示されるのでコピーしておきます。
GitHubの設定
次に、GitHub側でリポジトリの[Admin]をクリックして管理画面を表示します。[Service Hooks]タブを選択します。連携できるサービスの一覧が表示されるので、一覧からPivotalTrackerを探して選択します。[Token]欄に先ほどコピーした、[API Token]をペースとします。[Active]にチェックをして、[Update Settings]をクリックして設定を保存します。
以上で連携の設定は完了です。
コミットメッセージ記述の仕方
実際のコミットメッセージの表記の仕方は、Pivotal Trackerのヘルプページを和訳したものを記載します。
和訳:
SCMのコミットと特定のTrackerストーリーを関連付けるには、コミットメッセージにストーリーID(複数可)とストーリーの状態変更を示した専用の記述を含めます。ハッシュマーク(#)の後にストーリーIDを記載して大括弧([])で囲んだコミットメッセージを記載します。もし、ストーリーが開始していなければ(状態が"Not Yet Started"のもの)、コミットメッセージは自動で開始状態にします。例えば、ScottyがSCMのリビジョン54321で下記のメッセージをコミットしたとします。
[#12345677 #12345678] Diverting power from warp drive to torpedoes.
Trackerのストーリー12345677と12345678に下記のコメントが追加されます。もし、ストーリーが開始されていなければ、状態を"Started"にします。
Commit: Scotty
54321
[#12345677 #12345678] Diverting power from warp drive to torpedoes.
コミットメッセージを使ってストーリーを自動で終了するには、大括弧内でストーリーIDに加えて、"fixed", "completed", "finished"を含めます。また、ストーリーIDの前や後に"Fix"や"FIXES"を記載したり、別の動詞の格や形も使うこともできます。注記: "features"の場合は、状態を"finished"にします。"chores"の場合は、状態を"accepted"にします。
例:
[Fixes #12345678] Torpedoes now sufficiently powered.
環境によっては、コードがコミットされたタイミングで自動でデプロイする事でしょう。そのような環境では、"delivers"を含めれると、そのストーリーの状態を"delivered"にします。
[Delivers #12345679] Scotty can beam up Captain Kirk.
おわりに
これで、コミットメッセージに所定の形式で記載すれば、Pivotal Tracker上で、ストーリーから関連するコミットがリンクされるようになりました。
Pivotal Trackerは非常にシンプルで使い勝手がよくて気に入りました。また、もう少し運用してみて、慣れてきたらPivotal Tracker自体に関しても書いていきたいと思います。
いままではRedmineを使っていたのですが、これからはPivotal Tracker + GitHubがいいですね。