Conversation
… version lookup crates.io API requires a User-Agent header and returns 403 without one. The missing header caused the version check to always evaluate to already_published=false (403 fell into the else branch), so the publish step would always run even for already-published versions. Now only HTTP 200 maps to already_published=true, only 404 maps to already_published=false, and any other status code fails the job to prevent silent misbehavior.
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.
Summary
User-Agentheader — without it, the API returns403instead of200/404403to fall into theelsebranch, always settingalready_published=falseChanges
-H "User-Agent: github-actions/publish-crates-io"to thecurlrequest404check for "not yet published" instead of a catch-allelse403,500) now fails the job with a clear error messageTest plan
wlgen-rsversions:0.2.1→200(already published) ✅0.2.2→200(already published) ✅0.2.3→404(not yet published) ✅