Repository navigation
fix(ci): build fork PR images locally, publish only from trusted contexts - #2956
Conversation
13cbe25 to
2afda09
Compare
StephaneTrebel
left a comment
There was a problem hiding this comment.
La séparation entre construction des forks et publication répond à #2945, mais le nouvel export introduit une écriture implicite de latest depuis les PR internes, reproduite sur un registre local. Un constat important est détaillé en ligne ; la CI est encore en cours et le parcours fork réel reste à exercer.
…exts Fork PRs receive a read-only GITHUB_TOKEN, so every registry push fails with "installation not allowed to Write organization package" and the required Check jobs status gate stays red for the PR's whole life (#2945). The build job now computes a publish policy: fork pull requests build each image locally (real conclusion, executed jobs, green gate) while same-repo branches, the merge queue and main keep publishing. merge, preview, build-label and scan-vuln skip when nothing was published. Refs #2945 Co-authored-by: Automata <automata@shikanime.studio>
2afda09 to
08801ec
Compare
|
StephaneTrebel
left a comment
There was a problem hiding this comment.
No findings. La publication par digest est rétablie : les deux modes de l’export exact ont été rejoués sur registre local, sans écriture de latest, et le constat précédent est levé. La CI du run 40688236580 est verte ; l’exécution complète sur une PR de fork reste à vérifier dans #2945, dont le ledger est laissé inchangé.

0 New Issues
0 Fixed Issues
0 Accepted Issues
No data about coverage (53.90% Estimated after merge)
Pourquoi
Les PRs issues d'un fork reçoivent un
GITHUB_TOKENen lecture seule : chaque push ghcr échoue avecinstallation not allowed to Write organization packageet la gate obligatoireCheck jobs statusreste rouge pendant toute la vie de la PR (#2945). Le contributeur voit un échec qui ne décrit pas son code, le mainteneur une croix rouge inexploitable.Quoi
job-build.ymlcalcule une politique de publication : les PRs de fork construisent chaque image localement (conclusion réelle, jobs exécutés, gate verte) tandis que les branches du dépôt, la file de fusion etmaincontinuent de publier.merge,preview,build-labeletscan-vulnsont sautés quand rien n'a été publié — la gate n'accepte que success/skipped, elle passe donc.Vérification
pr-<N>, scans Trivy, gate verte.publish=false) sera exercé à la prochaine poussée sur une PR de fork (ex. fix(shared): valide permissionLevelSchema comme entier (400 au lieu de 500) #2951).Refs #2945
Co-authored-by: Automata automata@shikanime.studio