openSUSE API

Version: 2.3

Only authenticated users are allowed to access the API. Authentication is done by sending a Basic HTTP Authorisation header.

Do NOT simply add api calls here without discussion before.

All names aren't allowed to contain spaces, slashes or colons.

Table of Contents

About

Host: api.opensuse.org

GET /about

Get information about API.

Result: Example Schema

Architectures

GET /architecture

Get the list of available architectures

Result: Example Schema

GET /architecture/<name>

Arguments:

Read architecture data.

Result: Example

PUT /architecture/<name>

Arguments:

Update architecture data.

Result: Example Schema

POST /architecture/<name>

Arguments:

Create new architecture.

Result: Example Schema

DELETE /architecture/<name>

Arguments:

Delete architecture.

Result: Example Schema

Issue Trackers

Host: api.opensuse.org

GET /issue_trackers

Get the list of available issue trackers

Result: Example

GET /issue_trackers/<name>

Arguments:

Read issue tracker data.

Result: Example

PUT /issue_tracker/<name>

Arguments:

Update issue tracker data.

Result: Example Schema

POST /issue_tracker/<name>

Arguments:

Create new issue tracker.

Result: Example

DELETE /issue_tracker/<name>

Arguments:

Delete issue tracker.

Result: Example Schema

GET /issue_trackers/show_url_for

issue: attribute used for issue search (example: 'bnc#123456')

Distribution List

Host: api.opensuse.org

GET /distributions

Get the list of base distributions

Result: Example

User data

Host: api.opensuse.org

GET /person/<userid>

Arguments:

Read user data.

Result: Example Schema

PUT /person/<userid>

Arguments:

Write user data.

Body: Example Schema

Result: Example Schema

GET /person/<userid>/<groupid>

Arguments:

Read user and group data.

Result: TODO

POST /person/register

TODO

TODO

PUT /person/register

TODO

Body: TODO

Result: TODO

PUT /person/changepasswd

TODO

Body: TODO

Result: TODO

POST /person/changepasswd

TODO

TODO

Sources

Host: api.opensuse.org

Projects

GET /source/

Read list of projects.

Result: Example Schema

deleted: show deleted projects instead of existing

POST /source

Commands on processing sources globally. Possible commands are branch: branch a set of packages based on attributes or on existing request createmaintenanceincident: create mainatenance incident projects based on attribute search

attribute: attribute used for package search, default is OBS:Maintained update_project_attribute: attribute name used to find out possible existing update projects of a package request: branch by request, branch all packages in actions of request for superseding it noaccess: the new created project will be read protected target_project: project which will get used or created

GET /source/<project>/_meta

Arguments:

Read project meta file.

rev: revision, mandatory

Result: Example

PUT /source/<project>/_meta

Arguments:

Write project meta file.

comment: comment, optional user: user, optional

Body: Example

Result: Example Schema

DELETE /source/<project>

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

Result: Example Schema

GET /source/<project>/_attribute/<attribute>

Arguments:

Get all attributes or a specific one

Body: attribute

POST /source/<project>/_attribute/<attribute>

Arguments:

Modifies a specific attribute as in body

comment: comment, optional user: user, optional

Result: Example Schema

DELETE /source/<project>/_attribute/<attribute>

Arguments:

Removes a specific attribute

comment: comment, optional user: user, optional

Result: Example Schema

GET /source/<project>/_config

Arguments:

Read project configuration

rev: revision, mandatory

Result: configuration as text/plain

PUT /source/<project>/_config

Arguments:

Change project configuration

comment: comment, optional user: user, optional

Result: Example Schema

GET /source/<project>/_pattern

Arguments:

Get list of all patterns set up for this project

Result: pattern

GET /source/<project>/_pattern/<patternfile>

Arguments:

Get pattern

Result: pattern

PUT /source/<project>/_pattern/<patternfile>

Arguments:

Write pattern

Body: pattern

Result: Example Schema

DELETE /source/<project>/_pattern/<patternfile>

Arguments:

Remove pattern

Result: Example Schema

GET /source/<project>/_pubkey

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.

Result: Example Schema

POST /source/<project>

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. showlinked: List all projects linking to this one copy: copy the entire project createmaintenanceincident: create a single mainatenance incident project as sub project createpatchinfo: create a new patchinfo package collecting all mentioned issues in sources set_flag: change a defined flag, requires at least flag and status parameters remove_flag: remove a defined flag, requires at least flag and status parameters unlock: unlock a locked project

