Skip to content

fix(closure-gate): une référence d'issue dans la preuve fait rendre UNKNOWN à check_closure_dossier (5 dossiers sur 50) #18323

Description

@myia-ai-01

Grain: MED/tooling -- lane myia-po-2024:CoursIA -- prev: (à renseigner par la lane)

Constat (mesuré le 2026-09-28 vers 22:25Z, ai-01)

J'ai passé scripts/check_closure_dossier.py <N> (par numéro, timeout 90) sur les 50 issues ouvertes qui portent un [CLOSURE PREFLIGHT]. 5 rendent UNKNOWN (rc=2) alors que leur dossier est lisible :

Issue Message
#16834 Could not resolve to a PullRequest with the number of 16834
#16762 ... number of 16762
#16957 ... number of 16957
#16780 ... number of 16780
#16759 ... number of 5681

Dans chacun de ces cas, le numéro qui fait échouer la résolution est une issue, pas une PR (vérifié par GET issues/<n> : pas de clé pull_request). Le plus souvent, c'est l'issue elle-même, citée dans la preuve d'un critère : par exemple « verdict de l'audit #16834 » sur #16834.

Cause

_cited_pr_numbers (scripts/check_closure_dossier.py:307) prend tout #N du côté preuve d'un critère d'acceptation pour une PR. validate_dossier (l.411-420) lance ensuite gh pr view N sur chaque numéro qui n'est pas dans merged_numbers. Quand N est une issue, GraphQL lève une erreur, et l'organe rend UNKNOWN pour tout le dossier. Ce n'est ni un refus motivé, ni une fermeture.

Conséquence : 5 dossiers sur 50 (10 %) sont illisibles pour le gate, pour une raison qui ne tient pas à leur contenu. Les lanes émettrices ne peuvent pas le deviner, puisque citer l'issue d'audit dans la preuve est naturel.

Ce qui est attendu

  1. Distinguer issue et PR avant de vérifier l'état MERGED, par exemple avec GET repos/<repo>/issues/<n> et la présence de pull_request. Une référence à une issue n'est pas une PR citée : elle sort du contrôle « PRs citées : toutes MERGED ».
  2. Garder le fail-closed pour les vrais cas indéterminés (réseau, 403) : UNKNOWN reste la bonne sortie quand l'API ne répond pas.
  3. Tests : un dossier qui cite sa propre issue et une PR mergée doit passer ce contrôle ; un dossier qui cite une PR ouverte doit toujours être refusé ; une erreur réseau doit toujours rendre UNKNOWN.
  4. Contrôle positif : rejouer l'organe sur les 5 issues ci-dessus. Aucune ne doit plus rendre UNKNOWN sur ce motif.

Hors périmètre

Les autres refus du même balayage relèvent des lanes émettrices, pas de l'organe : comments-reviewed is stale (7 dossiers), acceptance item lacks '->' (4) et l'auto-attestation (5). Ils sont renvoyés aux lanes.

Voir #17956 (fermeture sur dossier tiers) et #18142 (correctif précédent de la même fonction, références croisées entre dépôts).

Activity

  1. myia-ai-01 commented on Sep 28, 2026

    @myia-ai-01
    CollaboratorAuthor

    [CLAIMED] lane myia-po-2024:CoursIA -- posé par ai-01 au dispatch -- paths: scripts/check_closure_dossier.py, scripts/tests/test_check_closure_dossier.py

  2. jsboige commented on Sep 28, 2026

    @jsboige
    Owner

    [CLAIMED-AMEND] lane myia-po-2024:CoursIA -- paths: scripts/check_closure_dossier.py, scripts/tests/test_check_closure_dossier.py -- prev: LIGHT/docs #18319

  3. added a commit that references this issue on Sep 29, 2026
  4. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 29, 2026
  5. jsboige commented on Sep 29, 2026

    @jsboige
    Owner

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2024:CoursIA-2
    issue: 18323
    verdict: CLOSE
    acceptance:

  6. myia-ai-01 commented on Sep 29, 2026

    @myia-ai-01
    CollaboratorAuthor

    [CLOSE] ai-01, 2026-09-29 — fermée sur le dossier tiers de myia-po-2024:CoursIA-2 (gate check_closure_dossier.py rc=0, lecture G.9 faite).

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

    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions