kubo/.github
Marcin Rataj 706aab385b feat: add built-in ipfs update command
adds `ipfs update` command tree that downloads pre-built Kubo binaries
from GitHub Releases, verifies SHA-512 checksums, and replaces the
running binary in place.

subcommands:

- `ipfs update check` -- query GitHub for newer versions
- `ipfs update versions` -- list available releases
- `ipfs update install [version]` -- download, verify, backup, and
  atomically replace the current binary
- `ipfs update revert` -- restore the previously backed up binary
  from `$IPFS_PATH/old-bin/`

read-only subcommands (check, versions) work while the daemon is
running. install and revert require the daemon to be stopped first.

design decisions:

- uses GitHub Releases API instead of dist.ipfs.tech because GitHub
  is harder to censor in regions that block IPFS infrastructure
- honors GITHUB_TOKEN/GH_TOKEN to avoid unauthenticated rate limits
- backs up the current binary before replacing, with permission-error
  fallback that saves to a temp dir with manual `sudo mv` instructions
- `KUBO_UPDATE_GITHUB_URL` env var redirects API calls for integration
  testing; `IPFS_VERSION_FAKE` overrides the reported version
- unit tests use mock HTTP servers and the var override; CLI tests use
  the env vars with a temp binary copy so the real build is never
  touched

resolves https://github.com/ipfs/kubo/issues/10937
2026-02-16 19:41:29 +01:00
..
ISSUE_TEMPLATE chore: triage label for feature requests 2025-06-09 14:17:59 +02:00
workflows feat: add built-in ipfs update command 2026-02-16 19:41:29 +01:00
auto-comment.yml PR autocomment: Only comment for first-time contributors 2020-05-04 10:55:49 +02:00
build-platforms.yml refactor(ci): optimize build workflows (#10973) 2025-09-19 14:44:38 +02:00
CODEOWNERS chore: set kubo-maintainers as default code owners (#9808) 2023-04-10 03:59:40 -07:00
dependabot.yml chore(deps): ignore datastore backends in dependabot (#11169) 2026-01-24 01:32:56 +01:00
FUNDING.yml chore: create FUNDING.yml 2024-03-04 13:36:09 +01:00
pull_request_template.md ci: add changelog update checker workflow [skip changelog] (#10002) 2023-07-06 08:13:27 +02:00