-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
アクセス可能なリンクがリンク切れとして Discord へ通知されないようにしたい #3185
Comments
@AudioStakes こちらをアサインさせていただきましたー |
本日のフィヨルドブートキャンプ内の質問タイムで @komagata さんと @machida さんに教えてもらったことを以下にまとめます。 この Issue で実現したいこと過去にリンク切れとして Discord に通知されたリンクのうち、実際はリンク切れしていないリンクについて、リンク切れとして通知されないようにしたい 作業順序のイメージ
リンク切れ通知の見た目についてより見やすくできる改善案があれば、今後対応できるように新たな Issue を立てておく (参考)現在の見た目 |
過去にリンク切れとして Discord に通知された URL のうち、実際はリンク切れしていない URL を調べてみました。 host が
|
ミーティングで komagata さんと machida さんに教えてもらったことのメモです。 host が
|
class Checker | |
DENY_LIST = %w[ | |
codepen.io | |
www.amazon.co.jp | |
].freeze |
しかし、動作確認してみると Amazon の URL もリンク切れの判定がされており、最終的にリンク切れの通知に含まれるようになっていた。そのため、期待する挙動(Amazon の URL のリンク切れの判定をするかどうか)が判別つかなかった。
期待する挙動とその理由
期待する挙動は、Amazon の URL をリンク切れの判定対象外とすること。
その理由は、Amazon の URL へのアクセスを何度も繰り返すと、リンク切れしていなくてもリンク切れのレスポンスが返ってくるようになり、実際にリンク切れしているかどうか判別がつかなくなるため。
※ この理由はコードへコメントとして追加する予定
@komagata @machida
この対応方法について、次の記事を参考にしますと下記2点を行う必要があるようです。
僕には権限がないようで、どちらも行えていません。 ※ アプリのコードでの対応方法については、別途 PR のレビューの際に相談させてもらおうと考えています。 |
@AudioStakes Webhook URLは他の処理でも環境変数から取ってくるような実装になっていると思うのでそちらでお願いします。 |
@komagata
ありがとうございます、よろしくお願いいたします🙏 |
@AudioStakes Discordでは最初から自分用サーバーができているのでそちらのチャンネルでテストするとやりやすいと思います〜 |
@komagata
Discord で自分用サーバーを探してみたところ、見当たリませんでした。自分用サーバーの作り方を調べてみると手軽にできそうだったので、新たに自分用サーバーを立てて対応しました! |
@komagata ステージング環境(質問) 環境変数
|
before_action :require_token | |
protected | |
def require_token | |
return if ENV['TOKEN'] == params[:token] |
(お願い)環境変数 DISCORD_BUG_WEBHOOK_URL
への値の設定
Discord への通知内容を確認するため、環境変数 DISCORD_BUG_WEBHOOK_URL
に次の Webhook URL (僕個人用の Discord チャンネル)の設定をお願いいたします🙏
https://discord.com/api/webhooks/936560140579110933/g4V3in8ctIOcQm8lehB7__LKFZhaPJLbjrGMcobkMXFf58avuu84U8WGONpqMrxgwwKq
本番環境(まだリリースはされていません)
以下の設定・操作については僕に実行権限がなさそうなため、komagata さんにお願いできますでしょうか?
- 環境変数
DISCORD_BUG_WEBHOOK_URL
に Discord の 「バグ、誤字脱字報告、機能要望🙇」チャンネルの Webhook URL を設定 - 本番環境の環境変数
TOKEN
の値をパラメーターとして送るようにして/scheduler/link_checker
へアクセス
※ Discord に通知された内容の確認は、僕が行います。
ステージングのTOKENを
設定しました。
かしこまりました。 |
@komagata お手数お掛けしますが、リリース後に本番環境の設定をよろしくお願いいたします🙏 |
@komagata |
@AudioStakes 設定しました〜 |
@komagata 設定ありがとうございます〜! 試しに本番環境で次の URL にアクセスした結果、 401 が返されます。 本番環境の環境変数 TOKEN の値を教えていただくか、もしくは komagata さんにリンク切れ通知の実行( |
@AudioStakes DiscordのDMでTOKENの値をお伝えしたいと思います〜 |
@komagata 以下、参考までにわかっていること・考えたことを載せます。 ブラウザの画面には Headers タブTiming タブTiming タブで Waiting(TTFB) が 1.1 min と表示されていることから、もしかしたらタイムアウトになったかもしれないと考えています。 |
@AudioStakes 今日(3月3日)のリリースで本番環境でのタイムアウトの時間を大幅に伸ばしてみました〜 |
@komagata 原因はタイムアウトの時間設定ではなかったのかもしれません。 原因を調査するためにログを確認してみたいと考えているものの、僕には本番環境へのアクセス権限がないのかなと考えています。 なお、現時点のステージング環境ではエラーなく Discord へリンク切れ通知できることを確認済みです。 |
@AudioStakes ご連絡ありがとうございます。(ちょっと考えていて返信遅くなりすみません。) |
@komagata |
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。 |
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。 |
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。 |
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。 |
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。 |
このissue|PRはstaleラベルを付けた後7日間更新がないためcloseしました。 |
※ 以下、 #3185 (comment) にコメントした内容をこちらへ転記しました
この Issue で対応すること
以下3つの URL がリンク切れとして判定されないように対応します。
※ それに加えて、リンク切れの通知先を「通知チャンネル」から「バグ、誤字脱字報告、機能要望🙇」に変更します。
host が
www.amazon.co.jp
の URLリンク切れの判定対象外となるように対応します。
末尾が
)
の URLURL
https://ja.wikipedia.org/wiki/マジックナンバー_(プログラム)
が末尾の)
が抜け落ちた状態でリンク切れの判定をされています。正規表現で URL を取得したときに末尾の
)
が抜け落ちていたようなので、URL の末尾の)
も含めて URL としてパースできるように対応します。ブラウザからアクセスできるのにリンク切れとして判定される URL
https://www.tablesgenerator.com/markdown_tables
がリンク切れと判定されているものの、ブラウザからはアクセスできるためリンク切れと判定されないように対応します。動作確認した結果たしかにリンク切れと判定されるため、現在その原因を調査中です。
※上記3つに該当しない URL は、動作確認した結果リンク切れと判定されなかかったため、現状は特に対応不要と判断しました。
別の Issue に切り出したこと(この Issue のスコープ外と判断したこと)
通知の見た目をより良くする
軽微な修正では済まないと判断し、#4020 に新しい Issue を立てました。調査したときに分かったことを「補足」として Issue の方に記載しました。
サイトの各ページのリンク切れに対応する
過去のリンク切れ通知を調査しているときに、まだ対応されていないリンクを見つけたので対応しやすいように別 Issue #4021 を作成しました。
The text was updated successfully, but these errors were encountered: