GitHubのIssueとAsanaを同期させる
最近、Task 管理に Asana を使うようになりました。そのついでで GitHub の Issue も Asana 側で管理できないかなと思ったらどうやらいけそうなのでやってみます。
方法
どうやら Unito というサービスがあり、それを使えば同期できるそうです。
Unito は様々な課題管理サービスを同期させるためのサービスです。Asana と GitHub 以外に Jira や Wrike、Trello なども対応しているようです。詳しくはこちらをご覧ください。
やってみた
方法がわかったところでやってみます。とりあえず Asana と GitHub それぞれに同期する Project、Repository を作成します。今回は 弊Blogのリポジトリ と、その Issue を同期させるための Project を利用します。
まずは Asana で Team と Project を作成して…
次に Unito にログインして Sync の設定をしていきます。アカウントは各サービスのアカウントで作成できます。自分が利用予定(今回は GitHub か Asana)でログインしておきます。あとでもう一方のアカウントも紐付けといてください。
ログインに成功すると以下のようなヘッダーになり、もし他の同期を設定していたら真ん中に表示されます。(既にいくつか設定があるので上だけ。)
右上の Add Sync
をクリックして同期を設定します。一番上の Mirror-sync
を選択して Next
。
続いて同期させたいサービスと Project、Repository を選択します。今回は双方反映なので左右を気にする必要はありません。
今の状態では Issue だけではなく PR も同期されてしまうので、Issue のみにするフィルタを作成します。集団で利用している場合、自分がアサインされているものだけを同期するなんてことも出来ます。Closed されたものも同期するか否かが設定できるのは便利ですね。
最後に真ん中の矢印が双方向になっているか、左右に登録しているものが同期させたいものかを確認して Create Sync
をクリックします。
作成が成功すると先ほどのホーム画面が表示され、作成した Sync が表示されます。同期の停止や設定の変更はいつでもこの画面からできます。
最後に Asana 側でしっかり同期されているかを確認します。
無事 Closed を含めて反映されていますね。これでめでたしめでたし。
所感
ちょっと前まで Task などは Issue で管理をしていたのですが、最近やっているプロジェクトで Asana を使ってみたら予想以上に使いやすかったので一気に引っ越しを始めました。それでも commit や PR に Task として登録しておいた Issue を紐付けたいなと思って色々探していたらこの方法にたどり着きました。Asana のタグと Issue のラベルが同期できるかは把握してません(多分できる…?)。また気が向いたら調べてみます。