fix: retry install.sh's curl downloads on transient connection failures - #94
Merged
Conversation
GitHub's release-download redirect chain occasionally drops the connection outright mid-stream (curl: (56) Connection died) - reproduced directly from two different networks, confirming it's server-side flakiness, not local. Plain --retry alone doesn't cover this specific error (it's outside curl's default retriable set) - only succeeded once --retry-all-errors was added too, verified by re-running the actual failing download repeatedly until it reproduced, then confirming the fix resolves it. Also updates Readme.adoc's documented curl commands (the manual "Download a release binary" steps, and both install.sh/uninstall.sh curl-pipe one-liners) to match.
There was a problem hiding this comment.
Pull request overview
This PR hardens the release-asset download path (used by install.sh and documented in Readme.adoc) against transient GitHub download/redirect failures by adding curl retry behavior.
Changes:
- Add
--retry 5 --retry-all-errorstoinstall.shcurl downloads for the tarball andSHA256SUMS. - Update README download examples and the
curl | bashone-liners to match the new curl retry flags.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| Readme.adoc | Updates documented curl commands to include retries for flaky GitHub downloads. |
| install.sh | Adds curl retry flags to make the installer more resilient to transient network/server errors. |
Suppressed comments (1)
Readme.adoc:100
- The
curl | bashone-liner now includes--retry-all-errors, which will fail on older curl versions with an "unknown option" error before the script can run. Add a brief note about the minimum curl version / dropping that flag if unsupported.
$ curl --retry 5 --retry-all-errors -fsSL https://raw.githubusercontent.com/rubyists/linear-cli/main/install.sh | bash
----
Detects your platform, downloads and checksum-verifies the matching release
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Aug 12, 2026
bougyman
pushed a commit
that referenced
this pull request
Aug 12, 2026
🤖 I have created a release *beep* *boop* --- ## [1.4.0](v1.3.0...v1.4.0) (2026-08-12) ### Features * bump the homebrew-tap formula automatically after each release ([#95](#95)) ([d13ddf4](d13ddf4)) ### Bug Fixes * retry install.sh's curl downloads on transient connection failures ([#94](#94)) ([c4633a2](c4633a2)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
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
curl: (56) Connection died) - reproduced directly from two different networks, confirming it's server-side flakiness, not local.--retryalone doesn't cover this specific error (it's outside curl's default retriable set) - only succeeded once--retry-all-errorswas added too.Readme.adoc's documented curl commands (the manual "Download a release binary" steps, and bothinstall.sh/uninstall.shcurl-pipe one-liners) to match.Test plan
--retry 5alone still failed the same way--retry 5 --retry-all-errorstogether resolves it - ran a real end-to-endinstall.shafterward, installed successfully,lc --versionreports the correct latest releasebash -nsyntax check on bothinstall.sh/uninstall.sh🤖 Generated with Claude Code