Version: 2.0
Only authenticated users are allowed to access the API. Authentication is done by sending a Basic HTTP Authorisation header.
The /public routes are also accessible as anonymous user.
All names aren't allowed to contain spaces, slashes or colons.
Host: api.opensuse.org
Host: api.opensuse.org
Host: api.opensuse.org
Arguments:
Write user data.
Host: api.opensuse.org
Arguments:
Write project meta file.
comment: comment, optional user: user, optional
Body: Example
Arguments:
Deletes specified project. All packages of this project are deleted as if a DELETE request were issued for each package.
force: If force = 1, the project is deleted even if repositories of other projects include a path to a repository from this project. The path in the other repository is replaced by one pointing to 'deleted/standard', preventing the build and publishing of the other repository. comment: comment, optional user: user, optional
Arguments:
Read project configuration
rev: revision, mandatory
Result: configuration as text/plain
Arguments:
Change project configuration
comment: comment, optional user: user, optional
GET /source/<project>/_pattern
Arguments:
Get list of all patterns set up for this project
GET /source/<project>/_pattern/<patternfile>
Arguments:
Get pattern
Result: pattern
PUT /source/<project>/_pattern/<patternfile>
Arguments:
Write pattern
Body: pattern
DELETE /source/<project>/_pattern/<patternfile>
Arguments:
Remove pattern
Arguments:
Get project GPG key. If the project has no own key (default), it uses the first available one in the namespace hierarchy, ending at the global buildservice key.
Result: gpgkey
DELETE /source/<project>/_pubkey
Arguments:
Removes the current gpg key. Has no effect if no key is set.
Arguments:
Multiple commands on processing sources in package. Possible commands are createkey: Generate a new gpg key. If the project already has an own gpg key, the old key is discarded. extendkey: Extend the expiration date of gpg keys. undelete: undelete the project and all packages existing when the project got removed.
Arguments:
Read list of packages.
deleted: show deleted package instead of existing
GET /source/<project>/<package>/_meta
Arguments:
Read project meta data.
rev: revision of new package, optional
Result: Example
PUT /source/<project>/<package>/_meta
Arguments:
Write project meta data. Writing of the project meta data commits the packages contained in the project to the build backend.
comment: comment, optional user: user, optional
Body: Example
DELETE /source/<project>/<package>
Arguments:
Deletes specified package including all source files
comment: comment, optional user: user, optional
GET /source/<project>/<package>/_history
Arguments:
Get package commit history
Result: revisionlist
POST /source/<project>/<package>?cmd=diff
Arguments:
Create a source diff
rev: revision of new package, optional oproject: old project, optional opackage: old package, optional orev: old revision, optional
Result: diff as text/plain
POST /source/<project>/<package>?cmd=branch
Arguments:
Create a source link from a package of an existing project to a
new subproject of the requesters home project.
The default target is home:
ignoredevel: bool, optional target_project: target project name, optional target_package: target package name, optional
POST /source/<project>/<package>?cmd=createSpecFileTemplate
Arguments:
Create template for RPM SPEC file. Returns an error, if the SPEC file already exists.
POST /source/<project>/<package>?cmd=commit
Arguments:
Commits package changes to buildservice
rev: revision, mandatory comment: comment, optional user: user, optional
POST /source/<project>/<package>?deleteuploadrev
Arguments:
Removes all changes made to the upload revision and reverts to last revision
none
GET /source/<project>/<package>
Arguments:
Get directory listing of all source files in the package
rev: package source revision, optional linkrev: linked revision, optional expand: expand links, optional meta: switch to meta files lastworking: auto detect last working link revision, optional view: The "cpio" view will stream all files as cpio, optional extension: filter for file extension, optional
GET /source/<project>/<package>/<filename>
Arguments:
Read source file.
Result: Content of file
meta: switch to meta files
PUT /source/<project>/<package>/<filename>
Arguments:
Write source file.
rev: if set to 'upload', multiple files can be uploaded one by one in one commit, before finishing the commit with cmd=commit (see below), optional comment: comment, optional keeplink: bool, optional meta: switch to meta files
Body: Content of file
DELETE /source/<project>/<package>/<filename>
Arguments:
Delete source file.
meta: switch to meta files
POST /source/<project>/<package>
Arguments:
Multiple commands on processing sources in package. Possible commands are diff: for server side diff linkdiff: for server side diff of a linked or branched package commit: commit files in upload revision commitfilelist: commit defined files in upload revision copy: copy package sources from another package branch: branch a package into another one linktobranch: convert a plain source link into a full branch deleteuploadrev: delete all uploaded, but not yet commited files. undelete: undelete the package
rev: package source revision, optional linkrev: linked revision, optional orev: origin package source revision as defined in opackage/project, optional olinkrev: origin linked revision, optional oproject: origin project, used as base project opackage: origin package, used as base package requestid: log the requestid in source history, optional (copy and commitfilelist only) expand: expand links, optional keeplink: keep link on source commit, optional repairlink: repair link on source commit, optional dontupdatesource: Do not update origin package, optional (copy only) comment: comment for history, optional meta: switch to meta files
Create a new request
Commands on processing requests create: to crfeate a new request
Arguments:
Modify a request. NOTE: Only admins can change all parts of a request.
Arguments:
Modify a request state
Commands on processing requests changestate: Modifies the state of a request
newstate: to define the new state of a request
Arguments:
List all attributes under given namespace
GET /attribute/<namespace>/_meta
Arguments:
shows namespace setup
Result: attribute_namespace_meta
DELETE /attribute/<namespace>/_meta
Arguments:
Delete a attribute namespace and all attributes below
PUT /attribute/<namespace>/_meta
Arguments:
change attribute namespace meta
Body: attribute namespace meta data
GET /attribute/<namespace>/<name>/_meta
Arguments:
shows attribute setup
Result: attribute_meta
DELETE /attribute/<namespace>/<name>/_meta
Arguments:
Delete a attribute and all its values in projects or packages
PUT /attribute/<namespace>/<name>/_meta
Arguments:
change attribute meta
Body: attribute meta data
Host: api.opensuse.org
Lists all running jobs, waiting jobs, status of the backend services and general statistics.
Result: worker status and
Arguments:
List all repositories of the specified project
GET /build/<project>/<repository>
Arguments:
List all architectures of the specified project repository
GET /build/<project>/<repository/<arch>
Arguments:
List all packages used in this project repository for given architecture.
GET /build/<project>/<repository>/<arch>/<package>
Arguments:
Get list of binaries built by the sources of the given package
Result: binarylist
GET /build/<project>/<repository>/<arch>/<package>/<binaryname>
Arguments:
Get single binary from build results of given package
Result: binary file
GET /build/<project>/<repository>/<arch>/<package>/<binaryname>?view=fileinfo
Arguments:
GET /build/<project>/<repository>/<arch>/<package>/<binaryname>?view=fileinfo_ext
Arguments:
Get information about the binary from build results of given package
Result: fileinfo
GET /build/<project>/<repository>/<arch>/_builddepinfo?package=<package>
Arguments:
Shows all build dependencies of one or more packages, a change in any of them will trigger a build.
view=pkgnames show package names instead of binary names view=revpkgnames show which packages will be triggered if the package is changed
Result: build dependencies
GET /build/<project>/<repository>/<arch>/_jobhistory?package=<package>&code=succeeded&limit=10
Arguments:
Get the build log of all finished builds in this repository, including time and trigger reason. Optional filtering for one ore more packages/codes is possible.
Result: jobhistory
GET /build/<project>/<repository>/<arch>/_repository
Arguments:
Get list of binaries in given repository (binaries produced by all packages of the project)
Result: binarylist
POST /build/<project>/<repository>/<arch>/_repository?match=
Arguments:
Get list of binaries in given repository (binaries produced by all packages of the project), filtered by given match
Result: binarylist
GET /build/<project>/<repository>/<arch>/_repository/<binaryname>
Arguments:
Get single binary from the given repository
Result: binary file
Arguments:
Return build results for the packages, architectures and repositories specified by the parameters. If no parameters are given, all results for the project are returned.
The view parameter specifies which sections are included in the results. view=summary includes the summary of the status values. view=status includes detailed status information. view=binarylist includes the list of generated binary files. If no view parameter is given, view=status is assumed. To combine views the parameter can be given multiple times.
package: package name, optional, multiple arch: architecture, optional, multiple repository: name of repository, optional, multiple view: summary | status | binarylist lastbuild: bool, optional
Result: Example
GET /build/<project>/<repository>/<arch>/<package>/_history
Arguments:
Get build history
GET /build/<project>/<repository>/<arch>/<package>/_reason
Arguments:
Detailed reason, why the last build got triggered. This may be caused by a source change, meta change (binary package below changed) or release number sync. A user triggered build will show up as source change.
Result: build
GET /build/<project>/<repository>/<arch>/<package>/_status
Arguments:
Get build status of the specified project/package/repo/arch combination
Result: buildstatus
GET /build/<project>/<repository>/<arch>/<package>/_log
Arguments:
Get build log.
Result: Build log as text file.
POST /build/<project>?cmd=rebuild
Arguments:
Triggers package rebuild for the repositories/architectures of the package specified by the parameters. If no parameters are given, all packages of the project are completely rebuilt.
Possible values for the code parameter are:
succeeded - build succeeded failed - build failed disabled - build is disabled in package config excluded - build is excluded in spec file scheduled - package is ready to be built building - package is building on a worker broken - package source is bad (i.e. no specfile) unresolvable - build needs unavailable binary packages
package: package name, optional, multiple arch: architecture, optional, multiple repository: name of repository, optional, multiple code: build status code, optional, multiple
POST /build/<project>?cmd=abortbuild
Arguments:
Kill all running builds, marking them as failed
see cmd=rebuild
POST /build/<project>?cmd=restartbuild
Arguments:
Restart all running builds
see cmd=rebuild
POST /build/<project>?cmd=wipe
Arguments:
Delete all binary packages from the packages
see cmd=rebuild
GET /build/<project>/<repository>/<arch>/<package>/_buildinfo
Arguments:
Get build information for local building
Result: buildinfo
POST /build/<project>/<repository>/<arch>/<package>/_buildinfo
Arguments:
Get build info for local building using the POSTed specfile.
Body: specfile
Result: buildinfo
GET /build/<project>/<repository>/<arch>/_all/
Arguments:
Returns list of binaries contained in the specified repository
Result: Example
GET /build/<project>/<repository>/<arch>/_all/<binaryname>
Arguments:
Returns binary
Result: binary file
GET /build/<project>/<repository>/<arch>/_binarylist
Arguments:
Returns list of binaries contained in the specified repository
Result: Example
GET /build/<project>/<repository>/<arch>/_builddepinfo
Arguments:
Returns dependency information of packages in the specified repository. One or more packages can be specified with the 'package' parameter. By default dependencies for all packages are returned.
Result: builddepinfo
GET /build/<project>/<repository>/<arch>/_buildinfo
Arguments:
???
Searches for project metadata using xpath. A xpath predicate has to be
specified using the match parameter. The predicate will be used in this
expression: /project[
match: xpath predicate, mandatory
Result: collection
Searches for project metadata analogous to /search/project, only the root element is returned without any children.
match: xpath predicate, mandatory
Result: collection
Searches for package metadata using xpath. A xpath predicate has to be
specified using the match parameter. The predicate will be used in this
expression: /package[
match: xpath predicate, mandatory
Result: collection
Searches for package metadata analogous to /search/package, only the root element is returned without any children.
match: xpath predicate, mandatory
Result: collection
GET /search/published/binary/id
Search for published binary packages
match: xpath predicate, mandatory
Result: collection
GET /search/published/pattern/id
Search for published patterns
match: xpath predicate, mandatory
Result: collection
Searches for requests using xpath. A xpath predicate has to be
specified using the match parameter. The predicate will be used in this
expression: /request[
match: xpath predicate, mandatory
Result: collection
Arguments:
List of repositories of published projects
GET /published/<project>/<repository>
Arguments:
List of published repositories for the given project/repo
GET /published/<project>/<repository>/<arch>
Arguments:
List of published binaries for the given project/repo/arch
GET /published/<project>/<repository>/<arch>/<binary>
Arguments:
Download published binary NOTE: use this only if you absolutely have to as it doesn't use the redirector
Result: binary
GET /published/<project>/<repository>/<arch>/<binary>?view=ymp
Arguments:
Generate an ymp pattern that includes the needed repositories to install the given binary
Result: ymp
Arguments:
Get tags by project.
GET /source/<project>/<package>/_tags
Arguments:
Get tags by package.
Arguments:
Get projects by tag(s). For selection by more than one tag use TagA::TagB for example.
GET /user/<user>/tags/_projects
Arguments:
Get all projects including tags assigned by the user
GET /user/<user>/tags/_packages
Arguments:
Get all packages including tags assigned by the user
GET /user/<user>/tags/_tagcloud
Arguments:
distribution=linear | logarithmic | raw steps=[1..100] limit=[0..] (default = 100, 0 = no limit)
Get a tag cloud from the tags used by the user.
distribution=linear | logarithmic | raw steps=[1..100] limit=[0..] (default = 100, 0 = no limit)
Get a tag cloud including all tags.
PUT user/<user>/tags/<project>
Arguments:
Write tags by user and project.
GET user/<user>/tags/<project>/<package>
Arguments:
Get tags by user and package.
PUT user/<user>/tags/<project>/<package>
Arguments:
Write tags by user and package.
This section describes the obsolete API for build results. It will be replaced by the API available under /build.
Host: api.opensuse.org
GET /rpm/<project>/<platform>/<package>/<arch>/<rpmname>
Arguments:
Get RPM.
Result: RPM
GET /rpm/<project>/<repo>/<arch>/<package>/history
Arguments:
Get build history
GET /rpm/<project>/<repo>/<arch>/<package>/buildinfo
Arguments:
Get build information for local building
Result: buildinfo
POST /rpm/<project>/<repo>/<arch>/<package>/buildinfo
Arguments:
Get build info for local building using the POSTed specfile
Body: specfile
Result: buildinfo
GET /rpm/<project>/<repo>/<arch>/<package>/status
Arguments:
Get build status of the specified project/package/repo/arch combination
Result: buildstatus
Host: api.opensuse.org
GET /result/<project>/<platform>/result
Arguments:
Read project summary result.
GET /result/<project>/<platform>/<package>/result
Arguments:
Read package result.
GET /result/<project>/<platform>/<package>/<arch>/log
Arguments:
Read build log.
Result: Build log as text file.
Host: api.opensuse.org
GET /statistics/latest_added?limit=<limit>
Get a list of packages and projects (mixed) latest added to the build service. All entries are sorted by creation time.
GET /statistics/added_timestamp/<project>/<package>
Arguments:
Get timestamp when project or package was added to the build service.
GET /statistics/latest_updated?limit=<limit>
Get a list of packages and project that were last updated. All entries are sorted by the update timestamp.
GET /statistics/updated_timestamp/<project>/<package>
Arguments:
Get timestamp when project or package was last updated.
GET /statistics/activity/<project>/<package>
Arguments:
Get activity in % of project or package.
GET /statistics/most_active?type=<type>&limit=<limit>
Get list of most active packages (type=packages) or projects (type=projects). Also returns count of updates since package was created when type=packages. Also returns count of packages that are in this project when type=projects.
GET /statistics/highest_rated?limit=<limit>
Get list of highest rated projects and packages. Results are sorted by score. Only items with more than 3 ratings will show up in this list.
GET /statistics/rating/<project>/<package>
Arguments:
Get rating of a specific project or package. Also returns what score the logged in user gave and how many ratings there are already for the specified object.
PUT /statistics/rating/<project>/<package>
Arguments:
Rate this project / package.
GET /statistics/download_counter?limit=<limit>
Get download counters for top downloaded files including to which project, package, repository and architecture they belong.
GET /statistics/download_counter?group_by=<group_by>&limit=<limit>
Get summarized download counters for top downloaded projects, packages, repositories or architectures (by setting group_by parameter to project, package, repo or arch) including count of files that belong to the respective object.
PUT /statistics/redirect_stats
Send download statistics from the openSUSE download redirector to the build service api, to update the download_counter database. User needs to have appropriate permissions.
Get the timestamp of the newest stats in build service. This is useful for the create_stats_xml.rb script. Using this value it can import only those statistics that changed from the last import of statistics. If there are no statistics yet, returns "1970-01-01T01:00:00+01:00"
Host: api.opensuse.org
Send a new status message to the build service. User needs to have appropriate permissions.
Result: Example
Host: api.opensuse.org
Arguments:
Get (one) message specified by id.
Get a list of messages, independent of project or package. All entries are ordered by creation time (latest first).
GET /message/?project=<project>
Get a list of messages for this package. All entries are ordered by creation time (latest first).
GET /message/?project=<project>&package=<package>
Get a list of messages for this package. All entries are ordered by creation time (latest first).
PUT /message/?project=<project>&package=<package>
Append message to the specified package (or project, if package parameter is omitted).