From Fedora Project Wiki

< User:Mapleoin

Revision as of 21:37, 27 September 2010 by Mapleoin (talk | contribs) (JSON web api)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


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.



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.



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

command-line client

func module