Bioinformatics-Research-Network / Bioinformed-Skill-App

Repository for the Bioinformed Skill Assessment App
https://skill.bioinformed.app
MIT License
4 stars 2 forks source link

Write utility functions for reviewer assignment / slack interface #12

Open millerh1 opened 2 years ago

millerh1 commented 2 years ago

Given the workflow as currently envisioned here, we need to develop a series of utility functions to facilitate communication with assigned reviewers on Slack. The basic workflow is:

  1. User issues "Bot Review"
  2. Triggers API call
  3. API calls CRUD function to check for available reviewers
  4. Reviewers randomly selected by app.utils.assign_reviewer()
  5. Also triggers app.utils.create_reviewer_link() which creates a static HTML page with two links that contain HTTP calls to the /api/confirm-reviewer endpoint. This is uploaded to AWS S3 for access by reviewer.
  6. Then triggers app.utils.notify_reviewer_slack() which calls the slack API and sends a notification to the member on Slack with the link to the HTML page on AWS where they can confirm or deny the review request.
  7. If confirm, API calls app.utils.confirm_reviewer() which calls bot.reviewer_status() and app.crud.update_reviewer() -- these actions lead to the reviewer being assigned on GitHub and in our database.
  8. If deny, API calls app.utils.deny_reviewer() which calls app.utils.assign_reviewer() again to repeat the process with a new reviewer.
anmole17 commented 2 years ago

Static HTML page is replaced by SlackBot call. User is given only Accept button(By SlackBot) and will place a time tracking script (by CRUD), to check every 1-2 days if Assessment is not assigned any reviewer. Rough workflow

anmole17 commented 2 years ago

The deny_reviewer( ) was not included, else other utils and api endpoints have been added.