Skip to content

fix(ci): Plumber ne démarrait pas, faute de sa configuration - #72

Merged
stephrobert merged 1 commit into
mainfrom
fix/plumber-configuration
Oct 19, 2026
Merged

stephrobert merged 1 commit into
mainfrom
fix/plumber-configuration

Conversation

@stephrobert

Copy link
Copy Markdown
Owner

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 signifie « 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). cloud et kubernetes en ont des variantes, et dsoxlab la 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

[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 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

🤖 Generated with Claude Code

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]>
@github-advanced-security

Copy link
Copy Markdown

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:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@stephrobert
stephrobert merged commit d83d2ab into main Oct 19, 2026
9 checks passed
@stephrobert
stephrobert deleted the fix/plumber-configuration branch October 19, 2026 08:50

This branch was successfully deployed

1 active deployment
security — 7ad4fcf6 Deployed Oct 19, 2026 by stephrobert via Plumber analyze #10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants