bootcamp icon indicating copy to clipboard operation
bootcamp copied to clipboard

Discordの通知チャンネルのURLプレビューを表示させないように変更

Open ham-cap opened this issue 7 months ago • 4 comments

Issue

  • #7760

概要

現状、BootcampからDiscord宛に自動送信される通知の中には、通知本文にURLが含まれているものが複数存在します。 Discordは通常、投稿の本文にURLがある場合に自動で以下のようなプレビューが表示されますが、文字入力の際にURLを<>で囲うとこのプレビューを表示させないようにすることができます。 <>なし image <>あり image

このPRでは上記のBootcampから自動送信される通知の中で本文中にURLが含まれているものについて、Discord上でプレビューを表示させないように変更しました。

変更確認方法

⚠️このPRにおける動作確認については、Discordに対して行われる通知の内容を確認するため、Discordサーバー(FBCとは別のもの)の用意とチャンネルの作成及び当該チャンネルのWebhook URLの取得をしていただく必要があります。お手数ですが、以下の手順にて確認をお願いいたします🙇‍♂️(既に何らかのissueで確認用のDiscordサーバーをお持ちの方はそちらをご使用いただいて差し支えございません🙆‍♂️)

Discordサーバーの準備

  1. BootcampのWikiにある、Develop環境でのDiscord通知の確認方法 に記載の手順にしたがってサーバー追加、チャンネル作成、当該チャンネルのWebhook URLの取得を行ってください。

環境変数の設定

  1. 同じく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

動作確認

  1. feature/remove-url-previews-for-discord-notification-channelsをローカルに取り込む
  2. 以下の通知について()内のテストを実行し、プレビューが表示されないことを確認する
  • イベントのお知らせ(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.rbtest/system/sign_up_test.rbの実行時にテストが失敗したりエラーが出る場合がありますが、これは上記で設定したとおり確認用のDiscordサーバーに通知を送信するためにDevelopment環境で独自の環境変数(DISCORD_ALL_WEBHOOK_URL等)を設定していることによるものです。これらの環境変数に何も設定しない状態(= 本番と同じ状態)で実行すると通ります。

Screenshot

変更前

全て以下のようにプレビューが表示されます。 image

変更後

各通知についてURLが記載されているだけで、プレビューがない状態です。

イベントのお知らせ

image

お知らせ投稿

image

XXXさんが新たなメンバーとしてJOINしました🎉

image

プラクティス関連

image

Docs関連

image

質問関連

image

🎉 XXXXさんがはじめての日報を書きました!

XXXXさんがXXXX年XX月XX日の日報を公開しました。

image

ham-cap avatar Jul 05 '24 06:07 ham-cap