Skip to content

fix: retry install.sh's curl downloads on transient connection failures - #94

Merged
bougyman merged 1 commit into
mainfrom
fix-install-sh-curl-retry
Aug 12, 2026
Merged

fix: retry install.sh's curl downloads on transient connection failures#94
bougyman merged 1 commit into
mainfrom
fix-install-sh-curl-retry

Conversation

@bougyman

Copy link
Copy Markdown
Member

Summary

  • 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.
  • 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.

Test plan

  • Reproduced the original failure directly (ran the exact failing curl command repeatedly until it hit the transient 503/connection-death)
  • Confirmed plain --retry 5 alone still failed the same way
  • Confirmed --retry 5 --retry-all-errors together resolves it - ran a real end-to-end install.sh afterward, installed successfully, lc --version reports the correct latest release
  • bash -n syntax check on both install.sh/uninstall.sh

🤖 Generated with Claude Code

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.
Copilot AI lite review requested due to automatic review settings August 12, 2026 20:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-errors to install.sh curl downloads for the tarball and SHA256SUMS.
  • Update README download examples and the curl | bash one-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 | bash one-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.

Comment thread Readme.adoc
Comment thread install.sh
@bougyman
bougyman merged commit c4633a2 into main Aug 12, 2026
3 checks passed
@bougyman
bougyman deleted the fix-install-sh-curl-retry branch August 12, 2026 20:53
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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants