NK-WP-0048-T06: write the Forgejo reference case (accepted)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

security-cases/forgejo-netkingdom-oidc.yaml carries the founder's 2026-10-08
acceptance of the key-cape request; validates and renders plan-only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 469893@bnt-lap001
Assistant-Session: 49296f15-2171-4137-b972-2443bab95edb
This commit is contained in:
tegwick 2026-10-09 12:26:17 +02:00
parent 44c74b8798
commit 922f1ee041
3 changed files with 56 additions and 0 deletions

View file

@ -161,3 +161,13 @@ def test_public_client_without_mfa_skips_delivery_and_mfa_checks():
_, r = v.render_case(PUBLIC, as_implemented(), DECLS)
checks = {c["id"] for c in r["verification"]}
assert not {"secret-delivered", "mfa-pinned"} & checks
def test_forgejo_reference_case_is_accepted_and_matches_the_example():
# The live reference case (NK-WP-0048-T06) is the example plus its acceptance.
case = yaml.safe_load((REPO / "security-cases" / "forgejo-netkingdom-oidc.yaml").read_text())
assert case["spec"]["parameters"] == FORGEJO["spec"]["parameters"]
assert case["spec"]["status"] == "accepted"
assert {b["role"] for b in case["spec"]["acceptance"]["by"]} == {"owner", "founder"}
assert msgs(v.validate_case(case, TYPE, require_implemented=False)) == []
assert msgs(v.validate_case(case, as_implemented())) == []