TUFie is a TUF (The Update Framework) command-line client. The TUFie simplifies the client's high-level usage without building a client from scratch.
This client allows simple use cases such as downloading an artifact from an existent TUF Repository or scripting and CI/CD.
$ tufie download v1.0.3/demo_package-1.0.3.tar.gz
Artifact v1.0.3/demo_package-1.0.3.tar.gz donwload completed.
brew install kairoaraujo/tap/tufie
winget install tufie
Download the Binary
Download from the releases page or use the install script to download the latest release.
bash <(curl -s https://raw.githubusercontent.com/kairoaraujo/tufie/main/install.sh)
TUFie has a simple interface
$ tufie download v1.0.3/demo_package-1.0.3.tar.gz
Artifact v1.0.3/demo_package-1.0.3.tar.gz donwload completed.
TUFie supports multiple repositories
$ tufie repository -h
Manage TUF repository configurations
Usage:
tufie repository [REPOSITORY NAME] [flags]
tufie repository [command]
Available Commands:
add Add a new repository
list List all repositories
remove Remove a repository
set Set the default repository
Usage:
tufie repository add [flags]
Flags:
--artifact-hash add hash prefix to artifact [default: false]
-a, --artifact-url string content artifact base URL
-d, --default set repository as default
-h, --help help for add
-m, --metadata-url string metadata URL
-n, --name string repository name
-r, --root string trusted Root metadata
$ tufie repository add --default --artifact-url https://rubygems.org --metadata-url https://metadata.rubygems.org --root rubygems-root.json --name rubygems
Config file used for tuf: /Users/kairoaraujo/.tufie/config.yml
Repository 'rubygems' added.
$ tufie repository list
Config file used for tuf: /Users/kairoaraujo/.tufie/config.yml
Default repository: rubygems.org
Repository: rstuf
Artifact Base URL: https://github.com/kairoaraujo/demo-package/releases/download/
Metadata Base URL: https://metadata.dev.rstuf.org
Repository: rubygems
Artifact Base URL: https://rubygems.org
Metadata Base URL: https://metadata.rubygems.org
$ tufie repository set rstuf
Config file used for tuf: /Users/kairoaraujo/.tufie/config.yml
Updated default repository to 'rstuf'.
Fork the repository on GitHub and clone it to your local machine:
git clone [email protected]:YOUR-USERNAME/tufie.git
Add a remote and regularly sync to make sure you stay up-to-date with our repository:
git remote add upstream https://github.com/kairoaraujo/tufie
git checkout main
git fetch upstream
git merge upstream/main
Install Go
go mod tidy
make test
Install golangci-lint
make lint