🚀

開発生産性を高める、Notion上のチケットとGitHubのPRの連携

2024/03/08に公開

株式会社HOKUTOでモバイルアプリ / CFsの開発をしている田畑(@nerd0geek1)です。

昨年末に流れてきたツイートですが、これはホントにその通りですよね。。。

この記事では、上記のように開発生産性を高める取り組みの一環としてHOKUTOで実施した、Notion上のチケットとGitHubプルリクエストの連携について、紹介したいと思います。


弊社では、
チケット管理をNotionで、
ソースコードの管理をGitHub
という、よくある構成で、スクラムを実践しています。

以前は、数日レビューされずに残り続けるPRがある、といった様子でレビューが停滞しがちでしたが、

  • Notion上で以下のようにレビュー未完了のチケットを一覧表示するビューを作成し、
  • デイリースクラムごとにレビューが未完了のチケットを確認し、
  • レビュアーを割り当てる

との対応を行ったことにより、一定は改善しつつあります。

ただ、そうは言ってもチケットのステータスは手動で編集する必要があり、まだ自動化の余地が残っている状態でした。


「もう少し、なんとかなりそうだな...🤔」と考えながらTwitterを見ていると、
Notionに関するハックのTweetの中にこんなTweetが👀

👀❗❗❗❗

Twitter見てると、去年の後半から使えるようになっていたみたいですね👀
Notionのドキュメントを読んでみると、ワークフローの改善に繋がりそうだったので、試してみました。
https://www.notion.so/ja-jp/help/github

GitHub Repositoryとの紐付け

まずは、GitHubとの紐付けについてですが、以下の動画のように、

  1. Notionのデータベースにおいて、プロパティを選択
  2. 新しいプロパティ > GitHubプルリクエストを選択
  3. 連携先のOrganization / Repositoryを選択

とすると、選択したGitHub Repositoryとの連携が開始されます。

https://www.youtube.com/watch?v=NthCzZqcpHo

NotionチケットとGitHub PRの紐付け

先程、GitHub RepositoryとNotionのデータベースを紐付けた時点でIDというプロパティが追加されていますが、このプロパティを用いて、データベース内のチケットとGitHubのPRの紐付けが行われます。
(以下のスクショに記載の通り。なお、GitHub PRタイトルにIDを記載する必要があり、コメント部分に記載しても紐付けは行われませんでした)


以下のようにPRタイトルに追加すると、

Notion側にも連携されました!🙌

Notionチケットのステータスの自動更新

ここまでの設定で、NotionチケットとGitHubのPRを行き来するのが多少楽にはなりましたが、これだけであれば当初の状態と大きな差はありません。。
そこで以下のように、GitHub PRのステータス更新をトリガーにして、チケットのステータスが更新されるように設定します。

https://youtu.be/TmGp_ECMBAc

こうすることで、以下の動画で確認できるように、GitHubのPRを更新すると、Notion上のチケットのステータスが更新されるようになりました!🙌

https://youtu.be/X79w8NkQDGE

(ちなみに、PRのタイトルに複数のチケットのIDを記載しても問題なく連携できたので、複数のチケットを1つのPRで対応する、というユースケースにも問題なく対応できます)
(ただし、PR作成の一環としてReviewerの設定を行ってしまうと、PRオープン扱いとなる(レビュー依頼扱いとならない)ため、PRをオープンしたらチケット側のStatusがReviewとなるよう設定するか、実際にレビューしてほしいタイミングでReviewerを設定するなど、チームごとに調整が必要なように思いました。
また、ユースケースとしては少数かとは思いますが、同じチケットIDが設定されたPRが複数作成されると、Notion DB上で紐付けられたGitHub PRが上書きされてしまうため、その点も注意が必要です)

まとめ

小さい改善ですが、今回紹介した方法により、以下の改善が実現されました🚀🚀🚀

  • Notion上のチケット ⇄ GitHubの移動がスムーズに
  • GitHub上でPRを作成するとNotion上のチケットのステータスが自動で更新されるようになるため、
    チケットの更新漏れが発生しえない
  • レビュー完了 / PRマージ時に自動でチケットが更新されるため、チケットの更新漏れが発生しえない

あとは、レビュアーのアサインなども(実現可能性を調べてないですが)できると良いかもしれないですね。

HOKUTO Tech Blog

Discussion