Skip to content

ci: harden GitHub Actions workflows#17

Closed
flavorjones wants to merge 9 commits intomainfrom
harden-github-actions
Closed

ci: harden GitHub Actions workflows#17
flavorjones wants to merge 9 commits intomainfrom
harden-github-actions

Conversation

@flavorjones
Copy link
Copy Markdown
Member

Summary

  • Add GitHub Actions audit job (actionlint + zizmor) to CI workflow
  • Add lint-actions target for local workflow linting
  • Update dependabot cooldowns
  • Pin all actions to SHA hashes with pinact
  • Fix high/medium/low severity zizmor findings across all workflows and seed templates
  • Move all permissions to job-level with permissions: {} at workflow level

Test plan

  • CI passes (actionlint + zizmor clean)
  • Existing workflow jobs still work
  • Seed workflow templates are also hardened

🤖 Generated with Claude Code

flavorjones and others added 8 commits March 20, 2026 13:29
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Runs actionlint and zizmor locally, included in check-all.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- bot-conditions: apply dual check (actor + user.login) for dependabot
- dangerous-triggers: suppress pull_request_target with justification
- excessive-permissions: move to permissions: {} with per-job scoping
- cache-poisoning: suppress with justification (branch-isolated caches)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- excessive-permissions: move workflow-level permissions to job-level in security.yml
- secrets-outside-env: suppress with justification in release.yml, security.yml, test.yml
- Update version comments to match exact pinned versions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- artipacked: add persist-credentials: false to all checkout steps
- dependabot-cooldown: increase default-days to 7 where insufficient

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace workflow-level permissions with permissions: {} and add
explicit per-job permissions. This ensures every job starts with
zero permissions and fails safe if permissions are omitted.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 20, 2026 17:44
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 20, 2026

Sensitive Change Detection (shadow mode)

This PR modifies control-plane files:

  • .github/workflows/ai-labeler.yml
  • .github/workflows/dependabot-auto-merge.yml
  • .github/workflows/direct-push-alert.yml
  • .github/workflows/labeler.yml
  • .github/workflows/release.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/security.yml
  • .github/workflows/sensitive-change-gate.yml
  • .github/workflows/test.yml

Shadow mode — this check is informational only. When activated, changes to these paths will require approval from a maintainer.

The seed/ directory contains templates for scaffolding new CLI projects,
not live workflows. Only .github/workflows/ should be hardened.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added enhancement New feature or request and removed seed labels Mar 20, 2026
@flavorjones flavorjones deleted the harden-github-actions branch March 20, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants