Godyl
Asset downloader for GitHub releases, GitLab release, URLs, and Go projects.
Get started now View it on GitHub
What is Godyl?
godyl
aims to help with batch-downloading from:
- GitHub releases
- GitLab releases
- URLs
- Go projects
Furthermore, custom commands can be used.
godyl
uses simple heuristics to select the correct binary to download, matching the current platform and architecture.
Most properties can be overridden, with hints
and skip
used to help the tool make the correct decision.
godyl
has been tested on:
- Linux:
amd64
,arm64
- Windows:
amd64
- MacOS:
arm64
for the tools listed in the default tools.yml file.
Note: You’ll have a very short journey with this tool without a GitHub API token. To avoid rate limiting when using
github
as a source type, set up an API token and use it with the--github-token
flag or theGODYL_GITHUB_TOKEN
environment variable. See Authentication for more details.
Tool is inspired by task, dra and ansible
Getting Started
Quick Installation
curl -sSL https://raw.githubusercontent.com/idelchi/godyl/refs/heads/dev/install.sh | sh -s -- -d ~/.local/bin
Basic Usage
Export the GODYL_GITHUB_TOKEN
environment variable with your GitHub API token:
export GODYL_GITHUB_TOKEN=<your_github_token>
Download (and extract) a single tool:
godyl download idelchi/godyl
Create a tools.yml
file to define multiple tools:
- name: syncthing/syncthing
tags:
- sync
- name: helm/helm
url: https://get.helm.sh/helm-{{ .Version }}-{{ .OS }}-{{ .ARCH }}.tar.gz
tags:
- kubernetes
Then install them all at once:
godyl install tools.yml
To periodically update/sync, run above command with the --strategy
flag:
godyl install tools.yml --strategy=sync
to bring down the latest version, if the current one is out of date.
For a sample, see tools.yml or run godyl dump tools -e > tools.yml
to inspect the default configuration.
Note: Tool is currently in development, and the code-base is rather chaotic, until it is cleaned up.