A command line tool to download release assets from GitHub.
Why should I use dra? • Installation • Usage • License
You can do everything dra
does with the official GitHub cli.
dra
helps you download release assets more easily:
- no authentication for public repository (you cannot use
gh
without authentication) - Built-in generation of pattern to select an asset to download
(with
gh
you need to provide glob pattern that you need to create manually).
dra
is available on Linux, macOS and Windows.
It's also available on linux for armv6
and arm64
.
Download the prebuilt versions of dra
for supported platforms from the latest release.
Download the latest .deb
package from the release page and
install it via:
sudo dpkg -i dra_x.y.z_amd64.deb # adapt version number
Arch Linux users can install dra
from the community repository using pacman:
pacman -S dra
git clone https://github.com/devmatteini/dra && cd dra
make release
./target/release/dra --version
In order to download assets from private repositories (and avoid rate limit issues) export an environment variable GITHUB_TOKEN=<token>
.
Follow the official guide to create
a personal access token.
The minimum set of scopes needed is: Full control of private repositories
.
Select and download an asset from a repository
$ dra download devmatteini/dra-tests
Select and download an asset to custom path
$ dra download --output /tmp/dra-example devmatteini/dra-tests
Select and download an asset from a specific release
$ dra download --tag 0.1.1 devmatteini/dra-tests
Select and download source code archives
$ dra download devmatteini/dra-tests
Release tag is 0.1.5
? Pick the asset to download ›
helloworld_0.1.5.tar.gz
❯ Source code (tar.gz)
Source code (zip)
Download and install an asset (on both interactive and non-interactive modes)
$ dra download --install devmatteini/dra-tests
Supported assets that can be installed are:
- Debian packages (
.deb
) - Tar archive with executable (
.tar.[gz|bz2|xz]
,.tgz
) - Zip file with executable (
.zip
)
This mode is useful to be used in automated scripts.
First you need to generate an untagged asset name:
$ dra untag devmatteini/dra-tests
helloworld_{tag}.tar.gz
Copy the output and run:
$ dra download --select "helloworld_{tag}.tar.gz" devmatteini/dra-tests
This last command can be used in automated scripts without human interaction.
Generate shell completion
$ dra completion bash > dra-completion
$ source dra-completion
See all supported shell with dra completion -h
For more information on args/flags/options/commands run:
$ dra --help
$ dra <command> --help
Take a look at the CONTRIBUTING.md guide.
dra
is made available under the terms of the MIT License.
See the LICENSE file for license details.