開発生産性を高める、Notion上のチケットとGitHubのPRの連携
株式会社HOKUTOでモバイルアプリ / CFsの開発をしている田畑(@nerd0geek1)です。
昨年末に流れてきたツイートですが、これはホントにその通りですよね。。。
この記事では、上記のように開発生産性を高める取り組みの一環としてHOKUTOで実施した、Notion上のチケットとGitHubプルリクエストの連携について、紹介したいと思います。
弊社では、
チケット管理をNotionで、
ソースコードの管理をGitHub
という、よくある構成で、スクラムを実践しています。
以前は、数日レビューされずに残り続けるPRがある、といった様子でレビューが停滞しがちでしたが、
- Notion上で以下のようにレビュー未完了のチケットを一覧表示するビューを作成し、
- デイリースクラムごとにレビューが未完了のチケットを確認し、
- レビュアーを割り当てる
との対応を行ったことにより、一定は改善しつつあります。
ただ、そうは言ってもチケットのステータスは手動で編集する必要があり、まだ自動化の余地が残っている状態でした。
「もう少し、なんとかなりそうだな...🤔」と考えながらTwitterを見ていると、
Notionに関するハックのTweetの中にこんなTweetが👀
👀❗❗❗❗
Twitter見てると、去年の後半から使えるようになっていたみたいですね👀
Notionのドキュメントを読んでみると、ワークフローの改善に繋がりそうだったので、試してみました。
GitHub Repositoryとの紐付け
まずは、GitHubとの紐付けについてですが、以下の動画のように、
- Notionのデータベースにおいて、プロパティを選択
- 新しいプロパティ > GitHubプルリクエストを選択
- 連携先のOrganization / Repositoryを選択
とすると、選択したGitHub Repositoryとの連携が開始されます。
NotionチケットとGitHub PRの紐付け
先程、GitHub RepositoryとNotionのデータベースを紐付けた時点でIDというプロパティが追加されていますが、このプロパティを用いて、データベース内のチケットとGitHubのPRの紐付けが行われます。
(以下のスクショに記載の通り。なお、GitHub PRタイトルにIDを記載する必要があり、コメント部分に記載しても紐付けは行われませんでした)
以下のようにPRタイトルに追加すると、
Notion側にも連携されました!🙌
Notionチケットのステータスの自動更新
ここまでの設定で、NotionチケットとGitHubのPRを行き来するのが多少楽にはなりましたが、これだけであれば当初の状態と大きな差はありません。。
そこで以下のように、GitHub PRのステータス更新をトリガーにして、チケットのステータスが更新されるように設定します。
こうすることで、以下の動画で確認できるように、GitHubのPRを更新すると、Notion上のチケットのステータスが更新されるようになりました!🙌
(ちなみに、PRのタイトルに複数のチケットのIDを記載しても問題なく連携できたので、複数のチケットを1つのPRで対応する、というユースケースにも問題なく対応できます)
(ただし、PR作成の一環としてReviewerの設定を行ってしまうと、PRオープン扱いとなる(レビュー依頼扱いとならない)ため、PRをオープンしたらチケット側のStatusがReviewとなるよう設定するか、実際にレビューしてほしいタイミングでReviewerを設定するなど、チームごとに調整が必要なように思いました。
また、ユースケースとしては少数かとは思いますが、同じチケットIDが設定されたPRが複数作成されると、Notion DB上で紐付けられたGitHub PRが上書きされてしまうため、その点も注意が必要です)
まとめ
小さい改善ですが、今回紹介した方法により、以下の改善が実現されました🚀🚀🚀
- Notion上のチケット ⇄ GitHubの移動がスムーズに
- GitHub上でPRを作成するとNotion上のチケットのステータスが自動で更新されるようになるため、
チケットの更新漏れが発生しえない - レビュー完了 / PRマージ時に自動でチケットが更新されるため、チケットの更新漏れが発生しえない
あとは、レビュアーのアサインなども(実現可能性を調べてないですが)できると良いかもしれないですね。
Discussion