- GitHub Review Requests
- Fetch unread
- review_requested
- notifications for open (unmerged) PRs, filtered by a GitHub team.
- Requires
- GitHub CLI (
gh
) authenticated.
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
${CLAUDE_SKILL_ROOT}
/scripts/fetch_review_requests.py
--org
getsentry
--teams
<
team-slug
To filter by multiple teams, pass a comma-separated list: uv run ${CLAUDE_SKILL_ROOT} /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:
" — the team is a requested reviewer "opened by: " — the PR author is a team member Step 3: Present Results Display results as a markdown table with full URLs:
Title URL Reason 1 feat(kafka): add workflow to restart a broker https://github.com/getsentry/ops/pull/19144 opened 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