copr-cli (1) - Linux Manuals
copr-cli: command line interface for the Copr service
NAME
copr-cli - command line interface for the Copr service
SYNOPSIS
copr-cli [-h] [--version] [--config CONFIG] {list,create,build} ...
DESCRIPTION
This command allows you to interact with the Copr service from the command line.
You need to generate an API key first (see the API KEY section below).
OPTIONS
-h, --help
- show this help message and exit
--version
- show the program's version number and exit
--config
- path to an alternative configuration file (default is ~/.config/copr).
ACTION LIST
list [username|@groupname]
- List all the projects of the provided username. If no username is provided, then your projects are listed.
create
- Create a new project.
delete
- Delete an entire project.
build
- Build packages for a specified project.
status
- Get the status of the build.
cancel
- Cancel a build of given id.
download-build
- Download a build to local directory.
modify
- Modify existing copr
add-package-*
- Add a new package of the specified source type (e.g. add-package-tito)
edit-package-*
- Edit source definition and type of an existing package (e.g. edit-package-tito)
list-packages
- List all packages from a copr in json format
list-package-names
- Output just the package names from the given copr
get-package
- Display details of a single package in json format
delete-package
- Remove package from a copr and all its builds as well
reset-package
- Clear source definition of a package and its source type
build-package
- Build package from its source definition
mock-config
- Get the mock profile (similar to koji mock-config)
PROJECT ACTIONS
copr-cli create [options]
usage: copr-cli create [-h] --chroot CHROOTS [--repo REPOS] [--initial-pkgs PKGS] [--description DESCRIPTION] [--instructions INSTRUCTIONS] [--disable_createrepo DISABLE_CREATEREPO] [--enable-net {on,off}] [--unlisted-on-hp {on,off}] [--persistent] [--auto-prune {on,off}] name
--chroot
- Chroot to use for this project. Can be specified multiple times, but at least one must be present.
--repo
- Repository to add to this project. Can be specified multiple times.
--initial-pkgs
- List of packages to build in this new project. Can be specified multiple times.
--description
- Description of the project.
--instructions
- Instructions for the project.
--disable_createrepo
- Disables automatic repository metadata generation. Accepted values for DISABLE_CREATEREPO: true/false.
--enable-net
- If net should be enabled for builds in this project.
--unlisted-on-hp
- This project will not be listed on COPR home page.
--persistent
- Project and its builds will be undeletable. This option can only be specified by a COPR admin.
--auto-prune
- If backend auto-prunning script should be run for this project. This option can only be specified by a COPR admin.
name
- Can be just name of the project or in form username/projectname or @groupname/projectname.
copr-cli modify [options]
usage: copr-cli modify [-h] [--repo REPOS] [--description DESCRIPTION] [--instructions INSTRUCTIONS] [--disable_createrepo DISABLE_CREATEREPO] [--enable-net {on,off}] [--unlisted-on-hp {on,off}] [--auto-prune {on,off}] name
Alters only specified project property.
--repo
- Repository to add to this project. Can be specified multiple times.
--description
- Description of the project.
--instructions
- Instructions for the project.
--disable_createrepo
- Disables automatic repository metadata generation. Accepted values for DISABLE_CREATEREPO: true/false.
--enable-net
- If net should be enabled for builds in this project.
--unlisted-on-hp
- This project will not be listed on COPR home page.
--auto-prune
- If backend auto-prunning script should be run for this project. This option can only be specified by a COPR admin.
name
- Can be just name of the project or in form username/projectname or @groupname/projectname.
BUILD ACTIONS
copr-cli build [options]
usage: copr-cli build [-h] [-r, --chroot CHROOTS] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] project PKG [PKG ...]
-r, --chroot
- If you don't need this build for all the project's chroots. You can use it several times for each chroot you need.
--memory
- Override memory for this build. This is actually not used and it have no effect.
--timeout
- Override timeout for this build. This is actually not used and it have no effect.
--nowait
- Don't wait for build completion.
--background
- Run the build at a lower priority.
project
- The project build the package in. This can be a simple name of some of your projects. Alternatively, you can specify it as username/project or @groupname/project. This way you can build into the project of another user or group, provided you have the permissions to do so.
PKG
- This can be either file on your local workstation or URL of the package to build. When URL is used, then the package must be placed on a public web or ftp server. Note that you cannot combine local file paths and URLs in one command line and local-file builds are limited to the first specified PKG. This limitation comes from the COPR API.
copr-cli buildpypi [options]
usage: copr buildpypi [-h] [-r, --chroot CHROOTS] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] [--pythonversions [VERSION [VERSION ...]]] [--packageversion PYPIVERSION] --packagename PYPINAME project
--pythonversions [VERSION [VERSION ...]]
- For what Python versions to build (by default: 3 2)
--packageversion PYPIVERSION
- Version of the PyPI package to be built (by default latest)
--packagename PYPINAME
- Name of the PyPI package to be built, required.
For the rest of the arguments, see copr-cli build command above.
copr-cli buildtito [options]
usage: copr buildtito [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] [-r CHROOTS] [--git-url URL] [--git-dir DIRECTORY] [--git-branch BRANCH] [--test] project
--git-url URL
- Url to a project managed by Tito, required.
--git-dir DIRECTORY
- Relative path from Git root to directory containing .spec file.
--git-branch BRANCH
- Checokut specific branch on the repository.
--test
- To build from the last commit instead of the last release tag.
For the rest of the arguments, see copr-cli build command above.
copr-cli buildmock [options]
usage: copr buildmock [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] [-r CHROOTS] [--scm-type TYPE] [--scm-url URL] [--scm-branch BRANCH] [--spec FILE] project
--scm-type TYPE
- Specify versioning tool, default is git.
--scm-url URL
- Url to a project versioned by Git or SVN, required.
--scm-branch BRANCH
- Checokut specific branch on the repository.
--spec FILE
- Relative path from SCM root to .spec file, required.
For the rest of the arguments, see copr-cli build command above.
copr-cli buildfedpkg [options]
usage: copr buildfedpkg [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] [-r CHROOTS] [--clone-url URL] [--branch BRANCH] project
--clone-url URL
- Specify clone url to the dist-git project on pkgs.fedoraproject.org.
--branch BRANCH
- Specify branch in the dist-git project to be be built from.
For the rest of the arguments, see copr-cli build command above.
copr-cli download-build [options]
usage: copr-cli download-build [-h] [-d, --dest DESTINATION] [-r, --chroot CHROOT] build_id
build_id
- Download built packages for build identified by build_id.
-d, --dest, -r, --chroot
- Fetch only selected chroots. Can be specified multiple times.\
EXAMPLES
-
copr-cli build myproject some.src.rpm copr-cli build someone_else/project some.src.rpm copr-cli build -r fedora-24-x86_64 -r fedora-24-i386 "@somegroup/project" some.src.rpm
CHROOT ACTIONS
copr-cli edit-chroot [options] coprchroot
usage: copr edit-chroot [-h] [--upload-comps FILEPATH | --delete-comps] [--packages PACKAGES] [--repos REPOS] coprchroot
Edit the specified coprchroot.
coprchroot
- Path to a project chroot as owner/project/chroot or project/chroot
--upload-comps FILEPATH
- Filepath to the comps.xml file to be uploaded
--delete-comps
- Deletes already existing comps.xml for the chroot
--packages PACKAGES
- space separated string of package names to be added to buildroot (e.g. "gcc ghc")
--repos REPOS
- space separated string of additional repo urls for chroot (e.g. "http://foo http://bar")
copr-cli get-chroot coprchroot
usage: copr get-chroot [-h] coprchroot
Print info of the given chroot.
coprchroot
- Path to a project chroot as owner/project/chroot or project/chroot
PACKAGE ACTIONS
copr-cli add-package-tito [options]
usage: copr add-package-tito [-h] --git-url URL [--git-dir DIRECTORY] [--git-branch BRANCH] [--test {on,off}] --name PKGNAME [--webhook-rebuild {on,off}] project
Add package of Tito source type.
--git-url URL
- URL to a project managed by Tito
--git-dir DIRECTORY
- Relative path from Git root to directory containing .spec file
--git-branch BRANCH
- Git branch that you want to build from
--test {on,off}
- Build the last commit instead of the last release tag
--name PKGNAME
- Name of the package to be edited or created
--webhook-rebuild {on,off}
- Enable auto-rebuilding.
copr-cli edit-package-tito [options]
usage: copr edit-package-tito [-h] --git-url URL [--git-dir DIRECTORY] [--git-branch BRANCH] [--test {on,off}] --name PKGNAME [--webhook-rebuild {on,off}] project
Edit source definition and type of an existing package. Options are shared with add-package-tito.
copr-cli add-package-pypi [options]
usage: copr add-package-pypi [-h] [--pythonversions [VERSION [VERSION ...]]] [--packageversion PYPIVERSION] --packagename PYPINAME --name PKGNAME [--webhook-rebuild {on,off}] project
Add package of PyPI source type.
--pythonversions [VERSION [VERSION ...]]
- For what Python versions to build (by default: 3 2)
--packageversion PYPIVERSION
- Version of the PyPI package to be built (by default latest)
--packagename PYPINAME
- Name of the PyPI package to be built, required
--name PKGNAME
- Name of the package to be edited or created
--webhook-rebuild {on,off}
- Enable auto-rebuilding
copr-cli edit-package-pypi [options]
usage: copr edit-package-pypi [-h] [--pythonversions [VERSION [VERSION ...]]] [--packageversion PYPIVERSION] --packagename PYPINAME --name PKGNAME [--webhook-rebuild {on,off}] project
Edit source definition and type of an existing package. Options are shared with add-package-pypi.
copr-cli add-package-mockscm [options]
usage: copr add-package-mockscm [-h] [--scm-type TYPE] [--scm-url URL] [--scm-branch BRANCH] [--spec FILE] --name PKGNAME [--webhook-rebuild {on,off}] project
Add package of MockSCM source type.
--scm-type TYPE
- Specify versioning tool, default is git
--scm-url URL
- Url to a project versioned by Git or SVN, required
--scm-branch BRANCH
- Branch in the target repository to build from
--spec FILE
- Relative path from SCM root to .spec file, required
--name PKGNAME
- Name of the package to be edited or created
--webhook-rebuild {on,off}
- Enable auto-rebuilding
copr-cli edit-package-mockscm [options]
usage: copr edit-package-mockscm [-h] [--scm-type TYPE] [--scm-url URL] [--scm-branch BRANCH] [--spec FILE] --name PKGNAME [--webhook-rebuild {on,off}] project
Edit source definition and type of an existing package. Options are shared with add-package-mockscm.
copr-cli add-package-rubygems [options]
usage: copr add-package-rubygems [-h] [--gem GEM] --name PKGNAME [--webhook-rebuild {on,off}] project
Add package of RubyGems source type.
--gem GEM
- Specify gem name
--name PKGNAME
- Name of the package to be edited or created
--webhook-rebuild {on,off}
- Enable auto-rebuilding
copr-cli edit-package-rubygems [options]
usage: copr edit-package-rubygems [-h] [--gem GEM] --name PKGNAME [--webhook-rebuild {on,off}] project
Edit source definition and type of an existing package. Options are shared with add-package-rubygems.
copr-cli list-packages [options]
usage: copr list-packages [-h] [--with-latest-build] [--with-latest-succeeded-build] [--with-all-builds] project
Lists all packages in the given project in json format.
--with-latest-build
- Also display data related to the latest build for each package.
--with-latest-succeeded-build
- Also display data related to the latest succeeded build for each package.
--with-all-builds
- Also display data related to the builds for each package.
copr-cli list-package-names [options]
usage: copr list-package-names [-h] project
Only list package names in the given project line by line.
copr-cli get-package [options]
usage: copr get-package [-h] --name PKGNAME [--with-latest-build] [--with-latest-succeeded-build] [--with-all-builds] project
Similar to list-packages but returns just a single package directly as json structure (not wrapped in a list).
copr-cli delete-package [options]
usage: copr delete-package [-h] --name PKGNAME project
Deletes package and all its builds from the given project.
copr-cli reset-package [options]
usage: copr reset-package [-h] --name PKGNAME project
Clears default source of a package and its source type (all the package settings are lost after invoking this!).
copr-cli build-package [options]
usage: copr build-package [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [-r CHROOTS] --name PKGNAME project
Creates a new build of the given package from its source definition.
--name PKGNAME
- Name of a package to be built
For the rest of the arguments, see copr-cli build command above.
copr-cli mock-config [options]
usage: copr mock-config [-h] project chroot
Get the mock profile (similar to koji mock-config), print it to standard output. The configuration can be slightly different from the real mock configuration used by Copr Builders, but should be similar enough for basic debugging (e.g. by mock --shell).
EXAMPLES
-
copr-cli add-package-tito myproject --name pkgname --git-url http://github.com/clime/example.git --test on
-
copr-cli get-package myproject --name pkgname
-
copr-cli build-package myproject --name pkgname --nowait --timeout 10000 -r fedora-23-x86_64
-
copr-cli delete-package myproject --name pkgname
-
copr-cli mock-config myproject fedora-rawhide-x86_64
EXIT STATUS
Normally, the exit code is 0 when everything goes well. But if not, we could get: 1 - Bad request like wrong project name, insufficient rights etc. Also might happen when user interrupts the operation when they shouldn't. 2 - Wrong arguments given. 3 - Bad or no configuration. 4 - Build fails when Cli is waiting for the result. 5 - Communication error between Cli and server. This issue probably means bug and should be reported.
API KEY
Visit the page https://copr.fedoraproject.org/api/ to obtain an API token. This token must be saved in the file ~/.config/copr in the following format:
-
[copr-cli] username = msuchy login = Y57wcg==##fkfaxbkjhuoiebfafadl token = vbfseelqdebzedukgombekmuvbkqwo copr_url = https://copr.fedoraproject.org
Be aware that API tokens have an expiration date. The expiration date for your token is listed on the /api page.
USING DIFFERENT COPR INSTANCE
If you plan to run copr client against non-default Copr instance, the API token is available on the http://YOUR.COPR.URL/api/ page. You can either replace your default ~/.config/copr configuration file, or rather use alternative file with a shell alias
-
alias your_copr='copr --config ~/.config/your-copr'
AUTHORS
Miroslav Suchý <msuchy [at] redhat.com>, clime <clime [at] redhat.com>