🔔

GitHub を使うなら通知くらいまともに設定してくれ

2023/04/13に公開
1

4 月から新入社員となって本格的にエンジニアとして生活し始めた方も多いかと思います.いままであまり GitHub を使っておらず,会社から要求されてはじめてまともに使い始めた方もいるかもしれません.

そんな方々にお願いがあります.

GitHub を使うなら通知くらいまともに設定してくれ

あなたがこのタイトルを読んでピンときていないのであれば,あなたの通知設定はおそらく間違っています.GitHub は初期設定だと非常に多くの通知を送信します.それは GitHub 自身が通知ページで述べているくらいです.

Overwhelmed by notifications? We've found some repositories that may be causing notifications you don't need. Update watching settings

通知はあなたが思う以上に大切な存在です.必要とする通知は人によって様々であり,それを見逃してはいけないため,ときに GitHub は必要以上の通知を送信しています.しかし,必要以上な通知を受け取ると,人は通知を見ないようになってしまいます.

個人開発ならそれでもよいかもしれません.しかし,あなたはすでにチームと仕事をするエンジニアなのです.あなたが通知を受け取らないことはあなた自身にとってのデメリットだけでなく,チームにとってのデメリットでもあります.

レビューまでの時間は DX に直結する

おそらく私たちの多くは効率よく開発をすることを目的として仕事をします.時にそれは生産性とも呼ばれます.生産性を上げるために,エンジニア組織には DX (Developer eXperience) が必要とされます.

さて,あなたはチームメイトからレビュー依頼 (GitHub では Review Request) を受けることもあるでしょう.しかしあなたが通知を正しく設定していなかったらどうなるでしょうか.

あなたはレビュー依頼に気づきません.そのチームメイトはレビューがされるまで他の実装ができないかもしれません[1] .痺れを切らしたチームメイトはあなたに Slack でメンションをします. Pull Request を出すたびに Slack でもメンションを送らなければならないのは単純に考えて手間となります.

レビュー依頼した側はそれをあなたが気づくと思っています.気づくのを待っています.不用意に Slack でメンションをしようものならあなたが鬱陶しく感じることを懸念するような優しい人かもしれません.

あなたが通知を設定しないことは,チームの DX を下げるのです.

あなたに直接関係のない通知を受け取る余裕はあるか

通知が「多い」と感じることは日常生活で多々あると思います.例えば何気なくインストールしたアパレル店の宣伝が通知としてやってきます.ときにはスパムメールが通知されます.そうした通知が「多い」と感じるのはあなたにとって関係が薄い,もしくはないからでしょう.必要のない通知と言い換えることもできます.

GitHub においても同じです.あなたに関係のない通知は必要としないことがほとんどです.ここであなたが必要とする通知は,具体的にはあなたがメンションされたり,レビュー依頼をされたりしたときの通知です.あなたがアサインされていない Issue の通知は多くの場合不必要ですし,ましてやあなたが関係していない案件のリポジトリの通知はもっと不要です.

もちろん,あなたが閲覧権限を持っている以上,あなたにはそれを見る権利があります.通知を受け取る権利もあります.しかし,それによって必要な通知が埋もれるなら,あなたはそれらの通知を処理しきれていません.必要な通知に気づかないなら,通知なんてなくてよいのかもしれません.

あなたに関係のない通知まで受け取る余裕が,あなたにあるでしょうか.

GitHub の通知最適化

通知設定の必要性を伝えたところで, GitHub の通知を最適化していきましょう.

自分に関係のないリポジトリをウォッチしない

GitHub はデフォルトで自分が Push 権限を持っているリポジトリすべてをウォッチしようとします.たとえあなたが開発に関わっていなくてもです.会社であれば方針によって Organisation の Base Role が Write になっているかもしれません.GitHub Enterprise を使っていれば Internal なリポジトリには Write 権限があるかもしれません.

多くの場合,これらのリポジトリの通知を必要としません. GitHub のアカウントを作って最初にやることといっても過言ではありません.まずオフにしましょう.

Automatially watch repositories: When you're given push access to a repository, automatically receive notifications for it.

ゴミはゴミ箱へ,会社の通知は会社のメールボックスへ

