gh-review-requests

oleh sentry

Ambil notifikasi GitHub yang belum dibaca untuk PR terbuka yang meminta tinjauan dari tim tertentu atau dibuka oleh anggota tim. Gunakan saat diminta untuk "menemukan PR yang saya perlu…

npx skills add https://github.com/getsentry/skills --skill gh-review-requests

GitHub Review Requests

Fetch unread review_requested notifications for open (unmerged) PRs, filtered by a GitHub team.

Requires: GitHub CLI (gh) authenticated.

Requires: The uv CLI for python package management, install guide at https://docs.astral.sh/uv/getting-started/installation/

Step 1: Identify the Team

If the user has not specified a team, ask:

Which GitHub team should I filter by? (e.g. streaming-platform)

Accept either a team slug (streaming-platform) or a display name ("Streaming Platform") — convert to lowercase-hyphenated slug before passing to the script.

Step 2: Run the Script

uv run scripts/fetch_review_requests.py --org getsentry --teams <team-slug>

To filter by multiple teams, pass a comma-separated list:

uv run scripts/fetch_review_requests.py --org getsentry --teams <team slugs>

Script output

{
  "total": 3,
  "prs": [
    {
      "notification_id": "12345",
      "title": "feat(kafka): add workflow to restart a broker",
      "url": "https://github.com/getsentry/ops/pull/19144",
      "repo": "getsentry/ops",
      "pr_number": 19144,
      "author": "bmckerry",
      "reasons": ["opened by: bmckerry"]
    }
  ]
}

reasons will contain one or both of:

  • "review requested from: <Team Name>" — the team is a requested reviewer
  • "opened by: <login>" — the PR author is a team member

Step 3: Present Results

Display results as a markdown table with full URLs:

#TitleURLReason
1feat(kafka): add workflow to restart a brokerhttps://github.com/getsentry/ops/pull/19144opened by: evanh

If total is 0, say: "No unread review requests found for that team."

Fallback

If the script fails, run manually:

gh api notifications --paginate

Then for each review_requested notification, check:

  • gh api repos/{repo}/pulls/{number} — skip if state == "closed" or merged_at is set
  • gh api repos/{repo}/pulls/{number}/requested_reviewers — check teams[].name
  • gh api orgs/{org}/teams/{slug}/members — check if author is a member

Lebih banyak skill dari sentry