Release via GitHub REST API (drop the gh binary); trim README#8
Merged
Conversation
Create the release and upload both spec assets through api.github.com using the installation token the producer's CI already mints, so the publish job needs no gh binary (and no checksum-verified tarball install). GITHUB_API_URL is overridable for GitHub Enterprise and tests. main() exits explicitly once settled so fetch's keep-alive socket pool can't keep the process alive.
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
publish.tsnow creates the release and uploads both spec assets (openapi.json,openapi.yaml) through the GitHub REST API, using the installation token the producer's CI already mints. The producer's publish job no longer needs theghCLI, so its checksum-verified tarball install andGH_VERpin go away (separate platform-api MR).GITHUB_API_URLis overridable (GitHub Enterprise / tests); default unchanged.main()exits explicitly once settled, so fetch's keep-alive socket pool can't hold the event loop open after a publish.Verification
Typecheck + unit tests green. The full publish flow (changed / unchanged / stale) was exercised end-to-end against a mock GitHub API and a local git remote: release create, two asset uploads with templates stripped and octet-stream bodies, Bearer auth on every call, changelog prepend, commit + push, idempotent no-op, and stale skip. That simulation caught and fixed the keep-alive hang noted above.
No change to the published spec or release tag scheme; consumers are unaffected.