多くの会社では社員一人ひとりにメールボックスが与えられます. GitHub アカウントにももちろんそのメールアドレスを登録しているでしょう.そして業務中は会社のメールボックスに届いた通知を受け取れるようにしているはずです.

会社の GitHub リポジトリに届いた通知を個人用のメールボックスで受け取りたくはないはずです. GitHub では Organisation 単位で通知を送信するメールアドレスを指定できます.

Settings > Notifications > Custom Routing において設定が可能です.例えば私ならこのように設定しています.

Custom Routing: yumemi -> n_ikeguchi[at]yumemi.co.jp, yumemi-inc -> n_ikeguchi[at]yumemi.co.jp

不要なウォッチを解除する

ここまで設定できたら,今ウォッチしているリポジトリのうち不要なものを解除してしまいましょう.

Notifications > Watching から今ウォッチしているリポジトリの一覧と,ウォッチを解除したほうがよいリポジトリの提案を確認できます[2] .一括で Unwatch することもできます.特に気になるリポジトリがなければ,一括で Unwatch してしまいましょう.

Unwatch suggestions: These repositories may be causing unnecessary notifications.

Gitify を設定する

GitHub は Web Push に対応していないため,プッシュ通知を受け取ることはできません.会社のポリシ等が原因で E メールの通知を受け取られない環境にいるかもしれません.あなたが GUI 環境で開発を行っているなら, Gitify というツールでプッシュ通知を受け取ることができます.

https://www.gitify.io/

OAuth 経由で設定を行うこともできますが, Organisation によってはそれが許可されないかもしれません.その場合は,GitHub Private Access Token (PAT) を使って設定することもできます.

GitHub Mobile を設定する

あなたがスマートフォン (Android, iOS) を持っているなら, GitHub Mobile をインストールすることでプッシュ通知を受け取ることができます.仕事中に手元に置いてあるスマートフォンで,すぐに通知を受け取ることができます[3] .この機会にぜひインストールしてください.

https://github.com/mobile

おわりに

私は通知を正しく設定しているかを,その人の情報リテラシの一部として見ています.必要なものは逃さず確認でき,必要のないものは目に入らないようにコントロールできる,そんなスキルはエンジニアとしてではなく情報を得る生活としてとても重要なものと考えています.

特にエンジニア組織では,あなたが通知を正しく設定することでチームの生産性をも上げることができる可能性があります.ぜひ一度, GitHub だけではなく,普段使うすべてのツールで,通知設定を確認してみてください.

また通知を受け取ったときに,何気なくスワイプして削除するのではなく,必要か不必要か見極め,不必要であればそういった通知を減らすためにどんなことができるか模索してみてください.

脚注
  1. 通常レビュー依頼中も他の実装が進められるようなブランチ戦略やタスク分割をするのが定石ではあるものの,それに慣れていないことやタスクの性質が原因でそれがうまくいかないこともあります. ↩︎

  2. 執筆時現在でこの機能はベータです.予告なく削除される可能性もあります. ↩︎

  3. Gitify は定期的に API 経由で通知を取得するものなのでタイムラグが発生しますが, GitHub Mobile は即時で通知が届きます. ↩︎

Discussion

noyannoyan

もし業務でSlackとGitHub Organizationを使われていたら、GitHubでのイベントがSlackに通知されるScheduled Reminders がおすすめです。

Scheduled Remindersを使うメリットは、CIの失敗やコンフリクト、PRの承認など、レポジトリのwatchでは見れない重要なイベントが即座に通知されることです。
また、業務都合で趣味や隣のチームのwatchを減らしたくない人にとっても、Scheduled Remindersは役立つと思います。

Scheduled Remindersには、定期リマンダー機能と即時通知機能の二つがあります。即時通知は、以下のタイミングから通知するよう設定が可能です。

  • あなたがレビュアーに追加された
  • チームがレビュアーに追加された
  • あなたのPRが承認された、あるいは変更をリクエストされた
  • あなたのPRに誰かがコメントした
  • あなたのPRにコンフリクトが発生した
  • あなたのPRがCIで失敗した
    etc ...

ただし注意点として、Scheduled Remindersではイシューのコメントでのメンションは通知されません(該当issue)。
この対策として、私が現在所属しているチームでは Slackにスレッドを設定し、 /github subscribe owner/repo reviews comments でメンションが通知されるようにしています。