Repository navigation
fix(ci): Plumber ne démarrait pas, faute de sa configuration - #72
Merged
Merged
Conversation
CE QUE LES ALERTES DISAIENT, ET CE QU'ELLES NE DISAIENT PAS
Error: configuration file not found: config file not found: .plumber.yaml
##[error]Plumber failed to run (exit 2: usage, configuration, or runtime error)
Ce n'était pas un score trop bas : l'outil ne démarrait pas. Un `exit 2` veut
dire « usage, configuration ou erreur d'exécution », et le gate du workflow le
traduisait en échec de job sans que la cause remonte au premier coup d'œil.
LA CAUSE, ET ELLE EST DE L'ALIGNEMENT DU 2026-10-17
Cet alignement a copié `.poutine.yml`, `.pre-commit-config.yaml`, les workflows
et la gouvernance dans quatre catalogues en retard. Il a OUBLIÉ `.plumber.yaml`,
qui n'était pas dans sa liste de fichiers copiables. Mesuré : les quatre
dépôts dont Plumber échouait sont exactement les quatre qui avaient été
alignés, et les neuf autres portaient bien ce fichier.
QUELLE RÉFÉRENCE, ET POURQUOI CELLE-LÀ
Sur les neuf catalogues qui le portent, SIX ont exactement le même fichier, à
l'octet près : 1026 lignes. `cloud` et `kubernetes` en ont des variantes, et
`dsoxlab` la sienne, étant le moteur et non un catalogue. C'est donc le fichier
commun aux six qui fait référence, et il est générique : ses trois seules
occurrences du mot « cloud » sont des commentaires sur des registres d'images
publics, pas un nom de dépôt.
CE QUE PLUMBER A ENSUITE REPROCHÉ, ET IL AVAIT RAISON
[ISSUE-713] job "ci/pre-commit" references action "jdx/mise-action@…"
from an unauthorized source
Le contrôle « Actions must come from authorized sources » n'accepte qu'une
action d'`actions/*`, de `github/*` ou d'une allowlist explicite. C'est la
bonne exigence : une action tierce exécute du code arbitraire dans la CI, et
l'épinglage par SHA protège d'un déplacement de tag, pas d'un mainteneur
compromis.
`mise` installe les versions d'outils de ce catalogue : la retirer casserait la
CI, et elle est déjà épinglée par SHA. Elle entre donc dans
`trustedGithubActions`, ce qui est tout ce que Plumber demande : DÉCLARER ce
qu'on accepte. Les six autres catalogues ne l'emploient pas, et n'ont donc pas
reçu cette entrée : une allowlist dont personne n'a besoin élargit la surface
pour rien.
VÉRIFIÉ EN JOUANT L'OUTIL, PAS EN RELISANT SA CONFIGURATION
avant exit 2, « configuration file not found »
après PASSED, score A, 100.0/100 pts, required ≥ 100
Co-Authored-By: Claude Opus 5 <[email protected]>
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ce que les alertes disaient, et ce qu'elles ne disaient pas
Ce n'était pas un score trop bas : l'outil ne démarrait pas. Un
exit 2signifie « usage, configuration ou erreur d'exécution », et le gate du workflow le traduisait en échec de job sans que la cause remonte au premier coup d'œil.La cause, et elle vient de l'alignement du 2026-10-17
Cet alignement a copié
.poutine.yml,.pre-commit-config.yaml, les workflows et la gouvernance dans quatre catalogues en retard. Il a oublié.plumber.yaml, absent de sa liste de fichiers copiables.Mesuré : les quatre dépôts dont Plumber échouait sont exactement les quatre qui avaient été alignés, et les neuf autres portaient bien ce fichier.
Quelle référence, et pourquoi celle-là
Sur les neuf catalogues qui le portent, six ont exactement le même fichier, à l'octet près (1026 lignes).
cloudetkubernetesen ont des variantes, etdsoxlabla sienne puisqu'il est le moteur et non un catalogue. C'est donc le fichier commun aux six qui fait référence — et il est générique : ses trois seules occurrences du mot « cloud » sont des commentaires sur des registres d'images publics, pas un nom de dépôt.Ce que Plumber a ensuite reproché, et il avait raison
Le contrôle « Actions must come from authorized sources » n'accepte qu'une action d'
actions/*, degithub/*ou d'une allowlist explicite. C'est la bonne exigence : une action tierce exécute du code arbitraire dans la CI, et l'épinglage par SHA protège d'un déplacement de tag, pas d'un mainteneur compromis.miseinstalle les versions d'outils de ce catalogue : la retirer casserait la CI, et elle est déjà épinglée par SHA. Elle entre donc danstrustedGithubActions, ce qui est tout ce que Plumber demande — déclarer ce qu'on accepte. Les six autres catalogues ne l'emploient pas et n'ont pas reçu cette entrée : une allowlist dont personne n'a besoin élargit la surface pour rien.Vérifié en jouant l'outil, pas en relisant sa configuration
exit 2, « configuration file not found »🤖 Generated with Claude Code