User:Mapleoin/FSC-Copr-status
From FedoraProject
Contents |
JSON web API
This is a JSON web API implemented as TurboGears2 app. There is no web interface at this point. The API is supposed to be used with the help of the client library or the future web interface.
The available methods are grouped into copr-related and package-related methods.
Coprs
/coprs/*
A copr is a group of package repositories belonging to a user. A REST interface is provided, with the following methods:
- get_all - Return all the Copr objects.
- get_one - Return the Copr specified by 'copr_name'.
- post - Create a new Copr from the given arguments.
- put - Edit an existing Copr.
- delete - Delete the Copr specified by 'copr_name'.
There are other additional methods available for managing: copr dependencies (Coprs can depend on other Coprs for BuildRequires dependencies), copr releases and for managing permissions:
- add_dependencies - Add one or more Copr objects as dependencies for a Copr.
- remove_dependencies - Remove the list of specified dependencies for a Copr.
- add_releases - Add one or more releases to an existing Copr
- remove_releases - Remove one or more releases from an existing Copr.
- grant - Grant a user some permission on a Copr.
- revoke - Revoke a given user's permission on a Copr.
Packages
/coprs/my_copr/packages/*
A package is roughly equivalent to a SRPM - it is independent of any release or architecture. All of the methods are relative to a copr, receive that copr as the first argument and the package also belongs to a specific copr. The available methods are:
- get_all - Return all the packages in a copr.
- get_one - Return information about a package.
- post - Create a new package.
- delete - Delete an existing package from a Copr.
client library
All of the Copr API methods described above are available via a python client library. Users of the client library can access the functions like this:
from copr.client.lib import CoprClient client = CoprClient(username='fedorian', password='mysecret') client.copr_list() client.copr_create(copr_name, copr_description, release, dependency_list) ...
The methods have different names in the client library. The following is a list of all the available methods (name in API/name in client lib):
Coprs:
- get_all - copr_list
- get_one - copr_info
- post - copr_create
- put - copr_edit
- delete - copr_delete
- add_releases - copr_add_releases
- remove_releases - copr_remove_releases
- add_dependencies - copr_add_dependencies
- remove_dependencies - copr_remove_dependencies
- grant - copr_grant
- revoke - copr_revoke
Packages:
- get_all - pkg_list
- get_one - pkg_info
- post - pkg_create
- delete - pkg_delete
command-line client
The command line client can be used by invoking the bin.py file (which will probably be installed by the package in /usr/bin/copr). Following is the list of available commands available via the --help argument:
$ python client/bin.py --help
usage: bin.py [-h] [-v] [-u USERNAME] [-p] [--url URL]
{remove-copr-deps,list-pkgs,list-coprs,info-copr,add-copr-deps,create-pkg,edit-copr,delete-copr,create-copr,grant-copr,revoke-copr,add-copr-releases,remove-copr-releases,delete-pkg,info-pkg}
...
Command line tool for interacting with Fedora Copr
positional arguments:
{remove-copr-deps,list-pkgs,list-coprs,info-copr,add-copr-deps,create-pkg,edit-copr,delete-copr,create-copr,grant-copr,revoke-copr,add-copr-releases,remove-copr-releases,delete-pkg,info-pkg}
list-coprs list all the available Coprs
info-copr get information about a specific Copr
create-copr create a new Copr
edit-copr edit an existing copr
delete-copr delete an existing copr
add-copr-deps add dependencies to a copr
remove-copr-deps remove dependencies from a copr
add-copr-releases add releases to a copr
remove-copr-releases
remove releases from a copr
grant-copr grant permission on a copr
revoke-copr revoke permission on a copr
list-pkgs list all the packages in a copr
info-pkg get information on a package
create-pkg create a new package by uploading a srpm
delete-pkg delete a package
optional arguments:
-h, --help show this help message and exit
-v, --version
--url URL provide an alternate url for the Copr service
authentication:
-u USERNAME, --username USERNAME
-p, --password
func module
The func module allows for building packages and managing RPM repos. It will be installed on func minions which should get called by the Copr task scheduler - headhunter.
- create_copr - Creates a new copr repository (createrepo) on a network filesystem and empty repos for each of the initial repositories provided as an argument.
- remove_repos - Deletes a repository of a Copr and all the packages contained in that repository.
- async_build_x86 - Builds a package asynchronously with mock. The mock build environment can be augmented with other copr repositories provided as a list of copr names. The built packages are then moved to a temporary directory.
- move_to_copr - Moves a built package (RPMS and SRPMS) from the temporary directory provided as an argument to the designated copr repositories and updates the repository (with createrepo --update).