Action to send notifications to reviewers on github-discussion when they miss reviewing PRs within expected time.
-
Generate a github-personal-access-token with rights to create discussion and read issues & pull request.
-
Create a new repository secret (assuming DISCUSSION_NOTIFICATION_TOKEN) with value as the newly generated personal access token.
-
Create a GitHub discussion and then a workflow file in the
.github/workflows/
dir.Example:
name: Send pending review notifications to reviewer on github-discussion on: schedule: - cron: '0 0 * * 2,4' jobs: send_notifications: name: Send pending review notifications runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-22.04] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.8.15' architecture: 'x64' - uses: oppia/stale-review-request-notifier with: category-name: << category_name >> discussion-title: << discussion_title >> repo-token: ${{ secrets.DISCUSSION_NOTIFICATION_TOKEN }} review-turnaround-hours: << TURNAROUND_HOURS >>
Important notes:
- Replace
<< category_name >>
and<< discussion_title >>
with the respective category name and discussion title. - Replace
<< TURNAROUND_HOURS >>
with the expected PR review time. - Don't use space in
category_name
ordiscussion_title
; otherwise, they will be considered different arguments. - The POSIX cron syntax needs to be quoted as * is a special character in YAML.
- Replace
Name | Requirement | Default | Description |
---|---|---|---|
category-name |
required | The category name the discussion belongs to. | |
discussion-title |
required | The title of the discussion in which comments will be posted. | |
repo-token |
required | The github-personal-token which at least have rights to create a discussion in the given team. | |
review-turnaround-hours |
required | The maximum review turnaround hours. Notifications will be sent only for PRs waiting for more than review-turnaround-hours. |
The secret.GITHUB_TOKEN
available in build container doesn't have permission to create discussion in team.
See LICENSE.