Demandes d'Examen GitHub
Récupérer les notifications non lues review_requested pour les PRs ouvertes (non fusionnées), filtrées par une équipe GitHub.
Requis: GitHub CLI (gh) authentifié.
Requis: Le CLI uv pour la gestion des packages Python, guide d'installation sur https://docs.astral.sh/uv/getting-started/installation/
Étape 1 : Identifier l'Équipe
Si l'utilisateur n'a pas spécifié d'équipe, demander :
Which GitHub team should I filter by? (e.g.
streaming-platform)
Accepter soit un slug d'équipe (streaming-platform) soit un nom d'affichage ("Streaming Platform") — convertir en slug minuscule-tirets avant de passer au script.
Étape 2 : Exécuter le Script
uv run ${CLAUDE_SKILL_ROOT}/scripts/fetch_review_requests.py --org getsentry --teams <team-slug>
Pour filtrer par plusieurs équipes, passer une liste séparée par des virgules :
uv run ${CLAUDE_SKILL_ROOT}/scripts/fetch_review_requests.py --org getsentry --teams <team slugs>
Sortie du script
{
"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 contient un ou les deux :
"review requested from: <Team Name>"— l'équipe est un relecteur demandé"opened by: <login>"— l'auteur de la PR est un membre de l'équipe
Étape 3 : Présenter les Résultats
Afficher les résultats sous forme de tableau markdown avec les URLs complètes :
| # | Title | URL | Reason |
|---|---|---|---|
| 1 | feat(kafka): add workflow to restart a broker | https://github.com/getsentry/ops/pull/19144 | opened by: evanh |
Si total est 0, dire : "No unread review requests found for that team."
Secours
Si le script échoue, exécuter manuellement :
gh api notifications --paginate
Ensuite pour chaque notification review_requested, vérifier :
gh api repos/{repo}/pulls/{number}— ignorer sistate == "closed"oumerged_atest définigh api repos/{repo}/pulls/{number}/requested_reviewers— vérifierteams[].namegh api orgs/{org}/teams/{slug}/members— vérifier si l'auteur est un membre