From 5e8527d8c17ace2221e92e4158f35f9b9b15b77d Mon Sep 17 00:00:00 2001 From: abrichr Date: Thu, 3 Sep 2026 16:38:48 -0400 Subject: [PATCH] fix: pin production lifecycle to until-revoked policy rev 7 Re-render the public projection from OpenAdaptAI/.github 9b613917 (squash of .github#37). Policy revision 7 is until-revoked. expires_at JSON null stays the live window. --- docs/production-lifecycle.json | 32 +++++++++++------------ production-lifecycle-source.json | 30 ++++++++++----------- tests/test_production_lifecycle_policy.py | 2 +- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/docs/production-lifecycle.json b/docs/production-lifecycle.json index 251e718..41f3e40 100644 --- a/docs/production-lifecycle.json +++ b/docs/production-lifecycle.json @@ -7,69 +7,69 @@ "static_production_state": false }, "maximum_admission_days": 30, - "policy_revision": 5, + "policy_revision": 7, "schema_version": "openadapt.public-production-lifecycle/v1", "source": { "files": { "admissions": { "path": "production-lifecycle-admissions.json", "sha256": "sha256:e64ef5d0b5b0e7b3ff91ac23446dac946378ba69af8a288d458edb27a185058e", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/production-lifecycle-admissions.json" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/production-lifecycle-admissions.json" }, "admissions_schema": { "path": "schemas/production-lifecycle-admissions.schema.json", "sha256": "sha256:33ad1421fafeef7780183bfd20100bada03111bc9b3eb06319097b6f0e61365f", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-admissions.schema.json" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-admissions.schema.json" }, "evidence_manifest_schema": { "path": "schemas/production-lifecycle-evidence-manifest.schema.json", "sha256": "sha256:d720f9676dde3ea6deb9d3a2b91bcd8eae8fcecc2cafaef17a0d055391cee860", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-evidence-manifest.schema.json" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-evidence-manifest.schema.json" }, "evidence_registry": { "path": "evidence-registry.json", "sha256": "sha256:3d2e069c1b7ec3fce828d923bc79f94aeb6a25c01f3b201dbed65b099713c585", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/evidence-registry.json" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/evidence-registry.json" }, "evidence_registry_schema": { "path": "schemas/evidence-registry.schema.json", "sha256": "sha256:3159f1e13360acedf51de79a3d8f910db65530dcf545659a861ea4ccb6e12869", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/evidence-registry.schema.json" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/evidence-registry.schema.json" }, "evidence_registry_validator": { "path": "scripts/validate_evidence_registry.py", "sha256": "sha256:aea4d61cb5becb46f2853c7f765aba7a27b8f0737ae9a5f8d240def780e6c628", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/scripts/validate_evidence_registry.py" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/scripts/validate_evidence_registry.py" }, "evidence_summary_schema": { "path": "schemas/production-lifecycle-evidence-summary.schema.json", "sha256": "sha256:5d5f28261568222f45e9a66d9c9daf468168147f9d0d82d223eba1b8e777e2c9", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-evidence-summary.schema.json" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-evidence-summary.schema.json" }, "lifecycle": { "path": "repository-lifecycle.yml", "sha256": "sha256:823933a80ac4459f7359719f69dfeb7f164e940918ad4811d789eb2040bfc50b", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/repository-lifecycle.yml" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/repository-lifecycle.yml" }, "policy": { "path": "production-lifecycle-policy.json", - "sha256": "sha256:127bf64f7c579c56a604854f178a166590e9747c33cd62e4a0ff1a6adb821880", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/production-lifecycle-policy.json" + "sha256": "sha256:1887a1222f5c34a6bd3e2a03f8aa2b55368c66bb9e6cad109a0c5c1ed0b5c524", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/production-lifecycle-policy.json" }, "policy_schema": { "path": "schemas/production-lifecycle-policy.schema.json", - "sha256": "sha256:940095602ec772ddc14951f0403a20ed8560f42339156f1f7bb8878ff5afa419", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-policy.schema.json" + "sha256": "sha256:c5d3157a7be841351b39f3ec8a8f6433de6d16b85ae0b1c61800d2c052aaa734", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-policy.schema.json" }, "validator": { "path": "scripts/validate_production_lifecycle.py", - "sha256": "sha256:1a2ac5821ab6228cdb9a654fb838f6d3116c173dfd583b36ed822d9e4b9d6977", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/scripts/validate_production_lifecycle.py" + "sha256": "sha256:77e583d8baed30938268b8c3c4f34e4634acf7ba5b82dc9d58b1f0f4527ea3cb", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/scripts/validate_production_lifecycle.py" } }, "repository": "OpenAdaptAI/.github", "schema_version": "openadapt.production-lifecycle-source/v1", - "source_commit": "fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6" + "source_commit": "9b61391713203998e584f4834e4812bb41b40f6e" }, "targets": [ { diff --git a/production-lifecycle-source.json b/production-lifecycle-source.json index a2de604..2dff74f 100644 --- a/production-lifecycle-source.json +++ b/production-lifecycle-source.json @@ -1,62 +1,62 @@ { "schema_version": "openadapt.production-lifecycle-source/v1", "repository": "OpenAdaptAI/.github", - "source_commit": "fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6", + "source_commit": "9b61391713203998e584f4834e4812bb41b40f6e", "files": { "admissions": { "path": "production-lifecycle-admissions.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/production-lifecycle-admissions.json", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/production-lifecycle-admissions.json", "sha256": "sha256:e64ef5d0b5b0e7b3ff91ac23446dac946378ba69af8a288d458edb27a185058e" }, "admissions_schema": { "path": "schemas/production-lifecycle-admissions.schema.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-admissions.schema.json", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-admissions.schema.json", "sha256": "sha256:33ad1421fafeef7780183bfd20100bada03111bc9b3eb06319097b6f0e61365f" }, "evidence_manifest_schema": { "path": "schemas/production-lifecycle-evidence-manifest.schema.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-evidence-manifest.schema.json", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-evidence-manifest.schema.json", "sha256": "sha256:d720f9676dde3ea6deb9d3a2b91bcd8eae8fcecc2cafaef17a0d055391cee860" }, "evidence_registry": { "path": "evidence-registry.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/evidence-registry.json", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/evidence-registry.json", "sha256": "sha256:3d2e069c1b7ec3fce828d923bc79f94aeb6a25c01f3b201dbed65b099713c585" }, "evidence_registry_schema": { "path": "schemas/evidence-registry.schema.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/evidence-registry.schema.json", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/evidence-registry.schema.json", "sha256": "sha256:3159f1e13360acedf51de79a3d8f910db65530dcf545659a861ea4ccb6e12869" }, "evidence_registry_validator": { "path": "scripts/validate_evidence_registry.py", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/scripts/validate_evidence_registry.py", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/scripts/validate_evidence_registry.py", "sha256": "sha256:aea4d61cb5becb46f2853c7f765aba7a27b8f0737ae9a5f8d240def780e6c628" }, "evidence_summary_schema": { "path": "schemas/production-lifecycle-evidence-summary.schema.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-evidence-summary.schema.json", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-evidence-summary.schema.json", "sha256": "sha256:5d5f28261568222f45e9a66d9c9daf468168147f9d0d82d223eba1b8e777e2c9" }, "lifecycle": { "path": "repository-lifecycle.yml", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/repository-lifecycle.yml", + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/repository-lifecycle.yml", "sha256": "sha256:823933a80ac4459f7359719f69dfeb7f164e940918ad4811d789eb2040bfc50b" }, "policy": { "path": "production-lifecycle-policy.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/production-lifecycle-policy.json", - "sha256": "sha256:127bf64f7c579c56a604854f178a166590e9747c33cd62e4a0ff1a6adb821880" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/production-lifecycle-policy.json", + "sha256": "sha256:1887a1222f5c34a6bd3e2a03f8aa2b55368c66bb9e6cad109a0c5c1ed0b5c524" }, "policy_schema": { "path": "schemas/production-lifecycle-policy.schema.json", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/schemas/production-lifecycle-policy.schema.json", - "sha256": "sha256:940095602ec772ddc14951f0403a20ed8560f42339156f1f7bb8878ff5afa419" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/schemas/production-lifecycle-policy.schema.json", + "sha256": "sha256:c5d3157a7be841351b39f3ec8a8f6433de6d16b85ae0b1c61800d2c052aaa734" }, "validator": { "path": "scripts/validate_production_lifecycle.py", - "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/fe51c2cdeb0e0de865f3cd6c10738bd581b8d1a6/scripts/validate_production_lifecycle.py", - "sha256": "sha256:1a2ac5821ab6228cdb9a654fb838f6d3116c173dfd583b36ed822d9e4b9d6977" + "url": "https://raw.githubusercontent.com/OpenAdaptAI/.github/9b61391713203998e584f4834e4812bb41b40f6e/scripts/validate_production_lifecycle.py", + "sha256": "sha256:77e583d8baed30938268b8c3c4f34e4634acf7ba5b82dc9d58b1f0f4527ea3cb" } } } diff --git a/tests/test_production_lifecycle_policy.py b/tests/test_production_lifecycle_policy.py index 136e65c..b1c9bf0 100644 --- a/tests/test_production_lifecycle_policy.py +++ b/tests/test_production_lifecycle_policy.py @@ -132,7 +132,7 @@ def test_committed_projection_admits_all_seven_and_is_schema_bound(self) -> None (ROOT / "production-lifecycle-source.json").read_text(encoding="utf-8") ) self.assertEqual(output["source"], source) - self.assertEqual(output["policy_revision"], 5) + self.assertEqual(output["policy_revision"], 7) self.assertEqual(len(output["targets"]), 7) by_id = {target["id"]: target for target in output["targets"]} expected_versions = {