Implementation Plan: Bulk moderation actions #1157
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR Limit Reminders | |
on: | |
pull_request_target: | |
types: [opened, reopened, ready_for_review] | |
jobs: | |
analyze-user-prs: | |
name: Count user's open pull requests | |
runs-on: ubuntu-latest | |
outputs: | |
pr_count: ${{ steps.count-prs.outputs.pr_count }} | |
slack_id: ${{ steps.count-prs.outputs.slack_id }} | |
should_alert: ${{ steps.count-prs.outputs.should_alert }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/github-script@v6 | |
id: count-prs | |
env: | |
GH_SLACK_USERNAME_MAP: ${{ secrets.GH_SLACK_USERNAME_MAP }} | |
with: | |
github-token: ${{ secrets.ACCESS_TOKEN }} | |
script: | | |
const script = require('./automations/js/src/count_user_reviewable_prs.js') | |
await script({github,context,core}) | |
send_message: | |
needs: analyze-user-prs | |
name: Send Slack message | |
if: needs.analyze-user-prs.outputs.pr_count >= 3 | |
runs-on: ubuntu-latest | |
env: | |
pr_count: ${{ needs.analyze-user-prs.outputs.pr_count }} | |
slack_id: ${{ needs.analyze-user-prs.outputs.slack_id }} | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DM_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
steps: | |
- name: Set required review count | |
run: | | |
echo "required_review_count=$(( pr_count * 2 ))" >> "$GITHUB_ENV" | |
- name: Send notification | |
id: slack | |
uses: slackapi/[email protected] | |
with: | |
# The JSON below looks malformed, with an invalid multiline string, but YAML's `>` | |
# construct replaces linebreaks with a space, so the multiline string below will end | |
# up as a single-line string. The payload will be `{ "user": "...", "message": "..." } | |
payload: > | |
{ | |
"user": "${{ env.slack_id }}", | |
"message": | |
"Hi, Opener! \n | |
You currently have ${{ env.pr_count }} Pull Request(s) open with requested | |
reviews (totalling ${{ env.required_review_count }} required reviews). \n | |
To help ease the review burden, increase review velocity for older PRs, and | |
improve the equitable distribution of project maintenance tasks across the team, | |
please consider reviewing this list of ways to contribute instead of working on | |
new code contributions: \n | |
https://docs.openverse.org/meta/maintainer_tasks.html" | |
} |