Skip to content

chore: adopt nox + warden + nox-remediate (bootstrap CI + security)#1

Merged
felixgeelhaar merged 1 commit into
mainfrom
chore/adopt-nox-warden
Jul 11, 2026
Merged

chore: adopt nox + warden + nox-remediate (bootstrap CI + security)#1
felixgeelhaar merged 1 commit into
mainfrom
chore/adopt-nox-warden

Conversation

@felixgeelhaar

Copy link
Copy Markdown
Owner

What

Bootstraps CI and supply-chain security for decisionkit, which previously had no .github/workflows/ and no dependabot. Mirrors the nox/warden shapes adopted across the org (ref: felixgeelhaar/preflight #128), adapted to this repo.

Changes

  • .github/workflows/ci.yml (NEW — first CI for this repo) — calls the central reusable felixgeelhaar/.github/.github/workflows/go-ci.yml@main: gofmt, go vet, golangci-lint, race tests, go build, and a nox security scan (SARIF → code scanning) with source-to-sink taint SAST. Go version auto-detected from go.mod (1.26.2). Coverage gate stays default-off. push/pull_request on main; concurrency-cancel.
  • .github/workflows/nox-remediate.yml (NEW) — weekly (17 6 * * 1) + workflow_dispatch; calls the central nox-remediate.yml@main reusable with secrets: inherit. Replaces dependabot for dependency + GitHub Actions pin remediation.
  • .nox.yaml (NEW) — security/dependency gate config. A full nox 1.7.1 scan of the tree reports zero findings, so no baseline is needed yet. Path-excludes cover only generated/vendored/prose/data artifacts (go.sum, scanner state, *.md, testdata/, *.pb.go); all first-party Go source including *_test.go is scanned.
  • .warden.yaml (NEW) — local git gate. pre-commit: gofmt + govet; pre-push: rebase, gofmt, govet, gotest (go test -race ./...), gobuild. golangci-lint intentionally omitted (repo ships no .golangci.yml). pr.enabled: false, risk thresholds diff_lines_high: 400 / files_touched_high: 15.
  • .gitignore — ignore nox scan output (nox-results/, findings.json, *.sarif).

Also: disabled GitHub automated-security-fixes (DELETE .../automated-security-fixes) in favor of nox-remediate.

Verification (local, before push)

  • gofmt -l . → clean
  • go vet ./... → pass
  • go build ./... → pass
  • go test -race ./... → all 4 packages pass
  • golangci-lint run ./... (v2.12.2, matching the reusable) → 0 issues
  • nox scan (pinned 1.7.1) → 0 findings

Do not merge until CI is green.

https://claude.ai/code/session_01XsciE5KjxtMrHimxWxBVFS

This repo had no CI and no dependency automation. Bootstrap the
felixgeelhaar engineering bar from scratch:

- .github/workflows/ci.yml — first CI for this repo; calls the central
  reusable felixgeelhaar/.github go-ci.yml@main (gofmt, go vet, golangci-lint,
  race tests, build, nox security scan -> code scanning). Coverage gate stays
  default-off. All jobs verified green locally (gofmt clean, vet/build/tests
  pass with -race, golangci-lint v2.12.2 reports 0 issues).
- .github/workflows/nox-remediate.yml — weekly (Mon 06:17 UTC) + manual
  dependency/action remediation via the central reusable; replaces dependabot.
- .nox.yaml — security/dependency gate config. Full scan of the tree reports
  ZERO findings, so no baseline is needed yet. Excludes cover only generated,
  vendored, and prose/data artifacts (go.sum, scanner state, *.md, testdata,
  *.pb.go) — all first-party Go source incl. *_test.go is scanned.
- .warden.yaml — local git gate. pre-commit: gofmt + govet; pre-push: rebase,
  gofmt, govet, race tests, build. golangci-lint omitted (no .golangci.yml).
- .gitignore — ignore nox scan output (nox-results/, findings.json, *.sarif).

GitHub automated-security-fixes disabled in favor of nox-remediate.

Claude-Session: https://claude.ai/code/session_01XsciE5KjxtMrHimxWxBVFS
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

- cron: "17 6 * * 1"
workflow_dispatch: {}
permissions:
contents: write
Comment thread .github/workflows/ci.yml
on:
push: {branches: [main]}
pull_request: {branches: [main]}
concurrency: {group: "${{ github.workflow }}-${{ github.ref }}", cancel-in-progress: true}
on:
schedule:
- cron: "17 6 * * 1"
workflow_dispatch: {}

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nox found 3 finding(s) in this PR.

on:
schedule:
- cron: "17 6 * * 1"
workflow_dispatch: {}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 low IAC-308

GHA manual workflow dispatch enabled

Comment thread .github/workflows/ci.yml
on:
push: {branches: [main]}
pull_request: {branches: [main]}
concurrency: {group: "${{ github.workflow }}-${{ github.ref }}", cancel-in-progress: true}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 low IAC-309

GHA cancels in-progress runs (verify intent)

- cron: "17 6 * * 1"
workflow_dispatch: {}
permissions:
contents: write

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 medium IAC-314

GHA workflow has contents write permission

@felixgeelhaar
felixgeelhaar merged commit c729140 into main Jul 11, 2026
6 checks passed
@felixgeelhaar
felixgeelhaar deleted the chore/adopt-nox-warden branch July 11, 2026 11:57
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