noaccess: the new created project will be read protected repository: set_flag for given repository (optional) arch: set_flag for given arch (optional) flag: modify this flag (build/publish/..) for set_flag command status: enable or disable for set_flag command comment: description for the history # for copy command only: resign: resign all binaries with new target project key makeolder: make a split, the source is bumped by two numbers and target by one withhistory: copies sources with history on copy command withbinaries: copies also binaries on copy command

Packages

GET /source/<project>

Arguments:

Read list of packages.

Result: Example Schema

deleted: show deleted package instead of existing view: issues, optional, can be used to show all tracked issues for all packages in project

GET /source/<project>/<package>

Arguments:

Package source listing

rev: revision of new package, optional linkrev: linked revision, optional emptylink: bool, , optional expand: bool, expand links, optional meta: bool, switch to meta files, optional view: The "info" view will show data like source version, md5sums and build description files. May be used together with parse, arch or repository parameter, optional "issues" can be used to show all tracked issues for all packages in project, optional extension: filter for file extension, optional lastworking: bool, show sources of last mergeable sources in case of conflicting changes, optional withlinked: bool, show all used package containers (in case of multiple link indirections) in linkinfo information, optional deleted: bool, show content of deleted package instance parse: bool, for view=info: take build description into account, optional arch: string, for view=info: parse buildinfo for this architecture, optinal repository: string, for view=info: parse buildinfo for this repository, optinal

Result: Example Schema

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

Result: Example Schema

DELETE /source/<project>/<package>

Arguments:

Deletes specified package including all source files

comment: comment, optional user: user, optional

Result: Example Schema

GET /source/<project>/<package>/_attribute/<attribute>

Arguments:

Get all attributes or a specific one

Body: attribute

POST /source/<project>/<package>/_attribute/<attribute>

Arguments:

Modifies a specific attribute as in body

comment: comment, optional user: user, optional

Result: Example Schema

DELETE /source/<project>/<package>/_attribute/<attribute>

Arguments:

Removes a specific attribute

comment: comment, optional user: user, optional

Result: Example Schema

GET /source/<project>/<package>/_history

Arguments:

Get package commit history

Result: Example

POST /source/<project>/<package>?cmd=showlinked

Arguments:

List all package instances linking to this one.

Result: package list

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=unlock

Arguments:

Unlocks a locked package

comment: description for the history

Result: Example Schema

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::branches:/ A possible defined devel project in the package meta data gets ignored.

ignoredevel: bool, optional target_project: target project name, optional target_package: target package name, optional noaccess: the new created project will be read protected, bool, optional missingok: the target package does not exist add_repositories: bool, optional, adds repositories base on source project (default for new projects) extend_package_names: bool, optional, extends package and repository names to allow multiple instances of same package

Result: Example Schema

POST /source/<project>/<package>?cmd=set_flag

Arguments:

Modify or set a defined flag for package

repository: set_flag for given repository (optional) arch: set_flag for given arch (optional) flag: modify this flag (build/publish/..) for set_flag command status: enable or disable for set_flag command

Result: Example Schema

POST /source/<project>/<package>?cmd=createSpecFileTemplate

Arguments:

Create template for RPM SPEC file. Returns an error, if the SPEC file already exists.

Result: Example Schema

POST /source/<project>/<package>?cmd=commit

Arguments:

Commits package changes to buildservice

rev: revision, mandatory comment: comment, optional user: user, optional

Result: Example Schema

POST /source/<project>/<package>?deleteuploadrev

Arguments:

Removes all changes made to the upload revision and reverts to last revision

none

Result: Example Schema

Source files

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

Result: Example Schema

DELETE /source/<project>/<package>/<filename>

Arguments:

Delete source file.

Result: Example Schema

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 view: may be "xml" for structured answered (for diff commands) withissues: set to get issues parsed from changelogs (for diff commands) onlyissues: used to limit to issues (for diff commands)

GET /source/<project>/<package>/<binary>/_attribute/<attribute>

Arguments:

Get all attributes or a specific one

Body: attribute

POST /source/<project>/<package>/<binary>/_attribute/<attribute>

Arguments:

Modifies a specific attribute as in body

