10 Commits

Author SHA1 Message Date
David Barragán Merino
61bc585386 👷 Accept remaining zizmor exceptions
wrangler stays an ad hoc install in the plugin deploys and the devenv
image keeps its floating tag: both are deliberate, so mark them as
accepted instead of pending.

AI-assisted-by: Claude
Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-10-02 12:49:04 +02:00
David Barragán Merino
571a8805e6 👷 Document remaining zizmor exceptions
Mark each remaining ignore in zizmor.yml as a pending clean-up or an
accepted risk, with its reason.

Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-10-02 09:50:58 +02:00
David Barragán Merino
8c1a813b14 👷 Drop dependency cache from plugin doc deploys
Deploy workflows must not restore a cache that other workflows can
write to. The pnpm store cache is removed from the api-doc and
styles-doc deploys; installs are slower but deploys are infrequent.

Also install with --frozen-lockfile in the three plugin deploys, as CI
already does by default, so a deploy never resolves dependencies that
differ from the lockfile.

Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-10-02 09:50:58 +02:00
David Barragán Merino
46d64da931 👷 Scope the triage GitHub App token
Request a token for this repository only, instead of every repository
in the installation, and only with the permissions the job uses: issues
(labels) and organization projects (the board). Also document why the
workflow needs pull_request_target and why it is safe.

Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-10-02 09:50:58 +02:00
David Barragán Merino
214cbbf678 👷 Drop pull_request_target from commit checker
The job only reads commit messages, which works with the pull_request
trigger for PRs from forks too. Running it on both triggers checked every
PR twice, once with a privileged token it does not need.

Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-10-02 09:50:58 +02:00
David Barragán Merino
7f95439bc2 👷 Declare least-privilege workflow permissions
Add an explicit permissions block to every workflow that relied on the
repository default. Entry points that only call reusable workflows get
permissions: {} and grant each call what the called workflow needs:
contents: read for the bundle and docker builds, contents: write for the
release, nothing for the admin-console dispatch (it uses its own token).
Workflows that check out code get contents: read; the commit checker
also gets pull-requests: read to list the PR commits.

Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-10-02 09:50:58 +02:00
David Barragán Merino
86fc3dd765 👷 Pass explicit secrets to reusable workflows
Replace secrets: inherit with the secrets each reusable workflow
actually uses, and declare them under on.workflow_call.secrets in the
called workflow. Declared as required: false so behaviour is unchanged
if a secret is missing.

Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-09-30 17:01:58 +02:00
David Barragán Merino
fa3e01f7c7 👷 Disable checkout credential persistence
Set persist-credentials: false on every actions/checkout step, so the
job token is not left in .git/config for the rest of the job. No step
after checkout pushes or fetches with it. The only authenticated operation,
gh release in release.yml, uses GH_TOKEN.

Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-09-30 17:01:58 +02:00
David Barragán Merino
d1aa07087d 👷 Pin GitHub Actions to commit SHAs
Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-09-30 15:29:28 +02:00
David Barragán Merino
f285b2dff7 👷 Add actionlint and zizmor checks for workflows
Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>
2026-09-30 10:31:02 +02:00