gor-cli 0.1.0

A Rust CLI for GitHub — a 'gh' clone
Documentation
---
tags: [release, read]
priority: P1
phase: 1
endpoints:
  - GET /repos/{owner}/{repo}/releases/assets/{id}
  - GET /repos/{owner}/{repo}/releases/tags/{tag}
status: done
blockedBy: [release-view]
blocks: []
---

# Release Download

## As a

developer who wants the binaries or files attached to a release

## I want

to download release assets from a specific release

## Acceptance criteria

1. Running `gor release download v1.0.0` downloads all assets from the release for that tag
2. Running `gor release download 12345` downloads all assets from the release by database ID
3. `--repo` / `-R` flag specifies the repository explicitly
4. `--hostname` flag targets a specific host
5. `--pattern` flag filters assets to download by glob pattern (e.g., `*.tar.gz`), repeatable
6. `--dir` / `-D` flag sets the output directory (default: current directory)
7. `--skip-existing` flag skips assets whose file already exists in the output directory
8. A progress bar is displayed for each asset during download
9. The downloaded file paths are printed on success
10. If no assets match the `--pattern`, a message is shown and the command exits non-zero

## Out of scope

- Uploading assets (see release-upload.md)
- Downloading the release source archive (use `gor repo download` or `gor api`)
- Resuming interrupted downloads