こんにちは。askenでサーバサイドの開発をしている@hsawajiです。
今回はSlackの「マルチチャンネルゲスト」が他サービスとアカウント連携ができないことで発生した問題への対応についてです。
経緯
askenでは業務委託の方などaskenのビジネスに協力して頂いてる方々を「マルチチャンネルゲスト」としてSlackを使って頂いています。 しかし、マルチチャンネルゲストにはいくつかの制限があります。
Slack での各メンバー種別の権限にあるように、マルチチャンネルゲストは「他サービスとのアカウント連携」ができません。
メンバーアカウントであればGitHubとSlackアカウントを連携して、GitHub上で自分に対してメンションがあたったり、レビュー依頼があったときなどにSlackに通知を送ることができます。
マルチチャンネルゲストは、それができないことで、レビュー依頼やレビューに対するコメントなどを見落としてしまう問題が発生していました。
毎週行っているレトロスペクティブで「レビューが遅れている」といった問題は上がっていたものの、 社員メンバーはメンバーアカウントを使用しているため、通知に問題があると認識できていませんでした。
やったこと
通知の改善としてやったことは下記の2点です。
- Slackにプロジェクトで使用しているGitHubの通知を飛ばすチャンネルを作成する
- 各メンバーのSlackの「キーワード」に自身のGitHubアカウント名を登録してもらう
少し詳しくやったことを説明します。
Slackにプロジェクトで使用しているGitHubの通知を飛ばすチャンネルを作成する
1つ通知用のチャンネルを追加します。そのチャンネルにGitHubの通知を飛ばします。
SlackにGitHub Appが追加されている状態で下記のコマンドを使って追加します。
/github subscribe [repository name]
そうすると、いくつかの通知設定がデフォルトで追加されます。
今回は自分が何かしらのアクションを取らないといけない場合に絞って下記のような設定しなおしました。
/github subscribe [repository name] reviews comments /github unsubscribe [repository name] issues commits releases deployments
これでSlackとGitHubの連携設定は完了です。
各メンバーのSlackの「キーワード」に自身のGitHubアカウント名を登録してもらう
Slackの右上にあるアイコンから設定を開きます。
下部にある「My keywords」という部分に、自身のGitHubアカウント名を入力します。
私の場合は「hsawaji」が登録されています。
こうすることで、チャンネルに参加しているメンバーのGitHubアカウント名が含まれるメッセージが飛ばされたときに通知を受け取ることができます。
結果
比較は「Pull-Requestの作成からマージまでにかかった時間の平均」で行います。
9月より通知設定を改善したので、8月と9月を比較します。
Pull-Requestの作成日時とマージ日時の取得は下記のコマンドで行いました。
gh pr list --search "is:closed created:>=2022-08-01" --json createdAt,closedAt
なお、土日祝日をまたいでいるタスクもあるので、多少期間が長くなっています。
結果は...
対象月 | マージまでにかかった期間 |
---|---|
8月 | 5.6日 |
9月 | 2.1日 |
上記のようにに2倍以上早くマージされるようになりました!!
全てが通知改善の影響ではないと思いますが、十分レビューが早くなったと言えるのではないでしょうか。
まとめ
askenでは
- 業務委託の方が関わらない事業部の情報
- 社員のみに関わる業務連絡
などが見えてしまうため、業務委託の方をマルチチャンネルゲストとして登録しています。
しかし、マルチチャンネルゲストの方々も「あすけん」を一緒に作る仲間なので不便な状態にしたくありませんでした。 今回紹介した小さいアイデアで「不便」はある程度解消できたと思っています。
また、アカウント種類によって出来ることに違いがあることを認識できていませんでした。これは反省すべき点です。 今もまだ気がつけていない「不便」があるかもしれないので、引き続き改善を続けていきます。
積極採用中です!
askenでは、一緒に働いてくれるエンジニアを募集しています。少しでも興味を持っていただけたら、ぜひ採用情報をご確認ください。