comment: comment, optional user: user, optional

Result: Example Schema

DELETE /source/<project>/<package>/<binary>/_attribute/<attribute>

Arguments:

Removes a specific attribute

comment: comment, optional user: user, optional

Result: Example Schema

Requests

GET /request

Get a list of requests. When using the "view=collection" you need also to filter either by user, project or package.

view: collection, return a collection of requests instead of directory listing user: filter for given user, includes all target projects and packages where the user is maintainer and also open review requests project: limit to result to defined target project or review requests package: limit to result to defined target package or review requests states: filter for given request state, multiple matches can be added as comma seperated list (eg states=new,review) types: filter for given action types (comma seperated) roles: filter for given roles (creator, maintainer, reviewer, source or target)

Result: collection

GET /request/<id>

Arguments:

Get a request

Result: Example Schema

POST /request

Create a new request

Result: Example Schema

Commands on processing requests create: to crfeate a new request

addrevision: ask the server to add revisions of current sources to the request

PUT /request/<id>

Arguments:

Modify a request. NOTE: Only admins can change all parts of a request.

Result: Example Schema

POST /request/<id>?cmd=diff

Arguments:

Shows the diff of all affected packages.

Result: diff as text/plain

POST /request/<id>

Arguments:

Modify a request state

Result: Example Schema

Commands on processing requests changestate: Modifies the state of a request

newstate: to define the new state of a request

DELETE /request/<id>

Arguments:

Delete a request

Attribute definition api

GET /attribute/

List all attribute namespaces

Result: Example Schema

GET /attribute/<namespace>/

Arguments:

List all attributes under given namespace

Result: Example Schema

GET /attribute/<namespace>/_meta

Arguments:

shows namespace setup

Result: Example Schema

DELETE /attribute/<namespace>/_meta

Arguments:

Delete a attribute namespace and all attributes below

Result: Example Schema

PUT /attribute/<namespace>/_meta

Arguments:

change attribute namespace meta

Body: attribute_namespace_meta_data

Result: Example Schema

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

Result: Example Schema

PUT /attribute/<namespace>/<name>/_meta

Arguments:

change attribute meta

Body: attribute_meta_data

Result: Example Schema

Build Results

Host: api.opensuse.org

GET /build/

List all repositories

Result: Example Schema

GET /build/_workerstatus

Lists all running jobs, waiting jobs, status of the backend services and general statistics.

Result: Example

GET /build/<project>

Arguments:

List all repositories of the specified project

Result: Example Schema

GET /build/<project>/<repository>

Arguments:

List all architectures of the specified project repository

Result: Example Schema

GET /build/<project>/<repository/<arch>

Arguments:

List all packages used in this project repository for given architecture.

Result: Example Schema

Binaries

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

Status

GET /build/<project>/_result

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

Result: Example Schema

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: buildreason

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.

Control

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

Result: Example Schema

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

Local Build

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. can be "_repository", if the designated package does not yet exist on the server. Usefull for local build test before committing the initial package.

Body: specfile

Result: buildinfo

Repository Information

GET /build/<project>/<repository>/<arch>/_repository

Arguments:

Returns list of binaries contained in the specified repository

Result: Example

GET /build/<project>/<repository>/<arch>/_repository/<binaryname>

Arguments:

Returns binary

Result: binary file

GET /build/<project>/<repository>/<arch>/<package>

Arguments:

Returns list of binaries contained in the specified repository

Result: Example

GET /build/<project>/<repository>/<arch>/<package>/_buildinfo

Arguments:

Build info according to the committed sources

Result: buildinfo

POST /build/<project>/<repository>/<arch>/<package>/_buildinfo

Arguments:

Build info according to the uploaded sources

Result: buildinfo

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>/_buildconfig

Arguments:

Build configuration for this repository, all base package requirements, mappings and macros.

Search

GET /search/project

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[]. Only complete meta files will be returned.

match: xpath predicate, mandatory

Result: collection

GET /search/project/id

Searches for project metadata analogous to /search/project, only the root element is returned without any children.

match: xpath predicate, mandatory

Result: collection

GET /search/package

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[]. Only complete meta files will be returned.

match: xpath predicate, mandatory

Result: collection

GET /search/package/id

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

GET /search/request

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[]. Only complete meta files will be returned.

match: xpath predicate, mandatory

Result: collection

