Skip to content

ci: harden GitHub Actions workflows#146

Merged
flavorjones merged 6 commits intomasterfrom
harden-github-actions
Mar 20, 2026
Merged

ci: harden GitHub Actions workflows#146
flavorjones merged 6 commits intomasterfrom
harden-github-actions

Conversation

@flavorjones
Copy link
Member

Summary

  • Add zizmor and actionlint CI job
  • Configure dependabot with batched updates and cooldown periods
  • Pin all GitHub Actions to SHA hashes
  • Suppress unpinned-images for service containers
  • Fix excessive-permissions and artipacked findings
  • Scope all permissions to job-level

Test plan

  • CI passes (lint-actions job runs clean)
  • Existing test job unaffected

🤖 Generated with Claude Code

flavorjones and others added 5 commits March 20, 2026 15:13
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Digest pinning for service container images is nontrivial and low
value for CI test databases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add persist-credentials: false to test job checkout. Set workflow-level
permissions to deny-all and add scoped contents: read to each job.

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

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.

Pull request overview

This PR hardens the repository’s GitHub Actions security posture by adding workflow auditing and tightening token permissions, while also introducing Dependabot automation for updates.

Changes:

  • Add a new lint-actions job that runs actionlint and zizmor, and set default workflow permissions to none with per-job scoping.
  • Pin GitHub Actions used in CI to commit SHAs and disable credential persistence on checkout.
  • Add a new Dependabot configuration to group GitHub Actions updates and apply cooldown periods.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
.github/workflows/ci.yml Adds an Actions-audit job, scopes permissions, and pins action versions for CI hardening.
.github/dependabot.yml Introduces Dependabot config for GitHub Actions + Bundler updates with grouping/cooldowns.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Rails 6.0/6.1 requires sqlite3 ~> 1.4, but without a constraint in the
gemspec, bundler resolves sqlite3 2.x on Ruby 3.0+ which is incompatible.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@flavorjones flavorjones merged commit b14a9be into master Mar 20, 2026
28 checks passed
@flavorjones flavorjones deleted the harden-github-actions branch March 20, 2026 23:25
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