bootcamp
bootcamp copied to clipboard
未完了の提出物の最後のコメントが提出者の場合、5日経過したらdiscordのメンターチャンネルで通知されるように
Issue
- #5324
概要
未完了の提出物のページにおいて最後のコメントが提出者の場合、そのコメントから5日が経過したらメンターチャンネルでdiscord通知されるようにしました。(Discordのメンターチャンネルは非公開チャンネルです。)
変更確認方法
-
このPRにおいてはdiscordでの通知を確認するために、discordのサーバー、チャンネルの作成とそのwebhookの取得が必要となります。discordでテスト用のサーバーを作成しテスト用のチャンネルを作ってそのwebhookURLの取得をしてください。yumさんの #5480 の確認方法においてwebhookURLの取得までが丁寧に説明されています。
-
ブランチ
feature/notify-other-mentors-if-the-person-made-last-comment-is-submitter
をローカルに取り込む -
以下の
params[:webhook_url]
の部分を'1で取得したdiscordのwebhookURL'
に置き換える(置き換えないと通知のテストができないため) https://github.com/fjordllc/bootcamp/blob/5b5dff6519594ce4a9321121a463b9c81e61671d/app/notifiers/discord_notifier.rb#L78 -
bin/rails s
でローカル環境を立ち上げる -
mentormentaro
でログインし、kensyu
の提出物である( http://localhost:3000/products/613458348 ) へアクセスする -
担当する
ボタンを押して、5.でアクセスしたkensyu
の「OS X Mountain Lionをクリーンインストールするの提出物」でmentormentaro
が担当となるように設定する -
rails c
で担当者mentormentaro
による7日前のコメントを作成する(以下をコピー&ペーストしてください)
# commentable_id → 手順5.でアクセスした提出物のid
# user_id → mentormentaroのid
Comment.create!(commentable_id:613458348, user_id: 534981761, description: "test", commentable_type: "Product", created_at:Time.current.ago(7.days), updated_at:Time.current.ago(7.days))
-
rails c
で提出者kensyu
による5日前のコメントを作成する(以下をコピー&ペーストしてください)
# commentable_id → 手順5.でアクセスした提出物のid
# user_id → kensyuのid
Comment.create!(commentable_id:613458348, user_id: 301971253, description: "test", commentable_type: "Product", created_at:Time.current.ago(5.days), updated_at:Time.current.ago(5.days))
👍このような状態になります
- 上記が全て整ったら、http://localhost:3000/scheduler/daily にアクセスする(画面は何も表示されませんが、処理が走ります)
- Discordの通知に以下のような内容で通知が来ることを確認する
@hikarook94 Hikaruさんこんにちは〜!こちらのPRのレビューをお願いできたら…🙏と思っているのですが、ご都合いかがでしょうか? (急がないので、ゆっくりでだいじょうぶです〜🍵)
@pachikuriii こんにちは! レビューのご依頼ありがとうございます!確認させていただきます💪 明日中にはレビューできるかと思いますのでお待ちください🙏
@hikarook94 Hikaruさん、おつかれさまです〜🍵 レビューの途中でしたらすみません。。。 コンフリクトが発生したので解消しております。ご確認をお願いいたします。
@pachikuriii お疲れ様です! これから始めるところだったので大丈夫ですよ〜👍 承知しました!ご連絡ありがとうございます🙏
@pachikuriii お疲れ様です〜!遅くなってすみません! 動作確認OKでした👍 コードも問題無いと思います👌 Approveさせていただきました〜
一点質問なのですが(コードの内容とは関係ないかもですが...)、
確認手順でhttp://localhost:3000/scheduler/daily
に手動でアクセスするようになっていましたが、こちらは運用環境では誰がどのように行うのでしょうか?このタスクを行うようにどこかでスケジューリングされているのでしょうか?
@hikarook94 迅速なレビューとApproveをありがとうございます☺️🙏✨
確認手順でhttp://localhost:3000/scheduler/daily に手動でアクセスするようになっていましたが、こちらは運用環境では誰がどのように行うのでしょうか?このタスクを行うようにどこかでスケジューリングされているのでしょうか?
ご質問をありがとうございます〜! わたしの解釈がふわっとしているので、駒形さんにこれで合っているか目を通していただきまして回答とさせていただけたらと思います🌸
@komagata おつかれさまです。HikaruさんにApproveいただきましたのでお手すきの際にレビューをお願いいたします🌱
また、上記のHikaruさんからのご質問とあわせて、本番環境でのdiscord通知のプログラムがどう呼び出されるのか?について質問です。Bootcampの本番環境はGoogle Cloud PlatformのCloud Buildを使ってデプロイしていて、discordの通知についてはCloud Buildの設定で https://github.com/fjordllc/bootcamp/blob/main/app/controllers/scheduler/daily_controller.rb のshowメソッド(もしくは http://localhost:3000/scheduler/daily へのアクセスでしょうか?)が定期実行されるようにして呼び出されている…という解釈であっておりますか?間違ってましたらスケジューリングがどこで設定されているのか、ご教示いただけると大変ありがたいです🙇♀️
@komagata ご確認いただき、ありがとうございます☺️ 修正しました。目を通していただけますと幸いです🙏
@komagata ありがとうございます🙏修正いたしました。ご確認いただけますと幸いです〜!
@komagata 再度のご対応、ありがとうございます🙏見落としていました💦 修正いたしました。
@komagata マージいただき、ありがとうございます☺️2点ほど、質問です。
~~1. 動作確認について~~ ~~ステージング/本番環境ともにdiscordへの通知確認ができないかと思うのですが~~ ~~確認はどのようにしたらいいでしょうか?リリースノートの記入はのちほど行う予定です。~~
https://discord.com/channels/715806612824260640/809595476847493192/1039862732238893086 にて町田さんにご確認いただけるとのことでした🌸
- 今回実装した機能の本番環境での呼び出され方について お忙しい中恐れ入りますが、上ですこし前に質問させていただいた内容について、ちらっと目を通していただけますとうれしいです…!
(https://github.com/fjordllc/bootcamp/pull/5667#issuecomment-1292932517)
上記のHikaruさんからのご質問とあわせて、本番環境でのdiscord通知のプログラムがどう呼び出されるのか?について質問です。Bootcampの本番環境はGoogle Cloud PlatformのCloud Buildを使ってデプロイしていて、discordの通知についてはCloud Buildの設定で https://github.com/fjordllc/bootcamp/blob/main/app/controllers/scheduler/daily_controller.rb のshowメソッド(もしくは http://localhost:3000/scheduler/daily へのアクセスでしょうか?)が定期実行されるようにして呼び出されている…という解釈であっておりますか?間違ってましたらスケジューリングがどこで設定されているのか、ご教示いただけると大変ありがたいです🙇♀️
@pachikuriii
上記のHikaruさんからのご質問とあわせて、本番環境でのdiscord通知のプログラムがどう呼び出されるのか?について質問です。Bootcampの本番環境はGoogle Cloud PlatformのCloud Buildを使ってデプロイしていて、discordの通知についてはCloud Buildの設定で https://github.com/fjordllc/bootcamp/blob/main/app/controllers/scheduler/daily_controller.rb のshowメソッド(もしくは http://localhost:3000/scheduler/daily へのアクセスでしょうか?)が定期実行されるようにして呼び出されている…という解釈であっておりますか?間違ってましたらスケジューリングがどこで設定されているのか、ご教示いただけると大変ありがたいです🙇♀️
Google CloudのCloud Schedulerでhttps://bootcamp.fjord.jp/scheduler/daily
に毎日一回アクセスしています。
@komagata Cloud Schedulerというものがあるんですね…!ご回答いただき、ありがとうございます☺️!
@pachikuriii @machida 本番環境でのDISCORD通知への設定を見直してみました。 こちらで通知されるか確認してみていただけますでしょうか〜。
@komagata ご対応いただき、ありがとうございます🙏
@machida discordでご連絡させていただきます☺️
@pachikuriii (CC: @machida , @keiz1213 )
すみません、こちら本番環境で/scheduler/daily
の処理が長過ぎて最後まで実行できていない可能性があります。
定期実行の仕組みそのものを見直す必要があるため、数日時間をいただければ幸いです。
@komagata ご対応いただき、ありがとうございます🙏!
@pachikuriii こちらを解決するために下記のIssue別途作成しました。 @pachikuriii さんはもう20ポイント終わっているので別のどなたかにこのIssueをやっていただいて、そちらが完了したらこちらのIssueの動作確認も取れたということにしたいと思います。
#5933
ですので、それまでは何もしなくて大丈夫です〜
@komagata かしこまりました、ありがとうございます☺️ そちらが完了してから、issueをcloseするようにしたいと思います。 引き続きよろしくお願いします🌸