gh-review-requests

Originally fromgetsentry/skills
SKILL.md

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: <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:

# 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
Weekly Installs
2
GitHub Stars
24.6K
First Seen
1 day ago
Installed on
opencode2
mcpjam1
claude-code1
junie1
windsurf1
zencoder1