bootcamp icon indicating copy to clipboard operation
bootcamp copied to clipboard

未完了の提出物の最後のコメントが提出者の場合、5日経過したらdiscordのメンターチャンネルで通知されるように

Open pachikuriii opened this issue 2 years ago • 2 comments

Issue

  • #5324

概要

未完了の提出物のページにおいて最後のコメントが提出者の場合、そのコメントから5日が経過したらメンターチャンネルでdiscord通知されるようにしました。(Discordのメンターチャンネルは非公開チャンネルです。)

変更確認方法

  1. このPRにおいてはdiscordでの通知を確認するために、discordのサーバー、チャンネルの作成とそのwebhookの取得が必要となります。discordでテスト用のサーバーを作成しテスト用のチャンネルを作ってそのwebhookURLの取得をしてください。yumさんの #5480 の確認方法においてwebhookURLの取得までが丁寧に説明されています。

  2. ブランチfeature/notify-other-mentors-if-the-person-made-last-comment-is-submitterをローカルに取り込む

  3. 以下のparams[:webhook_url]の部分を'1で取得したdiscordのwebhookURL'に置き換える(置き換えないと通知のテストができないため) https://github.com/fjordllc/bootcamp/blob/5b5dff6519594ce4a9321121a463b9c81e61671d/app/notifiers/discord_notifier.rb#L78

  4. bin/rails sでローカル環境を立ち上げる

  5. mentormentaroでログインし、kensyuの提出物である( http://localhost:3000/products/613458348 ) へアクセスする

  6. 担当するボタンを押して、5.でアクセスしたkensyuの「OS X Mountain Lionをクリーンインストールするの提出物」でmentormentaroが担当となるように設定する

  7. 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))
  1. 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))

👍このような状態になります image

  1. 上記が全て整ったら、http://localhost:3000/scheduler/daily にアクセスする(画面は何も表示されませんが、処理が走ります)
  2. Discordの通知に以下のような内容で通知が来ることを確認する image

pachikuriii avatar Oct 23 '22 06:10 pachikuriii

@hikarook94 Hikaruさんこんにちは〜!こちらのPRのレビューをお願いできたら…🙏と思っているのですが、ご都合いかがでしょうか? (急がないので、ゆっくりでだいじょうぶです〜🍵)

pachikuriii avatar Oct 25 '22 03:10 pachikuriii

@pachikuriii こんにちは! レビューのご依頼ありがとうございます!確認させていただきます💪 明日中にはレビューできるかと思いますのでお待ちください🙏

hikarook94 avatar Oct 25 '22 05:10 hikarook94

@hikarook94 Hikaruさん、おつかれさまです〜🍵 レビューの途中でしたらすみません。。。 コンフリクトが発生したので解消しております。ご確認をお願いいたします。

pachikuriii avatar Oct 26 '22 06:10 pachikuriii

@pachikuriii お疲れ様です! これから始めるところだったので大丈夫ですよ〜👍 承知しました!ご連絡ありがとうございます🙏

hikarook94 avatar Oct 26 '22 07:10 hikarook94

@pachikuriii お疲れ様です〜!遅くなってすみません! 動作確認OKでした👍 コードも問題無いと思います👌 Approveさせていただきました〜

一点質問なのですが(コードの内容とは関係ないかもですが...)、 確認手順でhttp://localhost:3000/scheduler/dailyに手動でアクセスするようになっていましたが、こちらは運用環境では誰がどのように行うのでしょうか?このタスクを行うようにどこかでスケジューリングされているのでしょうか?

hikarook94 avatar Oct 26 '22 16:10 hikarook94

@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 へのアクセスでしょうか?)が定期実行されるようにして呼び出されている…という解釈であっておりますか?間違ってましたらスケジューリングがどこで設定されているのか、ご教示いただけると大変ありがたいです🙇‍♀️

pachikuriii avatar Oct 27 '22 03:10 pachikuriii

@komagata ご確認いただき、ありがとうございます☺️ 修正しました。目を通していただけますと幸いです🙏

pachikuriii avatar Nov 05 '22 12:11 pachikuriii

@komagata ありがとうございます🙏修正いたしました。ご確認いただけますと幸いです〜!

pachikuriii avatar Nov 07 '22 11:11 pachikuriii

@komagata 再度のご対応、ありがとうございます🙏見落としていました💦 修正いたしました。

pachikuriii avatar Nov 08 '22 03:11 pachikuriii

@komagata マージいただき、ありがとうございます☺️2点ほど、質問です。

~~1. 動作確認について~~ ~~ステージング/本番環境ともにdiscordへの通知確認ができないかと思うのですが~~ ~~確認はどのようにしたらいいでしょうか?リリースノートの記入はのちほど行う予定です。~~

https://discord.com/channels/715806612824260640/809595476847493192/1039862732238893086 にて町田さんにご確認いただけるとのことでした🌸

  1. 今回実装した機能の本番環境での呼び出され方について お忙しい中恐れ入りますが、上ですこし前に質問させていただいた内容について、ちらっと目を通していただけますとうれしいです…!

(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 avatar Nov 08 '22 06:11 pachikuriii

@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 avatar Nov 11 '22 02:11 komagata

@komagata Cloud Schedulerというものがあるんですね…!ご回答いただき、ありがとうございます☺️!

pachikuriii avatar Nov 16 '22 06:11 pachikuriii

@pachikuriii @machida 本番環境でのDISCORD通知への設定を見直してみました。 こちらで通知されるか確認してみていただけますでしょうか〜。

komagata avatar Nov 30 '22 06:11 komagata

@komagata ご対応いただき、ありがとうございます🙏

@machida discordでご連絡させていただきます☺️

pachikuriii avatar Dec 01 '22 04:12 pachikuriii

@pachikuriii (CC: @machida , @keiz1213 )

すみません、こちら本番環境で/scheduler/dailyの処理が長過ぎて最後まで実行できていない可能性があります。 定期実行の仕組みそのものを見直す必要があるため、数日時間をいただければ幸いです。

komagata avatar Dec 12 '22 08:12 komagata

@komagata ご対応いただき、ありがとうございます🙏!

pachikuriii avatar Dec 12 '22 09:12 pachikuriii

@pachikuriii こちらを解決するために下記のIssue別途作成しました。 @pachikuriii さんはもう20ポイント終わっているので別のどなたかにこのIssueをやっていただいて、そちらが完了したらこちらのIssueの動作確認も取れたということにしたいと思います。

#5933

ですので、それまでは何もしなくて大丈夫です〜

komagata avatar Dec 13 '22 01:12 komagata

@komagata かしこまりました、ありがとうございます☺️ そちらが完了してから、issueをcloseするようにしたいと思います。 引き続きよろしくお願いします🌸

pachikuriii avatar Dec 13 '22 02:12 pachikuriii