ci: pin the Speakeasy CLI to 1.795.1 - #16
Closed
laurencemcknight wants to merge 1 commit into
Closed
Conversation
CLI 1.795.2 bumped speakeasy-client-sdk-go to v3.27.0, which regenerated artifacts.go with auth stripped from every Artifacts.* method: SecuritySource is nil and the PopulateSecurity call is gone (11 call sites in v3.26.7, 0 in v3.27.0), while auth.go and codesamples.go kept theirs. The generation action runs `speakeasy tag promote -c <target> -t main,published` to tag the code-samples image, which goes through Artifacts.PostTags, so it reaches the registry with no bearer token and gets a 403 -- failing generation after the regenerated SDK has already been committed and tagged, and skipping publish. 1.795.1 is the last release on the working client SDK. This only affects the action's own CLI calls; generation itself already uses the speakeasyVersion pinned in .speakeasy/workflow.yaml. Unpin once upstream fixes it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Author
|
Closing unmerged — the Moot regardless: Speakeasy shipped v1.795.3 at 16:00Z reverting the break (speakeasy-api/speakeasy#2120, 'revert: bump speakeasy-core/client-sdk-go (#2117) — restores registry auth'), back on client-sdk-go v3.26.7. Unpinned |
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.
Why
The
monorepo-releasedispatch forpaygentic-v21.3.0failed here after generation had already succeeded:Speakeasy CLI 1.795.2 (released 2026-08-24 13:29Z) bumped
speakeasy-client-sdk-goto v3.27.0, which regeneratedartifacts.gowith auth stripped from everyArtifacts.*method —SecuritySourceisniland theutils.PopulateSecuritycall is gone.PopulateSecuritycall sites: 11 in v3.26.7, 0 in v3.27.0, whileauth.go(3) andcodesamples.go(4) kept theirs, so this is a regression rather than a deliberate redesign.speakeasy tag promotereaches the registry throughArtifacts.PostTags, so it now sends noAuthorizationheader and the registry rejects it.Upstream cause is speakeasy-client-sdk-go#50: that regen restores top-level
securityvia an overlay, but its own comment notes operations declaringsecurity: []keep that override — which the registry's artifact endpoints do. Verification there wasgo build/go vet/apidiff, none of which catch a client that silently omits an auth header. No upstream issue or fix is open as of this PR.The blast radius is why this is worth pinning rather than waiting: it breaks
tag promotefor every consumer onlatest, including Speakeasy's own generation action.What
Pin
speakeasy_version: "1.795.1"— the last release on the working client SDK (v3.26.7).This only affects the action's own CLI invocations. Generation itself already uses the
speakeasyVersionpinned in.speakeasy/workflow.yaml, so generated output is unchanged by this PR.Impact of the failed run
Generation had already committed the regenerated SDK to
mainand pushed its version tag before the registry tagging failed, so the publish jobs were skipped and the tagged version never reached the package registry. A plain re-run will no-op —gen.lockis already current, so there is no diff left to trigger generation. After merging this, the recovery run needsforce=true, which bumps and publishes the next patch version. The already-pushed tag stays as a git tag that never shipped.Unpinning
Drop the pin once upstream ships a fix. Until then
latestis broken for this step.