ci: fix actionlint findings ahead of Starbase merge
Metadata
Current evaluation
PR #2897 (4 workflow files, +10/-32) fixing actionlint/zizmor findings — dropped paths-ignore from merge_group triggers, quoted shell expansions and $CHARMCRAFT_JSON/$proj_file, bound matrix.system via env. Approved by 2 reviewers, merged; OSV-scanner failure ruled unrelated.
Resolution: closed resolved
Reason: The pull request itself was the resolution: it was approved by 2 reviewers with 0 unresolved review comments and closed as merged into main, clearing the actionlint/zizmor findings (including the zizmor template-injection in spread-docs.yaml) ahead of the Starbase merge. The author confirmed the only failing check (Security scan / OSV-scanner) and the lint failure were unrelated to these changes.
Evaluated by: mr-cal-bot
No scores available.
Issue body
## Why
The upcoming Starbase merge wires `actionlint` into CI/lint for the first time via a new `lint-actions` Make target and a new `.github/actionlint.yaml` config. This PR fixes the findings `actionlint` (and `zizmor`) surface against workflows on `main` today, so the merge lands with a clean run. It intentionally does not add `.github/actionlint.yaml` itself — that config is Starbase's own tool wiring and belongs in that merge, not here.
## What
- `spread.yaml` / `tests.yaml`: remove `paths-ignore` from the `merge_group` trigger (actionlint flags this combination as invalid — `paths-ignore` has no effect on `merge_group` events)
- `spread.yaml` / `spread-docs.yaml`: quote unquoted shell expansions (`$(spread -list ...)`, `$(go env GOPATH)`) flagged by shellcheck via actionlint
- `schema.yaml`: quote `$CHARMCRAFT_JSON` and `$proj_file` in the ajv validation loop
- `spread-docs.yaml`: bind `matrix.system` to an `env:` var instead of interpolating it directly into the `run:` shell script, fixing a `zizmor` `template-injection` finding
## Validation
- `actionlint`: exit code 0, zero findings (verified locally with a temporary, uncommitted `actionlint.yaml` declaring the self-hosted runner labels already in use, since actionlint needs that config to avoid unrelated "unknown label" noise across the whole repo — that file is not part of this PR)
- `uvx zizmor .github/workflows/spread-docs.yaml`: confirms the `template-injection` finding is resolved; remaining findings (`artipacked`, `excessive-permissions`, `unpinned-uses`) are pre-existing and out of scope for this PR
- All touched YAML files validated with `python3 -c "import yaml; yaml.safe_load(...)"`
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | PR #2897 (4 workflow files, +10/-32) fixing actionlint/zizmor findings — dropped paths-ignore from merge_group triggers, quoted shell expansions and $CHARMCRAFT_JSON/$proj_file, bound matrix.system via env. Approved by 2 reviewers, merged; OSV-scanner failure ruled unrelated. | |
| stealth/space-bunny-alpha | — | closed resolved | PR cleaning up actionlint/zizmor findings in workflows (dropped paths-ignore from merge_group, quoted shell expansions, matrix.system via env) was approved by 2 reviewers, no unresolved comments, and closed as merged; failing OSV-scanner confirmed unrelated. | |
| stealth/space-bunny-alpha |
Impact:
32
Quick Win:
13
Complexity:
22
Confidence:
68
Actionability:
52
|
needs review | New maintainer PR (+10/-32, 4 workflow files) fixing actionlint/zizmor findings: drops paths-ignore from merge_group triggers, quotes shell expansions, and binds matrix.system via env in spread-docs.yaml. No reviews yet; 2 unresolved comments, lint/files and OSV-scanner failing. | |
| stealth/space-bunny-alpha |
Impact:
22
Quick Win:
10
Complexity:
15
Confidence:
72
Actionability:
55
|
needs review | Maintainer PR fixing actionlint findings ahead of a Starbase merge: adds .github/actionlint.yaml runner labels, drops paths-ignore from merge_group triggers, and quotes shell vars in workflows. 0 reviews, 2 unresolved comments, OSV-scanner failing, test jobs pending. | |
| stealth/space-bunny-alpha |
Impact:
32
Quick Win:
13
Complexity:
23
Confidence:
82
Actionability:
52
|
needs review | Adds actionlint runner labels and fixes workflow triggers and shell quoting; local actionlint and YAML validation reportedly pass, but CI still has lint/files and OSV failures with spread jobs pending. | |
| stealth/space-bunny-alpha |
Impact:
24
Quick Win:
8
Complexity:
19
Confidence:
86
Actionability:
43
|
needs review | Adds actionlint runner configuration and fixes workflow merge_group filters, shell quoting, and validation quoting; local checks pass, but OSV and files-lint CI checks fail. | |
| stealth/space-bunny-alpha |
Impact:
30
Quick Win:
9
Complexity:
30
Confidence:
78
Actionability:
45
|
needs review | Adds actionlint config and fixes workflow shell quoting and merge_group filters for the Starbase merge. Local validation is reported passing, but CI has OSV/lint failures, pending build checks, and an unresolved review thread. |
Update history
| Date | Change |
|---|---|
| closed | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| created |
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2893 ci: fix actionlint findings ahead of Starbase merge | charmcraft | closed | Closed unmerged; its actionlint fixes were superseded by merged PR charmcraft#2897 and Starbase merge charmcraft#2899. | |
| #585 fix(ci): resolve all zizmor findings in GitHub workflows | starbase | merged | Merged in canonical/starbase#585 as commit f86068e, hardening GitHub workflows and reducing zizmor findings from 44 to 0; all CI checks passed. | |
| #6393 ci: fix zizmor warnings | snapcraft | merged | Merged PR #6393 as commit c41c04835, correcting Zizmor warnings originating from the Starbase merge in #6391. | |
| #6462 chore(merge): update starbase (2026-10-02) | snapcraft | merged | Starbase sync PR #6462 merged, adding Copilot setup workflow, zizmor config, docs-clean target, and conflict resolutions keeping child-repo versions. Two spread tests failing, noted unrelated. |