- Notifications
You must be signed in to change notification settings - Fork4
Manage repositories in Quay.io
License
koudaiii/qucli
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Manage repositories in Quay.io
- Enviroment QUAY_API_TOKEN
- Get Api Token.Applications and Tokens
$ export QUAY_API_TOKEN=foobar
if Quay Enterprise user, add Enviroment QUAY_HOSTNAME or--hostname
$ export QUAY_HOSTNAME=quay.example.comor$ qucli xxx --hostname=quay.example.com
Formula is available atkoudaiii/homebrew-tools.
$ brew tap koudaiii/tools$ brew install qucli
Precompiled binaries for Windows, OS X, Linux are available atReleases.
To install, usego get
:
$ go get -d github.com/koudaiii/qucli$ cd $GOPATH/src/github.com/koudaiii/qucli$ make deps$ make install
docker image is available atquay.io/koudaiii/qucli.
# -t is required to colorize logs$ docker run \ --rm \ -t \ -e QUAY_API_TOKEN=foobar \ -e QUAY_HOSTNAME=quay.io \ quay.io/koudaiii/qucli:latest
$ qucliusage: qucli [--version] [--help] <command> [<args>]Available commands are: add-notification Add notification in repository add-team Add team in repository add-user Add user in repository create Create repository in Quay delete Delete repository in Quay delete-notification Delete notification in repository delete-team Delete team in repository delete-user Delete user in repository get Get Repository and Permissions and Notifications in Quay list List repository and Permissions in Quay test-notification Test notification in repository version Print qucli version and quit
List repository in namespace
With--is-public
option, you cantrue
orfalse
$ qucli list koudaiiiNAMEisPublicDESCRIPTIONquay.io/koudaiii/apig-sampletruequay.io/koudaiii/quclitruequay.io/koudaiii/kubepstruequay.io/koudaiii/testtrue
Get repository and Permissions in Quay
$ qucli get koudaiii/testRepository:quay.io/koudaiii/testVisibility:privatePermissions:koudaiii(admin)Notifications:b0736be9-f0eb-4c3c-8d33-2e331b1e5b0fSome titlerepo_pushmap[]slackmap[url:https://hooks.slack.com/service/some/token/here]
Create repository in Quay
With--visibility
option, you canpublic
orprivate
$ qucli create koudaiii/test --visibility privateCreated! quay.io/koudaiii/test
Delete repository in Quay
$ qucli delete koudaiii/testDeleted! quay.io/koudaiii/test
$ qucli get koudaiii/testerr: HTTP error!URL: https://quay.io/api/v1/repository/koudaiii/teststatus code: 404body:{"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 in repository
With--role
option, you canread
orwrite
oradmin
$ qucli add-user koudaiii/test dtan4 --role writeAdded! dtan4(write) in quay.io/koudaiii/test
$ qucli get koudaiii/testRepository:quay.io/koudaiii/testVisibility:privatePermissions:koudaiii(admin)dtan4(write)
Add team in repository
With--role
option, you canread
orwrite
oradmin
$ qucli add-team koudaiii/test infrastructure --role writeAdded! infrastructure(write) in quay.io/koudaiii/test
$ qucli get koudaiii/testRepository:quay.io/koudaiii/testVisibility:privatePermissions:koudaiii(admin)dtan4(write)infrastructure(write)
Delete user from repository
$ qucli delete-user koudaiii/test dtan4Deleted! dtan4 in quay.io/koudaiii/test
$ qucli get koudaiii/testRepository:quay.io/koudaiii/testVisibility:privatePermissions:koudaiii(admin)infrastructure(write)
Delete team from repository
$ qucli delete-team koudaiii/test infrastructureDeleted! infrastructure in quay.io/koudaiii/test
$ qucli get koudaiii/testRepository:quay.io/koudaiii/testVisibility:privatePermissions:koudaiii(admin)
Add notification in repository with some options.
webhook
method
$ qucli add-notification koudaiii/test --event="repo_push" --method="webhook" --url="http://url/goes/here"Added! 3c3c142c-2161-42ae-9414-39c787386b5crepo_pushmap[]webhookmap[url:http://url/goes/here]in quay.io/koudaiii/test
slack
method
$ qucli add-notification koudaiii/test --event="repo_push" --method="slack" --url="https://hooks.slack.com/service/{some}/{token}/{here}"Added! 61ae254f-89f0-4a36-a439-9b78004f2ab0repo_pushmap[]slackmap[url:https://hooks.slack.com/service/{some}/{token}/{here}]in quay.io/koudaiii/test
- options
$ qucli add-notificationqucli supported only Quay.ioUsage: add-notification qucli add-notification koudaiii/qucli --event="repo_push" --method="webhook" --url="http://url/goes/here"Option: --event string set 'evnet'. ['repo_push', 'build_queued', 'build_start', 'build_success', 'build_failure', 'build_cancelled', 'vulnerability_found']. --level string if you use 'vulnerability_found' evnet, A vulnerability must have a severity of the chosen level (highest level is 0).[0-6] --ref string if you use event excluding 'repo_push' event, an optional regular expression for matching the git branch or tag git ref. If left blank, the notification will fire for all builds.(refs/heads/somebranch)|(refs/tags/sometag) --method string set 'method'. ['webhook', 'slack', 'email']. --email string if you use 'email' method, set E-mail address. 'test@example.com'. --url string if you use 'webhook' or 'slack' method, set url. 'http://url/goes/here' or 'https://hooks.slack.com/service/{some}/{token}/{here}'. --title string The title for a notification is an optional field for a human-readable title for the notification.
Test notification from repository.
$ qucli test-notification koudaiii/qucli 0c91e746-9d9e-4845-8dff-3c0995976dfaTest Notification! 0c91e746-9d9e-4845-8dff-3c0995976dfa notification in quay.io/koudaiii/qucli
Delete notification from repository.
$ ./bin/qucli delete-notification koudaiii/test 3c3c142c-2161-42ae-9414-39c787386b5cDeleted! 3c3c142c-2161-42ae-9414-39c787386b5c notification in quay.io/koudaiii/test
Option | Description | Required | Default |
---|---|---|---|
--visibility=VISIBILITY | "visibility set to 'public' or 'private' | public | |
--role=ROLE | role to use for the user or team ROLE='read' or 'write' or 'admin' | read | |
--is-public=bool | repository type is public.true orfalse | true | |
--hostname=HOSTNAME | if Quay Enterprise user, set hostname. | quay.io | |
--event=EVENT | set 'evnet'. EVENT='repo_push' or 'build_queued' or 'build_start' or 'build_success' or 'build_failure' or 'build_cancelled' or 'vulnerability_found'. | true | |
--level=LEVEL | if you use 'vulnerability_found' evnet, A vulnerability must have a severity of the chosen level (highest level is 0).LEVEL=0-6 | ||
--ref=REF | if you use event excluding 'repo_push' event, an optional regular expression for matching the git branch or tag git ref. If left blank, the notification will fire for all builds.(refs/heads/somebranch) or (refs/tags/sometag) | ||
--method=METHOD | set 'method'. METHOD='webhook' or 'slack' or 'email'. | true | |
--email=EMAIL | if you use 'email' method, set E-mail address. EMAIL='test@example.com'. | ||
--url=URL | if you use 'webhook' or 'slack' method, set url. 'http://url/goes/here' or 'https://hooks.slack.com/service/{some}/{token}/{here}'. | ||
--title=TITLE | The title for a notification is an optional field for a human-readable title for the notification. | ||
--help | Print command line usage | ||
-v ,--version | Print version |
Clone this repository and build usingmake
.
$ go get -d github.com/koudaiii/qucli$ cd $GOPATH/src/github.com/koudaiii/qucli$ make
- 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
About
Manage repositories in Quay.io