Installing
IMPORTANT NOTE: go-swagger
is a tool to mainly generate or analyze source code. In order to make it work after successful
installation, see the prerequisites on your development environment.
Installing from binary distributions
go-swagger releases are distributed as binaries that are built from signed tags. It is published as github release, rpm, deb and docker image.
Docker image 
First grab the image:
docker pull quay.io/goswagger/swagger
For Mac And Linux users:
alias swagger='docker run --rm -it --user $(id -u):$(id -g) -e GOPATH=$(go env GOPATH):/go -v $HOME:$HOME -w $(pwd) quay.io/goswagger/swagger'
swagger version
For windows users:
docker run --rm -it --env GOPATH=/go -v %CD%:/go/src -w /go/src quay.io/goswagger/swagger
You can put the following in a file called swagger.bat and include it in your path environment variable to act as an alias.
@echo off
echo.
docker run --rm -it --env GOPATH=/go -v %CD%:/go/src -w /go/src quay.io/goswagger/swagger %*
Homebrew/Linuxbrew
brew tap go-swagger/go-swagger
brew install go-swagger
Static binary
You can download a binary for your platform from github: https://github.com/go-swagger/go-swagger/releases/latest
download_url=$(curl -s https://api.github.com/repos/go-swagger/go-swagger/releases/latest | \
jq -r '.assets[] | select(.name | contains("'"$(uname | tr '[:upper:]' '[:lower:]')"'_amd64")) | .browser_download_url')
curl -o /usr/local/bin/swagger -L'#' "$download_url"
chmod +x /usr/local/bin/swagger
Debian packages 
This repo will work for any debian, the only file it contains gets copied to /usr/bin
without sudo:
apt update
apt install -y apt-transport-https gnupg curl
curl -1sLf 'https://dl.cloudsmith.io/public/go-swagger/go-swagger/gpg.2F8CB673971B5C9E.key' | apt-key add -
curl -1sLf 'https://dl.cloudsmith.io/public/go-swagger/go-swagger/config.deb.txt?distro=debian&codename=any-version' > /etc/apt/sources.list.d/go-swagger-go-swagger.list
apt update
apt install swagger
with sudo:
sudo apt update
sudo apt install -y apt-transport-https gnupg curl
curl -1sLf 'https://dl.cloudsmith.io/public/go-swagger/go-swagger/gpg.2F8CB673971B5C9E.key' | sudo apt-key add -
curl -1sLf 'https://dl.cloudsmith.io/public/go-swagger/go-swagger/config.deb.txt?distro=debian&codename=any-version' | sudo tee /etc/apt/sources.list.d/go-swagger-go-swagger.list
sudo apt update
sudo apt install swagger
RPM packages 
This repo should work on any distro that wants rpm packages, the only file it contains gets copied to /usr/bin
dnf install -y yum-utils
rpm --import 'https://dl.cloudsmith.io/public/go-swagger/go-swagger/gpg.2F8CB673971B5C9E.key'
curl -1sLf 'https://dl.cloudsmith.io/public/go-swagger/go-swagger/config.rpm.txt?distro=fedora&codename=any-version' > /tmp/go-swagger-go-swagger.repo
dnf config-manager --add-repo '/tmp/go-swagger-go-swagger.repo'
dnf -q makecache -y --disablerepo='*' --enablerepo='go-swagger-go-swagger' --enablerepo='go-swagger-go-swagger-source'
dnf install -y swagger
Installing from source
Install or update from current source master:
dir=$(mktemp -d)
git clone https://github.com/go-swagger/go-swagger "$dir"
cd "$dir"
go install ./cmd/swagger
To install a specific version from source an appropriate tag needs to be checked out first (e.g. v0.25.0
). Additional -ldflags
are just to make swagger version
command print the version and commit id instead of dev
.
dir=$(mktemp -d)
git clone https://github.com/go-swagger/go-swagger "$dir"
cd "$dir"
git checkout v0.25.0
go install -ldflags "-X github.com/go-swagger/go-swagger/cmd/swagger/commands.Version=$(git describe --tags) -X github.com/go-swagger/go-swagger/cmd/swagger/commands.Commit=$(git rev-parse HEAD)" ./cmd/swagger
You are welcome to clone this repo and start contributing:
git clone https://github.com/go-swagger/go-swagger
NOTE: go-swagger works on *nix as well as Windows OS