Skip to content

ci(security): add actionlint + zizmor workflows#6194

Closed
unisone wants to merge 3 commits intoopenclaw:mainfrom
unisone:ci/security-actionlint-zizmor
Closed

ci(security): add actionlint + zizmor workflows#6194
unisone wants to merge 3 commits intoopenclaw:mainfrom
unisone:ci/security-actionlint-zizmor

Conversation

@unisone
Copy link
Copy Markdown
Contributor

@unisone unisone commented Feb 1, 2026

Summary

Adds CI jobs to lint GitHub Actions workflows with actionlint and to scan workflow security posture with zizmor.

Why

The repo already has actionlint.yaml and zizmor.yml, but no workflows were actually running these tools. Wiring them up catches workflow bugs and reduces supply-chain risk.

Notes

  • Read-only permissions
  • Runs on PRs and main

Greptile Overview

Greptile Summary

This PR adds two new GitHub Actions workflows under .github/workflows/ that run on pull_request and pushes to main: one runs rhysd/actionlint using the repo’s .github/actionlint.yaml config, and the other runs zizmorcore/zizmor using zizmor.yml.

These checks complement the existing workflow/tool configuration by actually enforcing it in CI, helping catch workflow syntax/logic issues and providing automated security posture scanning for workflows.

Confidence Score: 4/5

  • This PR is safe to merge with low risk and limited blast radius (CI-only changes).
  • Changes are isolated to two new workflows and don’t affect runtime code. Main consideration is supply-chain hardening of the workflows themselves (pinning action refs / checkout credential handling) rather than functional correctness.
  • No files require special attention

(5/5) You can turn off certain types of comments like style here!

Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile

Comment on lines +18 to +20
uses: zizmorcore/zizmor@v0
with:
config: zizmor.yml
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Pin third-party action ref to a commit SHA.

Using zizmorcore/zizmor@v0 pulls whatever the v0 tag points to at runtime; if that tag is moved (or the publisher account is compromised), this workflow will run unreviewed code. Consider pinning to a full commit SHA and optionally keeping a v0 comment for readability. This is especially relevant since this job is explicitly about workflow supply-chain security.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/zizmor.yml
Line: 18:20

Comment:
[P2] Pin third-party action ref to a commit SHA.

Using `zizmorcore/zizmor@v0` pulls whatever the `v0` tag points to at runtime; if that tag is moved (or the publisher account is compromised), this workflow will run unreviewed code. Consider pinning to a full commit SHA and optionally keeping a `v0` comment for readability. This is especially relevant since this job is explicitly about workflow supply-chain security.

How can I resolve this? If you propose a fix, please make it concise.

Comment on lines +15 to +21
- uses: actions/checkout@v4

- name: Run actionlint
uses: rhysd/actionlint@v1
with:
# Use repo config when present
config-file: .github/actionlint.yaml
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Pin third-party action refs to commit SHAs (and consider persist-credentials: false).

Both actions/checkout@v4 and rhysd/actionlint@v1 are tag-based and can change over time; pinning to a commit SHA is the usual hardening step to reduce supply-chain risk (particularly appropriate given this PR’s security focus). If you keep checkout, also consider with: persist-credentials: false since this job only reads repo contents.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/actionlint.yml
Line: 15:21

Comment:
[P2] Pin third-party action refs to commit SHAs (and consider `persist-credentials: false`).

Both `actions/checkout@v4` and `rhysd/actionlint@v1` are tag-based and can change over time; pinning to a commit SHA is the usual hardening step to reduce supply-chain risk (particularly appropriate given this PR’s security focus). If you keep `checkout`, also consider `with: persist-credentials: false` since this job only reads repo contents.

How can I resolve this? If you propose a fix, please make it concise.

Comment on lines +15 to +20
- uses: actions/checkout@v4

- name: Run zizmor
uses: zizmorcore/zizmor@v0
with:
config: zizmor.yml
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Consider scanning only workflow files (and pin actions/checkout).

Right now this checks out the whole repo and runs zizmor with config: zizmor.yml (which appears to be a workflow-focused config). If the intent is only to analyze GitHub Actions, consider configuring zizmor to only target .github/workflows/** (and similarly pin actions/checkout@v4), which reduces runtime and avoids scanning unrelated files.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/zizmor.yml
Line: 15:20

Comment:
[P2] Consider scanning only workflow files (and pin `actions/checkout`).

Right now this checks out the whole repo and runs zizmor with `config: zizmor.yml` (which appears to be a workflow-focused config). If the intent is only to analyze GitHub Actions, consider configuring zizmor to only target `.github/workflows/**` (and similarly pin `actions/checkout@v4`), which reduces runtime and avoids scanning unrelated files.

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

@unisone
Copy link
Copy Markdown
Contributor Author

unisone commented Feb 1, 2026

CI was failing because the actions were referenced as @v1/@v0 which aren't valid tags for these repos. Pushed a fix to pin to rhysd/[email protected] and zizmorcore/[email protected].

@unisone
Copy link
Copy Markdown
Contributor Author

unisone commented Feb 1, 2026

Follow-up: zizmor was failing due to the Docker-based zizmor action requiring an unset ZIZMOR_VERSION env. Switched to zizmorcore/[email protected], which is the supported GH Action wrapper.

@github-advanced-security
Copy link
Copy Markdown

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

@clawdinator
Copy link
Copy Markdown
Contributor

clawdinator bot commented Feb 1, 2026

CLAWDINATOR FIELD REPORT // PR Closure

I am CLAWDINATOR — cybernetic crustacean, maintainer triage bot for OpenClaw. I was sent from the future to keep this repo shipping clean code.

OpenClaw has 800+ open PRs. We're aggressively closing features, CI changes, and non-critical improvements. If this change is important, open an issue first to discuss with maintainers.

TERMINATED.

🤖 This is an automated message from CLAWDINATOR, the OpenClaw maintainer bot.

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