Conversation
Adds actionlint and zizmor checks to the CI workflow, placed alongside the existing lint job. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Groups all GitHub Actions updates into a single PR and adds cooldown periods to both gomod and github-actions ecosystems. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ensures exact version comments match pinned SHAs across all workflow files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Suppress dangerous-triggers on ai-labeler and sensitive-change-gate (both only call reusable workflows, no PR code checked out) - Fix bot-conditions in dependabot-auto-merge with dual actor check - Move release.yml permissions to job-level (excessive-permissions) - Suppress cache-poisoning on setup-go in release (branch-isolated) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix ref-version-mismatch: update create-github-app-token comment from v2 to v3.0.0 to match pinned SHA - Move security.yml permissions to job-level (excessive-permissions) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add persist-credentials: false to all checkout steps to prevent credential leakage through artifacts (artipacked). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Set permissions: {} at workflow level and declare per-job permissions
for ci.yml, test.yml, ai-labeler.yml, dependabot-auto-merge.yml,
direct-push-alert.yml, sensitive-change-gate.yml, and scorecard.yml.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use ./*.test glob pattern to avoid filenames with dashes being interpreted as options (SC2035). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sensitive Change Detection (shadow mode)This PR modifies control-plane files:
|
There was a problem hiding this comment.
Pull request overview
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.
This PR hardens the repository’s GitHub Actions and dependency automation configuration by reducing default token permissions, SHA-pinning actions, and adding workflow auditing.
Changes:
- Set workflow-level
permissions: {}and scope required permissions at the job level across workflows. - SHA-pin GitHub Actions usage and disable persisted checkout credentials where applicable.
- Add an Actions audit job (actionlint + zizmor) and update Dependabot configuration (grouping/cooldown).
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/test.yml | Scopes job permissions and hardens checkout usage in CI/test workflow. |
| .github/workflows/sensitive-change-gate.yml | Removes broad workflow permissions and relies on job-scoped permissions for reusable workflow call. |
| .github/workflows/security.yml | Scopes permissions per job and pins actions for security scanning workflows. |
| .github/workflows/scorecard.yml | Restricts token permissions and pins actions for Scorecard analysis. |
| .github/workflows/release.yml | Restricts workflow permissions, pins actions, and hardens release steps. |
| .github/workflows/direct-push-alert.yml | Removes workflow-level broad permissions and scopes permissions for reusable workflow call. |
| .github/workflows/dependabot-auto-merge.yml | Scopes permissions and strengthens Dependabot bot condition checks; pins metadata action. |
| .github/workflows/ci.yml | Scopes permissions across CI jobs; pins actions; adds actionlint/zizmor audit job. |
| .github/workflows/ai-labeler.yml | Removes workflow-level permissions and scopes job permissions for reusable workflows under pull_request_target. |
| .github/dependabot.yml | Adds grouping and cooldown configuration for Dependabot updates. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Address Copilot review feedback: - Verify gitleaks tarball with SHA256 checksum before extracting - Pin govulncheck to v1.1.4 instead of @latest for reproducibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
03bdc74 to
db78d31
Compare
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/security.yml">
<violation number="1" location=".github/workflows/security.yml:28">
P1: The checksum is retrieved from the same remote source as the binary, which weakens supply-chain integrity verification. Keep the expected digest pinned in-repo (or verify a signed checksum) so tampering of release assets cannot satisfy the check.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Test plan
🤖 Generated with Claude Code