GET /search/issue

Searches for issue metadata using xpath. A xpath predicate has to be specified using the match parameter. The predicate will be used in this expression: /issue[]. Only complete issue information will be returned.

match: xpath predicate, mandatory

Result: collection

Published binary package tree

GET /published

List of published projects

Result: Example Schema

GET /published/<project>

Arguments:

List of repositories of published projects

Result: Example Schema

GET /published/<project>/<repository>

Arguments:

List of published repositories for the given project/repo

Result: Example Schema

GET /published/<project>/<repository>/<arch>

Arguments:

List of published binaries for the given project/repo/arch

Result: Example Schema

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

Tags

GET /source/<project>/_tags

Arguments:

Get tags by project.

Result: Example Schema

GET /source/<project>/<package>/_tags

Arguments:

Get tags by package.

Result: Example Schema

GET /tag/<tag>/_projects

Arguments:

Get projects by tag(s). For selection by more than one tag use TagA::TagB for example.

Result: Example Schema

GET /tag/<tag>/_packages

Arguments:

Get packages by tag.

Result: Example Schema

GET /tag/<tag>/_all

Arguments:

Get projects and packages by tag.

Result: Example Schema

GET /user/<user>/tags/_projects

Arguments:

Get all projects including tags assigned by the user

Result: Example Schema

GET /user/<user>/tags/_packages

Arguments:

Get all packages including tags assigned by the user

Result: Example Schema

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.

Result: Example Schema

GET /tag/_tagcloud

distribution=linear | logarithmic | raw steps=[1..100] limit=[0..] (default = 100, 0 = no limit)

Get a tag cloud including all tags.

Result: Example Schema

GET user/<user>/tags/<project>

Arguments:

Get tags by user and project.

Result: Example Schema

PUT user/<user>/tags/<project>

Arguments:

Write tags by user and project.

Body: Example Schema

Result: Example Schema

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.

Body: Example Schema

Result: Example Schema

Build Results (Legacy)

This section describes the obsolete API for build results. It will be replaced by the API available under /build.

RPMs

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

Result: Example Schema

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

Build Results

Host: api.opensuse.org

GET /result/<project>/<platform>/result

Arguments:

Read project summary result.

Result: Example Schema

GET /result/<project>/<platform>/<package>/result

Arguments:

Read package result.

Result: Example Schema

GET /result/<project>/<platform>/<package>/<arch>/log

Arguments:

Read build log.

Result: Build log as text file.

Statistics

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.

Result: Example Schema

GET /statistics/added_timestamp/<project>/<package>

Arguments:

Get timestamp when project or package was added to the build service.

Result: Example Schema

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.

Result: Example Schema

GET /statistics/updated_timestamp/<project>/<package>

Arguments:

Get timestamp when project or package was last updated.

Result: Example Schema

GET /statistics/activity/<project>/<package>

Arguments:

Get activity in % of project or package.

Result: Example Schema

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.

Result: Example Schema

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.

Result: Example Schema

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.

Result: Example Schema

PUT /statistics/rating/<project>/<package>

Arguments:

Rate this project / package.

Result: Example Schema

GET /statistics/download_counter?limit=<limit>

Get download counters for top downloaded files including to which project, package, repository and architecture they belong.

Result: Example Schema

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.

Result: Example Schema

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.

Result: Example Schema

GET /statistics/newest_stats

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"

Result: Example Schema

Status Messages

Host: api.opensuse.org

GET /status_message/?limit=<limit>

Get a list of status messages.

Result: Example Schema

PUT /status_message/

Send a new status message to the build service. User needs to have appropriate permissions.

Result: Example

Messages (for projects/packages)

Host: api.opensuse.org

GET /message/<id>

Arguments:

Get (one) message specified by id.

Result: Example Schema

GET /message/?limit=<limit>

Get a list of messages, independent of project or package. All entries are ordered by creation time (latest first).

Result: Example Schema

GET /message/?project=<project>

Get a list of messages for this package. All entries are ordered by creation time (latest first).

Result: Example Schema

GET /message/?project=<project>&package=<package>

Get a list of messages for this package. All entries are ordered by creation time (latest first).

Result: Example Schema

PUT /message/?project=<project>&package=<package>

Append message to the specified package (or project, if package parameter is omitted).

Result: Example Schema

Internal only routes