bootcamp
bootcamp copied to clipboard
Discordの通知チャンネルのURLプレビューを表示させないように変更
Issue
- #7760
概要
現状、BootcampからDiscord宛に自動送信される通知の中には、通知本文にURLが含まれているものが複数存在します。
Discordは通常、投稿の本文にURLがある場合に自動で以下のようなプレビューが表示されますが、文字入力の際にURLを<>
で囲うとこのプレビューを表示させないようにすることができます。
<>
なし
<>
あり
このPRでは上記のBootcampから自動送信される通知の中で本文中にURLが含まれているものについて、Discord上でプレビューを表示させないように変更しました。
変更確認方法
⚠️このPRにおける動作確認については、Discordに対して行われる通知の内容を確認するため、Discordサーバー(FBCとは別のもの)の用意とチャンネルの作成及び当該チャンネルのWebhook URLの取得をしていただく必要があります。お手数ですが、以下の手順にて確認をお願いいたします🙇♂️(既に何らかのissueで確認用のDiscordサーバーをお持ちの方はそちらをご使用いただいて差し支えございません🙆♂️)
Discordサーバーの準備
- BootcampのWikiにある、Develop環境でのDiscord通知の確認方法 に記載の手順にしたがってサーバー追加、チャンネル作成、当該チャンネルのWebhook URLの取得を行ってください。
環境変数の設定
- 同じくBootcampのWikiにあるDiscord通知を参照し、環境変数の設定をしてください。Wikiにも言及のあるdirenvを利用するのが手軽で便利です。 direnvの導入の仕方については公式のほか、以下のページもわかりやすかったので適宜ご参照ください。 参考:direnvを使おう
今回は上記WikiのDiscord通知に記載されている5つの環境変数を全て設定してください。.envrc
の中は以下のようにすると全てのDiscord通知の送信先が上記で取得したDiscordサーバーになります。
export DISCORD_ADMIN_WEBHOOK_URL=取得したWebhook URL
export DISCORD_MENTOR_WEBHOOK_URL=取得したWebhook URL
export DISCORD_REPORT_WEBHOOK_URL=取得したWebhook URL
export DISCORD_INTRODUCTION_WEBHOOK_URL=取得したWebhook URL
export DISCORD_ALL_WEBHOOK_URL=取得したWebhook URL
動作確認
-
feature/remove-url-previews-for-discord-notification-channels
をローカルに取り込む - 以下の通知について
()
内のテストを実行し、プレビューが表示されないことを確認する
- イベントのお知らせ(bootcamp/test/system/notification/regular_events_test.rb)
- お知らせ投稿(bootcamp/test/system/announcements_test.rb)
- XXXさんが新たなメンバーとしてJOINしました🎉(bootcamp/test/system/sign_up_test.rb)
- プラクティス関連(bootcamp/test/system/practices_test.rb)
- Docs関連(bootcamp/test/system/pages_test.rb)
- 質問関連(bootcamp/test/system/questions_test.rb)
- 🎉 XXXXさんがはじめての日報を書きました!(bootcamp/test/system/notification/reports_test.rb)
- XXXXさんがXXXX年XX月XX日の日報を公開しました。(同上)
- XXXさんの「XXXX」の提出物が、最後のコメントから5日経過しました。担当:@xxxxx さん(bootcamp/test/notifiers/discord_notifier_test.rb)⚠️これだけ単体テストのため実行しても通知は飛びません。テストが通っていればOKとのことなので、通ることをご確認ください。
なお、以下の2つについてはBootcampから通知しているわけではなく、外部に通知文のテキストをAPIとして提供しているだけのものです。 こちらについて駒形さんへ確認したところ、ステージングで確認する術がないことから、確認不要とのことです。
- 未確認の日報の数をお知らせします。
- 提出されてから日数が経っている提出物の数をお知らせします。
⚠️test/system/regular_events_test.rb
やtest/system/sign_up_test.rb
の実行時にテストが失敗したりエラーが出る場合がありますが、これは上記で設定したとおり確認用のDiscordサーバーに通知を送信するためにDevelopment環境で独自の環境変数(DISCORD_ALL_WEBHOOK_URL
等)を設定していることによるものです。これらの環境変数に何も設定しない状態(= 本番と同じ状態)で実行すると通ります。
Screenshot
変更前
全て以下のようにプレビューが表示されます。
変更後
各通知についてURLが記載されているだけで、プレビューがない状態です。