Skip to content
This repository was archived by the owner on Jul 15, 2026. It is now read-only.

CI: branch-protection ruleset, govulncheck workflow, Dependabot config - #21

Merged
joestump-agent merged 4 commits into
mainfrom
claude/branch-protections-workflows-n7tt8x
Jul 11, 2026
Merged

CI: branch-protection ruleset, govulncheck workflow, Dependabot config#21
joestump-agent merged 4 commits into
mainfrom
claude/branch-protections-workflows-n7tt8x

Conversation

@joestump-agent

Copy link
Copy Markdown
Owner

Adds the missing repo-hygiene pieces around the existing CI/CSS/Desktop/docs workflows:

  • .github/rulesets/main.json — importable branch-protection ruleset for main: all changes via PR, squash merges only (matches the SDD merge strategy in CLAUDE.md), required checks gofmt + vet + tests and docker image builds, review-thread resolution, linear history, no force pushes/deletions. The path-filtered workflows (CSS, Desktop, Security) are deliberately not required checks — a required check that never reports would deadlock PRs that don't touch those paths. .github/rulesets/README.md documents the rationale and the one-command apply.
  • .github/workflows/security.ymlgovulncheck over both Go modules (core + desktop shell), on PRs touching the module graphs, pushes to main, a weekly schedule, and manual dispatch.
  • .github/dependabot.yml — weekly grouped dependency updates for both gomod modules, the Actions pins, and the docs-site npm tree.

Owner follow-up after merge: GitHub doesn't read rulesets from the repo automatically — apply once via Settings → Rules → Rulesets → Import a ruleset (upload .github/rulesets/main.json) or gh api repos/joestump-agent/msgbrowse/rulesets --input .github/rulesets/main.json.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JCk6XWnqks9gjbJ4Zi5uVT


Generated by Claude Code

claude added 4 commits July 10, 2026 21:29
- .github/rulesets/main.json: importable ruleset for main — PRs only
  (squash), required checks 'gofmt + vet + tests' + 'docker image builds',
  review-thread resolution, linear history, no force pushes/deletions.
  README documents rationale and the one-command apply (gh api / UI import).
- .github/workflows/security.yml: govulncheck over both Go modules on
  module-graph PRs, main pushes, weekly schedule, and manual dispatch.
- .github/dependabot.yml: weekly grouped updates for both gomod modules,
  Actions pins, and the docs-site npm tree.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JCk6XWnqks9gjbJ4Zi5uVT
govulncheck's first run flagged GO-2026-5856 (crypto/tls ECH privacy leak,
fixed in Go 1.25.12) because setup-go resolved '1.25' to the runner's cached
1.25.11 — for the scan AND the shipped builds. check-latest: true makes
every Go job track the newest 1.25.x patch, where stdlib security fixes land.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JCk6XWnqks9gjbJ4Zi5uVT
setup-go's version manifest can lag the module proxy, so check-latest alone
still resolved go1.25.11 on the runner. The toolchain directive makes every
build — CI and local — use the crypto/tls-patched 1.25.12 regardless of the
installed Go.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YWWaS4f9mr6Yp43S4GXHE7
… fix

Review follow-up: official golang images set GOTOOLCHAIN=local, so the build
stage ignored the go.mod 'toolchain go1.25.12' directive and could still ship
the GO-2026-5856-vulnerable crypto/tls while the Security workflow passed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YWWaS4f9mr6Yp43S4GXHE7
@joestump-agent
joestump-agent merged commit 80a4fb2 into main Jul 11, 2026
5 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants