Repository navigation
Conversation
|
|
marckong
force-pushed
the
marckong/auto-pin-openapi-digest
branch
from
October 16, 2026 19:07
f9f824c to
e09d8f8
Compare
The bundled-contract spec hardcoded the SHA-256 of openapi/openapi.yaml, so every automated contract sync failed CI until someone bumped it by hand, and the sync bot's force-rebuilt branch dropped any such bump. Have bin/generate-openapi write the digest to openapi/openapi.yaml.sha256, which the sync already runs and commits, and read it in the spec. check-openapi now also verifies the file, so editing the contract without regenerating still fails. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
marckong
force-pushed
the
marckong/auto-pin-openapi-digest
branch
from
October 20, 2026 03:33
e09d8f8 to
8048246
Compare
This branch has not been deployed
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.
Tracking
None. Unblocks #5 and future automated contract syncs.
Why
spec/volcano_generation_spec.rbhardcoded the SHA-256 ofopenapi/openapi.yaml. The Volcano sync (volcano-hosting/scripts/ci/prepare-openapi-consumer-container.sh) copies the contract and runsbin/generate-openapiandbin/check-openapi, but nothing updated the pin, so #5 fails Ruby 3.3/3.4 tests and the Quality Gate. A hand-pushed bump to the sync branch was overwritten within seconds when the bot force-rebuilt it.Summary
bin/generate-openapiwrites the contract digest toopenapi/openapi.yaml.sha256when generating the committed output (not for the temporary check output).bin/check-openapialso fails if the file is stale, so changing the contract without regenerating still fails CI.CONTRIBUTING.mdnotes the new file. Initial value is the currentmaindigest (d8d8f53d…), so this PR changes no behavior by itself.Tradeoff: the digest is no longer an independent hand-edit that forces a person to acknowledge a contract change. The diff of the vendored spec in the sync PR and its AI/human review remain that gate.
Verification
bash -npasses for both scripts, and the digest in the new file matchesopenapi/openapi.yamlonmain.openapi/openapi.yaml.sha256itself; chore(api): sync OpenAPI contract #5 would need to be rebuilt by the bot to pick it up.🤖 Generated with Claude Code