Skip to content

chore(ci): harden security#302

Merged
gabrielmfern merged 1 commit into
mainfrom
feature/dev-654-resend-cli-gh-actions-hardening-0-high-14-med-29-low
May 13, 2026
Merged

chore(ci): harden security#302
gabrielmfern merged 1 commit into
mainfrom
feature/dev-654-resend-cli-gh-actions-hardening-0-high-14-med-29-low

Conversation

@gabrielmfern

@gabrielmfern gabrielmfern commented May 13, 2026

Copy link
Copy Markdown
Member

Summary by cubic

Hardened GitHub Actions for resend-cli by enforcing least-privilege permissions, adding concurrency controls, and setting job timeouts. Publishing is now gated by a release environment to require reviewers.

  • Refactors
    • Set top-level permissions: contents: read across workflows; kept contents: write only in the release job.
    • Added concurrency groups (ref-based); cancel-in-progress true, except post-release grouped by head SHA without cancel.
    • Added timeout-minutes to all jobs (5–45) to prevent hung runs.
    • Updated release.yml with environment: release and timeouts across test/build/release.
    • Aligns with Linear DEV-654 findings: missing top-level permissions, missing concurrency, release without environment gate, and missing timeouts.

Written for commit ade60b9. Summary will update on new commits.

Signed-off-by: gabriel miranda <gabrielmfern@outlook.com>
@gabrielmfern gabrielmfern self-assigned this May 13, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

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.

cubic analysis

No issues found across 14 files

Linked issue analysis

Linked issue: DEV-654: [resend-cli] GH Actions hardening — 0 HIGH / 14 MED / 29 LOW

Status Acceptance criteria Notes
Add minimal top-level permissions (e.g. permissions: contents: read) to workflows Multiple workflow files were modified to include top-level permissions (contents: read), which addresses the 'no top-level permissions' finding.
Add concurrency: group entries to workflows The diff adds concurrency group entries (with cancel-in-progress flags) across many workflows, covering the concurrency finding.
⚠️ Set timeout-minutes for jobs that were missing timeouts The PR adds timeout-minutes to many jobs (examples listed) which addresses the missing-timeout finding in part, but the issue called out 29 jobs and the diff shows many additions without a clear 1:1 confirmation that all 29 were updated.
Require environment for release jobs so release paths have environment gating (e.g. required reviewers) release.yml now sets environment: release on the release job and related jobs, which implements the 'no environment' finding for the release workflow.

Requires human review: This PR hardens CI/CD security by introducing least-privilege permissions, concurrency controls, and environment gates for releases. While these follow best practices, changes to critical deployment workflows require human verification to ensure process continuity.

@gabrielmfern gabrielmfern merged commit 40f0bed into main May 13, 2026
24 checks passed
@gabrielmfern gabrielmfern deleted the feature/dev-654-resend-cli-gh-actions-hardening-0-high-14-med-29-low branch May 13, 2026 17:20
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