Publier les Résultats pr-check
Poster le Résumé des Résultats pr-check en tant que commentaire sur une PR GitHub existante, en terminant le commentaire par un marqueur caché. Le webhook analyse ce marqueur et applique le statut de commit pr-check au SHA testé et l'étiquette pr-check - <state> à la PR — cette skill n'écrit jamais le statut ou l'étiquette elle-même, donc elle fonctionne de la même manière que l'utilisateur ait ou non accès en écriture au dépôt cible.
Les PRs nouvellement créées n'ont pas besoin de cette skill : la skill pr écrit le même Résumé des Résultats et marqueur dans la description de la PR à la création, et le webhook la lit de là. Utilisez cette skill uniquement pour enregistrer une exécution ultérieure — par exemple après avoir poussé des commits supplémentaires et réexécuté pr-check sur une PR ouverte — où la description ne reflète plus le head actuel.
Input
Pull Request
${ARGUMENTS} porte une URL de PR de la forme https://github.com/<target-org>/liferay-portal/pull/<number>. Si elle est absente ou mal formée, abandonnez et demandez à l'utilisateur l'URL.
Résumé des Résultats
Utilisez le bloc Résumé des Résultats émis par l'exécution pr-check dans la session actuelle — la ligne d'état global, le SHA testé et le tableau par validation. Quand aucun Résumé des Résultats n'est disponible (pr-check n'a pas été exécuté cette session), abandonnez et demandez à l'utilisateur d'exécuter d'abord pr-check ; cette skill enregistre une exécution, elle n'en effectue pas une.
Expected Output
Commentaire Posté
Poster un commentaire neuf à chaque exécution plutôt que d'en modifier un antérieur, de sorte que la PR conserve un historique chronologique. Le corps du commentaire est le Résumé des Résultats tel quel, une ligne vierge, puis le marqueur — un commentaire HTML, invisible en Markdown rendu, dont la charge utile est un objet JSON de la forme <!-- pr-check {"result": "<state>", "sha": "<tested-SHA>"} -->, où <state> est success quand l'état global est PASS et failure quand c'est FAIL, et <tested-SHA> est le SHA complet de 40 caractères du Résumé des Résultats :
**pr-check: PASS** — tested on `<tested-SHA>`
| Validation | Result |
| --- | --- |
| Source Format | PASS |
| Full Portal Build | PASS |
| Java Unit Tests | PASS |
<!-- pr-check {"result": "success", "sha": "<tested-SHA>"} -->
Poster le corps avec --body-file, ou avec --body depuis une variable heredoc entre guillemets ; cela évite que le caractère littéral ! du marqueur ne se retrouve sur la ligne de commande, où il pourrait sinon déclencher l'expansion d'historique et corrompre le marqueur. Utilisez mktemp pour le fichier de manière à ce qu'il reste en dehors de l'arborescence de travail, et supprimez-le après.
comment_file=$(mktemp)
gh pr comment \
--body-file "${comment_file}" \
"<pr-url>"
rm "${comment_file}"
Quand le commentaire échoue à être posté, exposez l'erreur — sans elle le webhook n'a rien à analyser, donc le statut et l'étiquette n'apparaîtront pas.
Summary
Rendre compte à l'utilisateur avec :
- L'URL du commentaire et le SHA testé que le marqueur enregistre.
- Que le statut de commit
pr-checket l'étiquettepr-check - <state>sont appliqués par le webhook une fois qu'il traite le commentaire, et peuvent donc être en retard par rapport au commentaire d'un moment.