qucli

Description
Manage repositories in Quay.io
Table of Contents
Requirements
$ export QUAY_API_TOKEN=foobar
if Quay Enterprise user, add Enviroment QUAY_HOSTNAME or --hostname
$ export QUAY_HOSTNAME=quay.example.com
or
$ qucli xxx --hostname=quay.example.com
Installation
Using Homebrew (OS X only)
Formula is available at koudaiii/homebrew-tools.
$ brew tap koudaiii/tools
$ brew install qucli
Precompiled binary
Precompiled binaries for Windows, OS X, Linux are available at Releases.
From source
To install, use go get:
$ go get -d github.com/koudaiii/qucli
$ cd $GOPATH/src/github.com/koudaiii/qucli
$ make deps
$ make install
Run in a Docker container
docker image is available at quay.io/koudaiii/qucli.
# -t is required to colorize logs
$ docker run \
--rm \
-t \
-e QUAY_API_TOKEN=foobar \
quay.io/koudaiii/qucli:latest
Usage
usage: qucli [--version] [--help] <command> [<args>]
Available commands are:
add-team Add team in repository
add-user Add user in repository
create Create repository in Quay
delete Delete repository in Quay
delete-team Delete team in repository
delete-user Delete user in repository
get Get repository and Permissions in Quay
list List repository and Permissions in Quay
version Print qucli version and quit
list
List repository in namespace
With --is-public option, you can true or false
$ qucli list koudaiii
NAME isPublic DESCRIPTION
quay.io/koudaiii/apig-sample true
quay.io/koudaiii/qucli true
quay.io/koudaiii/kubeps true
quay.io/koudaiii/test true
get
Get repository and Permissions in Quay
$ qucli get wantedly/test
Repository:
quay.io/wantedly/test
Visibility:
private
Permissions:
koudaiii(admin)
create
Create repository in Quay
With --visibility option, you can public or private
$ qucli create wantedly/test --visibility private
Created! quay.io/wantedly/test
delete
Delete repository in Quay
$ qucli delete wantedly/test
Deleted! quay.io/wantedly/test
$ qucli get wantedly/test
err: HTTP error!
URL: https://quay.io/api/v1/repository/wantedly/test
status code: 404
body:
{"status": 404, "error_message": "Not Found", "title": "not_found", "error_type": "not_found", "detail": "Not Found", "type": "https://quay.io/api/v1/error/not_found"}
add-user
Add user in repository
With --role option, you can read or write or admin
$ qucli add-user wantedly/test dtan4 --role write
Added! dtan4(write) in quay.io/wantedly/test
$ qucli get wantedly/test
Repository:
quay.io/wantedly/test
Visibility:
private
Permissions:
koudaiii(admin)
dtan4(write)
add-team
Add team in repository
With --role option, you can read or write or admin
$ qucli add-team wantedly/test infrastructure --role write
Added! infrastructure(write) in quay.io/wantedly/test
$ qucli get wantedly/test
Repository:
quay.io/wantedly/test
Visibility:
private
Permissions:
koudaiii(admin)
dtan4(write)
infrastructure(write)
delete-user
Delete user from repository
$ qucli delete-user wantedly/test dtan4
Deleted! dtan4 in quay.io/wantedly/test
$ qucli get wantedly/test
Repository:
quay.io/wantedly/test
Visibility:
private
Permissions:
koudaiii(admin)
infrastructure(write)
delete-team
Delete team from repository
$ qucli delete-team wantedly/test infrastructure
Deleted! infrastructure in quay.io/wantedly/test
$ qucli get wantedly/test
Repository:
quay.io/wantedly/test
Visibility:
private
Permissions:
koudaiii(admin)
Options
| Option |
Description |
Required |
Default |
--visibility=VISIBILITY |
"visibility set to 'public' or 'private' |
|
public |
--role=ROLE |
role to use for the user or team = ['read', 'write', 'admin'] |
|
read |
--is-public=bool |
repository type is public. true or false |
|
true |
--hostname=HOSTNAME |
if Quay Enterprise user, set hostname. |
|
quay.io |
--help |
Print command line usage |
|
|
-v, --version |
Print version |
|
|
Development
Clone this repository and build using make.
$ go get -d github.com/koudaiii/qucli
$ cd $GOPATH/src/github.com/koudaiii/qucli
$ make
Contribution
- Fork (https://github.com/koudaiii/qucli/fork)
- Create a feature branch
- Commit your changes
- Rebase your local changes against the master branch
- Run test suite with the
go test ./... command and confirm that it passes
- Run
gofmt -s
- Create a new Pull Request
Author
koudaiii
License
