GitHub
PivotalTracker

PivotalTrackerとGitHubの連携

More than 3 years have passed since last update.

ほとんど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がいいですね。