tend check reports one FAIL on diffplug/dormouse. It needs repository-admin access, which the CI bot does not hold.
immutable-releases (FAIL): the newest release (v1.1.0) can be rewritten — a write-access account or bot can replace its assets. gh api repos/diffplug/dormouse --jq .immutable_releases returns null, so the setting has never been enabled. Fix is tend check --fix run by an admin (or Settings → General → "Immutable releases"). GitHub applies the setting only to releases published after it is enabled, so enabling it clears this check at the next release rather than retroactively for v1.1.0.
Every other check passes: branch-protection:main, bot-permission, tag-protection, environment, environment-deployments, credential-environments, secrets, claude-auth, repo-secret-allowlist. The credential-environments FAIL tracked in #339 is cleared.
Why this is not already covered by the release pipeline
.github/workflows/release.yml attests build provenance for the standalone and VS Code artifacts, which lets a consumer detect a substituted asset. Immutable releases is the complementary control: it stops the substitution at the API, so the attestation is not the only thing standing between a compromised write-access token and a rewritten v1.1.0 download. Tag rewriting is already blocked by the Tag operations ruleset (creation + update across ~ALL, bot bypass never); release assets are the remaining mutable surface on a published release.
docs/specs/security-ci.md does not currently mention the setting. Worth adding a row there once it is enabled, so the guarantee is stated where the audit reads it.
Last refreshed: 2026-09-19
tend checkreports one FAIL ondiffplug/dormouse. It needs repository-admin access, which the CI bot does not hold.immutable-releases(FAIL): the newest release (v1.1.0) can be rewritten — a write-access account or bot can replace its assets.gh api repos/diffplug/dormouse --jq .immutable_releasesreturnsnull, so the setting has never been enabled. Fix istend check --fixrun by an admin (or Settings → General → "Immutable releases"). GitHub applies the setting only to releases published after it is enabled, so enabling it clears this check at the next release rather than retroactively forv1.1.0.Every other check passes:
branch-protection:main,bot-permission,tag-protection,environment,environment-deployments,credential-environments,secrets,claude-auth,repo-secret-allowlist. Thecredential-environmentsFAIL tracked in #339 is cleared.Why this is not already covered by the release pipeline
.github/workflows/release.ymlattests build provenance for the standalone and VS Code artifacts, which lets a consumer detect a substituted asset. Immutable releases is the complementary control: it stops the substitution at the API, so the attestation is not the only thing standing between a compromised write-access token and a rewrittenv1.1.0download. Tag rewriting is already blocked by theTag operationsruleset (creation+updateacross~ALL, bot bypassnever); release assets are the remaining mutable surface on a published release.docs/specs/security-ci.mddoes not currently mention the setting. Worth adding a row there once it is enabled, so the guarantee is stated where the audit reads it.Last refreshed: 2026-09-19