Skip to content

[CI] hr-substitution-guard : un echec gh rend un rouge bloquant, et le registre dit que le script ne sort jamais en 2 #17941

Description

@myia-ai-01

Constat

#17428 a merge le 26/09 a 10:46Z. Elle cable hr-substitution-guard comme garde bloquante (scripts/ci/fast_lane_registry.py, blocking=True) pour tous les .ipynb. Mon commentaire [DECISION] du 24/09 (point 3) demandait de trancher dans le body le cas d'un echec de gh. Le body ne le traite pas, et je l'ai mergee sans le verifier : c'est un reste a solder.

Deux faits, mesures sur main a 9d6b408789 :

  1. scripts/ci/check_hr_substitution.py sort en code 2 quand gh pr diff, gh pr view ou le troisieme appel gh echouent (lignes 59-60, 74-75 et 85).
  2. Le commentaire du registre (fast_lane_registry.py, autour de la ligne 220) affirme le contraire : « Le script ne sort que rc=0/1 (pas de rc=2 reserve) », puis « un incident gh (rate-limit, timeout) remonte en rc=1 et fait rougir la PR -- c'est l'intention ».

Consequence : une panne reseau ou un quota gh epuise rend rouge et bloquante n'importe quelle PR qui touche un carnet, alors que le garde n'a rien analyse. C'est la classe que #14849 ecarte pour d'autres organes (UNKNOWN sur incident reseau, jamais un rouge qui ressemble a une faute de la PR).

Ce qui est demande

Une decision ecrite, puis le geste qui la suit :

  • (a) echec gh = verdict inconnu, pas une faute : le garde rend un etat distinct (via warn_rc ou un equivalent du runner) et le dit dans le check-run ; la PR n'est pas accusee ;
  • (b) fermeture stricte assumee : on garde le rouge, mais le commentaire du registre dit la verite (le script sort bien en 2), et le titre du check-run nomme l'incident gh pour qu'on ne le lise pas comme une substitution trouvee.

Recommandation ai-01 : (a), parce que c'est la ligne deja tenue ailleurs dans le depot. Dans les deux cas, le commentaire du registre doit etre corrige.

Critere de sortie

  • le comportement sur echec gh est teste (controle positif : gh simule en echec) ;
  • le commentaire du registre decrit ce que le script fait reellement.

See #14683, see #17428.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions