feat(security): harden fleet security controls, visibility-gated - #241
Merged
Conversation
Add a security-hardening pass to the template and root repo, gated on a new repo_visibility answer so private repos get free OSS equivalents instead of paid services: - repo_visibility + include_codecov answers; gate Codecov, CodeQL, Scorecard - ruff S (flake8-bandit) SAST floor fleet-wide, with scoped per-file ignores - read-only default GITHUB_TOKEN permissions on every workflow (template + root) - gitleaks pre-commit hook + merge-gating CI job wired into the ci-passed roll-up - self-contained publish path: remove dawidd6, native same-run artifacts, build at the tag; add a CycloneDX SBOM release asset; de-branch the publish action pin - GitHub App token for changelog automation, replacing the long-lived PAT - SECURITY.md + CODEOWNERS governance files, classified for updates - new tests/test_security_hardening.py fail-loud checks; updated pin and classification tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Security-hardening pass for the template and root repo (OpenSpec change
harden-fleet-security), gated on a newrepo_visibilityanswer so private repos get free OSS equivalents instead of paid services.Controls
repo_visibility+include_codecovanswers; Codecov, CodeQL, and Scorecard gated (public gets them, private falls back to ruffS+ gitleaks).S(flake8-bandit) fleet-wide, with test/build-tooling-scoped ignores.permissions: contents: readon every workflow (template + root).ci-passedroll-up.dawidd6removed, build moved to the tag insidepublish-release.yml, native same-run artifacts,@release/v1→@v1.13.0, plus a CycloneDX SBOM release asset.tests/test_security_hardening.py(10 tests) + updated pin/classification/workflow tests. Fast suite: 380 passed.Merge prerequisites (do NOT merge until these are true)
APP_ID/APP_PRIVATE_KEYcreated and scoped to this repo + the 7 fleet repos. Until then the changelog workflow'screate-github-app-tokenstep will red — expected on this PR.Deferred / follow-up
Needs real-CI confirmation
Publish restructure end-to-end, gitleaks binary
v8.24.3,cyclonedx-pyinvocation, and the@v1.13.0/create-github-app-token@v2/download-artifact@v7pins are best-effort correct; Renovate will correct any pin that's slightly off.