Afficher les remarques d'une PR
Liste tous les commentaires non résolus d'une pull request sous forme de tableau.
Entrée
Déterminer le numéro de la PR dans cet ordre :
- Inférer à partir du contexte de la conversation en cours.
- Analyser le nom de la branche courante (ex.
APIF-1234/some-feature→ rechercher une PR sur cette branche). - En cas d'ambiguïté, demander à l'utilisateur.
Processus
# Trouver le numéro de PR à partir de la branche courante
gh pr list --head "$(git rev-parse --abbrev-ref HEAD)" --json number,url --jq '.[0]'
# Récupérer tous les commentaires de revue + commentaires de la PR
gh pr view <PR> --json reviews,comments
# Ou récupérer les commentaires inline
gh api repos/:owner/:repo/pulls/<PR>/comments
gh api repos/:owner/:repo/issues/<PR>/comments
Utilisez gh api pour obtenir :
- Commentaires de revue de pull request (inline, sur le diff) :
GET /repos/{owner}/{repo}/pulls/{pull_number}/comments- Ceux-ci incluent les champs
path(fichier) etline(ouoriginal_line).
- Ceux-ci incluent les champs
- Commentaires au niveau de l'issue (généraux) :
GET /repos/{owner}/{repo}/issues/{pull_number}/comments- Ceux-ci n'ont pas de fichier/ligne (ils sont au niveau de la PR) ; laissez l'emplacement vide.
- Threads de revue avec état de résolution :
gh pr view <PR> --json reviewThreads
Filtrer uniquement les threads non résolus (isResolved: false). Pour les commentaires qui ne font pas partie d'un thread, incluez-les tous.
Sortie
Générer un tableau Markdown :
| # | Auteur | Catégorie | Message | Emplacement |
|---|---|---|---|---|
| 1 | @alice | question | "Pourquoi est-ce un ConcurrentDictionary ?" | Foo.cs:42 |
| 2 | @bob | bug potentiel | "Cela provoquera une null ref en production..." | Bar.cs:17 |
| 3 | @carol | suggestion | "Envisagez d'extraire ceci dans une méthode utilitaire." | (Niveau PR) |
Catégorie — lisez le corps du commentaire et choisissez 1 à 2 mots qui en capturent le mieux la nature. Il n'y a pas de liste fixe ; inférez librement. Exemples de ce à quoi de bonnes valeurs ressemblent : question, bug potentiel, bug critique, doit être corrigé, avertissement, suggestion, recommandation, nettoyage, problème de test, info — mais toute étiquette concise qui reflète précisément le commentaire est valide.
Emplacement — pour les commentaires inline sur le diff, utilisez `fichier:ligne` (utilisez le champ line ; en fallback original_line). Pour les commentaires au niveau de la PR, écrivez _(Niveau PR)_.
Incluez une ligne de résumé sous le tableau :
N commentaire(s) non résolu(s) sur PR #NNN —
<titre de la PR>