autogits/bots-common/obs.api.yaml
Adam Majer 598ecbbd5a .
2024-07-07 21:12:40 +02:00

47329 lines
1.5 MiB

---
openapi: 3.0.0
servers:
- url: "/"
tags:
- name: Announcements
- name: Attribute Namespaces
- name: Attributes
- name: Build
- name: Comments
- name: Configuration
- name: Distributions
- name: General Information
- name: Groups
- name: Issue Trackers
- name: Notifications
- name: Person
- name: Published Binaries
- name: Requests
- name: Search
description: |
All endpoints besides the owner search listed in the search group use Xpath expressions. The `match` query parameter is used
to pass the Xpath predicate. The individual endpoints refer to different objects like Packages, Projects, Issues and more...
Please refer to the documentation of the individual search endpoints to know which attributes can be accessed through the predicate,
and which extra query parameters are supported or might be required in order to run the search.
These functions can be used with the predicates: `boolean`, `contains`, `not`, `starts_with`, `ends_with`.
_Example_:
For a list of all projects where the name starts with "OBS:".
`/search/project?match=starts_with(@name,'OBS:')`
More than one predicate can be combined with the following operators: `eq`, `and`, `or`, `neq`, `gt`, `lt`, `gteq`, `lteq`.
_Example_:
To receive details about the package "obs-server" that is part of the project "OBS:Server:Unstable".
`/search/package?match=@name='obs-server'+and+@project='OBS:Server:Unstable'`
- name: Sources
- name: Sources - Projects
- name: Sources - Packages
- name: Sources - Files
- name: Staging Workflow
- name: Statistics
- name: Status Messages
- name: Status Project
- name: Status Reports
- name: Status Reports - Required Checks
- name: Trigger
- name: Workers
info:
description: |
The _Open Build Service API_ is an XML API. To make sure you are querying the API and not the Web User Interface, provide the `Accept: application/xml; charset=utf-8` header in your API requests.
To authenticate, use [HTTP basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) by passing the _Authorization_ header in the form of `Authorization: Basic <credentials>`.
There is no API versioning, since there is no need for it right now.
Only rudimentary rate limiting is implemented, so please be gentle when using the API concurrently, especially with potentially expensive operations.
Your OBS Admin might have implemented other authentication schemes or stricter rate limiting in front of the application. Check the [site main page](/) for details.
For command-line users, we recommend using [osc](https://github.com/openSUSE/osc) with its _api_ command to interact with the API.
It's as simple as this example: `osc api /about` (_about_ is one of the endpoints documented below)
In order to make sure that the XML that is send in a requests body is in the expected format, the API validates it.
Either against a XML Schema Definition (`.xsd`) or a RELAX NG Schema (`.rng`). The schemas are mentioned
in the endpoint documentation. If there is no schema file mentioned, no validation of the XML is done.
In case the XML is not valid, a validation error is reported.
The legacy API documentation is reachable [here](https://api.opensuse.org/apidocs-old/index).
version: 2.10.50
title: Open Build Service API
contact:
url: https://openbuildservice.org/
name: Open Build Service
license:
url: https://github.com/openSUSE/open-build-service/blob/master/COPYING
name: GNU General Public License v2.0
paths:
"/about":
get:
summary: Get information about API.
description: Get generic information about the API.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [about.xsd](../schema/about.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
required:
- title
- description
- revision
properties:
title:
type: string
example: Open Build Service API
description:
type: string
example: API to the Open Build Service
revision:
type: string
example: 2.11~alpha.20201110T101235.7b5d82e614
last_deployment:
type: string
example: '2020-11-10 15:07:02 +0000'
commit:
type: string
example: 7b5d82e6143442a8eb8459f35cc94d2fbe263ebe
xml:
name: about
tags:
- General Information
"/announcements":
get:
deprecated: true
summary: List all announcements.
description: List all messages from type announcement.
security:
- basic_authentication: []
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
status_message:
type: array
items:
type: object
properties:
id:
type: integer
xml:
attribute: true
message:
type: string
user:
type: string
severity:
type: string
scope:
type: string
created_at:
type: string
xml:
name: status_message
count:
type: integer
xml:
attribute: true
xml:
name: status_messages
example:
count: 2
status_message:
- id: 2
message: OBS 3.0 is released!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-15 13:28:22 UTC
- id: 1
message: Feature number 42 was implemented!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-12 11:18:12 UTC
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Announcements
post:
deprecated: true
summary: Create an announcement.
description: |
Create an announcement.
This is only for users with roles "Admin" or "Staff".
security:
- basic_authentication: []
requestBody:
description: Announcement definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
title:
type: string
content:
type: string
xml:
name: announcement
example:
title: OBS 3.0 released!
content: We are glad to announce that OBS 3.0 is released.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Invalid Announcement.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
message_cant_be_blank:
summary: Message can't be blank
value:
code: invalid_announcement
summary: '["Message can''t be blank"]'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Announcements
"/announcements/{announcement_id}":
get:
deprecated: true
summary: Show an announcement.
description: Show the content of an announcement.
security:
- basic_authentication: []
parameters:
- in: path
name: announcement_id
schema:
type: integer
required: true
description: The id of the announcement.
example: 16
responses:
'200':
description: OK. The request has succeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
xml:
attribute: true
message:
type: string
user:
type: string
severity:
type: string
scope:
type: string
created_at:
type: string
xml:
name: status_message
example:
id: 16
message: Feature number 42 was implemented!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-12 11:18:12 UTC
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find StatusMessage with 'id'=0 [WHERE `status_messages`.`severity`
= ?]
tags:
- Announcements
put:
deprecated: true
summary: Update an announcement.
description: |
Update the content of an announcement.
This is only for users with roles "Admin" or "Staff".
security:
- basic_authentication: []
parameters:
- in: path
name: announcement_id
schema:
type: integer
required: true
description: The id of the announcement.
example: 16
requestBody:
description: Announcement definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
title:
type: string
content:
type: string
xml:
name: announcement
examples:
update_title:
summary: Update only the title
value:
title: New title!
update_title_and_content:
summary: Update title and content
value:
title: New title!
content: New content.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Invalid Announcement.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
message_cant_be_blank:
summary: Message can't be blank
value:
code: invalid_announcement
summary: '["Message can''t be blank"]'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find StatusMessage with 'id'=0 [WHERE `status_messages`.`severity`
= ?]
tags:
- Announcements
delete:
deprecated: true
summary: Delete an announcement.
description: |
Delete an announcement.
This is only for users with roles "Admin" or "Staff".
security:
- basic_authentication: []
parameters:
- in: path
name: announcement_id
schema:
type: integer
required: true
description: The id of the announcement.
example: 16
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find StatusMessage with 'id'=0 [WHERE `status_messages`.`severity`
= ?]
tags:
- Announcements
"/architectures":
get:
summary: List all known architectures.
description: |
Get a list of all known architectures known to OBS in general.
This is not the list of architectures provided by this instance. Check the
schedulers element from the `/configuration` route for this.
security:
- basic_authentication: []
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
count: '4'
entry:
- name: aarch64
- name: armv7l
- name: s390x
- name: x86_64
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- General Information
"/architectures/{architecture_name}":
get:
summary: Show one architecture.
description: Show information about one architecture.
security:
- basic_authentication: []
parameters:
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
xml:
name: architecture
example:
name: x86_64
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_architecture
summary: 'Architecture does not exist: x999'
tags:
- General Information
"/attribute":
get:
summary: List all attribute namespaces.
description: List all attribute namespaces.
security:
- basic_authentication: []
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
count: '2'
entry:
- name: OBS
- name: openSUSE
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Attribute Namespaces
"/attribute/{namespace}":
get:
summary: List all attributes below a namespace.
description: List all attributes under a given attribute namespace.
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
count: '2'
entry:
- name: AutoCleanup
- name: OwnerRootProject
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find AttribNamespace
tags:
- Attributes
delete:
summary: Delete an attribute namespace and all attributes below.
description: |
Delete an attribute namespace and all attributes below.
This operation is the same as the one defined with [DELETE /attribute/{namespace}/_meta](#/Attributes/delete_attribute__namespace___meta).
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Attribute Namespaces
"/attribute/{namespace}/_meta":
get:
summary: Show attribute namespace.
description: Shows attribute namespace.
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [attribute_namespace_meta.xsd](../schema/attribute_namespace_meta.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: OBS_TEST
xml:
attribute: true
modifiable_by:
type: array
items:
type: object
properties:
user:
type: string
example: user_login_name
xml:
attribute: true
xml:
name: namespace
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find AttribNamespace
tags:
- Attribute Namespaces
post:
summary: Change attribute namespace. Create an attribute namespace if it doesn't
exist.
description: |
This endpoint can be used for both, creating an attribute namespace and updating it:
* If the attribute namespace passed as parameter doesn't exist, it will create the attribute namespace.
* If the attribute namespace passed as parameter already exists, it will update the namespace attribute.
This operation is the same as the one defined with [PUT](#/Attributes/put_attribute__namespace___meta).
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
requestBody:
description: |
Attribute namespace definition.
XML Schema used for body validation: [attribute_namespace_meta.xsd](../schema/attribute_namespace_meta.xsd)
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: OBS_TEST
xml:
attribute: true
modifiable_by:
type: array
items:
type: object
properties:
user:
type: string
example: user_login_name
xml:
attribute: true
xml:
name: namespace
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Validation Failed.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
empty_body:
value:
code: validation_failed
summary: Document is empty, not allowed for attribute_namespace_meta
summary: Validation Failed (Empty Body)
wrong_xml_element:
value:
code: validation_failed
summary: 'attribute_namespace_meta validation error: 1:0: ERROR:
Element ''foo'': No matching global declaration available for
the validation root.'
summary: Validation Failed (Wrong XML Element)
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
namespace:
value:
code: not_found
summary: Couldn't find AttribNamespace
summary: Not Found (Namespace)
user:
value:
code: not_found
summary: Couldn't find User with login = user_login_name
summary: Not Found (User)
tags:
- Attribute Namespaces
put:
summary: Change attribute namespace. Create an attribute namespace if it doesn't
exist.
description: |
This endpoint can be used for both, creating an attribute namespace and updating it:
* If the attribute namespace passed as parameter doesn't exist, it will create the attribute namespace.
* If the attribute namespace passed as parameter already exists, it will update the namespace attribute.
This operation is the same as the one defined with [POST](#/Attributes/post_attribute__namespace___meta).
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
requestBody:
description: |
Attribute namespace definition.
XML Schema used for body validation: [attribute_namespace_meta.xsd](../schema/attribute_namespace_meta.xsd)
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: OBS_TEST
xml:
attribute: true
modifiable_by:
type: array
items:
type: object
properties:
user:
type: string
example: user_login_name
xml:
attribute: true
xml:
name: namespace
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Validation Failed.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
empty_body:
value:
code: validation_failed
summary: Document is empty, not allowed for attribute_namespace_meta
summary: Validation Failed (Empty Body)
wrong_xml_element:
value:
code: validation_failed
summary: 'attribute_namespace_meta validation error: 1:0: ERROR:
Element ''foo'': No matching global declaration available for
the validation root.'
summary: Validation Failed (Wrong XML Element)
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
namespace:
value:
code: not_found
summary: Couldn't find AttribNamespace
summary: Not Found (Namespace)
user:
value:
code: not_found
summary: Couldn't find User with login = user_login_name
summary: Not Found (User)
tags:
- Attribute Namespaces
delete:
summary: Delete an attribute namespace and all attributes below.
description: |
Delete an attribute namespace and all attributes below.
This operation is the same as the one defined with [DELETE /attribute/{namespace}](#/Attributes/delete_attribute__namespace_).
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Attribute Namespaces
"/attribute/{namespace}/{attribute_name}":
delete:
summary: Delete an attribute and all its values in projects or packages.
description: |
Delete an attribute and all its values in projects or packages.
This operation is the same as the one defined with [DELETE /attribute/{namespace}/{attribute_name}/_meta](#/Attributes/delete_attribute__namespace___attribute_name___meta)
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
namespace:
value:
code: not_found
summary: Couldn't find AttribNamespace
summary: Not Found (Namespace)
tags:
- Attributes
"/attribute/{namespace}/{attribute_name}/_meta":
get:
summary: Shows attribute.
description: Shows attribute.
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: OBS_TEST
xml:
attribute: true
namespace:
type: string
example: OwnerRootProjectTest
xml:
attribute: true
description:
type: string
example: An example description for an attribute.
allowed:
type: object
properties:
value:
type: array
items:
type: string
example:
- DisableDevelTest
- BugownerOnlyTest
count:
type: integer
example: 0
modifiable_by:
type: array
items:
type: object
properties:
user:
type: string
example: user_login_name
xml:
attribute: true
xml:
name: definition
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
namespace:
value:
code: not_found
summary: Couldn't find AttribNamespace
summary: Not Found (Namespace)
unknown_attribute:
value:
code: unknown_attribute
summary: Unknown attribute 'OBS_TEST':'OwnerRootProjectTest'
summary: Unknown Attribute
tags:
- Attributes
post:
summary: Change attribute data. Create an attribute if it doesn't exist.
description: |
This endpoint can be used for both, creating an attribute and updating it:
* If the attribute passed as parameter doesn't exist, it will create the attribute.
* If the attribute passed as parameter already exists, it will update the attribute.
This operation is the same as the one defined with [PUT](#/Attributes/put_attribute__namespace___attribute_name___meta).
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
requestBody:
description: Attribute definition.
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: OBS_TEST
xml:
attribute: true
namespace:
type: string
example: OwnerRootProjectTest
xml:
attribute: true
description:
type: string
example: An example description for an attribute.
allowed:
type: object
properties:
value:
type: array
items:
type: string
example:
- DisableDevelTest
- BugownerOnlyTest
count:
type: integer
example: 0
modifiable_by:
type: array
items:
type: object
properties:
user:
type: string
example: user_login_name
xml:
attribute: true
xml:
name: definition
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Validation Failed.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
empty_body:
value:
code: validation_failed
summary: Document is empty, not allowed for attrib_type
summary: Validation Failed (Empty Body)
wrong_xml_element:
value:
code: validation_failed
summary: 'attrib_type validation error: 1:0: ERROR: Element definition
failed to validate attributes'
summary: Validation Failed (Wrong XML Attributes)
illegal_request:
value:
code: illegal_request
summary: 'Illegal request: PUT/POST /attribute/OBS_TEST/OwnerRootProjectTest/_meta:
path does not match content'
summary: Illegal Request
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
namespace:
value:
code: not_found
summary: Couldn't find AttribNamespace
summary: Not Found (Namespace)
unknown_attribute:
value:
code: unknown_attribute
summary: Unknown attribute 'OBS_TEST':'OwnerRootProjectTest'
summary: Unknown Attribute
tags:
- Attributes
put:
summary: Change attribute data. Create an attribute if it doesn't exist.
description: |
This endpoint can be used for both, creating an attribute and updating it:
* If the attribute passed as parameter doesn't exist, it will create the attribute.
* If the attribute passed as parameter already exists, it will update the attribute.
This operation is the same as the one defined with [POST](#/Attributes/post_attribute__namespace___attribute_name___meta).
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
requestBody:
description: Attribute definition.
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: OBS_TEST
xml:
attribute: true
namespace:
type: string
example: OwnerRootProjectTest
xml:
attribute: true
description:
type: string
example: An example description for an attribute.
allowed:
type: object
properties:
value:
type: array
items:
type: string
example:
- DisableDevelTest
- BugownerOnlyTest
count:
type: integer
example: 0
modifiable_by:
type: array
items:
type: object
properties:
user:
type: string
example: user_login_name
xml:
attribute: true
xml:
name: definition
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Validation Failed.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
empty_body:
value:
code: validation_failed
summary: Document is empty, not allowed for attrib_type
summary: Validation Failed (Empty Body)
wrong_xml_element:
value:
code: validation_failed
summary: 'attrib_type validation error: 1:0: ERROR: Element definition
failed to validate attributes'
summary: Validation Failed (Wrong XML Attributes)
illegal_request:
value:
code: illegal_request
summary: 'Illegal request: PUT/POST /attribute/OBS_TEST/OwnerRootProjectTest/_meta:
path does not match content'
summary: Illegal Request
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
namespace:
value:
code: not_found
summary: Couldn't find AttribNamespace
summary: Not Found (Namespace)
unknown_attribute:
value:
code: unknown_attribute
summary: Unknown attribute 'OBS_TEST':'OwnerRootProjectTest'
summary: Unknown Attribute
tags:
- Attributes
delete:
summary: Delete an attribute and all its values in projects or packages.
description: |
Delete an attribute and all its values in projects or packages.
This operation is the same as the one defined with [DELETE /attribute/{namespace}/{attribute_name}](#/Attributes/delete_attribute__namespace___attribute_name_)
security:
- basic_authentication: []
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: The namespace
example: OBS_TEST
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
namespace:
value:
code: not_found
summary: Couldn't find AttribNamespace
summary: Not Found (Namespace)
tags:
- Attributes
"/build":
get:
summary: Get a simple directory listing of all projects
description: Get a simple directory listing of all projects
security:
- basic_authentication: []
responses:
'200':
description: |
OK
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: openSUSE:Leap:15.1
- name: openSUSE:Leap:15.2
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Build
"/build/_workerstatus":
get:
deprecated: true
summary: Lists status of workers, jobs, backend services and general statistics.
description: |
Lists status of workers, running jobs, waiting jobs, status of the backend services and general statistics.
This endpoint is exactly the same as `GET /worker/_status`, please use that one.
security:
- basic_authentication: []
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
clients:
type: integer
xml:
attribute: true
idle:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
building:
type: array
items:
type: object
properties:
repository:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
down:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
waiting:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
blocked:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
buildavg:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
buildavg:
type: string
xml:
attribute: true
partition:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
daemon:
type: array
items:
type: object
properties:
type:
type: string
xml:
attribute: true
state:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
queue:
type: object
properties:
high:
type: string
xml:
attribute: true
med:
type: string
xml:
attribute: true
low:
type: string
xml:
attribute: true
next:
type: string
xml:
attribute: true
xml:
name: workerstatus
example:
clients: '2'
idle:
- workerid: 1a1f67b948b6:1
hostarch: x86_64
building:
- repository: openSUSE_11.3_Update
arch: x86_64
project: home:enzokiel
package: android-sdk
starttime: '1289838671'
workerid: 1a1f67b948b6:2
hostarch: x86_64
down:
- workerid: armbuild03:1
hostarch: aarch64
waiting:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
blocked:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
buildavg:
- arch: i586
buildavg: '1200'
- arch: x86_64
buildavg: '1200'
partition:
- daemon:
- type: srcserver
state: running
starttime: '1617711138'
- type: servicedispatch
state: running
starttime: '1617711144'
- type: service
state: running
starttime: '1617711144'
- type: clouduploadserver
state: running
starttime: '1617711145'
- type: clouduploadworker
state: running
starttime: '1617711144'
- type: scheduler
arch: i586
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: scheduler
arch: x86_64
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: repserver
state: running
starttime: '1617711143'
- type: dispatcher
state: running
starttime: '1617711144'
- type: publisher
state: running
starttime: '1617711145'
- type: signer
state: running
starttime: '1617711146'
- name: back-main
daemon:
- type: scheduler
arch: aarch64
state: running
starttime: '1617148925'
queue:
high: '0'
med: '1'
low: '4'
next: '22'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Build
"/build/{project_name}":
get:
summary: Get a simple directory listing of all repositories for the specified
project
description: Get a simple directory listing of all repositories for the specified
project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: |
OK
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: openSUSE_Tumbleweed
- name: openSUSE_Leap_15.3
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
post:
summary: Apply different actions on builds/build processes of the specified
project
description: Apply different actions on builds/build processes of the specified
project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: package
schema:
type: string
description: Name of the package. Scope the commands to the specified package.
example: firefox
- in: query
name: arch
schema:
type: string
description: Name of the build architecture. Scope the commands to the specified
architectures.
example: x86_64
- in: query
name: repository
schema:
type: string
description: Name of the repository. Scope the commands to the specified repository.
example: openSUSE_Leap_15.2
- in: query
name: cmd
required: true
schema:
type: string
enum:
- wipe
- restartbuild
- killbuild
- abortbuild
- rebuild
- unpublish
- sendsysrq
description: |
**NOTE**: All commands described below, can be scoped to a package within the project by setting the `package`
parameter.
* `wipe`: Delete all binaries build by the project.
* `restartbuild`: Restart all running build processes inside the project.
* `rebuild`: Trigger a rebuild of all packages inside the project.
* `abortbuild`: Abort all running build processes for the specified project, marking them as failed.
* `killbuild`: Alias for `abortbuild`.
* `unpublish`: Delete all published package binaries, for the specified project, from the download repository.
* `sendsysrq`: Send a single sysrq character to the kernel of a running build. Character need to be specified
through the `sysrq` parameter. Only a subset of debugging requests are supported (eg. 9, t or w).
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Illegal request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Illegal Request:
value:
code: illegal_request
summary: unsupported POST command '<some command>' to <some url>.
'403':
description: |
Execute command no permission.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Execute cmd no permission:
value:
code: execute_cmd_no_permission
summary: No permission to execute command on package <some package>
in project <some project>
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/_result":
get:
summary: Get the build results for packages, architectures and repositories
of the specified project.
description: Get the build results for packages, architectures and repositories
of the specified project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: view
schema:
type: string
enum:
- status
- summary
- binarylist
default: status
description: |
Specify which sections should be included in the result list.
* `status`: Include detailed infos about the build status.
* `summary`: Include the summary of the status values.
* `binarylist`: Include a list of generated binary files.
- in: query
name: package
schema:
type: string
description: Name of the package. Limit results to the specified package.
example: obs-server
- in: query
name: arch
schema:
type: string
description: Name of the build architecture. Limit results to the specified
build architecture.
example: x86_64
- in: query
name: repository
schema:
type: string
description: Name of the repository. Limit results to the specified repository.
example: openSUSE_Leap_15.2
- in: query
name: lastbuild
schema:
type: string
description: Set to `1` to show the last build result (excludes current building
job states).
enum:
- 0
- 1
default: 0
example: 1
- in: query
name: locallink
schema:
type: string
description: Set to `1` to include build results from packages with project
local links.
enum:
- 0
- 1
default: 0
example: 1
- in: query
name: multibuild
schema:
type: string
description: Set to `1` to include build results from _multibuild definitions.
enum:
- 0
- 1
default: 0
example: 1
responses:
'200':
description: |
OK.
XML Schema used for body validation: [buildresult.rng](../schema/buildresult.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
state:
type: string
example: e096d16554264fa553ca0aa3226cf189
xml:
attribute: true
result:
type: array
items:
type: object
properties:
project:
type: string
example: home:foo
xml:
attribute: true
repository:
type: string
example: openSUSE_Leap_15.3
xml:
attribute: true
arch:
type: string
example: x86_64
xml:
attribute: true
code:
type: string
example: published
xml:
attribute: true
state:
type: string
example: published
xml:
attribute: true
status:
type: array
items:
type: object
properties:
package:
type: string
example: ctris
xml:
attribute: true
code:
type: string
example: succeeded
xml:
attribute: true
details:
type: string
example: package whitelist
binarylist:
type: array
items:
type: object
properties:
package:
type: string
example: ctris
xml:
attribute: true
binary:
type: array
items:
type: object
properties:
filename:
type: string
example: hello-2.10-3.1.x86_64.rpm
xml:
attribute: true
size:
type: string
example: '58352'
xml:
attribute: true
mtime:
type: string
example: '1617270174'
xml:
attribute: true
summary:
type: object
properties:
statuscount:
type: array
items:
type: object
properties:
code:
type: string
example: disabled
xml:
attribute: true
count:
type: string
example: '2'
xml:
attribute: true
xml:
name: resultlist
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `multibuild`,
for example.
value:
code: 400
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}":
get:
summary: List of all architectures the specified project builds against a given
repository.
description: List of all architectures the specified project builds against
a given repository.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
responses:
'200':
description: |
OK
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: x86_64
- name: i586
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 404
summary: project '<project_name>' has no repository '<repository_name>'
details: 404 project '<project_name>' has no repository '<repository_name>'
tags:
- Build
"/build/{project_name}/{repository_name}/_buildconfig":
get:
summary: Show the build configuration for the specified repository.
description: |
Show the build configuration for the specified repository. Includes all base package
requirements, mappings and macros.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
responses:
'200':
description: OK
content:
text/plain:
example: |
%define _project home:Admin
### from openSUSE.org:openSUSE:Leap:15.2
%define _repository standard
Macros:
%vendor obs://build.some.where/home:Admin
%_project home:Admin
### from openSUSE.org:openSUSE:Leap:15.2
%_repository standard
:Macros
Release: <CI_CNT>.<B_CNT> spec:lp152.<CI_CNT>.<B_CNT>
%define gcc_version 7
# testing new cycle algorithm
BuildFlags: genmetaalgo:1
# abort the build if the log file didn't move in an hour (seen in libreoffice builds)
BuildFlags: logidlelimit:3600
PublishFlags: ympdist:openSUSE%20Leap%2015.2
# Help with the switch to the gcc7 provided libs
Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libcilkrts5-gcc7 -libitm1-gcc7
Prefer: -liblsan0-gcc7 -libmpx2-gcc7 -libubsan0-gcc7
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/_builddepinfo":
get:
summary: Show the build dependencies of packages that are part of the project.
description: |
Show the build dependencies of packages that are part of the project,
for a given repository and architecture.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: query
name: package
schema:
type: string
description: Name of the package. Limit results to the specified package.
example: obs-server
- in: query
name: view
schema:
type: string
enum:
- pkgnames
- revpkgnames
- order
description: |
* `pkgnames`: Show whole package dependencies, instead of individual binaries.
* `revpkgnames`: Show which packages depend on the provided project/package for
the given repository/architecture, and therefore a rebuild gets triggered on change.
* `order`: Show packages ordered by dependencies.
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
package:
type: array
items:
type: object
properties:
name:
type: string
example: memcached
xml:
attribute: true
source:
type: string
example: memcached
pkgdep:
type: array
items:
type: string
example:
- gzip
- obs-server
subpkg:
type: array
items:
type: string
example:
- memcached-devel
- memcached-debugsource
xml:
name: builddepinfo
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/_jobhistory":
get:
summary: Get the build log of all finished builds.
description: Get the build log of all finished builds, for a given project,
repository and architecture.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: query
name: code
schema:
type: string
description: 'Filter results by finished build code: `failed`, `succeeded`,
`unchanged`.'
example: succeeded
- in: query
name: endtime_end
schema:
type: integer
description: Show builds which finished before given time.
example: 1714135617
- in: query
name: endtime_start
schema:
type: integer
description: Show builds which finished after given time.
example: 1714130617
- in: query
name: limit
schema:
type: integer
description: Limit the number of retrieved results elements to the specified
number.
example: 10
- in: query
name: package
schema:
type: string
description: Name of the package. Limit results to the specified package.
example: obs-server
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
package:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
versrel:
type: string
xml:
attribute: true
bcnt:
type: integer
xml:
attribute: true
readytime:
type: integer
xml:
attribute: true
starttime:
type: integer
xml:
attribute: true
endtime:
type: integer
xml:
attribute: true
code:
type: string
xml:
attribute: true
uri:
type: string
xml:
attribute: true
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
reason:
type: string
xml:
attribute: true
verifymd5:
type: string
xml:
attribute: true
xml:
name: jobhist
xml:
wrapped: true
name: jobhistlist
example:
- package: obs-server
rev: 17367
srcmd5: e2fc6b9e014441f3f8a33beb62446215
versrel: 2.11~alpha.20240426T143809.ab0551f7-16803
bcnt: 1
readytime: 1714135430
starttime: 1714135490
endtime: 1714135617
code: succeeded
uri: http://192.168.2.130:42344
workerid: i02-ch1d:21
hostarch: x86_64
reason: source change
verifymd5: 518a4d1c0e95fe3c04117aafba722a1f
- package: obs-server:obs-bundled-gems
rev: 17368
srcmd5: feac17ca9cf334d57d719f3ba52a300f
versrel: 2.11~alpha.20240426T150958.ca259016-16804
bcnt: 1
readytime: 1714137054
starttime: 1714137078
endtime: 1714137296
code: succeeded
uri: http://192.168.2.130:42344
workerid: i04-ch4d:9
hostarch: x86_64
reason: source change
verifymd5: f81504abf10aaca978a8acea9eaa5bf5
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/_repository":
get:
summary: List all binaries (produced by all packages of the given project).
description: |
List all binaries (produced by all packages of the given project) for the specified
repository and architecture.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
responses:
'200':
description: OK.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
binary:
type: array
items:
type: object
properties:
filename:
type: string
example: hello-2.10-3.1.x86_64.rpm
xml:
attribute: true
size:
type: string
example: '58352'
xml:
attribute: true
mtime:
type: string
example: '1617270174'
xml:
attribute: true
xml:
name: binarylist
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}":
get:
summary: List binaries built by the sources of the specified package.
description: List binaries built by the sources of the specified package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: OK.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
binary:
type: array
items:
type: object
properties:
filename:
type: string
example: hello-2.10-3.1.x86_64.rpm
xml:
attribute: true
size:
type: string
example: '58352'
xml:
attribute: true
mtime:
type: string
example: '1617270174'
xml:
attribute: true
xml:
name: binarylist
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_buildenv":
get:
summary: Return the environment information for the last performed build.
description: Get specifics of the environment information for the last performed
build.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: string
example: home:Admin
xml:
attribute: true
repository:
type: string
example: openSUSE_Tumbleweed
xml:
attribute: true
package:
type: string
example: ctris
xml:
attribute: true
arch:
type: string
example: i586
srcmd5:
type: string
example: 6b7c8d9cb5c5d36453c1dc8e102016b1
verifymd5:
type: string
example: 6b7c8d9cb5c5d36453c1dc8e102016b1
versrel:
type: string
example: 0.42.1-3
bcnt:
type: string
example: '2'
release:
type: string
example: '3.2'
config:
type: string
example: |
%define _project home:enavarro_suse
### from openSUSE:Factory
%define _repository ports
Macros:
%vendor obs://build.opensuse.org/home:enavarro_suse
%_download_url https://download.opensuse.org/repositories
%_project home:enavarro_suse
bdep:
type: object
properties:
name:
type: string
example: liblua5_4-5
xml:
attribute: true
hdrmd5:
type: string
example: 4f50c1ea427e184620686ded4baa3097
xml:
attribute: true
project:
type: string
example: openSUSE:Tumbleweed
xml:
attribute: true
repository:
type: string
example: dod
xml:
attribute: true
xml:
name: buildinfo
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: 1'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_buildinfo":
get:
summary: Return build information about a build description would produce.
description: |
Get build information using the default spec file.
To use other file than the default spec file, use this same endpoint path with the `POST` action.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- name: add
in: query
schema:
type: array
items:
type: string
description: Add a list of build dependencies (`BuildRequires`) to the build.
example:
- less
- vim
- name: debug
in: query
schema:
type: string
description: Set to `1` to add debug information about dependencies. This
information is added inside an `expandeddebug` xml element.
example: 0
responses:
'200':
description: Returns the artifact building information.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: string
example: home:Admin
xml:
attribute: true
repository:
type: string
example: openSUSE_Tumbleweed
xml:
attribute: true
package:
type: string
example: ctris
xml:
attribute: true
arch:
type: string
example: i586
srcmd5:
type: string
example: 6b7c8d9cb5c5d36453c1dc8e102016b1
verifymd5:
type: string
example: 6b7c8d9cb5c5d36453c1dc8e102016b1
rev:
type: integer
example: 3
specfile:
type: string
example: ctris.spec
file:
type: string
example: ctris.spec
versrel:
type: string
example: 0.42.1-3
bcnt:
type: string
example: '2'
release:
type: string
example: '3.2'
debuginfo:
type: integer
example: 0
subpack:
type: string
example: ctris
bdep:
type: object
properties:
name:
type: string
example: liblua5_4-5
xml:
attribute: true
preinstall:
type: string
example: '1'
xml:
attribute: true
notmeta:
type: string
example: '1'
xml:
attribute: true
version:
type: string
example: 5.4.2
xml:
attribute: true
release:
type: string
example: '3.1'
xml:
attribute: true
arch:
type: string
example: i586
xml:
attribute: true
project:
type: string
example: openSUSE.org:openSUSE:Tumbleweed
xml:
attribute: true
repository:
type: string
example: dod
xml:
attribute: true
path:
type: object
properties:
project:
type: string
example: home:Admin
xml:
attribute: true
repository:
type: string
example: openSUSE_Tumbleweed
xml:
attribute: true
url:
type: string
example: https://download.opensuse.org/repositories/home:/enavarro_suse/openSUSE_Tumbleweed/
xml:
attribute: true
expanddebug:
type: string
example: |
=== meta deps expansion
expand args: rpm-build gcc-PIE
added rpm-build@openSUSE:Tumbleweed/dod because of (direct):rpm-build
added gcc-PIE@openSUSE:Tumbleweed/dod because of (direct):gcc-PIE
--- now doing normal dependencies
added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.34)(64bit)
added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.4)(64bit)
xml:
name: buildinfo
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: 1'
tags:
- Build
post:
summary: Return build information about a build description would produce.
description: |
Get build information using the file passed in the request body.
Despite using the method `POST`, this endpoint doesn't alter any data.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: |
Package name.
It can take the value `_repository`, if the designated package does not exist yet in the server.
This is useful for testing a build locally before committing a package.
examples:
Normal Package Name:
value: ctris
No Package Yet:
value: _repository
- name: add
in: query
schema:
type: array
items:
type: string
description: Add a list of build dependencies (`BuildRequires`) to the build.
example:
- less
- vim
- name: debug
in: query
schema:
type: string
description: Set to `1` to add debug information about dependencies. This
information is added inside an `expandeddebug` xml element.
example: 0
requestBody:
description: A RPM specfile or a Debian "dsc" file.
required: true
content:
text/plain:
schema:
type: string
example: |
Name: hello_world
Version: 1
Release: 1
Summary: Most simple RPM package
License: CC0-1.0
%build
cat > hello_world.sh <<EOF
#!/usr/bin/bash
echo Hello world
EOF
%install
mkdir -p %{buildroot}/usr/bin/
install -m 755 hello_world.sh %{buildroot}/usr/bin/hello_world.sh
%files
/usr/bin/hello_world.sh
responses:
'200':
description: Returns the artifact building information.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: string
example: home:Admin
xml:
attribute: true
repository:
type: string
example: openSUSE_Tumbleweed
xml:
attribute: true
package:
type: string
example: ctris
xml:
attribute: true
arch:
type: string
example: i586
srcmd5:
type: string
example: 6b7c8d9cb5c5d36453c1dc8e102016b1
verifymd5:
type: string
example: 6b7c8d9cb5c5d36453c1dc8e102016b1
rev:
type: integer
example: 3
specfile:
type: string
example: ctris.spec
file:
type: string
example: ctris.spec
versrel:
type: string
example: 0.42.1-3
bcnt:
type: string
example: '2'
release:
type: string
example: '3.2'
debuginfo:
type: integer
example: 0
subpack:
type: string
example: ctris
bdep:
type: object
properties:
name:
type: string
example: liblua5_4-5
xml:
attribute: true
preinstall:
type: string
example: '1'
xml:
attribute: true
notmeta:
type: string
example: '1'
xml:
attribute: true
version:
type: string
example: 5.4.2
xml:
attribute: true
release:
type: string
example: '3.1'
xml:
attribute: true
arch:
type: string
example: i586
xml:
attribute: true
project:
type: string
example: openSUSE.org:openSUSE:Tumbleweed
xml:
attribute: true
repository:
type: string
example: dod
xml:
attribute: true
path:
type: object
properties:
project:
type: string
example: home:Admin
xml:
attribute: true
repository:
type: string
example: openSUSE_Tumbleweed
xml:
attribute: true
url:
type: string
example: https://download.opensuse.org/repositories/home:/enavarro_suse/openSUSE_Tumbleweed/
xml:
attribute: true
expanddebug:
type: string
example: |
=== meta deps expansion
expand args: rpm-build gcc-PIE
added rpm-build@openSUSE:Tumbleweed/dod because of (direct):rpm-build
added gcc-PIE@openSUSE:Tumbleweed/dod because of (direct):gcc-PIE
--- now doing normal dependencies
added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.34)(64bit)
added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.4)(64bit)
xml:
name: buildinfo
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 400
origin: backend
details: '400 remote error: could not parse name in build description
(spec) (http://backend:5252/build/home:Admin/openSUSE_Tumbleweed/x86_64/hello_world/_buildinfo)'
summary: 'remote error: could not parse name in build description
(spec) (http://backend:5252/build/home:Admin/openSUSE_Tumbleweed/x86_64/hello_world/_buildinfo)'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: 1'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_history":
get:
description: This endpoint returns the build history for a specific artifact
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: Returns ok when the build status is ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
entry:
type: object
properties:
rev:
type: string
example: '4'
xml:
attribute: true
srcmd5:
type: string
example: 63a6f075d3d420c6c1160a7b5dc31354
xml:
attribute: true
versrel:
type: string
example: 0.42.1-4
xml:
attribute: true
bcnt:
type: string
example: '1'
xml:
attribute: true
time:
type: string
example: '1617812788'
xml:
attribute: true
duration:
type: string
example: '222'
xml:
attribute: true
xml:
name: buildhistory
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: 1'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_jobstatus":
get:
summary: Show the build status of a currently running build job.
description: |
Show the build status of a currently running build job. Shows an empty
result if no build job is running.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: |
OK.
XML Schema used for body validation: [jobstatus.rng](../schema/jobstatus.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
example: building
xml:
attribute: true
starttime:
type: string
example: '1618222900'
lastduration:
type: string
example: '43'
hostarch:
type: string
example: x86_64
uri:
type: string
example: http://172.18.0.5:38963
jobid:
type: string
example: 17c8d25b92da67f6ec428ea51a9b5342
xml:
name: jobstatus
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_log":
get:
description: This endpoint returns the last log file for a specific build artifact
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: This endpoint returns the log file content
content:
text/plain:
example: "[ 0s] Memory limit set to 23077696KB\n[ 0s] Using BUILD_ROOT=/var/cache/obs/worker/root_2\n[
\ 0s] Using BUILD_ARCH=i586:i486:i386\n[ 0s] \n[ 0s] \n[ 0s]
5d0262043f4a started \"build ctris.spec\" at Tue Apr 6 12:27:31 UTC
2021.\n[ 0s] \n[ 0s] Building ctris for project 'home:Admin'
repository 'openSUSE_Tumbleweed' arch 'i586' srcmd5 '6b7c8d9cb5c5d36453c1dc8e102016b1'\n"
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Error: Not Acceptable
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: download_binary_no_permission
summary: No permission to download binaries from package ctris, project
home:Admin
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: 1'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_reason":
get:
summary: Show the reason for the lastly triggered build.
description: Details about the reason of the lastly triggered build.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
explain:
type: string
example: source change
time:
type: string
example: '1617982407'
oldsource:
type: string
example: da9ebc6a12b6da45f9ead3fc2f924889
xml:
name: reason
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_statistics":
get:
summary: Return build statistics from the last performed build.
description: Get specifics of build statistics from the last performed build.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
disk:
type: object
properties:
usage:
type: object
properties:
size:
type: object
properties:
unit:
type: string
xml:
attribute: true
io_requests:
type: string
io_sectors:
type: string
memory:
type: object
properties:
usage:
type: object
properties:
size:
type: object
properties:
unit:
type: string
xml:
attribute: true
times:
type: object
properties:
total:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
preinstall:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
install:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
main:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
postchecks:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
rpmlint:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
buildcmp:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
deltarpms:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
download:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
cpusteal:
type: object
properties:
time:
type: object
properties:
unit:
type: string
xml:
attribute: true
download:
type: object
properties:
size:
type: object
properties:
unit:
type: string
xml:
attribute: true
binaries:
type: string
cachehits:
type: string
xml:
name: buildstatistics
example:
disk:
usage:
size:
unit: M
io_requests: 7750
io_sectors: 1248010
memory:
usage:
size:
unit: M
times:
total:
time:
unit: s
preinstall:
time:
unit: s
download:
size:
unit: k
binaries: 5
cachehits: 131
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: 1'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_status":
get:
description: This endpoint returns the building status for a specific artifact
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: Returns ok when the build status is ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
package:
type: string
example: ctris
xml:
attribute: true
code:
type: string
example: failed
xml:
attribute: true
xml:
name: status
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: 1'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/{file_name}":
get:
summary: Return a specific artifact file contents
description: Given a project, repository, architecture and package, retrieve
the given file's content.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
responses:
'200':
description: Returns the artifact's actual file contents
content:
application/*:
schema:
type: string
format: binary
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: '404'
summary: project 'home:Admin' has no repository '4'
details: 404 project 'home:Admin' has no repository '4'
tags:
- Build
put:
summary: Update a specific artifact file contents
description: |
Given a project, repository, architecture and package, update the given file's content.
This is for Admins only.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- name: package_name
in: path
schema:
type: array
items:
type: string
enum:
- _repository
required: true
description: Package name
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
requestBody:
content:
plain/text:
schema:
type: string
properties:
file:
type: string
format: binary
responses:
'200':
description: Updates the artifact's file contents
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: No permission to upload binaries for this project
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: upload_binary_no_permission
summary: No permission to upload binaries.
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: '404'
summary: project 'home:Admin' has no repository '4'
details: 404 project 'home:Admin' has no repository '4'
tags:
- Build
delete:
summary: Delete an existing repository artifact
description: |
Given a project, repository and architecture delete the given file in the repository.
The user needs to have write permissions into the artifact
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- name: package_name
in: path
schema:
type: array
items:
type: string
enum:
- _repository
required: true
description: Package name. '_repository' is the only posible value.
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Operation is not allowed
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: invalid_operation
summary: Delete operation of build results is not allowed
'403':
description: No permission to delete binaries from this project
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: delete_binary_no_permission
summary: No permission to delete binaries from project home:Admin.
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: '404'
summary: project 'home:Admin' has no repository '4'
tags:
- Build
"/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/{file_name}?view=fileinfo":
get:
summary: This endpoint returns details about an specific artifact
description: Given a project, repository, architecture and package, retrieve
the given artifact's details.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
- name: view
in: query
required: true
schema:
type: array
items:
type: string
enum:
- fileinfo
- fileinfo_ext
responses:
'200':
description: Returns details about the artifact
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
filename:
type: string
xml:
attribute: true
name:
type: string
version:
type: string
release:
type: string
arch:
type: string
source:
type: string
summary:
type: string
description:
type: string
size:
type: string
mtime:
type: string
provides:
type: array
items:
type: string
requires:
type: array
items:
type: string
provides_ext:
type: array
items:
type: object
properties:
dep:
type: string
xml:
attribute: true
requires_ext:
type: array
items:
type: object
properties:
dep:
type: string
xml:
attribute: true
provided_by:
type: object
properties:
name:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
release:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
xml:
name: fileinfo
examples:
fileinfo:
summary: view=fileinfo
value:
filename: ctris-0.42.1-4.1.x86_64.rpm
name: ctris
version: 0.42.1
release: '4.1'
arch: x86_64
summary: Console based tetris clone
description: ctris is a colorized, small and flexible Tetris(TM)-clone
for the console. Go play!
size: '765725'
mtime: '1617270174'
provides:
- ctris = 0.42.1-6.2
- ctris(x86-64) = 0.42.1-6.2
requires:
- libc.so.6()(64bit)
- libc.so.6(GLIBC_2.2.5)(64bit)
fileinfo_ext:
summary: view=fileinfo_ext
value:
filename: ctris-0.42.1-4.2.x86_64.rpm
name: ctris
version: 0.42.1
release: '4.1'
arch: x86_64
source: ctris
summary: Console based tetris clone
description: ctris is a colorized, small and flexible Tetris(TM)-clone
for the console. Go play!
size: '765725'
mtime: '1617270174'
provides:
- ctris = 0.42.1-6.2
- ctris(x86-64) = 0.42.1-6.2
requires:
- libc.so.6()(64bit)
- libc.so.6(GLIBC_2.2.5)(64bit)
provides_ext:
dep: ctris(x86-64) = 0.42.1-6.2
requires_ext:
dep: libc.so.6()(64bit)
provided_by:
name: glibc
version: '2.33'
release: '4.1'
arch: x86_64
project: openSUSE.org:openSUSE:Tumbleweed
repository: dod
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Error: Not Found
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: '404'
summary: project 'home:Admin' has no repository '4'
details: 404 project 'home:Admin' has no repository '4'
tags:
- Build
"/comment/{comment_id}":
delete:
summary: Delete a comment
description: Delete a given comment based on its id.
security:
- basic_authentication: []
parameters:
- in: path
name: comment_id
schema:
type: integer
required: true
description: Id of the comment.
example: 1124
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: delete_comment_not_authorized
summary: Sorry, you are not authorized to delete this comment
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Comment with id '1124'
tags:
- Comments
"/comment/{comment_id}/history":
get:
summary: List the history of a comment
description: |
List the versions of a edited comment.
**(Beta/Unstable)** This endpoint is currently behind the `content_moderation` beta flag.
security:
- basic_authentication: []
parameters:
- in: path
name: comment_id
schema:
type: integer
required: true
description: Id of the comment.
example: 5
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [comment_history.rng](../schema/comment_history.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
comment:
type: integer
xml:
attribute: true
xml:
name: comment_history
example: |
<comment_history comment="6">
<comment who="bar" when="2024-02-28 16:12:45 UTC" id="6">First version of comment</comment>
<comment who="bar" when="2024-02-28 16:15:27 UTC" id="6">UHH DONT LIKE MY COMMENT</comment>
</comment_history>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: history_comment_not_authorized
summary: Sorry, you are not authorized to history this comment.
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Comment with 'id'=67
tags:
- Comments
"/comments/user":
get:
summary: List all the logged in user's comments
description: List all the comments for the currently logged in user.
security:
- basic_authentication: []
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
comment:
type: array
items:
type: object
properties:
id:
type: integer
xml:
attribute: true
who:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
parent:
type: integer
xml:
attribute: true
bsrequest:
type: integer
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
request:
type: integer
xml:
attribute: true
package:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
user:
type: string
xml:
attribute: true
xml:
name: comments
example: |
<comments user="Iggy">
<comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1" bsrequest="115">This is a pretty cool request!</comment>
<comment who="Iggy" when="2021-10-15 13:49:39 UTC" id="2" project="home:Admin">This is a pretty cool project!</comment>
<comment who="Iggy" when="2021-10-15 13:54:38 UTC" id="3" project="home:Admin" package="0ad">This is a pretty cool package!</comment>
</comments>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Comments
"/comments/request/{id}":
get:
summary: List all the request's comments
description: List all the comments for the request.
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
comment:
type: array
items:
type: object
properties:
id:
type: integer
xml:
attribute: true
who:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
parent:
type: integer
xml:
attribute: true
bsrequest:
type: integer
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
request:
type: integer
xml:
attribute: true
package:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
user:
type: string
xml:
attribute: true
xml:
name: comments
example: |
<comments request="115">
<comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1">This is a pretty cool comment!</comment>
</comments>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: Couldn't find Request with number '1234'
value:
code: not_found
summary: Couldn't find Request with number '1234'
tags:
- Comments
post:
summary: Create a request comment
description: Create a comment for the request.
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
- in: query
name: parent_id
schema:
type: integer
description: Id of the comment to reply to
example: 10401
requestBody:
description: Content of the comment
required: true
content:
text/plain:
schema:
type: string
example: This is a very valuable comment
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Invalid Comment.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_record:
summary: Parent belongs to different object
value:
code: invalid_record
summary: Parent belongs to different object
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: Couldn't find Request with number '1234'
value:
code: not_found
summary: Couldn't find Request with number '1234'
tags:
- Comments
"/comments/project/{project_name}":
get:
summary: List all the project's comments
description: List all the comments for the project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
comment:
type: array
items:
type: object
properties:
id:
type: integer
xml:
attribute: true
who:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
parent:
type: integer
xml:
attribute: true
bsrequest:
type: integer
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
request:
type: integer
xml:
attribute: true
package:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
user:
type: string
xml:
attribute: true
xml:
name: comments
example: |
<comments project="home:Admin">
<comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1">This is a pretty cool comment!</comment>
</comments>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: 'Project not found: notaproject'
value:
code: not_found
summary: 'Project not found: notaproject'
tags:
- Comments
post:
summary: Create a project comment
description: Create a comment for the project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: parent_id
schema:
type: integer
description: Id of the comment to reply to
example: 10401
requestBody:
description: Content of the comment
required: true
content:
text/plain:
schema:
type: string
example: This is a very valuable comment
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Invalid Comment.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_record:
summary: Parent belongs to different object
value:
code: invalid_record
summary: Parent belongs to different object
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
value:
code: not_found
tags:
- Comments
"/comments/package/{project_name}/{package_name}":
get:
summary: List all the package's comments
description: List all the comments for the package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
comment:
type: array
items:
type: object
properties:
id:
type: integer
xml:
attribute: true
who:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
parent:
type: integer
xml:
attribute: true
bsrequest:
type: integer
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
request:
type: integer
xml:
attribute: true
package:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
user:
type: string
xml:
attribute: true
xml:
name: comments
example: |
<comments project="home:Admin" package="0ad">
<comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1">This is a pretty cool comment!</comment>
</comments>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: 'Package not found: home:Admin/notapackage'
value:
code: not_found
summary: 'Package not found: home:Admin/notapackage'
tags:
- Comments
post:
summary: Create a package comment
description: Create a comment for the package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: parent_id
schema:
type: integer
description: Id of the comment to reply to
example: 10401
requestBody:
description: Content of the comment
required: true
content:
text/plain:
schema:
type: string
example: This is a very valuable comment
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Invalid Comment.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_record:
summary: Parent belongs to different object
value:
code: invalid_record
summary: Parent belongs to different object
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: 'Package not found: openSUSE:Factory/eeee'
value:
code: not_found
summary: 'Package not found: openSUSE:Factory/eeee'
tags:
- Comments
"/configuration":
get:
summary: Display the configuration of this Open Build Service instance
description: Display the configuration of this Open Build Service instance.
security:
- basic_authentication: []
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
title:
type: string
example: Open Build Service
description:
type: string
example: The openSUSE Build Service is the public instance of
the Open Build Service (OBS)
name:
type: string
example: private
download_on_demand:
type: string
example: true
enforce_project_keys:
type: string
example: false
anonymous:
type: string
example: true
registration:
type: string
example: allow
default_access_disabled:
type: string
example: false
allow_user_to_create_home_project:
type: string
example: true
disallow_group_creation:
type: string
example: false
change_password:
type: string
example: true
obs_url:
type: string
example: https://unconfigured.openbuildservice.org
tos_url:
type: string
example: https://en.opensuse.org/Terms_of_site
hide_private_options:
type: string
example: false
gravatar:
type: string
example: true
cleanup_empty_projects:
type: string
example: true
disable_publish_for_branches:
type: string
example: true
admin_email:
type: string
example: unconfigured@openbuildservice.org
unlisted_projects_filter:
type: string
example: "^home:.+"
unlisted_projects_filter_description:
type: string
example: home projects
default_tracker:
type: string
example: bnc
code_of_conduct:
type: string
example: |
This is an example of a "Code of Conduct".
1. First point.
2. Second point.
schedulers:
type: object
properties:
arch:
type: array
items:
type: string
example:
- armv7l
- i586
- x86_64
xml:
name: configuration
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Configuration
put:
summary: Update the configuration of this Open Build Service instance
description: |
Update the configuration of this Open Build Service instance.
This is for admins only.
security:
- basic_authentication: []
requestBody:
description: Configuration definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
title:
type: string
example: Open Build Service
description:
type: string
example: The openSUSE Build Service is the public instance of the
Open Build Service (OBS)
name:
type: string
example: private
download_on_demand:
type: string
example: true
enforce_project_keys:
type: string
example: false
anonymous:
type: string
example: true
registration:
type: string
example: allow
default_access_disabled:
type: string
example: false
allow_user_to_create_home_project:
type: string
example: true
disallow_group_creation:
type: string
example: false
change_password:
type: string
example: true
obs_url:
type: string
example: https://unconfigured.openbuildservice.org
tos_url:
type: string
example: https://en.opensuse.org/Terms_of_site
hide_private_options:
type: string
example: false
gravatar:
type: string
example: true
cleanup_empty_projects:
type: string
example: true
disable_publish_for_branches:
type: string
example: true
admin_email:
type: string
example: unconfigured@openbuildservice.org
unlisted_projects_filter:
type: string
example: "^home:.+"
unlisted_projects_filter_description:
type: string
example: home projects
default_tracker:
type: string
example: bnc
code_of_conduct:
type: string
example: |
This is an example of a "Code of Conduct".
1. First point.
2. Second point.
schedulers:
type: object
properties:
arch:
type: array
items:
type: string
example:
- armv7l
- i586
- x86_64
xml:
name: configuration
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
title:
type: string
example: Open Build Service
description:
type: string
example: The openSUSE Build Service is the public instance of
the Open Build Service (OBS)
name:
type: string
example: private
download_on_demand:
type: string
example: true
enforce_project_keys:
type: string
example: false
anonymous:
type: string
example: true
registration:
type: string
example: allow
default_access_disabled:
type: string
example: false
allow_user_to_create_home_project:
type: string
example: true
disallow_group_creation:
type: string
example: false
change_password:
type: string
example: true
obs_url:
type: string
example: https://unconfigured.openbuildservice.org
tos_url:
type: string
example: https://en.opensuse.org/Terms_of_site
hide_private_options:
type: string
example: false
gravatar:
type: string
example: true
cleanup_empty_projects:
type: string
example: true
disable_publish_for_branches:
type: string
example: true
admin_email:
type: string
example: unconfigured@openbuildservice.org
unlisted_projects_filter:
type: string
example: "^home:.+"
unlisted_projects_filter_description:
type: string
example: home projects
default_tracker:
type: string
example: bnc
code_of_conduct:
type: string
example: |
This is an example of a "Code of Conduct".
1. First point.
2. Second point.
schedulers:
type: object
properties:
arch:
type: array
items:
type: string
example:
- armv7l
- i586
- x86_64
xml:
name: configuration
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
In the example below, _default_access_disabled_ is one of the possible configuration options which is set in the options.yml file.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: no_permission_to_change
summary: The api has a different value for default_access_disabled
configured in options.yml file. Remove it there first
tags:
- Configuration
"/distributions":
get:
summary: List all distributions.
description: |
List all distributions that can be build against.
This will not list distributions that are available via [interconnect](https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.concepts.html#id-1.5.10.3.5).
Check /distributions/include_remotes for this.
security:
- basic_authentication: []
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [distributions.rng](../schema/distributions.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
distribution:
type: array
items:
type: object
properties:
id:
type: integer
example: 16626
xml:
attribute: true
vendor:
type: string
example: opensuse
xml:
attribute: true
version:
type: string
example: Tumbleweed
xml:
attribute: true
name:
type: string
example: openSUSE Tumbleweed
project:
type: string
example: openSUSE:Factory
repository:
type: string
example: snapshot
reponame:
type: string
example: openSUSE_Tumbleweed
link:
type: string
example: http://www.opensuse.org/
architecture:
type: array
example:
- i586
- x86_64
items:
type: string
icon:
type: array
example:
- width: 8
height: 8
url: https://static.opensuse.org/distributions/logos/opensuse.png
- width: 16
height: 16
url: https://static.opensuse.org/distributions/logos/opensuse.png
items:
type: object
properties:
width:
type: integer
xml:
attribute: true
height:
type: integer
xml:
attribute: true
url:
type: string
xml:
attribute: true
xml:
name: distributions
example:
distribution:
- vendor: opensuse
version: Tumbleweed
id: 16626
name: openSUSE Tumbleweed
project: openSUSE:Factory
reponame: openSUSE_Tumbleweed
repository: snapshot
link: http://www.opensuse.org/
icon:
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 8
height: 8
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 16
height: 16
architecture:
- i586
- x86_64
- vendor: openSUSE
version: '15.3'
id: 16629
name: openSUSE Leap 15.3
project: openSUSE:Leap:15.3
reponame: openSUSE_Leap_15.3
repository: standard
link: http://www.opensuse.org/
icon:
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 8
height: 8
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 16
height: 16
architecture: x86_64
- vendor: Fedora
version: '33'
id: 16731
name: Fedora 33
project: Fedora:33
reponame: Fedora_33
repository: standard
link: http://www.fedoraproject.org/
icon:
- url: https://static.opensuse.org/distributions/logos/fedora.png
width: 8
height: 8
- url: https://static.opensuse.org/distributions/logos/fedora.png
width: 16
height: 16
architecture:
- i586
- x86_64
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Distributions
post:
summary: Create a distribution.
description: |
Create a distribution.
This is only for admins.
security:
- basic_authentication: []
requestBody:
description: Distribution definition
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 16626
xml:
attribute: true
vendor:
type: string
example: opensuse
xml:
attribute: true
version:
type: string
example: Tumbleweed
xml:
attribute: true
name:
type: string
example: openSUSE Tumbleweed
project:
type: string
example: openSUSE:Factory
repository:
type: string
example: snapshot
reponame:
type: string
example: openSUSE_Tumbleweed
link:
type: string
example: http://www.opensuse.org/
architecture:
type: array
example:
- i586
- x86_64
items:
type: string
icon:
type: array
example:
- width: 8
height: 8
url: https://static.opensuse.org/distributions/logos/opensuse.png
- width: 16
height: 16
url: https://static.opensuse.org/distributions/logos/opensuse.png
items:
type: object
properties:
width:
type: integer
xml:
attribute: true
height:
type: integer
xml:
attribute: true
url:
type: string
xml:
attribute: true
xml:
name: distribution
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [distribution.rng](../schema/distribution.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 16626
xml:
attribute: true
vendor:
type: string
example: opensuse
xml:
attribute: true
version:
type: string
example: Tumbleweed
xml:
attribute: true
name:
type: string
example: openSUSE Tumbleweed
project:
type: string
example: openSUSE:Factory
repository:
type: string
example: snapshot
reponame:
type: string
example: openSUSE_Tumbleweed
link:
type: string
example: http://www.opensuse.org/
architecture:
type: array
example:
- i586
- x86_64
items:
type: string
icon:
type: array
example:
- width: 8
height: 8
url: https://static.opensuse.org/distributions/logos/opensuse.png
- width: 16
height: 16
url: https://static.opensuse.org/distributions/logos/opensuse.png
items:
type: object
properties:
width:
type: integer
xml:
attribute: true
height:
type: integer
xml:
attribute: true
url:
type: string
xml:
attribute: true
xml:
name: distribution
example:
distribution:
- vendor: opensuse
version: Tumbleweed
id: 16626
name: openSUSE Tumbleweed
project: openSUSE:Factory
reponame: openSUSE_Tumbleweed
repository: snapshot
link: http://www.opensuse.org/
icon:
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 8
height: 8
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 16
height: 16
architecture:
- i586
- x86_64
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Distributions
"/distributions/include_remotes":
get:
summary: List all distributions including remote.
description: List all distributions that can be build against, including the
ones provided by the interconnect.
security:
- basic_authentication: []
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [distributions.rng](../schema/distributions.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
distribution:
type: array
items:
type: object
properties:
id:
type: integer
example: 16626
xml:
attribute: true
vendor:
type: string
example: opensuse
xml:
attribute: true
version:
type: string
example: Tumbleweed
xml:
attribute: true
name:
type: string
example: openSUSE Tumbleweed
project:
type: string
example: openSUSE:Factory
repository:
type: string
example: snapshot
reponame:
type: string
example: openSUSE_Tumbleweed
link:
type: string
example: http://www.opensuse.org/
architecture:
type: array
example:
- i586
- x86_64
items:
type: string
icon:
type: array
example:
- width: 8
height: 8
url: https://static.opensuse.org/distributions/logos/opensuse.png
- width: 16
height: 16
url: https://static.opensuse.org/distributions/logos/opensuse.png
items:
type: object
properties:
width:
type: integer
xml:
attribute: true
height:
type: integer
xml:
attribute: true
url:
type: string
xml:
attribute: true
xml:
name: distributions
example:
distribution:
- vendor: opensuse
version: Tumbleweed
id: 16626
name: openSUSE Tumbleweed
project: openSUSE:Factory
reponame: openSUSE_Tumbleweed
repository: snapshot
link: http://www.opensuse.org/
icon:
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 8
height: 8
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 16
height: 16
architecture:
- i586
- x86_64
- vendor: openSUSE
version: '15.3'
id: 16629
name: openSUSE Leap 15.3
project: openSUSE:Leap:15.3
reponame: openSUSE_Leap_15.3
repository: standard
link: http://www.opensuse.org/
icon:
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 8
height: 8
- url: https://static.opensuse.org/distributions/logos/opensuse.png
width: 16
height: 16
architecture: x86_64
- vendor: Fedora
version: '33'
id: 16731
name: Fedora 33
project: Fedora:33
reponame: Fedora_33
repository: standard
link: http://www.fedoraproject.org/
icon:
- url: https://static.opensuse.org/distributions/logos/fedora.png
width: 8
height: 8
- url: https://static.opensuse.org/distributions/logos/fedora.png
width: 16
height: 16
architecture:
- i586
- x86_64
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Distributions
"/distributions/{distribution_id}":
get:
summary: Show a distribution.
description: Show a distribution that can be build against.
security:
- basic_authentication: []
parameters:
- in: path
name: distribution_id
schema:
type: integer
required: true
description: The id of the distribution
example: 16626
responses:
'200':
description: OK. The request has succeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 16626
xml:
attribute: true
vendor:
type: string
example: opensuse
xml:
attribute: true
version:
type: string
example: Tumbleweed
xml:
attribute: true
name:
type: string
example: openSUSE Tumbleweed
project:
type: string
example: openSUSE:Factory
repository:
type: string
example: snapshot
reponame:
type: string
example: openSUSE_Tumbleweed
link:
type: string
example: http://www.opensuse.org/
architecture:
type: array
example:
- i586
- x86_64
items:
type: string
icon:
type: array
example:
- width: 8
height: 8
url: https://static.opensuse.org/distributions/logos/opensuse.png
- width: 16
height: 16
url: https://static.opensuse.org/distributions/logos/opensuse.png
items:
type: object
properties:
width:
type: integer
xml:
attribute: true
height:
type: integer
xml:
attribute: true
url:
type: string
xml:
attribute: true
xml:
name: distribution
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Distribution with 'id'=0
tags:
- Distributions
put:
summary: Update a distribution.
description: Update the data of a distribution.
security:
- basic_authentication: []
parameters:
- in: path
name: distribution_id
schema:
type: integer
required: true
description: The id of the distribution
example: 16626
requestBody:
description: Distribution definition
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 16626
xml:
attribute: true
vendor:
type: string
example: opensuse
xml:
attribute: true
version:
type: string
example: Tumbleweed
xml:
attribute: true
name:
type: string
example: openSUSE Tumbleweed
project:
type: string
example: openSUSE:Factory
repository:
type: string
example: snapshot
reponame:
type: string
example: openSUSE_Tumbleweed
link:
type: string
example: http://www.opensuse.org/
architecture:
type: array
example:
- i586
- x86_64
items:
type: string
icon:
type: array
example:
- width: 8
height: 8
url: https://static.opensuse.org/distributions/logos/opensuse.png
- width: 16
height: 16
url: https://static.opensuse.org/distributions/logos/opensuse.png
items:
type: object
properties:
width:
type: integer
xml:
attribute: true
height:
type: integer
xml:
attribute: true
url:
type: string
xml:
attribute: true
xml:
name: distribution
responses:
'200':
description: |
OK. The Request has succeeded.
XML Schema used for body validation: [distribution.rng](../schema/distribution.rng)
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Distribution with 'id'=0
tags:
- Distributions
delete:
summary: Delete a distribution.
description: |
Delete a distribution.
This is only for admins.
security:
- basic_authentication: []
parameters:
- in: path
name: distribution_id
schema:
type: integer
required: true
description: The id of the distribution
example: 16626
responses:
'200':
description: OK. The request has succeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Distribution with 'id'=0
tags:
- Distributions
"/distributions/bulk_replace":
put:
summary: Bulk replace all distributions.
description: |
Bulk replace all distributions.
This is only for admins.
security:
- basic_authentication: []
requestBody:
description: Distributions definition
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
distribution:
type: array
items:
type: object
properties:
id:
type: integer
example: 16626
xml:
attribute: true
vendor:
type: string
example: opensuse
xml:
attribute: true
version:
type: string
example: Tumbleweed
xml:
attribute: true
name:
type: string
example: openSUSE Tumbleweed
project:
type: string
example: openSUSE:Factory
repository:
type: string
example: snapshot
reponame:
type: string
example: openSUSE_Tumbleweed
link:
type: string
example: http://www.opensuse.org/
architecture:
type: array
example:
- i586
- x86_64
items:
type: string
icon:
type: array
example:
- width: 8
height: 8
url: https://static.opensuse.org/distributions/logos/opensuse.png
- width: 16
height: 16
url: https://static.opensuse.org/distributions/logos/opensuse.png
items:
type: object
properties:
width:
type: integer
xml:
attribute: true
height:
type: integer
xml:
attribute: true
url:
type: string
xml:
attribute: true
xml:
name: distributions
responses:
'200':
description: |
OK. The Request has succeeded.
XML Schema used for body validation: [distributions.rng](../schema/distributions.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: validation_failed
summary: 'distributions validation error: 40:0: ERROR: Expecting an
element name, got nothing'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Distributions
"/group":
get:
summary: List available groups.
description: List available groups.
security:
- basic_authentication: []
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
count: '2'
entry:
- name: group-admin
- name: group-test
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Groups
"/group/{group_title}":
get:
summary: Read group data.
description: Read group data.
security:
- basic_authentication: []
parameters:
- in: path
name: group_title
schema:
type: string
required: true
description: Group title
example: group-test
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [group.rng](../schema/group.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
title:
type: string
example: group-test
maintainer:
type: array
items:
type: object
properties:
userid:
type: string
example: user-test
xml:
attribute: true
person:
type: array
items:
type: object
properties:
userid:
type: string
example: user-test
xml:
attribute: true
xml:
wrapped: true
xml:
name: group
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Group 'group-testd'
tags:
- Groups
post:
summary: Modify group data.
description: Modify group data.
security:
- basic_authentication: []
parameters:
- in: path
name: group_title
schema:
type: string
required: true
description: Group title
example: group-test
- in: query
name: cmd
schema:
type: string
enum:
- add_user
- remove_user
- set_email
description: |
Command to be executed. It takes one of these available values:
* `add_user`: add a user to a group. `userid` query parameter must be also used.
* `remove_user`: remove a user from a group. `userid` query parameter must be also used.
* `set_email`: set email adress of group. `email` query parameter must be also used.
- in: query
name: userid
schema:
type: string
description: User login. Used with `cmd=add_user` or `cmd=remove_user`.
- in: query
name: email
schema:
type: string
description: Group email. Used with `cmd=set_email`.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: bad_request
summary: cmd must be set to add_user or remove_user
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
user_not_found:
value:
code: not_found
summary: Couldn't find User with login = user_test
summary: User Not Found
group_not_found:
value:
code: not_found
summary: Couldn't find Group 'group-testd'
summary: Group Not Found
tags:
- Groups
put:
summary: Write group data.
description: Write group data.
security:
- basic_authentication: []
parameters:
- in: path
name: group_title
schema:
type: string
required: true
description: Group title
example: group-test
requestBody:
description: |
Group definition.
XML Schema used for body validation: [group.rng](../schema/group.rng)
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
title:
type: string
example: group-test
maintainer:
type: array
items:
type: object
properties:
userid:
type: string
example: user-test
xml:
attribute: true
person:
type: array
items:
type: object
properties:
userid:
type: string
example: user-test
xml:
attribute: true
xml:
wrapped: true
xml:
name: group
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Group 'group-testd'
tags:
- Groups
delete:
summary: Delete a group.
description: Delete a group.
security:
- basic_authentication: []
parameters:
- in: path
name: group_title
schema:
type: string
required: true
description: Group title
example: group-test
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Group 'group-testd'
tags:
- Groups
"/image_templates":
get:
summary: Get the list of image templates.
description: Get the list of image templates.
security:
- basic_authentication: []
responses:
'200':
description: List of image templates.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
image_template_package:
type: array
items:
type: object
properties:
name:
type: string
title:
type: string
description:
type: string
xml:
name: image_template_project
wrapped: true
xml:
name: image_template_projects
wrapped: true
example:
- name: openSUSE:Templates:Images:Tumbleweed
image_template_package:
- name: kiwi-templates-Minimal
title: openSUSE Tumbleweed Minimal Images
description: Images based on Tumbleweed for several platforms.
- name: minimal-container-image
title: Application Container using KIWI
description: |
Starting ground to build a container image for openSUSE:Factory.
It follows the requirements outlined on https://en.opensuse.org/Building_derived_containers.
- name: OBS:Flatpak:Templates
image_template_package:
- name: FlatpakTemplate
title: Flatpak manifest template
description: This is an example template how to build a Flatpak
app in Open Build Service (OBS)
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- General Information
"/issue_trackers":
get:
summary: Get the list of issue trackers.
description: Get the list of issue trackers.
security:
- basic_authentication: []
responses:
'200':
description: |
List of issue trackers.
XML Schema used for body validation: [issue_trackers.rng](../schema/issue_trackers.rng)
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
example: fate
kind:
type: string
example: fate
description:
type: string
example: openSUSE Feature Database
url:
type: string
example: https://features.opensuse.org/
show-url:
type: string
example: https://features.opensuse.org/@@@
regex:
type: string
example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
label:
type: string
example: fate#@@@
enable-fetch:
type: string
example: 'false'
xml:
name: issue-tracker
xml:
name: issue-trackers
wrapped: true
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Issue Trackers
post:
summary: Create an issue tracker.
description: Create an issue tracker.
security:
- basic_authentication: []
requestBody:
description: |
Issue tracker definition.
XML Schema used for body validation: [issue_tracker.rng](../schema/issue_tracker.rng)
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: fate
kind:
type: string
example: fate
description:
type: string
example: openSUSE Feature Database
url:
type: string
example: https://features.opensuse.org/
show-url:
type: string
example: https://features.opensuse.org/@@@
regex:
type: string
example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
label:
type: string
example: fate#@@@
enable-fetch:
type: string
example: 'false'
xml:
name: issue-tracker
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Validation failed.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
empty_body:
value:
code: validation_failed
summary: Document is empty, not allowed for issue_tracker
summary: Empty Body
wrong_xml_element:
value:
code: validation_failed
summary: 'issue_tracker validation error: 1:0: ERROR: Expecting
element issue-tracker, got foo'
summary: Wrong XML Element
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Issue Trackers
"/issue_trackers/{issue_tracker_name}":
get:
summary: Show an issue tracker.
description: Show an issue tracker.
security:
- basic_authentication: []
parameters:
- in: path
name: issue_tracker_name
schema:
type: string
required: true
description: Issue tracker name
example: fate
responses:
'200':
description: |
Issue tracker definition.
XML Schema used for body validation: [issue_tracker.rng](../schema/issue_tracker.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: fate
kind:
type: string
example: fate
description:
type: string
example: openSUSE Feature Database
url:
type: string
example: https://features.opensuse.org/
show-url:
type: string
example: https://features.opensuse.org/@@@
regex:
type: string
example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
label:
type: string
example: fate#@@@
enable-fetch:
type: string
example: 'false'
xml:
name: issue-tracker
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Unable to find issue tracker 'foo'
tags:
- Issue Trackers
put:
summary: Update or create an issue tracker.
description: Update the issue tracker given as path parameter. If it is not
found, create it.
security:
- basic_authentication: []
parameters:
- in: path
name: issue_tracker_name
schema:
type: string
required: true
description: Issue tracker name
example: fate
requestBody:
description: |
Issue tracker definition.
XML Schema used for body validation: [issue_tracker.rng](../schema/issue_tracker.rng)
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: fate
kind:
type: string
example: fate
description:
type: string
example: openSUSE Feature Database
url:
type: string
example: https://features.opensuse.org/
show-url:
type: string
example: https://features.opensuse.org/@@@
regex:
type: string
example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
label:
type: string
example: fate#@@@
enable-fetch:
type: string
example: 'false'
xml:
name: issue-tracker
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Validation failed.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
empty_body:
value:
code: validation_failed
summary: Document is empty, not allowed for issue_tracker
summary: Empty Body
wrong_xml_element:
value:
code: validation_failed
summary: 'issue_tracker validation error: 1:0: ERROR: Expecting
element issue-tracker, got foo'
summary: Wrong XML Element
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Issue Trackers
delete:
summary: Delete an issue tracker.
description: Delete an issue tracker.
security:
- basic_authentication: []
parameters:
- in: path
name: issue_tracker_name
schema:
type: string
required: true
description: Issue tracker name
example: fate
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Unable to find issue tracker 'foo'
tags:
- Issue Trackers
"/issue_trackers/{issue_tracker_name}/issues/{issue_name}":
get:
summary: Show an issue of an issue tracker.
description: Show an issue of an issue tracker.
security:
- basic_authentication: []
parameters:
- in: path
name: issue_tracker_name
schema:
type: string
required: true
description: Issue tracker name
example: fate
- in: path
name: issue_name
schema:
type: string
required: true
description: Issue name.
example: 12345
responses:
'200':
description: |
Issue definition.
XML Schema used for body validation: [issue.rng](../schema/issue.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
created_at:
type: string
example: 2021-01-18 19:17:51 UTC
updated_at:
type: string
example: 2021-01-18 19:17:51 UTC
name:
type: string
example: 12345
tracker:
type: string
example: fate
label:
type: string
example: fate#12345
url:
type: string
example: https://features.opensuse.org/12345
state:
type: string
summary:
type: string
owner:
type: object
properties:
login:
type: string
email:
type: string
realname:
type: string
xml:
name: issue
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: issue_tracker_not_found
summary: 'Error: Issue Tracker ''foo'' not found.'
tags:
- Issue Trackers
"/my/notifications":
get:
summary: List the notifications of the authenticated user.
description: |
**(Unstable)** List user's notifications.
**NOTE:** Available only in OBS Unstable.
security:
- basic_authentication: []
parameters:
- in: query
name: project
schema:
type: string
- in: query
name: page
schema:
type: integer
- in: query
name: show_maximum
schema:
type: string
example: 1
- in: query
name: notifications_type
schema:
type: string
enum:
- read
- comments
- requests
- unread
- incoming_requests
- outgoing_requests
- relationships_created
- relationships_deleted
- build_failures
- reports
- workflow_runs
- appealed_decisions
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: string
xml:
attribute: true
total_pages:
type: string
current_page:
type: string
notification:
type: array
items:
type: object
properties:
id:
type: string
xml:
attribute: true
when:
type: string
description:
type: string
title:
type: string
who:
type: string
event_type:
type: string
xml:
name: notifications
example:
count: 2
total_pages: 1
current_page: 0
notification:
- id: 3
title: test 1
who: Administrator
state: new
when: 2021-09-30 07:12:02.000000000 +00:00
event_type: review_wanted
- id: 25
title: test 2
who: User 2
event_type: comment_for_package
when: 2021-09-27 07:16:19.000000000 +00:00
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Notifications
"/my/notifications/{id}":
put:
summary: Mark a notification as read/unread.
description: |
**(Unstable)** If a notification is unread, it will be marked as read. If a notification is read, it will be marked as unread.
**NOTE:** Available only in OBS Unstable.
security:
- basic_authentication: []
parameters:
- in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'403':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find Notification with 'id'=213453
tags:
- Notifications
"/person":
get:
summary: List all people.
description: List all people.
security:
- basic_authentication: []
parameters:
- in: query
name: prefix
schema:
type: string
required: false
description: A prefix to filter the people to look for
example: Adm
- in: query
name: confirmed
schema:
type: string
required: false
description: List only active users. This parameter is interpreted as `true`
if present, `false` otherwise.
example: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
count: '9'
entry:
- name: Admin
- name: _nobody_
- name: Iggy
- name: user_1
- name: repo-checker
- name: reviewhero
- name: user_2
- name: user_3
- name: Requestor
tags:
- Person
post:
summary: Executes a command on the person endpoint.
description: |
Allows executing command on the person endpoint.
As of now, the only command allowed is 'register'.
parameters:
- in: query
name: cmd
schema:
type: string
enum:
- register
required: true
description: The command to execute
example: register
requestBody:
description: The data for the person to register.
required: true
content:
application/xml:
schema:
type: object
properties:
login:
type: string
example: jane
realname:
type: string
example: Jane Doe
email:
type: string
example: janedoe@example.com
password:
type: string
example: superpassword123
note:
type: string
example: Jane works in the Engineering team
state:
type: string
example: confirmed
xml:
name: unregisteredperson
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Command:
value:
code: unknown_command
summary: Allowed command is 'register'.
Bad Request:
value:
code: err_register_save
summary: 'Could not save the registration, details: Login is the
name of an already existing user and Password can''t be blank.'
tags:
- Person
"/person/register":
post:
summary: Registers a new person
deprecated: true
description: This endpoint is exactly the same as `POST /person?cmd=register`,
please use that one.
requestBody:
description: Data for the person to register.
required: true
content:
application/xml:
schema:
type: object
properties:
login:
type: string
example: jane
realname:
type: string
example: Jane Doe
email:
type: string
example: janedoe@example.com
password:
type: string
example: superpassword123
note:
type: string
example: Jane works in the Engineering team
state:
type: string
example: confirmed
xml:
name: unregisteredperson
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: permission_denied
summary: |
User accounts can not be registered via OBS when in LDAP mode. Please refer
to your LDAP server to create new users.
tags:
- Person
"/person/{login}":
get:
summary: Get details about a person
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [user.rng](../schema/user.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
login:
type: string
example: user_1
email:
type: string
example: unconfigured@openbuildservice.org
realname:
type: string
example: User1
state:
type: string
example: confirmed
globalrole:
type: string
ignore_auth_services:
type: boolean
watchlist:
type: array
items:
type: object
properties:
project:
type: object
properties:
name:
type: string
xml:
attribute: true
package:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
request:
type: object
properties:
number:
type: string
xml:
attribute: true
xml:
name: watchlist
xml:
name: person
example:
login: Admin
email: root@localhost
realname: OBS Instance Superuser
state: confirmed
globalrole: Admin
ignore_auth_services: false
watchlist:
- project:
name: home:Admin
package:
name: ad
project: home:Admin
request:
number: '7'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find User with login = <login>
tags:
- Person
post:
summary: Perform changes on a registered person
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
- in: query
name: cmd
schema:
type: string
enum:
- change_password
- lock
- delete
required: true
description: The command to execute against the provided person.
example: change_password
requestBody:
description: The password in plain text when the cmd param is 'change_password'.
required: false
content:
text/plain:
schema:
type: string
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [api_response.xsd](../schema/api_response.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Command:
value:
code: unknown_command
summary: Allowed commands are '<some command>'.
Bad Request:
value:
code: err_register_save
summary: 'Could not save the registration, details: Login is the
name of an already existing user and Password can''t be blank.'
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
update_user_not_authorized:
value:
code: update_user_not_authorized
summary: You are not authorized to update this User.
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find User with login = <login>
tags:
- Person
put:
summary: Update person
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
requestBody:
description: The new data for the person referred in the login parameter.
required: true
content:
application/xml:
schema:
type: object
properties:
login:
type: string
example: jane
realname:
type: string
example: Jane Doe
email:
type: string
example: janedoe@example.com
password:
type: string
example: superpassword123
note:
type: string
example: Jane works in the Engineering team
state:
type: string
example: confirmed
xml:
name: unregisteredperson
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Subaccount chaining:
value:
code: subaccount_chaining
summary: A subaccount can not be assigned to subaccount <login>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Change user info not permitted:
value:
code: change_userinfo_no_permission
summary: no permission to change userinfo for user <login>
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: password_empty
summary: Requested non-existing user
tags:
- Person
"/person/{login}/group":
get:
summary: List the groups of a person
description: List the groups the person belongs to.
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
count: '2'
entry:
- name: factory-maintainers
- name: obs-developers
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find User with login = fake
tags:
- Person
"/person/{login}/token":
get:
summary: List the authentication tokens of a person.
description: List the authentication tokens of a person.
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [tokenlist.rng](../schema/tokenlist.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
id:
type: string
xml:
attribute: true
description:
type: string
xml:
attribute: true
string:
type: string
xml:
attribute: true
kind:
type: string
xml:
attribute: true
triggered_at:
type: string
format: date-time
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
xml:
name: directory
example:
count: 2
entry:
- id: 3
string: FK49K39DKK
kind: rss
triggered_at: 2021-10-28 12:32:18 UTC
- id: 25
description: Release ghcz
string: 4T04JGI691
kind: release
triggered_at: 2021-09-21 11:12:18 UTC
project: devel:languages:haskell
package: ghcz
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: view_user_not_authorized
summary: You are not authorized to view this User.
tags:
- Person
post:
summary: Create a new authentication token for a person.
description: |
Create a new authentication token for a person.
The token may be limited to a specific package. In this case the query parameters
`project` and `package` should be provided.
With an empty request body, a token of the default kind 'runservice' is created.
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
- in: query
name: description
schema:
type: string
description: 'Token description. It helps to identify a token from the rest
of the tokens of a user.
'
example: Rebuild gchz
- in: query
name: project
schema:
type: string
description: |
Project name. Should be provided, together with the package query parameter,
to limit the token to a specific package.
example: home:hans
- in: query
name: package
schema:
type: string
description: |
Package name. Should be provided, together with the project query parameter,
to limit the token to a specific package.
example: gchz
- in: query
name: operation
schema:
type: string
enum:
- runservice
- rebuild
- release
description: |
Operation indicates the kind of token that is going to be created.
When operation is not specified, 'runservice' is the default value.
example: runservice
- in: query
name: scm_token
schema:
type: string
description: |
**(Beta/Unstable)**
SCM token used in OBS workflows to report back the workflow status, when the operation is workflow.
It's normally possible to generate SCM tokens directly on the SCM's website like GitHub or GitLab.
example: ghp_fake_token_123
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
**NOTE:** This is an example of a valid response. It should include the attribute 'name'
in every 'data' tag, which is missing in the example using the schema.
```
<status code="ok">
<summary>Ok</summary>
<data name="token">i6iF4M5cn</data>
<data name="id">5</data>
</status>
```
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
data:
- i6iF4M5cn
- 5
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: invalid_token
summary: 'Failed to create token: Name is too long (maximum is 64
characters).'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: update_user_not_authorized
summary: You are not authorized to update this User.
tags:
- Person
"/person/{login}/token/{id}":
delete:
summary: Delete a token of a person.
description: Delete a token of the specified person.
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
- in: path
name: id
schema:
type: string
required: true
description: Id of the token to be removed.
example: 3
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: update_user_not_authorized
summary: You are not authorized to update this User.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Token with 'id'=33
tags:
- Person
"/person/{login}/watchlist":
get:
summary: Get details about watchlist
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
project:
type: object
properties:
name:
type: string
xml:
attribute: true
package:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
request:
type: object
properties:
number:
type: string
xml:
attribute: true
xml:
name: watchlist
example:
- project:
name: home:Admin
package:
name: ad
project: home:Admin
request:
number: '7'
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: password_empty
summary: Requested non-existing user
tags:
- Person
put:
summary: Update watchlist
security:
- basic_authentication: []
parameters:
- in: path
name: login
schema:
type: string
required: true
description: Person login.
example: Admin
requestBody:
description: The new data for the person referred in the login parameter.
required: true
content:
application/xml:
schema:
type: array
items:
type: object
properties:
project:
type: object
properties:
name:
type: string
xml:
attribute: true
package:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
request:
type: object
properties:
number:
type: string
xml:
attribute: true
xml:
name: watchlist
example:
- project:
name: home:Admin
package:
name: ad
project: home:Admin
request:
number: '7'
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'404':
description: |
Not found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: password_empty
summary: Requested non-existing user
tags:
- Person
"/published":
get:
summary: List all the published projects.
description: Get a list of all the projects, all of them are considered published.
security:
- basic_authentication: []
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: OBS:Server:Unstable
- name: devel:languages:ruby
- name: openSUSE:Maintenance:9810
- name: zypp:plugins
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Published Binaries
"/published/{project_name}":
get:
summary: List the repositories of a project with published binaries
description: Get a list of the repositories of the project that already have
published binaries.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: SLE_15_SP3
- name: containers
- name: images
- name: openSUSE_15.2
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: download_binary_no_permission
summary: No permission for binaries from project home:Admin
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Project
tags:
- Published Binaries
"/published/{project_name}/{repository_name}":
get:
summary: List the content of the directory tree where the binaries are published
at the level project/repository.
description: |
Get a list of architectures' directories and other files (.repo, .ymp, etc.) present at the level
project/repository of the directory tree where the published binaries are stored.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: OBS:Server:Unstable.repo
- name: OBS_Server.ymp
- name: aarch64
- name: x86_64
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: download_binary_no_permission
summary: No permission for binaries from project home:Admin
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Project
tags:
- Published Binaries
"/published/{project_name}/{repository_name}?view=status":
get:
summary: Present information about the last publication of the pair project
and repository.
description: Get information about the build process (build id, start time,
etc.) for the pair project and repository.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: query
name: view
schema:
type: string
enum:
- status
description: Set this parameter to status in order to get details about the
last publication.
example: status
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
example: succeeded
xml:
attribute: true
starttime:
type: integer
example: 1617574611
endtime:
type: integer
example: 1617574611
buildid:
type: integer
example: 1569496563
xml:
name: status
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: download_binary_no_permission
summary: No permission for binaries from project home:Admin
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project:
code: not_found
summary: Couldn't find Project
unknown:
value:
code: unknown
tags:
- Published Binaries
"/published/{project_name}/{repository_name}/{architecture_name}":
get:
summary: List the content of the directory tree where the binaries are published
at the level project/repository/architecture.
description: |
Get a list of binaries and other files present at the level project/repository/architecture of the directory
tree as a result of successful building and publishing processes.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: apache2-mod_auth_memcookie-1.1.1-lp152.2.1.x86_64.rpm
- name: obs-api-testsuite-rspec-2.11~alpha.20200618T200341.d42d8310aa-lp152.10515.1.x86_64.rpm
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: download_binary_no_permission
summary: No permission for binaries from project home:Admin
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Project
tags:
- Published Binaries
"/published/{project_name}/{repository_name}/{architecture_name}/{binary_filename}":
get:
summary: Return the binary file itself.
description: |
Allow to download the binary file that was published and stored under the directory
given by project/repository/architecture/.
Can response with Media Types like application/x-rpm, text/xml, etc.
NOTE: Use this only if you absolutely have to, as it doesn't use the redirector.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: binary_filename
schema:
type: string
required: true
description: Binary filename
example: ctris-0.42.1-8.1.x86_64.rpm
responses:
'200':
description: OK
content:
application/*:
schema:
type: string
format: binary
text/xml:
schema:
type: string
format: binary
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: download_binary_no_permission
summary: No permission for binaries from project home:Admin
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
NotFound:
value:
code: not_found
summary: Couldn't find Project
NoSuchFile:
value:
code: 404
summary: no such file
details: 404 no such file
tags:
- Published Binaries
"/published/{project_name}/{repository_name}/{architecture_name}/{binary_filename}?view=ymp":
get:
summary: Generate a ymp pattern that includes the needed repositories to install
the given binary.
description: |
Generate a ymp pattern, which contains the list of packages needed for intalling certain software without having to
create dependencies between them.
Read more about patterns [in this tutorial](https://en.opensuse.org/openSUSE:Build_Service_Tutorial#Create_Patterns).
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
description: Architecture name
example: x86_64
- in: path
name: binary_filename
schema:
type: string
required: true
description: Binary filename
example: ctris-0.42.1-8.1.x86_64.rpm
responses:
'200':
description: OK.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
group:
type: object
properties:
repositories:
type: object
properties:
repository:
type: array
items:
type: object
properties:
recommended:
type: string
xml:
attribute: true
name:
type: string
summary:
type: string
description:
type: string
url:
type: string
software:
type: object
properties:
item:
type: object
properties:
name:
type: string
summary:
type: string
description:
type: string
distversion:
type: string
xml:
attribute: true
xmlns:os:
type: string
xml:
attribute: true
example: http://opensuse.org/Standards/One_Click_Install
xmlns:
type: string
xml:
attribute: true
example: http://opensuse.org/Standards/One_Click_Install
xml:
name: metapackage
example:
group:
repositories:
repository:
- recommended: true
name: OBS:Server:Unstable
summary: Developer versions of the Open Build Service Server
description: These are the developer versions of the tools for
the Open Build Service project
url: https://download.opensuse.org/repositories/OBS:/Server:/Unstable/openSUSE_15.2
- recommended: false
name: openSUSE:Leap:15.2
summary: openSUSE Leap 15.2
description: openSUSE Leap borrows packages from SLE for the
base system
url: http://download.opensuse.org/distribution/leap/15.2/repo/oss
software:
item:
name: virt-v2v-debuginfo
summary: Debug information for package virt-v2v
description: This package provides debug information for package
virt-v2v
distversion: openSUSEsLeap 15.2
xmlns:os: http://opensuse.org/Standards/One_Click_Install
xmlns: http://opensuse.org/Standards/One_Click_Install
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: download_binary_no_permission
summary: No permission for binaries from project home:Admin
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find Project
tags:
- Published Binaries
"/request":
get:
summary: Get a simple directory listing of all requests
description: Get a simple directory listing of all requests
security:
- basic_authentication: []
responses:
'200':
description: |
OK
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
entry:
- name: 122
- name: 123
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Requests
post:
summary: Create a request
description: Create a request
security:
- basic_authentication: []
parameters:
- in: query
name: cmd
required: true
schema:
type: string
enum:
- create
description: This endpoint will refuse the creation of a new request if this
parameter is not set.
- in: query
name: addrevision
schema:
type: string
enum:
- 1
description: Ask the server to add revisions of the current sources to the
request.
- in: query
name: ignore_delegate
schema:
type: string
enum:
- 1
description: Enforce a new package instance in a project which has OBS:DelegateRequestTarget
set
- in: query
name: ignore_build_state
schema:
type: string
enum:
- 1
description: Skip the build state check
requestBody:
description: |
Request XML
**NOTE:** You cannot pass the request id in the xml. You can pass the history in the xml, but it will be simply ignored.
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
responses:
'200':
description: |
OK.
XML Schema used for body validation: [request.rng](../schema/request.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: expand_error
summary: The source of package test-project/test-package for revision
2 is broken
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: create_bs_request_not_authorized
summary: You are not authorized to create this Bs request.
tags:
- Requests
"/request?view=collection":
get:
summary: Get a collection of requests for a specified target.
description: |
Get a collection of requests for a specified target.
**NOTE:** You need to set at least one of the following parameters in order to use this endpoint:
* `user`
* `group`
* `project`
* `package`
* `states`
* `reviewstates`
* `types`
* `ids`
security:
- basic_authentication: []
parameters:
- in: query
name: user
schema:
type: string
description: |
Filter the results of requests and open reviews for a certain user. If no other parameters are
applied, it will include requests where the user is maintainer of the target or the creator of
the request.
example: hans
- in: query
name: group
schema:
type: string
description: Filter the results of requests and open reviews for a certain
group.
example: obs-group
- in: query
name: project
schema:
type: string
description: |
Limit the results to requests with this project as source or target,
or requests which were assigned to be reviewed by the maintainers of this project.
example: home:hans
- in: query
name: package
schema:
type: string
description: |
Limit the results to requests with this package as source or target,
or requests which were assigned to be reviewed by the maintainers of this package.
example: ruby
- in: query
name: states
schema:
type: string
description: Limit results to a given request state. Multiple states can be
provided as a comma separated list.
example: new,review
- in: query
name: reviewstates
schema:
type: string
description: Limit results to a given review state. Multiple states can be
provided as a comma separated list.
example: new,declined,accepted,superseded,obsoleted
- in: query
name: types
schema:
type: string
description: Limit the results to certain action types. Multiple types can
be provided as a comma separated list.
example: add_role,submit
- in: query
name: roles
schema:
type: string
description: Limit the results to a given role. Multiple roles can be provided
as a comma separated list.
example: creator,maintainer,reviewer,source,target
- in: query
name: withhistory
schema:
type: string
description: Include the request history in the results.
example: 1
- in: query
name: withfullhistory
schema:
type: string
description: Includes both, request and review history in the results.
example: 1
- in: query
name: limit
schema:
type: integer
description: Limit the results by the specified amount of requests.
example: 7
- in: query
name: offset
schema:
type: integer
description: Offset the results by the specified amount of requests.
example: 7
- in: query
name: ids
schema:
type: string
description: Limit the result to specified request id's. Multiple id's can
be provided as a comma separated list.
example: 151923
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: string
example: 7
xml:
attribute: true
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
xml:
name: collection
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Require Filter:
value:
code: require_filter
summary: This call requires at least one filter, either by user,
project or package or states or types or reviewstates
Not Found:
value:
code: not_found
summary: Couldn't find User with login = foo
tags:
- Requests
"/request/{id}":
get:
summary: Show details about a specified request.
description: Show details about a specified request.
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
- in: query
name: withhistory
schema:
type: string
description: Include the request history in the results.
example: 1
- in: query
name: withfullhistory
schema:
type: string
description: Includes both, request and review history in the results.
example: 1
responses:
'200':
description: |
OK.
XML Schema used for body validation: [request.rng](../schema/request.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find request with id '5'
tags:
- Requests
post:
summary: Apply certain actions on a specified request.
description: Apply certain actions on a specified request.
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
- in: query
name: cmd
description: |
- `addreview`:
Add a review to a request. **NOTE:** You need to specify who has to address
the review by providing an additional paramter. Possible options are:
* by_user
* by_group
* by_project
- `assignreview`:
Accept a review for a given group and assign a new review to a specific user.
**NOTE:** You need to pass the group name in the `by_group` parameter
and the new reviewer in the `reviewer` parameter.
- `changestate`: Modify the state of a given request.
**NOTE:** You need to pass the new state through the `newstate` parameter. Changing
from one state to another is in certain cases not allowed. You can still force
the operation by using the `force` parameter.
To supersede the given request with another request, pass the ID of the other request
in the `superseded_by` parameter, in addition to `newstate=superseded`.
- `changereviewstate`:
Change the state of a review inside a given request.
- `setpriority`:
Change the priority of a given request. You have to pass the choosen priority through
the `priority` parameter. Possible values are:
* low
* moderate
* important
* critical
- `setincident`: Change the target incident for maintenance_incident actions
**NOTE:** You need to provide the incident number through the `incident`
parameter.
- `setacceptat`: Set or modify the accept_at time. Either specified by the `time`
parameter or by default set to now.
- `approve`: Pre-approve a request in the review state. It will turn into state `accepted`
after the last review.
- `cancelapproval`: Reset the approval of a request
schema:
type: string
style: form
explode: false
examples:
addreview:
value: cmd=addreview&by_group=heroes
assignreview:
value: cmd=assignreview&by_group=heroes&reviewer=foo
assignreview with revert:
value: cmd=assignreview&by_group=heroes&reviewer=foo&revert=1
changestate:
value: cmd=changestate&newstate=accepted
changestate (superseded):
value: cmd=changestate&newstate=superseded&superseded_by=173
changereviewstate:
value: cmd=changereviewstate&by_group=heroes&newstate=new&comment=reopened
setpriority:
value: cmd=setpriority&priority=low&comment=notsoimportant
setincident:
value: cmd=setincident&incident=12
setacceptat:
value: cmd=setacceptat&time='2020-12-01%2000:00:00%20UTC'
approve:
value: cmd=approve
cancelapproval:
value: cmd=cancelapproval
- in: query
name: newstate
schema:
type: string
description: Define the new state
- in: query
name: superseded_by
schema:
type: string
description: Required and used only with the combination of the `changestate`
command and the `newstate=superseded` parameter - Supersede the given request
with another request by passing its ID in this parameter
- in: query
name: priority
schema:
type: string
description: Define the new priority
- in: query
name: by_user
schema:
type: string
description: Specify the user of a new review
- in: query
name: by_group
schema:
type: string
description: Specify the group of the new review
- in: query
name: by_project
schema:
type: string
description: Specify the project of the new review
- in: query
name: by_package
schema:
type: string
description: Specify the package of the new review
- in: query
name: force
schema:
type: string
allowEmptyValue: true
description: Pass this parameter with an empty value to force the `changestate`
command.
- in: query
name: incident
schema:
type: string
description: Specify the incident number for `setincident`
- in: query
name: revert
schema:
type: string
description: Revert an assignreview command to assign review back to group
- in: query
name: time
schema:
type: string
description: Specify the time for `setacceptat`
- in: query
name: comment
schema:
type: string
description: Add a comment to one of the actions
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: no_maintenance_release_target
summary: |
Maintenance incident request contains release target project test_maintenance_project with
invalid project kind "standard" (should be "maintenance_release") for package package01
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Request Not Modifiable:
value:
code: request_not_modifiable
summary: request is not in review state
Not Found:
value:
code: not_found
summary: Couldn't find request with id '120'
tags:
- Requests
put:
summary: Modify a given request.
description: |
Modify a given request.
**NOTE:** Certain parts of a request can only be changed by admins.
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
requestBody:
description: |
Request XML
**NOTE:** You cannot pass the request id in the xml. You can pass the history in the xml, but it will be simply ignored.
XML Schema used for body validation: [request.rng](../schema/request.rng)
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
responses:
'200':
description: |
OK.
XML Schema used for body validation: [request.rng](../schema/request.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: request_save_error
summary: Auto accept time is in the past
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find request with id '10'
tags:
- Requests
delete:
summary: Delete a given request.
description: Delete a given request.
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find request with id '10'
tags:
- Requests
"/request/{id}?cmd=diff":
post:
summary: Get the diff for all packages affected by the request.
description: Get the diff for all packages affected by the request.
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
- in: query
name: diff_to_superseded
schema:
type: integer
description: 'Diff relative to a given superseded request. State the id of
the corresponding superseded request.
'
example: 10401
- in: query
name: view
schema:
type: string
enum:
- xml
description: Set this parameter to xml in order to receive a structured diff
instead of plain text.
- in: query
name: withissues
schema:
type: string
enum:
- true
- 1
description: Include parsed issues from referenced sources
- in: query
name: withdescriptionissues
description: Include parsed issues from request description
responses:
'200':
description: OK
content:
text/plain; charset=utf-8:
schema:
type: string
example: |
spec files:
-----------
--- test.spec
+++ test.spec
@@ -0,0 +1 @@
+# NEW COMMENT
\ No newline at end of file
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: string
example: 12
xml:
attribute: true
actions:
type: string
example: 0
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:Iggy:branches:home:Admin
xml:
attribute: true
package:
type: string
example: ruby
xml:
attribute: true
rev:
type: string
example: 3
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: home:Admin
xml:
attribute: true
package:
type: string
example: ruby
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
example: cleanup
type: string
sourcediff:
type: object
properties:
key:
type: string
example: 9dbe9eb1767c5e12c69839af893dc239
xml:
attribute: true
old: &1
type: object
properties:
project:
type: string
example: home:Iggy:branches:home:Admin
xml:
attribute: true
package:
type: string
example: ruby
xml:
attribute: true
rev:
type: string
example: 3
xml:
attribute: true
srcmd5:
type: string
example: 59300f4ba65f53334b2e2a39f87ba3a0
xml:
attribute: true
new: *1
files:
type: array
items:
type: object
properties:
file:
type: object
properties:
state:
type: string
example: changed
xml:
attribute: true
old: &2
type: object
properties:
name:
type: string
example: ruby.spec
xml:
attribute: true
md5:
type: string
example: d4f573d2bf9a0e306f87dad7eee0cf56
xml:
attribute: true
size:
type: string
example: 70
xml:
attribute: true
new: *2
diff:
type: string
example: |
spec files:
-----------
--- test.spec
+++ test.spec
@@ -0,0 +1 @@
+# NEW COMMENT
\ No newline at end of file
issues:
type: array
items:
type: object
properties:
issue:
type: object
properties:
state:
type: string
example: added
xml:
attribute: true
tracker:
type: string
example: bnc
xml:
attribute: true
name:
type: string
example: 922894
xml:
attribute: true
label:
type: string
example: boo#944302
xml:
attribute: true
url:
type: string
example: https://bugzilla.opensuse.org/show_bug.cgi?id=944302
xml:
attribute: true
components:
schemas:
NewOldDestination: *1
OldNewFile: *2
xml:
name: diff
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: not_found
summary: Couldn't find request with id '355'
tags:
- Requests
"/search":
get:
summary: Search in projects or in packages.
description: Get a list of projects or a list of packages that match a XPath
expression, passed in the query parameter `match`.
security:
- basic_authentication: []
parameters:
- in: query
name: in
required: true
schema:
type: string
enum:
- projects
- packages
example: projects
description: |
Where to search and apply a XPath expression: either the list of projects or the list of packages.
Example of a result when `projects` is selected:
```
<collection>
<project name="home:Admin">
<title></title>
<description></description>
<person userid="Admin" role="maintainer"/>
<repository name="openSUSE_Tumbleweed">
<path project="openSUSE.org:openSUSE:Factory" repository="snapshot"/>
<arch>x86_64</arch>
</repository>
<repository name="15.3">
<path project="openSUSE.org:openSUSE:Leap:15.3" repository="standard"/>
<arch>x86_64</arch>
</repository>
</project>
<project name="openSUSE.org">
<title>Standard OBS instance at build.opensuse.org</title>
<description>This instance delivers the default build targets for OBS.</description>
<remoteurl>https://api.opensuse.org/public</remoteurl>
</project>
</collection>
```
Example of a result when `packages` is selected:
```
<collection>
<package name="ctris" project="home:Admin">
<title></title>
<description></description>
</package>
</collection>
```
- in: query
name: match
required: true
schema:
type: string
description: XPath expression used to filter the results.
examples:
non_empty_element:
summary: Non empty element
value: repository/arch
non_empty_attribute:
summary: Non empty attribute
value: repository/name
element_content:
summary: Element content
value: repository/arch='x86_64'
attribute_content:
summary: Attribute content
value: repository/name='openSUSE_Tumbleweed'
compound_condition:
summary: Compound condition
value: name='OBS:Server:Unstable'+and+repository/arch='x86_64'
- in: query
name: return
schema:
type: string
example: repository/name
description: |
XPath expression that defines which values will be returned.
Instead of returning a collection of projects or packages, the result will be a collection of:
- contents of elements, when that XPath expression match elements, or,
- values of atttributes, when that XPath expression match atttributes.
Example of result, for a query string like `?in=projects&match=repository/arch='x86_64'&return=repository/name`:
```
<collection>
<value>openSUSE_Tumbleweed</value>
<value>15.3</value>
</collection>
```
- in: query
name: values
schema:
type: string
example: 1
description: |
When set to `1`, return a list of values, instead of returning a list of projects or packages.
The result will be a collection of:
- contents of elements, when the expression defined in the `match` query parameter match elements.
For example: `match=repository/arch`.
- values of atttributes, when the expression defined in the `match` query parameter match atttributes.
For example: `match=repository/name`.
Example of result, for a query string like `?in=projects&match=repository/path/project&values=1`:
```
<collection>
<value>openSUSE.org:openSUSE:Factory</value>
<value>openSUSE.org:openSUSE:Leap:15.3</value>
</collection>
```
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
oneOf:
- type: object
properties:
matches:
type: integer
xml:
attribute: true
project:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
person:
type: object
properties:
userid:
type: string
xml:
attribute: true
role:
type: string
xml:
attribute: true
xml:
name: collection
- type: object
properties:
matches:
type: integer
xml:
attribute: true
package:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
xml:
name: collection
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_in_parameter:
summary: Invalid in parameter
value:
code: 400
origin: backend
summary: "'in' parameter needs to be either 'projects' or 'packages'"
missing_match_parameter:
summary: Missing match parameter
value:
code: 400
origin: backend
summary: parameter 'match' is missing
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: Search in projects or in packages.
description: This endpoint is exactly the same as `GET /search`, please use
that one.
tags:
- Search
"/search/channel":
get:
summary: List channel objects that match a XPath condition.
description: Return a collection of channel objects with release informations
that match a XPath condition.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all channels.
Available predicates are:
- General fields: `@package` and `@project`
- Binary fields: `binary/@name`, `binary/@binaryarch`, `binary/@package` and `binary/@supportstatus`
- Target fields: `target/disabled`, `target/updatefor/@project` and `target/updatefor/@product`
examples:
all:
summary: All
value: "*"
package:
summary: Name of the package that contains the `_channel` xml
value: "@package=openSUSE_Channels"
function_contains:
summary: Function contains
value: starts_with(@project,'open')
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: string
example: 1
xml:
attribute: true
channel:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
binary:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
supportstatus:
type: string
xml:
attribute: true
target:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
updatefor:
type: object
properties:
project:
type: string
xml:
attribute: true
product:
type: string
xml:
attribute: true
baseversion:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
patchlevel:
type: string
xml:
attribute: true
xml:
name: channel
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
one_result:
summary: One matching result
value:
matches: 1
channel:
- project: openSUSE:Channels
package: openSUSE:Leap_15_2_x86
binary:
name: Mesa
project: openSUSE:Leap:15.2:Update
package: Mesa
supportstatus: l3
target:
project: openSUSE:Updates:Leap:15.2:x86
repository: update
updatefor:
project: openSUSE:Leap:15.2:Update
product: Leap
baseversion: 15
version: 2
patchlevel: 2
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'channels'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List channel objects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/channel`, please
use that one.
tags:
- Search
"/search/channel/binary":
get:
summary: List channel objects that match a XPath condition.
description: |
Return a collection of channel objects with release informations that match a XPath condition.
This operation is the same as the one defined with `GET /search/channel/binary/id` with the exception of the results returned.
While the former operation only returns a list of channel objects with the channel definition related to the binary, this one returns a list of channel
objects with release information.
See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all channels.
Available predicates are:
- General fields: `@name`, `@binaryarch`, `@package`, `@project` and `@supportstatus`
- Target fields: `target/disabled`
- Updatefor fields: `updatefor/@product` and `updatefor/@product`
examples:
all:
summary: All
value: "*"
package:
summary: Name of the package that contains the `_channel` xml
value: "@name=Mesa-debuginfo"
function_contains:
summary: Function contains
value: starts_with(@project,'open')
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: string
example: 1
xml:
attribute: true
channel:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
binary:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
supportstatus:
type: string
xml:
attribute: true
target:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
updatefor:
type: object
properties:
project:
type: string
xml:
attribute: true
product:
type: string
xml:
attribute: true
baseversion:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
patchlevel:
type: string
xml:
attribute: true
xml:
name: channel
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
one_result:
summary: One matching result
value:
matches: 1
channel:
- project: openSUSE:Channels
package: openSUSE:Leap_15_2_x86
binary:
name: Mesa
project: openSUSE:Leap:15.2:Update
package: Mesa
supportstatus: l3
target:
project: openSUSE:Updates:Leap:15.2:x86
repository: update
updatefor:
project: openSUSE:Leap:15.2:Update
product: Leap
baseversion: 15
version: 2
patchlevel: 2
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'channel_binaries'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List channel objects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/channel/binary`,
please use that one.
tags:
- Search
"/search/channel/binary/id":
get:
summary: List channel objects that match a XPath condition.
description: |
Return a collection of channel objects that match a XPath condition.
This operation is the same as the one defined with `GET /search/channel/binary` with the exception of the results returned.
While the former operation returns a list of channel objects with release information, this one only returns a list of channel
objects with the channel definition related to the binary.
See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
description: |
Expression based in XPath.
Not providing a value or providing a value of `*` will return all released binaries.
Available predicates are:
- General fields: `@name`, `@binaryarch`, `@package`, `@project` and `@supportstatus`
- Target fields: `target/disabled`
- Updatefor fields: `updatefor/@product` and `updatefor/@product`
examples:
all:
summary: All
value: "*"
package:
summary: Name of the package that contains the `_channel` xml
value: "@name=Mesa-debuginfo"
function_contains:
summary: Function contains
value: starts_with(@project,'open')
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: string
example: 1
xml:
attribute: true
channel:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
binary:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
supportstatus:
type: string
xml:
attribute: true
target:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
updatefor:
type: object
properties:
project:
type: string
xml:
attribute: true
product:
type: string
xml:
attribute: true
baseversion:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
patchlevel:
type: string
xml:
attribute: true
xml:
name: channel
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
one_result:
summary: One matching result
value:
matches: 1
channel:
- project: openSUSE:Channels
package: openSUSE:Leap_15_2_x86
binary:
name: Mesa
project: openSUSE:Leap:15.2:Update
package: Mesa
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'channel_binaries'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List channel objects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/channel/binary/id`,
please use that one.
tags:
- Search
"/search/issue":
get:
summary: List issues that match a XPath condition.
description: Return a collection of issue objects that match a XPath condition.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all issues.
Available predicates are:
- Issue fields: `@name`, `@state`, and `@tracker`.
- Issue owner fields: `owner/@email`, and `owner/@login`.
examples:
all:
summary: All
value: "*"
name:
summary: Issue name
value: "@name='5021'"
function_contains:
summary: Funcion contains
value: contains(owner/@email,'my-domain.org')
combination:
summary: Tracker and state
value: "@tracker='bnc' and @state='CLOSED'"
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
issue:
type: array
items:
type: object
properties:
created_at:
type: string
example: 2021-01-18 19:17:51 UTC
updated_at:
type: string
example: 2021-01-18 19:17:51 UTC
name:
type: string
example: 12345
tracker:
type: string
example: fate
label:
type: string
example: fate#12345
url:
type: string
example: https://features.opensuse.org/12345
state:
type: string
summary:
type: string
owner:
type: object
properties:
login:
type: string
email:
type: string
realname:
type: string
xml:
name: issue
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
issue:
- name: 941384
created_at: 2015-08-12 06:11:00 UTC
updated_at: 2020-01-09 10:58:33 UTC
tracker: bnc
label: boo#941384
url: https://opensusebugzilla-next.opensuse.org/show_bug.cgi?id=941384
state: CLOSED
summary: vmware-guest-kmp is not built for SLE_11_SP3
owner:
login: user_1
email: user_1@example.com
realname:
- name: 4883
created_at: 2018-12-11 03:22:54 UTC
updated_at: 2018-12-11 03:22:54 UTC
tracker: boost
label: boost#4883
url: https://svn.boost.demo/trac/boost/ticket/4883
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'issues'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List issues that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/issue`, please
use that one.
tags:
- Search
"/search/missing_owner":
get:
summary: |
Search for packages that miss the definition for a by default
responsible person or group.
security:
- basic_authentication: []
parameters:
- in: query
name: project
schema:
type: string
description: Only return results for a given project.
- in: query
name: filter
schema:
type: string
description: |
A comma separated list of role names that should be
taken into account in the result.
example: bugowner,maintainer
- in: query
name: attribute
schema:
type: string
description: |
Choose the attribute name that marks the rootproject which defines the
owner's for all corresponding subprojects and limit the returned results
to those. The default value is `OBS:OwnerRootProject`.
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
missing_owner:
type: array
items:
type: object
properties:
rootproject:
type: string
example: openSUSE
xml:
attribute: true
project:
type: string
example: openSUSE:Factory
xml:
attribute: true
package:
type: string
example: yast2-branding-openSUSE
xml:
attribute: true
xml:
name: collection
'400':
description: Bad request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: invalid_attribute
summary: 'Attribute ''foo'' must be in the $NAMESPACE:$NAME style
'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: unknown_project
summary: 'Project not found: bla'
tags:
- Search
post:
deprecated: true
summary: |
Search for packages that miss the definition for a by default
responsible person or group.
description: This endpoint is exactly the same as `GET /search/missing_owner`,
please use that one.
tags:
- Search
"/search/owner":
get:
summary: Search for the users or groups who are the owners of a project or package.
description: |
The owners are users/groups with the maintainer or bugowner roles in the given project/package.
By default the owner search will get results from projects (and their sub-projects) that have the
OBS:OwnerRootProject attribute.
You can search for the package name, a user login, a group title or a binary package name.
If you don't want to search the default projects, you can provide another project to search in.
security:
- basic_authentication: []
parameters:
- in: query
name: package
schema:
type: string
description: The name of the package whose owners you want to search.
- in: query
name: binary
schema:
type: string
description: 'The name of a binary package whose owners you want to search.
'
- in: query
name: user
schema:
type: string
description: 'Search what this user is owner of.
'
- in: query
name: group
schema:
type: string
description: 'The title of a group. Search what this group is owner of.
'
- in: query
name: limit
schema:
type: string
description: |
Limit the number of returned results. This is only available for
the search with the `binary` parameter. The default is set to `1`,
use `0` to receive all results or `-1` for the deepest match.
- in: query
name: devel
schema:
type: string
enum:
- true
- false
- 1
- 0
description: Include/exclude devel packages in the result.
- in: query
name: project
schema:
type: string
description: |
By default the owner search will get results from projects (and their sub-projects) that have the OBS:OwnerRootProject attribute.
Use this parameter to overwrite the default and search in this project (and it's sub-projects).
- in: query
name: filter
schema:
type: string
description: |
A comma separated list of role names that should be
taken into account in the result.
example: bugowner,maintainer
- in: query
name: attribute
schema:
type: string
description: |
Choose the attribute name that marks the rootproject which defines the
owner's for all corresponding subprojects and limit the returned results
to those. The default value is `OBS:OwnerRootProject`.
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
owner:
type: array
items:
type: object
properties:
rootproject:
type: string
example: openSUSE
xml:
attribute: true
project:
type: string
example: openSUSE:Factory
xml:
attribute: true
package:
type: string
example: yast2-branding-openSUSE
xml:
attribute: true
person:
type: array
items:
type: object
properties:
name:
type: string
example: foo
xml:
attribute: true
role:
type: string
example: bugowner
xml:
attribute: true
group:
type: array
items:
type: object
properties:
name:
type: string
example: bar
xml:
attribute: true
role:
type: string
example: maintainer
xml:
attribute: true
xml:
name: collection
examples:
only package:
summary: Search by package name
description: Search by package name 'aaa_base' only.
value:
owner:
- rootproject: ''
project: Base:System
package: aaa_base
person:
name: user_1
role: maintainer
- rootproject: ''
project: Base:System
person:
name: user_1
role: maintainer
group:
name: factory-maintainers
role: maintainer
- rootproject: ''
project: Base
person:
name: user_2
role: maintainer
only project:
summary: Search by project name
description: Search by project name 'openSUSE:Factory' only.
value:
owner:
- rootproject: ''
project: openSUSE:Factory
person:
name: user_1
role: maintainer
group:
name: factory-maintainers
role: maintainer
- rootproject: ''
project: openSUSE
group:
name: factory-maintainers
role: maintainer
only binary:
summary: Search by binary name
description: Search by binary name 'aaa_base' only.
value:
owner:
rootproject: openSUSE
project: Base:System
package: aaa_base
person:
- name: user_1
role: maintainer
- name: user_2
role: maintainer
group and project:
summary: Search by group and project
description: Search by group title 'factory-maintainers' and project
name 'openSUSE:Leap:42.3'.
value:
owner:
rootproject: openSUSE:Leap:42.3
project: openSUSE:Leap:42.3
'400':
description: Bad request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
without expected parameters:
summary: Without the expected parameters
description: One or a combination of the parameters package, user,
group, binay and project is required.
value:
code: no_binary
summary: 'The search needs at least a ''binary'', ''package''
or ''user'' parameter
'
search root not set:
summary: Search root is not set
description: At least one of the projects in your instance should
contain the OBS:OwnerRootProject attribute.
value:
summary: 'The attribute OBS:OwnerRootProject is not set to define
default projects.
'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: unknown_project
summary: 'Project not found: bla'
Group Not Found:
value:
code: not_found
summary: Couldn't find Group 'fake'
tags:
- Search
post:
deprecated: true
summary: Search for the users or groups who are the owners of a project or package.
description: This endpoint is exactly the same as `GET /search/owner`, please
use that one.
tags:
- Search
"/search/package":
get:
summary: List package objects that match a XPath condition.
description: |
Return a collection of package objects that match a XPath condition.
This operation is the same as the one defined with [GET /search/package/id](#/Search/get_search_package_id) with the exception of the results returned.
While the former operation returns a list of package names, this one return a list of package objects. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all packages.
Available predicates are:
- Package fields: `@name`, `title`, `description`, `scmsync`, and `kind`.
- `@project`: name of the project of the package.
- Devel package fields:
- `devel/@project`: name of the devel project of the package.
- `devel/@package`: name of the devel package of the package.
- Issue fields: `issue/@state`, `issue/@name`, `issue/@tracker`, and `issue/@change`.
- Issue owner fields: `issue/owner/@email`, and `issue/owner/@login`.
- Fields of attributes of an issue: `attribute_issue/@state`, `attribute_issue/@name`, and `attribute_issue/@tracker`.
- Fields of owners of an attribute of an issue: `attribute_issue/owner/@email` and `attribute_issue/owner/@login`.
- Users and groups:
- `person/@userid`: login of a user related to this package.
- `person/@role`: name of the role which a user could be related with this package.
- `group/@groupid`: name (title) of a group related to this package.
- `group/@role`: name of the role which a group could be related with this package.
- `attribute/@name`: name of an attribute of the package.
- `project/attribute/@name`: name of an attribute of the project of the package.
examples:
all:
summary: All
value: "*"
project_name_and_package_name:
summary: Project name and package name
value: "@project='my:project:name' and @name='my_package_name'"
function_contains:
summary: Function contains
value: contains(description,'editor')
combination:
summary: User and role
value: person/@userid='iggy' and person/@role='reviewer'
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
package:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
package:
- project: home:Admin
name: ruby
title: A Glass of Blessings
description: Qui quod nostrum laudantium.
- project: home:Admin:branch:home:Admin
name: ruby
title: To Your Scattered Bodies Go
description: Quasi reiciendis qui ut.
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'packages'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List packages that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/package`, please
use that one.
tags:
- Search
"/search/package/id":
get:
summary: List packages that match a XPath condition.
description: |
Return a collection of package names that match a XPath condition.
This operation is the same as the one defined with [GET /search/package](#/Search/get_search_package) with the exception of the results returned.
While the former operation returns a list of package objects, this one return a list of package names. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
description: |
Expression based in XPath.
Not providing a value or providing a value of `*` will return all packages.
Available predicates are:
- Package fields: `@name`, `title`, `description`, `scysync`, and `kind`.
- `@project`: name of the project of the package.
- Devel package fields:
- `devel/@project`: name of the devel project of the package.
- `devel/@package`: name of the devel package of the package.
- Issue fields: `issue/@state`, `issue/@name`, `issue/@tracker`, and `issue/@change`.
- Issue owner fields: `issue/owner/@email`, and `issue/owner/@login`.
- Fields of attributes of an issue: `attribute_issue/@state`, `attribute_issue/@name`, and `attribute_issue/@tracker`.
- Fields of owners of an attribute of an issue: `attribute_issue/owner/@email` and `attribute_issue/owner/@login`.
- Users and groups:
- `person/@userid`: login of a user related to this package.
- `person/@role`: name of the role which a user could be related with this package.
- `group/@groupid`: name (title) of a group related to this package.
- `group/@role`: name of the role which a group could be related with this package.
- `attribute/@name`: name of an attribute of the package.
- `project/attribute/@name`: name of an attribute of the project of the package.
examples:
all:
summary: All
value: "*"
project_name_and_package_name:
summary: Project name and package name
value: "@project='my:project:name' and @name='my_package_name'"
function_contains:
summary: Function contains
value: contains(description,'editor')
combination:
summary: User and role
value: person/@userid='iggy' and person/@role='reviewer'
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
package:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
package:
- project: home:Admin
name: ruby
- project: home:Admin:branch:home:Admin
name: ruby
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'packages'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List packages that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/package/id`,
please use that one.
tags:
- Search
"/search/package_id":
get:
deprecated: true
summary: List packages that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/package/id`,
please use that one.
tags:
- Search
post:
deprecated: true
summary: List packages that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/package/id`,
please use that one.
tags:
- Search
"/search/person":
get:
summary: List users that match a XPath condition.
description: Return a collection of users that match a XPath condition.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all users.
Available predicates are: `@login`, `@email`, `@realname`, and `@state`.
examples:
all:
summary: All
value: "*"
login:
summary: Login
value: "@login='user_1'"
function_contains:
summary: Function contains
value: contains(@realname,'lee')
combination:
summary: User email and state
value: "@email='iggy@example.com' and @state='confirmed'"
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
person:
type: array
items:
type: object
properties:
login:
type: string
email:
type: string
realname:
type: string
state:
type: string
globalrole:
type: string
ignore_auth_services:
type: string
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
person:
- login: Iggy
email: iggy@example.com
realname: Shanta
state: confirmed
- login: superkraig
email: kraig@example.com
realname: Kraig Doe
state: confirmed
globalrole: Admin
ignore_auth_services: false
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate '@foo' for 'users'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List users that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/person`, please
use that one.
tags:
- Search
"/search/project":
get:
summary: List project objects that match a XPath condition.
description: |
Return a collection of projects objects that match a XPath condition.
This operation is the same as the one defined with [GET /search/project/id](#/Search/get_search_project_id) with the exception of the results returned.
While the former operation returns a list of project names, this one return a list of project objects. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all projects.
Available predicates are:
- Project fields: `@name`, `@kind`, `title`, `description`, `scmsync`, `url`, and `remoteurl`.
- `package/@name`: name of the packages of the project.
- `attribute/@name`: name of the attributes of the project.
- Users and groups:
- `person/@userid`: login of a user related to this project.
- `person/@role`: name of the role which a user could be related with this project.
- `group/@groupid`: name (title) of a group related to this project.
- `group/@role`: name of the role which a group could be related with this project.
- More complex predicates are: `maintenance/maintains/@project`, `repository/@name`,
`repository/path/@project`, `repository/releasetarget/@trigger`.
examples:
all:
summary: All
value: "*"
name:
summary: Project name
value: "@name='my:project:name'"
function_contains:
summary: Funcion contains
value: contains(@name,'Test')
combination:
summary: User and role
value: person/@userid='iggy' and person/@role='reviewer'
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
project:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
person:
type: object
properties:
userid:
type: string
xml:
attribute: true
role:
type: string
xml:
attribute: true
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
project:
- name: home:Iggy
title:
description:
person:
userid: Iggy
role: maintainer
- name: home:Iggy:branches:home:Admin
title: East of Eden
description:
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'projects'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List project objects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/project`, please
use that one.
tags:
- Search
"/search/project/id":
get:
summary: List projects that match a XPath condition.
description: |
Return a collection of project names that match a XPath condition.
This operation is the same as the one defined with [GET /search/project](#/Search/get_search_project) with the exception of the results returned.
While the former operation returns a list of project objects, this one return a list of project names. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
description: |
Expression based in XPath.
Not providing a value or providing a value of `*` will return all projects.
Available predicates are:
- Project fields: `@name`, `@kind`, `title`, `description`, `scmsync`, `url`, and `remoteurl`.
- `package/@name`: name of the packages of the project.
- `attribute/@name`: name of the attributes of the project.
- Users and groups:
- `person/@userid`: login of a user related to this project.
- `person/@role`: name of the role which a user could be related with this project.
- `group/@groupid`: name (title) of a group related to this project.
- `group/@role`: name of the role which a group could be related with this project.
- More complex predicates are: `maintenance/maintains/@project`, `repository/@name`,
`repository/path/@project`, `repository/releasetarget/@trigger`.
examples:
all:
summary: All
value: "*"
name:
summary: Project name
value: "@name='my:project:name'"
function_contains:
summary: Funcion contains
value: contains(@name,'Test')
combination:
summary: User and role
value: person/@userid='iggy' and person/@role='reviewer'
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
project:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
person:
type: object
properties:
userid:
type: string
xml:
attribute: true
role:
type: string
xml:
attribute: true
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
project:
- name: home:Admin
- name: openSUSE.org
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'projects'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List projects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/project/id`,
please use that one.
tags:
- Search
"/search/project_id":
get:
deprecated: true
summary: List projects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/project/id`,
please use that one.
tags:
- Search
post:
deprecated: true
summary: List projects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/project/id`,
please use that one.
tags:
- Search
"/search/published/binary/id":
get:
summary: Search for currently available binaries in the publish area.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: XPath expression.
example: project='home:foo'+and+name='bar'
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 1000 entries to be returned.
example: 20
- in: query
name: withdownloadurl
schema:
type: integer
enum:
- 0
- 1
description: |
Add the download url in the results as attribute `downloadurl`.
A value `0` means without the download url. A value `1` means with the download url.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
limited:
type: boolean
xml:
attribute: true
binary:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
release:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
filename:
type: string
xml:
attribute: true
filepath:
type: string
xml:
attribute: true
baseproject:
type: string
xml:
attribute: true
type:
type: string
xml:
attribute: true
downloadurl:
type: string
xml:
attribute: true
xml:
name: collection
wrapped: true
examples:
including_download_urls:
value:
matches: 2
binary:
- name: package_name
project: home:foo
package: package_name
repository: openSUSE_Tumbleweed
version: 20201220
release: 3.1
arch: src
filename: package_name-20201220-3.1.src.rpm
filepath: home:/foo/openSUSE_Tumbleweed/src/package_name-20201220-3.1.src.rpm
baseproject: home:bar
type: rpm
downloadurl: https://server1.myorg.org/repositories/home:/foo/openSUSE_Tumbleweed/src/package_name-20201220-3.1.src.rpm
- name: package_name2
project: home:foo
package: package_name2
repository: openSUSE_Tumbleweed
version: 20201220
release: 3.1
arch: src
filename: package_name2-20201220-3.1.src.rpm
filepath: home:/foo/openSUSE_Tumbleweed/src/package_name2-20201220-3.1.src.rpm
baseproject: home:bar
type: rpm
downloadurl: https://server1.myorg.org/repositories/home:/foo/openSUSE_Tumbleweed/src/package_name2-20201220-3.1.src.rpm
summary: Including download urls
description: Result after adding the `withdownloadurl=1` parameter/value
pair to the request.
with_limit:
value:
matches: 2
limited: true
binary:
- name: package_name
project: home:foo
repository: openSUSE_Tumbleweed
package: package_name
version: 20201220
release: 3.1
arch: src
filename: package_name-20201220-3.1.src.rpm
filepath: home:/foo/openSUSE_Tumbleweed/src/package_name-20201220-3.1.src.rpm
baseproject: home:bar
type: rpm
- name: package_name2
project: home:foo
package: package_name2
repository: openSUSE_Tumbleweed
version: 20201220
release: 3.1
arch: src
filename: package_name2-20201220-3.1.src.rpm
filepath: home:/foo/openSUSE_Tumbleweed/src/package_name2-20201220-3.1.src.rpm
baseproject: home:bar
type: rpm
summary: Limiting results
description: Result after adding `limit=2` parameter/value pair
to the request.
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 400
summary: missing string terminator
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project_not_found:
value:
code: 404
summary: project 'home:foo' does not exist
description: 404 project 'home:foo' does not exist
summary: Not Found
tags:
- Search
post:
deprecated: true
summary: Search for currently available binaries in the publish area.
description: This endpoint is exactly the same as `GET /search/published/binary/id`,
please use that one.
tags:
- Search
"/search/published/pattern/id":
get:
summary: Search for published patterns.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: XPath expression.
example: project='home:foo'+and+name='bar'
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 1000 entries to be returned.
example: 20
- in: query
name: withdownloadurl
schema:
type: integer
enum:
- 0
- 1
description: |
Add the download url in the results as attribute `downloadurl`.
A value `0` means without the download url. A value `1` means with the download url.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
limited:
type: boolean
xml:
attribute: true
pattern:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
filename:
type: string
xml:
attribute: true
filepath:
type: string
xml:
attribute: true
baseproject:
type: string
xml:
attribute: true
type:
type: string
xml:
attribute: true
downloadurl:
type: string
xml:
attribute: true
xml:
name: collection
wrapped: true
examples:
including_download_urls:
value:
matches: 1
pattern:
- name: OBS_Server
project: OBS:Server:Unstable
repository: SLE_12_SP4
filename: OBS_Server.ymp
filepath: OBS:/Server:/Unstable/SLE_12_SP4/OBS_Server.ymp
baseproject: SUSE:SLE-12:SLE-Module-Adv-Systems-Management
type: ymp
downloadurl: https://download.opensuse.org/repositories/OBS:/Server:/Unstable/SLE_12_SP4/SLE_12_SP4/OBS_Server.ymp
summary: Including download urls
description: Result after adding the `withdownloadurl=1` parameter/value
pair to the request.
with_limit:
value:
matches: 9
limited: true
pattern:
- name: OBS_Server
project: OBS:Server:Unstable
repository: 15.3
filename: OBS_Server.ymp
filepath: OBS:/Server:/Unstable/15.3/OBS_Server.ymp
baseproject: SUSE:SLE-15:GA
type: ymp
- name: OBS_Server
project: OBS:Server:Unstable
repository: SLE_12_SP4
filename: OBS_Server.ymp
filepath: OBS:/Server:/Unstable/SLE_12_SP4/OBS_Server.ymp
baseproject: SUSE:SLE-12:SLE-Module-Adv-Systems-Management
type: ymp
summary: Limiting results
description: Result after adding `limit=2` parameter/value pair
to the request.
without_matches:
value:
matches: 0
summary: No matches
description: 'Empty result, when there is no matches. For example:
`?match=project=''home:bs-team:OBS''`.
'
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 400
summary: missing string terminator
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: Search for published patterns.
description: This endpoint is exactly the same as `GET /search/published/pattern/id`,
please use that one.
tags:
- Search
"/search/published/repoinfo/id":
get:
summary: Search for currently available repositories in the publish area.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: XPath expression.
example: project='home:foo'
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 1000 entries to be returned.
example: 20
- in: query
name: withdownloadurl
schema:
type: integer
enum:
- 0
- 1
description: |
Add the download url in the results as attribute `downloadurl`.
A value `0` means without the download url. A value `1` means with the download url.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
limited:
type: boolean
xml:
attribute: true
repoinfo:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
xml:
name: collection
wrapped: true
examples:
including_download_urls:
value:
matches: 1
repoinfo:
- project: OBS:Server:Unstable
repository: SLE_12_SP4
downloadurl: https://download.opensuse.org/repositories/OBS:/Server:/Unstable/SLE_12_SP4/SLE_12_SP4/OBS_Server.ymp
summary: Including download urls
description: Result after adding the `withdownloadurl=1` parameter/value
pair to the request.
with_limit:
value:
matches: 2
limited: true
repoinfo:
- project: OBS:Server:Unstable
repository: SLE_12_SP4
- project: OBS:Server:Unstable
repository: SLE_12_SP5
summary: Limiting results
description: Result after adding `limit=2` parameter/value pair
to the request.
without_matches:
value:
matches: 0
summary: No matches
description: 'Empty result, when there is no matches. For example:
`?match=project=''home:bs-team:OBS''`.
'
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 400
summary: missing string terminator
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: Search for currently available repositories in the publish area.
description: This endpoint is exactly the same as `GET /search/published/repoinfo/id`,
please use that one.
tags:
- Search
"/search/released/binary":
get:
summary: List released binaries that match a XPath condition.
description: |
Return a collection of released binaries that match a XPath condition.
Released binaries are binaries published via the release mechanism. Binaries which got removed are also included.
This operation is the same as the one defined with [GET /search/released/binary/id](#/Search/get_search_released_binary_id) with the exception of the results returned.
While the former operation returns a list of released binaries without details, this one return a list of detailed released binaries. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all released binaries.
Available predicates are:
- Released binary fields: `@name`, `disturl`, `@version`, `@release`, `@arch`, `@medium`, `binaryid`, `cpeid`, `supportstatus`, and `operation`.
- Update info fields: `updateinfo/@id` and `updateinfo/@version`.
- Build fields: `build/@time` and `build/@binaryid`.
- Other fields: `modify/@time` and `obsolete/@time`.
- Repository fields: `repository/@project` and `repository/@name`.
- Publish fields: `publish/@time`, `publish/@package` and `publish/@flavor`.
- "Update for" fields: `updatefor/@project`, `updatefor/@arch`, `updatefor/@product`, `updatefor/@baseversion`, `updatefor/@patchlevel`, and `updatefor/@version`.
- Product fields: `product/@project`, `product/@version`, `product/@release`, `product/@baseversion`, `product/@patchlevel`, `product/@name`, `product/@arch`, and `product/@medium`.
examples:
all:
summary: All
value: "*"
example1:
summary: Latest version of given binary in all products
description: Find the latest version of a given `glibc-devel` binary in
all products, skipping old and revoked versions.
value: "@name='glibc-devel'+and+obsolete[not(@time)]"
example2:
summary: Specific version by given updateinfo id
description: Find a specific version by given updateinfo id. This ID is
visible in the update tools to the end user.
value: updateinfo/@id='OBS-2014-42'
example3:
summary: Specific version by given disturl
description: Find a specific version by given disturl. Used to find all
affected products by a certain build of a binary.
value: disturl='obs://...'
example4:
summary: First release of a specific package version
value: "@name='kernel-default'+and+@version='1.0'+and+@release='1'+and+@arch='i586'+and+supportstatus='l3'+and+operation='added'"
example5:
summary: All binaries of a given repository
value: repository/@project='BaseDistro3'+and+repository/@name='BaseDistro3_repo'
example6:
summary: All binaries part of a product release
value: product/@project='openSUSE'+and+product/@name='openSUSE'+and+(product/@arch='x86_64'+or+not(product/@arch))
example7:
summary: All binaries part of the update repositories of a product
value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+(updatefor/@arch='x86_64'+or+not(updatefor/@arch))
example8:
summary: All binaries part of the update repositories of a versioned product
value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@version='13.2'
example9:
summary: All binaries part of the update repositories of a versioned product
(enterprise style)
value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@baseversion='12'+and+updatefor/@patchlevel='1'
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
binary:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
name:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
release:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
operation:
type: string
publish:
type: object
properties:
package:
type: string
xml:
attribute: true
time:
type: string
xml:
attribute: true
build:
type: object
properties:
time:
type: string
xml:
attribute: true
obsolete:
type: object
properties:
time:
type: string
xml:
attribute: true
disturl:
type: string
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
binary:
- project: home:user_1
repository: openSUSE_Tumbleweed
name: cowsay
version: 3.03
release: 5.7
arch: noarch
operation: added
publish:
package: cowsay
time: 2017-11-22 01:26:25 UTC
build:
time: 2014-11-22 01:26:25 UTC
obsolete:
time: 2018-11-22 01:26:25 UTC
disturl: obs://openSUSE_TEST/home:user_1/openSUSE_Tumbleweed/60a1a1850b9fd0d3b30f3eefa195579b-cowsay
- project: home:user_2:branches:openSUSE.org:Cloud:OpenStack:Pike:venv
repository: SLE_12_SP3
name: pyhon-Babel
version: 2.3.4
release: 3.1
arch: src
operation: added
publish:
package: python-Babel
time: 2018-02-08 12:56:52 UTC
build:
time: 2018-01-08 12:56:52 UTC
obsolete:
time: 2018-02-28 12:56:52 UTC
disturl: obs://openSUSE_TEST/home:user_2:branches:openSUSE.org:Cloud:OpenStack:Pike:venv/SLE_12_SP3/783d831d5cd44b08db0ca95ebe06c6cc-python-Babel
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'released_binaries'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List released binaries that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/released/binary`,
please use that one.
tags:
- Search
"/search/released/binary/id":
get:
summary: List released binaries that match a XPath condition.
description: |
Return a collection of released binaries that match a XPath condition.
Released binaries are binaries published via the release mechanism. Binaries which got removed are also included.
This operation is the same as the one defined with [GET /search/released/binary](#/Search/get_search_released_binary) with the exception of the results returned.
While the former operation returns a list of detailed released binaries, this one return a list of released binaries without details. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
description: |
Expression based in XPath.
Not providing a value or providing a value of `*` will return all released binaries.
Available predicates are:
- Released binary fields: `@name`, `disturl`, `@version`, `@release`, `@arch`, `@medium`, `binaryid`, `cpeid`, `supportstatus`, and `operation`.
- Update info fields: `updateinfo/@id` and `updateinfo/@version`.
- Build fields: `build/@time` and `build/@binaryid`.
- Other fields: `modify/@time` and `obsolete/@time`.
- Repository fields: `repository/@project` and `repository/@name`.
- Publish fields: `publish/@time`, `publish/@package` and `publish/@flavor`.
- "Update for" fields: `updatefor/@project`, `updatefor/@arch`, `updatefor/@product`, `updatefor/@baseversion`, `updatefor/@patchlevel`, and `updatefor/@version`.
- Product fields: `product/@project`, `product/@version`, `product/@release`, `product/@baseversion`, `product/@patchlevel`, `product/@name`, `product/@arch`, and `product/@medium`.
examples:
all:
summary: All
value: "*"
example1:
summary: Latest version of given binary in all products
description: Find the latest version of a given `glibc-devel` binary in
all products, skipping old and revoked versions.
value: "@name='glibc-devel'+and+obsolete[not(@time)]"
example2:
summary: Specific version by given updateinfo id
description: Find a specific version by given updateinfo id. This ID is
visible in the update tools to the end user.
value: updateinfo/@id='OBS-2014-42'
example3:
summary: Specific version by given disturl
description: Find a specific version by given disturl. Used to find all
affected products by a certain build of a binary.
value: disturl='obs://...'
example4:
summary: First release of a specific package version
value: "@name='kernel-default'+and+@version='1.0'+and+@release='1'+and+@arch='i586'+and+supportstatus='l3'+and+operation='added'"
example5:
summary: All binaries of a given repository
value: repository/@project='BaseDistro3'+and+repository/@name='BaseDistro3_repo'
example6:
summary: All binaries part of a product release
value: product/@project='openSUSE'+and+product/@name='openSUSE'+and+(product/@arch='x86_64'+or+not(product/@arch))
example7:
summary: All binaries part of the update repositories of a product
value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+(updatefor/@arch='x86_64'+or+not(updatefor/@arch))
example8:
summary: All binaries part of the update repositories of a versioned product
value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@version='13.2'
example9:
summary: All binaries part of the update repositories of a versioned product
(enterprise style)
value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@baseversion='12'+and+updatefor/@patchlevel='1'
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
binary:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
name:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
release:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
operation:
type: string
publish:
type: object
properties:
package:
type: string
xml:
attribute: true
time:
type: string
xml:
attribute: true
build:
type: object
properties:
time:
type: string
xml:
attribute: true
obsolete:
type: object
properties:
time:
type: string
xml:
attribute: true
disturl:
type: string
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
binary:
- project: openSUSE:13.1:Update
repository: standard
name: ImageMagick-extra
version: 6.8.6.9
release: 2.12.1
arch: i586
- project: openSUSE:13.1:Update
repository: standard
name: Mesa
version: 9.2.3
release: 61.9.1
arch: i586
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'released_binaries'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List released binaries that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/released/binary/id`,
please use that one.
tags:
- Search
"/search/repository/id":
get:
summary: List repositories that match a XPath condition.
description: Return a collection of repository names that match a XPath condition.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
description: |
Expression based in XPath.
Not providing a value or providing a value of `*` will return all projects.
Available predicates are:
- `@name`: name of the repository.
- `@project`: name of the project of the repository.
- Path fields: `path/@project` and `path/@repository`.
- Target product fields: `targetproduct/@project`, `targetproduct/@arch`, `targetproduct/@name`,
`targetproduct/@baseversion`, `targetproduct/@patchlevel`, and `targetproduct/@version`.
examples:
all:
summary: All
value: "*"
name:
summary: Project name
value: "@project='home:Admin'"
function_contains:
summary: Funcion contains
value: contains(@name,'Tumb')
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: integer
xml:
attribute: true
repository:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
repository:
- name: openSUSE_Tumbleweed
project: home:Admin
- name: snapshot
project: openSUSE.org
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'repositories'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List repositories that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/repository/id`,
please use that one.
tags:
- Search
"/search/request":
get:
summary: List request objects that match a XPath condition.
description: |
Return a collection of request objects that match a XPath condition.
This operation is the same as the one defined with [GET /search/request/id](#/Search/get_search_request_id) with the exception of the results returned.
While the former operation returns a list of request numbers, this one return a list of request objects. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
required: true
description: |
Expression based in XPath.
Providing a value of `*` will return all requests.
Available predicates are:
- Request fields: `@id` and `@creator`.
- State fields: `state/@name`, `state/@who`, and `state/@when`.
- Target fields: `target/@project` and `target/@package`.
- Source fields: `source/@project` and `source/@package`.
- Actions fields: `action/@type`, `action/grouped/@id`, `action/target/@project`, `action/target/@package`, `action/source/@project`, and `action/source/@package`.
- Reviews fields:
- General: `review/@when`, `review/@state`.
- Review by: `review/@by_user`, `review/@by_group`, `review/@by_project`, and `review/@by_package`.
- History: `review/history/@when`.
- History fields: `history/@when` and `history/@who`.
examples:
all:
summary: All
value: "*"
id:
summary: Request number
value: "@id=123456"
function_contains:
summary: Function contains
value: contains(@creator,'Igg')
combination:
summary: State name and date
value: state/@name='review' and starts_with(state/@when,'2022-08-22')
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
- in: query
name: withhistory
schema:
type: string
description: |
Include the request history.
Without a value or with the value `0` means without the request history. A value `1` means with the request history.
example: 1
- in: query
name: withfullhistory
schema:
type: string
description: |
Include the request and review history.
Without a value or with the value `0` means without the request and review history. A value `1` means with the request and review history.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: string
example: 7
xml:
attribute: true
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
request:
- id: 2
creator: Iggy
description: Praesentium in nobis.
action:
type: submit
source:
project: openSUSE:Leap:15.0
package: apache2
target:
project: my_organization:Factory
package: inreview
state:
name: review
who: Iggy
when: '2022-08-22T08:06:58'
review:
- state: new
when: '2022-08-22T08:06:58'
by_package: apache2
by_project: openSUSE:Leap:15.0
- state: new
when: '2022-08-22T08:06:58'
by_user: repo-checker
- state: accepted
when: '2022-08-22T08:06:58'
who: Admin
by_group: group_1
- id: 4
creator: Iggy2
description: Ut voluptas quibusdam.
action:
type: submit
source:
project: requestor_project
package: package_1661161028_1
target:
project: my_organization:Admin
package: package_1661161028_1
state:
name: review
who: Requestor
when: '2022-08-22T09:37:09'
comment: Dolores dolore animi.
review:
- state: new
when: '2022-08-22T09:37:09'
who: Requestor
by_group: dolorum
comment: Aut ipsum accusantium.
- state: accepted
when: '2022-08-22T09:37:09'
who: Requestor
by_group: group_1
comment:
history:
who: Admin
when: '2022-08-22T09:37:09'
description: Review got accepted
one_result_with_history:
summary: One result with history
value:
matches: 1
request:
- id: 4
creator: Iggy2
description: Ut voluptas quibusdam.
action:
type: submit
source:
project: requestor_project
package: package_1661161028_1
target:
project: my_organization:Admin
package: package_1661161028_1
state:
name: review
who: Requestor
when: '2022-08-22T09:37:09'
comment: Dolores dolore animi.
review:
- state: new
when: '2022-08-22T09:37:09'
who: Requestor
by_group: dolorum
comment: Aut ipsum accusantium.
- state: accepted
when: '2022-08-22T09:37:09'
who: Admin
by_group: group_1
comment:
history:
who: Admin
when: '2022-08-22T09:37:09'
description: Review got accepted
history:
- who: Iggy
when: '2022-08-22T09:37:09'
description: Request created
comment: Praesentium in nobis. Tempore omnis error.
one_result_with_full_history:
summary: One result with full history
value:
matches: 1
request:
- id: 4
creator: Iggy2
description: Ut voluptas quibusdam.
action:
type: submit
source:
project: requestor_project
package: package_1661161028_1
target:
project: my_organization:Admin
package: package_1661161028_1
state:
name: review
who: Requestor
when: '2022-08-22T09:37:09'
comment: Dolores dolore animi.
review:
- state: new
when: '2022-08-22T09:37:09'
who: Requestor
by_group: dolorum
comment: Aut ipsum accusantium.
- state: accepted
when: '2022-08-22T09:37:09'
who: Admin
by_group: group_1
comment:
history:
who: Admin
when: '2022-08-22T09:37:09'
description: Review got accepted
history:
- who: Iggy
when: '2022-08-22T09:37:09'
description: Request created
comment: Praesentium in nobis. Tempore omnis error.
- who: Admin
when: '2022-08-22T09:37:09'
description: Request got accepted
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'requests'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: search_results_exceed_configured_limit
summary: |
The number of results returned by the performed search exceeds the configured limit.
You can:
- retrieve only the ids by using an '/search/.../id' API endpoint, or
- reduce the number of matches of your search:
- paginating your results, through the 'limit' and 'offset' parameters, or
- adjusting your `match` expression.
tags:
- Search
post:
deprecated: true
summary: List requests objects that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/request`, please
use that one.
tags:
- Search
"/search/request/id":
get:
summary: List request numbers that match a XPath condition.
description: |
Return a collection of request numbers that match a XPath condition.
This operation is the same as the one defined with [GET /search/request](#/Search/get_search_request) with the exception of the results returned.
While the former operation returns a list of request objects, this one return a list of request numbers. See example values of a succeeded request below.
security:
- basic_authentication: []
parameters:
- in: query
name: match
schema:
type: string
description: |
Expression based in XPath.
Not providing a value or providing a value of `*` will return all requests.
Available predicates are:
- Request fields: `@id` and `@creator`.
- State fields: `state/@name`, `state/@who`, and `state/@when`.
- Target fields: `target/@project` and `target/@package`.
- Source fields: `source/@project` and `source/@package`.
- Actions fields: `action/@type`, `action/grouped/@id`, `action/target/@project`, `action/target/@package`, `action/source/@project`, and `action/source/@package`.
- Reviews fields:
- General: `review/@when`, `review/@state`.
- Review by: `review/@by_user`, `review/@by_group`, `review/@by_project`, and `review/@by_package`.
- History: `review/history/@when`.
- History fields: `history/@when` and `history/@who`.
examples:
all:
summary: All
value: "*"
id:
summary: Request number
value: "@id=123456"
function_contains:
summary: Function contains
value: contains(@creator,'Igg')
combination:
summary: State name and date
value: "/search/request?match=state/@name='review' and starts_with(state/@when,'2022-08-22')"
- in: query
name: limit
schema:
type: integer
description: Limit the number of results.
example: 20
- in: query
name: offset
schema:
type: integer
description: Return results starting from the element specified by offset.
example: 10
- in: query
name: withhistory
schema:
type: string
description: |
Include the request history.
Without a value or with the value `0` means without the request history. A value `1` means with the request history.
example: 1
- in: query
name: withfullhistory
schema:
type: string
description: |
Include the request and review history.
Without a value or with the value `0` means without the request and review history. A value `1` means with the request and review history.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
matches:
type: string
example: 7
xml:
attribute: true
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
action:
type: object
properties:
type:
type: string
example: submit
xml:
attribute: true
source:
type: object
properties:
project:
type: string
example: home:foo-user
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
rev:
type: integer
example: 521
xml:
attribute: true
target:
type: object
properties:
project:
type: string
example: OBS:Unstable
xml:
attribute: true
package:
type: string
example: obs-server
xml:
attribute: true
options:
type: object
properties:
sourceupdate:
type: string
example: cleanup
state:
type: object
properties:
name:
type: string
example: accepted
xml:
attribute: true
who:
type: string
example: bar-user
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
comment:
type: string
example: allright
review:
type: array
items:
type: object
properties:
state:
type: string
xml:
attribute: true
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
by_user:
type: string
xml:
attribute: true
by_group:
type: string
xml:
attribute: true
by_project:
type: string
xml:
attribute: true
by_package:
type: string
xml:
attribute: true
comment:
type: string
history:
type: object
properties:
when:
type: string
xml:
attribute: true
who:
type: string
xml:
attribute: true
description:
type: string
example:
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_user: obs-maintainer
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_group: obs-group
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_project: OBS:Unstable
- state: accepted
when: '2021-01-15T15:49:32'
who: obs-maintainer
by_package: obs-server
history:
type: array
items:
type: object
properties:
who:
type: string
example: foo
xml:
attribute: true
when:
type: string
example: '2021-01-15T13:39:43'
xml:
attribute: true
description:
type: string
example: Request created
comment:
type: string
example: Please review sources
description:
type: string
example: A little version update
xml:
name: request
xml:
name: collection
examples:
no_results:
summary: No matching results
value:
matches: 0
two_results:
summary: Two matching results
value:
matches: 2
request:
- id: 2
- id: 4
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: illegal_xpath_error
summary: unable to evaluate 'foo' for 'requests'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Search
post:
deprecated: true
summary: List request numbers that match a XPath condition.
description: This endpoint is exactly the same as `GET /search/request/id`,
please use that one.
tags:
- Search
"/service":
get:
summary: List all services.
description: Get a list of all services known to OBS.
security:
- basic_authentication: []
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
summary:
type: string
description:
type: string
parameter:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
description:
type: string
allowedvalue:
type: array
items:
type: string
required:
type: string
xml:
name: service
xml:
wrapped: true
name: servicelist
example:
- name: download_url
summary: Download a file
description: This services uses curl to download files from remote
servers via supported protocols.
parameter:
- name: protocol
description: Used Protocol
allowedvalue:
- ftp
- http
- https
- name: host
description: Server Hostname
required: ''
- name: source_validator
summary: Validate sources
description: The default SUSE source validator which catches common
pitfalls before build.
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- General Information
"/source?cmd=branch":
post:
summary: Branch a set of packages based on attributes
description: |
Create a source link from a package of an existing project to a
new subproject of the requesters home project.
security:
- basic_authentication: []
parameters:
- name: project
description: The project that you want to branch
in: query
schema:
type: string
- name: package
description: The package that you want to branch
in: query
schema:
type: string
- name: target_project
description: Project which will be used or created
in: query
schema:
type: string
- name: target_package
description: Package name which will be used
in: query
schema:
type: string
- name: attribute
description: Attribute used for package search, default is OBS:MaintenanceProject
in: query
schema:
type: string
- name: add_repositories
description: Copy the repositories from branched project
in: query
schema:
type: boolean
- name: update_path_elements
description: Check if repository path elements do use each other and adapt
our own path elements
in: query
schema:
type: boolean
- name: update_project_attribute
description: Set a different Update Project attribute.
in: query
schema:
type: string
default: OBS:UpdateProject
- name: noaccess
description: Create hidden project. The new created project will be read protected
in: query
schema:
type: boolean
- name: extend_package_names
description: Extend repo and package names
in: query
schema:
type: boolean
- name: add_repositories_rebuild
description: Use defined rebuild policy for new repos or copy it from the
source project
in: query
schema:
type: string
enum:
- transitive direct local copy
- name: add_repositories_block
description: Use defined block policy for new repos
in: query
schema:
type: string
enum:
- all
- local
- never
- name: newinstance
description: The target package exists only via project links, but the link
should point to given project
in: query
schema:
type: boolean
- name: maintenance
describe: Explicitly asked for maintenance branch
in: query
schema:
type: boolean
responses:
'200':
description: ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
data:
- home:Admin
- hello_world
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
summary:
type: string
xml:
name: status
example:
code: not_found
summary: no packages found by search criteria
tags:
- Sources
"/source?cmd=createmaintenanceincident":
post:
summary: Create maintenance incident projects
description: Create a mainatenance incident project based on attribute search.
security:
- basic_authentication: []
parameters:
- in: query
name: attribute
schema:
type: string
example: OBS:MaintenanceProject
description: attribute used for package search, default is OBS:MaintenanceProject
responses:
'200':
description: ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
data:
- MaintenanceProject:1
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: incident_has_no_maintenance_project
summary: incident projects shall only create below maintenance projects
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: modify_project_no_permission
summary: no permission to modify project 'MaintenanceProject'
tags:
- Sources
"/source?cmd=orderkiwirepos":
post:
summary: Sort the repositories inside of a kiwi file according to path relationships.
description: This API takes kiwi XML file in the request body and sort the repositories
based on priority.
security:
- basic_authentication: []
requestBody:
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
schemaversion:
type: string
xml:
attribute: true
repository:
type: array
items:
type: object
properties:
source:
type: object
properties:
path:
type: string
xml:
attribute: true
xml:
name: repository
xml:
name: image
example: |
<image name="{exc_image_base_name}" schemaversion="7.4">
<repository type="rpm-md" priority="99" alias="kiwi">
<source path="obs://Virtualization:Appliances:Builder/openSUSE_Leap_15.3"/>
</repository>
<repository type="rpm-md" priority="1" alias="OS" imageinclude="true">
<source path="{exc_repo}"/>
</repository>
</image>
responses:
'200':
description: Sorted list of repositories
content:
text/xml:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
schemaversion:
type: string
xml:
attribute: true
repository:
type: array
items:
type: object
properties:
source:
type: object
properties:
path:
type: string
xml:
attribute: true
xml:
name: repository
xml:
name: image
example: |
<image name="{exc_image_base_name}" schemaversion="7.4">
<repository type="rpm-md" priority="1" alias="OS" imageinclude="true">
<source path="{exc_repo}"/>
</repository>
<repository type="rpm-md" priority="99" alias="kiwi">
<source path="obs://Virtualization:Appliances:Builder/openSUSE_Leap_15.3"/>
</repository>
</image>
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
summary:
type: string
xml:
name: status
example:
code: 400
summary: "/srv/obs/sources/:upload/1344: not xml"
tags:
- Sources
"/source":
get:
summary: List all the projects.
description: Get the list of all projects.
security:
- basic_authentication: []
parameters:
- name: deleted
in: query
schema:
type: integer
description: Set to `1` to list the deleted projects. This is available for
Admins only.
example: 0
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
examples:
List of projects:
value:
entry:
- name: home:Admin
- name: home:Iggy
Deleted projects:
value:
entry:
- name: home:user_1
'400':
description: Wrong value for deleted parameter.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not boolean:
value:
code: 400
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: No permission to access deleted projects.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: no_permission_for_deleted
summary: only admins can see deleted projects.
tags:
- Sources - Projects
"/source/{project_name}":
get:
summary: List packages of a project.
description: Get a list of packages belonging to a project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: deleted
in: query
schema:
type: string
description: Set to `1` to list the packages of a deleted project.
example: 1
- in: query
name: expand
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to include packages from linked projects.
example: 1
- in: query
name: view
schema:
type: string
enum:
- issues
- productlist
- verboseproductlist
description: |
Specify which sections should be included in the packages list.
* `issues`: Show all tracked issues for all the packages.
* `productlist`: Show all contained products.
* `verboseproductlist`: List all contained products with detailed information about the product.
Example of a result when `issues` is selected:
```
<project name="Base:System">
<package project="Base:System" name="xz">
<issue change="kept">
<created_at>2009-05-21 10:50:00 UTC</created_at>
<updated_at>2020-02-24 13:01:11 UTC</updated_at>
<name>505969</name>
<tracker>bnc</tracker>
<label>boo#505969</label>
<url>https://bugzilla.opensuse.org/show_bug.cgi?id=505969</url>
<state>CLOSED</state>
<summary>lzma, xz: missing manpages</summary>
<owner>
<login>coolo</login>
<email>coolo@suse.com</email>
<realname>Stephan Kulow</realname>
</owner>
</issue>
<issue change="kept">
<created_at>2009-06-04 14:35:00 UTC</created_at>
<updated_at>2020-02-24 13:01:11 UTC</updated_at>
<name>509945</name>
<tracker>bnc</tracker>
<label>boo#509945</label>
<url>https://bugzilla.opensuse.org/show_bug.cgi?id=509945</url>
<state>CLOSED</state>
<summary>Enforce packaging of static libraries by rpmlint check</summary>
<owner>
<login>dirkmueller</login>
<email>dmueller@suse.com</email>
<realname>Dirk Mueller</realname>
</owner>
</issue>
</package>
</project>
```
Example of a result when `productlist` is selected:
```
<productlist count="3">
<product name="openSUSE-Addon-NonOss" cpe="cpe:/o:opensuse:opensuse-addon-nonoss:20230108" originproject="openSUSE:Factory" originpackage="000product" mtime="1673224560"/>
<product name="openSUSE" cpe="cpe:/o:opensuse:opensuse:20230108" originproject="openSUSE:Factory" originpackage="000product" mtime="1673224560"/>
<product name="MicroOS" cpe="cpe:/o:opensuse:microos:20230108" originproject="openSUSE:Factory" originpackage="000product" mtime="1673224560"/>
</productlist>
```
Example of a result when `verboseproductlist` is selected:
```
<productlist count="3">
<product name="openSUSE-Addon-NonOss" originproject="openSUSE:Factory" originpackage="000product">
<cpe>cpe:/o:opensuse:opensuse-addon-nonoss:20230108</cpe>
<version>20230108</version>
</product>
<product name="openSUSE" originproject="openSUSE:Factory" originpackage="000product">
<cpe>cpe:/o:opensuse:opensuse:20230108</cpe>
<version>20230108</version>
</product>
<product name="MicroOS" originproject="openSUSE:Factory" originpackage="000product">
<cpe>cpe:/o:opensuse:microos:20230108</cpe>
<version>20230108</version>
</product>
</productlist>
```
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
oneOf:
- type: object
properties:
count:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
originpackage:
type: string
xml:
attribute: true
xml:
name: directory
- type: object
properties:
count:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
cpe:
type: string
xml:
attribute: true
originproject:
type: string
xml:
attribute: true
originpackage:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: product
xml:
name: productlist
- type: object
properties:
count:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
originproject:
type: string
xml:
attribute: true
originpackage:
type: string
xml:
attribute: true
cpe:
type: string
version:
type: string
xml:
name: product
xml:
name: productlist
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not boolean:
description: Passing a non boolean value to the `deleted` query
parameter.
value:
code: 400
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: home:nonExistentUser'
tags:
- Sources - Packages
delete:
summary: Delete a specified project.
description: Deletes a specified project and all the packages of this project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: force
in: query
schema:
type: integer
description: |
Set to `1` if you want to delete the project even if the repositories of other
projects include a path to this project. After deletion, the path
in the other repository will start pointing towards 'deleted/standard' to
prevent the build and publishing
- name: comment
in: query
schema:
type: string
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Unauthorized to delete project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
delete_project_no_permission:
value:
code: delete_project_no_permission
summary: Permission denied (delete project 'project_name')
summary: No permission
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?view=info":
get:
summary: Show information of the packages of a project.
description: Show source version, md5sums and build description files of all
packages belonging to a project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: view
schema:
type: string
enum:
- info
- issues
- productlist
- verboseproductlist
description: |
Specify which information about each package should be returned.
* `info`: Show source version, md5sums and build description files of all packages belonging to a project.
* `issues`, `productlist`, `verboseproductlist`:
See this [other endpoint](<#/Sources - Packages/get_source__project_name_>) for details.
example: info
- in: query
name: arch
schema:
type: string
description: Filter by architecture name.
example: x86_64
- in: query
name: noexpand
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to prevent from showing some elements about packages,
like `filename`, `error` or `linked` elements.
example: 1
- in: query
name: nofilename
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to prevent from showing filename elements. Shows only
the `sourceinfo` root element.
example: 1
- in: query
name: package
schema:
type: string
description: Filter by package name.
example: test
- in: query
name: parse
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to show more details, like `originproject`, `linked
package`, `name`, `version`, `release`, `subpacks`, `deps`, and `prereqs`
elements.
example: 1
- in: query
name: repository
schema:
type: string
description: Filter by repository name.
example: openSUSE_Tumbleweed
- in: query
name: withmetamd5
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to show the `metamd5` attribute.
example: 1
- in: query
name: withchangesmd5
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to show the `revtime` element.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
package:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
verifymd5:
type: string
xml:
attribute: true
metamd5:
type: string
xml:
attribute: true
filename:
type: string
originproject:
type: string
linked:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
name:
type: string
version:
type: string
release:
type: string
revtime:
type: string
error:
type: string
subpacks:
type: array
items:
type: string
deps:
type: array
items:
type: string
prereqs:
type: array
items:
type: string
xml:
name: sourceinfo
xml:
name: sourceinfolist
wrapped: true
examples:
A project contains three packages:
value:
- package: texlive-specs
rev: 9f5336fcf6e4521b6a9587b02087eef9
vrev: 25
srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
filename: texlive-specs.spec
- package: texlive-specs-w
rev: 9f5336fcf6e4521b6a9587b02087eef9
vrev: 55
srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
filename: texlive-specs-w.spec
- package: test
rev: 5
vrev: 5
srcmd5: e3a71081cb7245e3c09c3655dffa7384
verifymd5: e3a71081cb7245e3c09c3655dffa7384
error: bad build configuration, no build type defined or detected
Applying a filter doesn't return any result:
value:
- package: hello
error: 404 package 'hello' does not exist
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `parse`,
for example.
value:
code: 400
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
tags:
- Sources - Projects
"/source/{project_name}/_config":
get:
summary: Get project's configuration
description: Read configuration for the specified project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: rev
in: query
schema:
type: string
responses:
'200':
description: OK. The request has succeeded.
content:
text/plain:
schema:
type: string
example: |
# temporary should be fixed in SUSE:SLE-15-SP4:GA
Prefer: -libudev-devel
Prefer: -libudev-devel-32bit
...
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
put:
summary: Update project's configuration
description: Update configuration for the specified project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: comment
in: query
schema:
type: string
requestBody:
description: configuration you want to update
content:
text/plain:
schema:
type: string
example: |
# temporary should be fixed in SUSE:SLE-15-SP4:GA
Prefer: -libudev-devel
Prefer: -libudev-devel-32bit
...
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/_meta":
get:
summary: Get project meta file
description: Get project meta file
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: view
in: query
schema:
type: string
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
person:
type: object
properties:
userid:
type: string
xml:
attribute: true
role:
type: string
xml:
attribute: true
repository:
type: object
properties:
name:
type: string
xml:
attribute: true
path:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
arch:
type: array
items:
type: string
xml:
name: project
example:
name: home:Admin
title: Endless Night
description: Test project
person:
userid: Admin
role: maintainer
repository:
name: openSUSE_Tumbleweed
path:
project: openSUSE.org:openSUSE:Factory
repository: snapshot
arch:
- x86_64
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Unknown project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
Invalid Project Parameters:
value:
code: invalid_project_parameters
summary: Not found
tags:
- Sources - Projects
put:
summary: Write project meta file
description: Write project's meta file. Create the project if it doesn't exist.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: comment
schema:
type: string
description: Comment that explains the changes you made in meta file.
requestBody:
description: Project meta definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
person:
type: object
properties:
userid:
type: string
xml:
attribute: true
role:
type: string
xml:
attribute: true
repository:
type: object
properties:
name:
type: string
xml:
attribute: true
path:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
arch:
type: array
items:
type: string
xml:
name: project
example:
name: home:Admin
title: Endless Night
description: Test project
person:
userid: Admin
role: maintainer
repository:
name: openSUSE_Tumbleweed
path:
project: openSUSE.org:openSUSE:Factory
repository: snapshot
arch:
- x86_64
- aarch64
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Command:
value:
code: unknown_command
summary: Allowed commands are '<some command>'.
Bad Request:
value:
code: err_register_save
summary: 'Could not save the registration, details: Login is the
name of an already existing user and Password can''t be blank.'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: The user does not have permission to change the project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Change project no permission:
value:
code: change_project_no_permission
summary: The project <some project> is locked
tags:
- Sources - Projects
"/source/{project_name}/_pattern":
get:
summary: Get list of patterns
description: Get a list of all patterns for the project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
ntime:
type: string
xml:
attribute: true
xml:
name: directory
example:
name: _pattern
rev: '3'
vrev: '555'
srcmd5: db8d976cd59b1a933ab82a539247aeac
entry:
- name: OBS_Server
md5: d4ba5bf938ed8d26e68a7c6d1237854e
size: '947'
ntime: '1463555386'
- name: OBS_Server:unstable
md5: d4ba5bf938ed8d26e6xvv8a7c6d12ddd
size: '737'
ntime: 146355ddd6
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/_pattern/{file_name}":
get:
deprecated: true
summary: Read a specified pattern file
description: Read a specified pattern file and return the content
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown File:
value:
code: unknown_file
summary: 'File not found: home:some_project/_pattern/some_file'
tags:
- Sources - Projects
delete:
deprecated: true
summary: Deletes a specified pattern file.
description: Deletes a specified pattern file of a project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown File:
value:
code: unknown_file
summary: 'File not found: home:some_project/_pattern/some_file'
tags:
- Sources - Projects
put:
deprecated: true
summary: Write a specified pattern file.
description: Write a specified pattern file of a project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
requestBody:
content:
plain/text:
schema:
type: string
properties:
file:
type: string
format: binary
responses:
'200':
description: Updates the artifact's file contents
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
example:
rev: 28
srcmd5: 6c73fc9ef8d43369f0778564617b4a93
time: 1682497725
user: Admin
comment:
requestid:
'400':
description: 'Error: Bad request.'
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Bad Request:
value:
code: validation_failed
summary: 'pattern validation error: 1:1: FATAL: Start tag expected,
< not found
'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown File:
value:
code: unknown_file
summary: 'File not found: home:some_project/_pattern/some_file'
tags:
- Sources - Projects
"/source/{project_name}/_project":
get:
summary: List project files
description: List all the files in project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: meta
required: false
schema:
type: integer
description: Set to 1 to include _meta files
example: 1
- in: query
name: rev
required: false
schema:
type: integer
description: Revision number
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
example:
name: _project
rev: '7'
vrev: '445'
srcmd5: 9a18405476229262648b4c3e548a90a9
entry:
name: _pubkey
md5: 1536ab133eb76be69aaba65d934d827a
size: '1369'
mtime: '1650378374'
'400':
description: Wrong value for meta parameter.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not boolean:
value:
code: 400
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/_pubkey":
get:
summary: Get GPG key
description: |
Get the project's GPG key. If the project doesn't have a default GPG key, it looks for the first one
available in the namespace hierarchy, ending at the global buildservice key.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
text/plain:
schema:
type: string
example: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQENBFfX+W4BCAC89VZEUt8O/o2rXnFoNrW0nsZoaHZX5Kjtzwuns5/UwzBffY/h
[...]
-----END PGP PUBLIC KEY BLOCK-----
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: 'Project not found: <some project>.'
No pubkey:
value:
code: no_pubkey
summary: no pubkey available
tags:
- Sources - Projects
delete:
summary: Removes the current gpg key
description: Removes the current gpg key if it exists
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/_keyinfo":
get:
summary: Get a projects signing keys
description: Read information about the signing keys for the specified project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: string
xml:
attribute: true
pubkey:
type: object
properties:
keyid:
type: string
xml:
attribute: true
userid:
type: string
xml:
attribute: true
algo:
type: string
xml:
attribute: true
keysize:
type: string
xml:
attribute: true
expires:
type: string
xml:
attribute: true
fingerprint:
type: string
xml:
attribute: true
sslcert:
type: object
properties:
keyid:
type: string
xml:
attribute: true
serial:
type: string
xml:
attribute: true
issuer:
type: string
xml:
attribute: true
subject:
type: string
xml:
attribute: true
algo:
type: string
xml:
attribute: true
keysize:
type: string
xml:
attribute: true
begins:
type: string
xml:
attribute: true
expires:
type: string
xml:
attribute: true
fingerprint:
type: string
xml:
attribute: true
xml:
name: keyinfo
example:
project: openSUSE:Leap
pubkey:
keyid: b88b2fd43dbdc284
userid: openSUSE Project Signing Key &lt;opensuse@opensuse.org&gt;
algo: rsa
keysize: 2048
expires: 1887851113
fingerprint: 22c0 7ba5 3417 8cd0 2efe 22aa b88b 2fd4 3dbd c284
sslcert:
serial: 18991220325
issuer: CN=openSUSE Secure Boot CA, C=DE, L=Nuremberg, O=openSUSE
Project, emailAddress=build@opensuse.org
subject: CN=openSUSE Secure Boot Signkey, C=DE, L=Nuremberg, O=openSUSE
Project, emailAddress=build@opensuse.org
algo: rsa
keysize: 2048
begins: 1655126536
expires: 1966166536
fingerprint: 1f67 3297 da56 8ae0 dedf db7c 8cc6 8f9e cb85 7275
keyid: fd9f 2c12 e599 d67c c7f9 0675 41ad f426 b712 469e
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/_attribute":
get:
summary: Get all the project's attributes
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: view
in: query
schema:
type: string
enum:
- blame
description: With view=blame, information about who changed each XML tag and
when is displayed.
example: blame
- name: with_default
in: query
schema:
type: string
description: |
If the attribute doesn't contain any value and `with_default` is present,
the default values will be displayed, if any.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
examples:
listOfAttributes:
value:
- name: MaintenanceProject
namespace: OBS
- name: ScreenShots
namespace: OBS
viewBlame:
description: Passing view=blame.
value: |
10 (Admin 2023-03-09 11:46:01 1) <attributes>
12 (Iggy 2023-03-13 14:46:01 5) <attribute namespace="OBS" name="MakeOriginOlder"/>
14 (Admin 2023-03-13 15:14:21 6) <attribute namespace="OBS" name="QualityCategory">
14 (Admin 2023-03-13 15:14:21 7) <value>Development</value>
14 (Admin 2023-03-13 15:14:21 8) </attribute>
10 (Admin 2023-03-09 11:46:01 9) </attributes>
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: remote_project
summary: Attribute access to remote project is not yet supported
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/_attribute/{attribute_name}":
get:
summary: Get project's attribute
description: Get a specified attribute of the project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
- name: view
in: query
schema:
type: string
enum:
- blame
description: With view=blame, information about who changed each XML tag and
when is displayed.
example: blame
- name: with_default
in: query
schema:
type: string
description: |
If the attribute doesn't contain any value and `with_default` is present,
the default values will be displayed, if any.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
examples:
oneAttribute:
value:
- name: MaintenanceProject
namespace: OBS
viewBlame:
description: Passing view=blame.
value: |
6 (Admin 2023-03-09 11:46:01 1) <attributes>
12 (Iggy 2023-03-13 14:46:01 5) <attribute namespace="OBS" name="MakeOriginOlder"/>
14 (Admin 2023-03-13 15:14:21 6) <attribute namespace="OBS" name="QualityCategory">
14 (Admin 2023-03-13 15:14:21 7) <value>Development</value>
14 (Admin 2023-03-13 15:14:21 8) </attribute>
6 (Admin 2023-03-09 11:46:01 9) </attributes>
'400':
description: Wrong value for deleted parameter.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
value:
code: 400
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
post:
summary: Modifies the specified attribute
description: Modifies the specified attribute
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
- name: comment
in: query
schema:
type: string
requestBody:
description: Attributes you want to update
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
example:
- name: MaintenanceProject
namespace: OBS
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Wrong value for deleted parameter.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
value:
code: 400
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
delete:
summary: Removes a specified attribute
description: Removes a specified attribute
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
- name: comment
in: query
schema:
type: string
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Wrong value for deleted parameter.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
value:
code: 400
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/_project/_history":
get:
summary: Get project commit history.
description: Get project commit history.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: deleted
schema:
type: string
description: Set to `1` to allow to retrieve the revision history of a deleted
project.
example: 1
- in: query
name: limit
schema:
type: integer
description: Limit the number of retrieved revision history elements to the
specified number.
example: 20
- in: query
name: meta
schema:
type: string
description: Set to `1` to retrieve the revision history of the meta file
(`_meta`) of the project.
example: 1
- in: query
name: startbefore
schema:
type: integer
description: Start the list of revision history elements before the given
revision number.
example: 124
- in: query
name: rev
schema:
type: string
description: Return the revision entry for a specific revision number.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [revisionlist.rng](../schema/revisionlist.rng)
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
xml:
name: revisionlist
wrapped: true
examples:
Two Revisions:
value:
- rev: 1
vrev: ''
srcmd5: d41d8cd98f00b204e9800998ecf8427e
version: ''
time: 1678364228
user: Admin
comment: project was deleted
- rev: 2
vrev: ''
srcmd5: d41d8cd98f00b204e9800998ecf8427e
version: ''
time: 1678364246
user: Admin
comment: project was undeleted
rev Parameter Specified (rev = 1):
value:
- rev: 1
vrev: ''
srcmd5: d41d8cd98f00b204e9800998ecf8427e
version: ''
time: 1678364228
user: Admin
comment: project was deleted
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
tags:
- Sources - Projects
"/source/{project_name}/_project/{file_name}":
get:
summary: Read a project file
description: Read a project file
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
- name: deleted
in: query
schema:
type: string
description: Set to `1` to read a file of a deleted project.
example: 1
- in: query
name: meta
required: false
schema:
type: integer
description: Set to `1` to include _meta files
example: 1
- in: query
name: rev
required: false
schema:
type: integer
description: Revision number
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
person:
type: object
properties:
userid:
type: string
xml:
attribute: true
role:
type: string
xml:
attribute: true
repository:
type: object
properties:
name:
type: string
xml:
attribute: true
path:
type: object
properties:
project:
type: string
xml:
attribute: true
repository:
type: string
xml:
attribute: true
arch:
type: array
items:
type: string
xml:
name: project
example:
name: home:Admin
title: Endless Night
description: Test project
person:
userid: Admin
role: maintainer
repository:
name: openSUSE_Tumbleweed
path:
project: openSUSE.org:openSUSE:Factory
repository: snapshot
arch:
- x86_64
'400':
description: Wrong value for meta parameter.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not boolean:
value:
code: 400
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: The user does not have permission to access the source.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Source access no permission:
value:
code: source_access_no_permission
summary: Source Access not allowed
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=addchannels":
post:
summary: Add channels and extend repository list.
description: |
Add channels for each one of the provided project packages.
If the mode parameter is provided, that mode is added to the package channel.
The mode parameter can be:
- 'skip_disabled'
- 'enable_all'
- 'add_disabled' being the default.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: mode
schema:
type: string
enum:
- skip_disabled
- enable_all
- add_disabled
required: false
description: The channel will be added to the package using this mode.
example: add_disabled
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=copy":
post:
summary: Copy an entire project.
description: Copy the source project provided by the required parameter `oproject`
to the target project provided by the path parameter `project_name`.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: |
Target project name
The target project must exist. Otherwise, the copy is not performed and a not found error (404) is returned.
example: home:Iggy:target
- in: query
name: oproject
schema:
type: string
required: true
description: Origin project name
example: home:Iggy:source
- in: query
name: comment
schema:
type: string
description: Comment to be added in the revision history.
example: Copy project for testing.
- in: query
name: makeolder
schema:
type: string
enum:
- 1
- 0
default: 0
description: Make target older. Set to `1` to bump the source vrev by two
numbers and the target by one.
example: 1
- in: query
name: makeoriginolder
schema:
type: string
enum:
- 1
- 0
default: 0
description: Make origin older. Set to `1` to extend the source vrev.
example: 1
- in: query
name: nodelay
schema:
type: string
enum:
- 1
- 0
default: 0
description: By default the copying is done as a deferred job. Set to `1`
to perform the copy right away.
example: 1
- in: query
name: noservice
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` not to run source services.
example: 1
- in: query
name: resign
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to resign all binaries with the target project key.
example: 1
- in: query
name: withbinaries
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to also copy binaries.
example: 1
- in: query
name: withhistory
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to also copy the revision history.
example: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [about.xsd](../schema/about.xsd)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
job_invoked:
summary: Job Invoked
value:
code: invoked
summary: Job invoked
ok:
summary: Ok
description: Response given when `nodelay` is set to `1`.
value:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
cmd_execution_no_permission:
summary: No Permission to Execute Command
value:
code: cmd_execution_no_permission
summary: no permission to execute command 'copy'
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=createkey":
post:
summary: Generate a new GPG key for a project.
description: Generate a new GPG key. If the project already has a GPG key, the
old key is discarded.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
xml:
name: status
example:
code: ok
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: invalid_project_name
summary: invalid project name '{project_name}'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'createkey'
tags:
- Sources - Projects
"/source/{project_name}?cmd=createmaintenanceincident":
post:
summary: Create a single maintenance incident project.
description: Create a single maintenance incident project as a sub project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
data:
- MaintenanceProject:17
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: incident_has_no_maintenance_project
summary: incident projects shall only create below maintenance projects
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'createmaintenanceincident'
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: home:Admin'
tags:
- Sources - Projects
"/source/{project_name}?cmd=createpatchinfo":
post:
summary: Creates a patchinfo inside the given project
description: |
Creates a new patchinfo package, in the given project, containing a '_patchinfo' file.
The file will include all the issues in other project's sources, if any.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: name
schema:
type: string
description: Name of the patchinfo package. If not passed, 'patchinfo' is
the default value.
example: BaseDistro_patchinfo
- in: query
name: comment
schema:
type: string
description: Comment to be included in the 'summary' XML tag of the patchinfo.
example: Security update for the Linux Kernel
- in: query
name: force
schema:
type: string
description: |
If the patchinfo with the given name already existed and the force parameter is passed,
then the patchinfo will be overwritten.
If the force parameter is not passed, an error will be raised giving you some suggestions.
example: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example: |
<status code="ok">
<summary>Ok</summary>
<data name="targetproject">home:Admin</data>
<data name="targetpackage">BaseDistro_patchinfo</data>
</status>
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_project_name:
value:
code: invalid_project_name
summary: invalid project name '0'
summary: Invalid Project Name
invalid_package_name:
value:
code: invalid_package_name
summary: invalid package name 'base:distro'
summary: Invalid Package Name
patchinfo_file_exists:
value:
code: patchinfo_file_exists
summary: 'createpatchinfo command: the patchinfo BaseDistro exists
already. Either use force=1 re-create the _patchinfo or use
updatepatchinfo for updating.'
summary: Patchinfo File Exists
package_already_exists:
value:
code: package_already_exists
summary: 'createpatchinfo command: the package BaseDistro exists
already, but is no patchinfo. Please create a new package instead.'
summary: Package Already Exists
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Sources - Projects
"/source/{project_name}?cmd=extendkey":
post:
summary: Extend the expiration date of GPG keys.
description: Extend the expiration date of GPG key for the given project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: days
schema:
type: integer
description: Define the number of days until key expiry
example: 712
responses:
'200':
description: ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'extendkey'
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: home:Admin'
tags:
- Sources - Projects
"/source/{project_name}?cmd=freezelink":
post:
summary: Freeze a project link.
description: Freeze a project link, either creating the freeze or updating it.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: comment
schema:
type: string
description: A comment that will appear in the project's comment section explaining
the reason behind the freezing.
example: Project link frozen due to some important reason.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=lock":
post:
summary: Locks the project.
description: Locks the project given as parameter. You can pass a comment with
the reason of the lock.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: comment
schema:
type: string
description: Comment that can be added to describe the reasoning behind the
lock.
example: Locked project beacause A, B and C.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'403':
description: |
No permission to execute command 'lock' because the project is already locked or
because the user do not have permission to modify the project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'lock'.
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=modifychannels":
post:
summary: Modify existing channels.
description: Add repositories or enable them for existing channels.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: mode
schema:
type: string
enum:
- add_disabled
- enable_all
example: add_disabled
description: The channel will be added to the package using this mode.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: invalid_parameter
summary: Internal Server Error
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'modifychannels'
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: unknown_project
summary: 'Project not found: home:Admin'
tags:
- Sources - Projects
"/source/{project_name}?cmd=move":
post:
summary: Move all sources and binaries.
description: |
Admin permissions required and schedulers need to be stopped.
This api moves all sources and binaries from a source project (oproject) to a new project (project_name).
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: oproject
required: true
schema:
type: string
description: The project you want to move. Source project.
example: home:Admin
- in: query
name: comment
schema:
type: string
responses:
'200':
description: ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Project Exists:
value:
code: project_exists
summary: Target project exists already.
Move Failed:
value:
code: move_failed
summary: Move operation failed
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: Admin permissions required. STOP SCHEDULER BEFORE.
tags:
- Sources - Projects
"/source/{project_name}?cmd=release":
post:
summary: Release the project.
description: Release source and binaries for a repository of the project, if
you have the permissions to do so.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: nodelay
schema:
type: string
description: If this parameter is present, do not delay the relase. If this
parameter is not present, the release will be delayed to be done later.
example: 1
- in: query
name: target_project
schema:
type: string
description: Project containing the repository targeted by the release.
example: openSUSE:Factory
- in: query
name: target_repository
schema:
type: string
description: Repository targeted by the release.
example: standard
- in: query
name: repository
schema:
type: string
description: Repository for which source and binaries will be released.
example: openSUSE_Tumbleweed
- in: query
name: setrelease
schema:
type: string
description: If this parameter is present, the release will be tagged with
this parameter's value.
example: Beta1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=remove_flag":
post:
summary: Delete a flag for the project.
description: |
For the project, you can delete a flag with the provided flag name, repository and architecture.
You can only delete the flag if you have the permissions to do so.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: flag
required: true
schema:
type: string
description: Name of the flag to be deleted
example: access
- in: query
name: repository
schema:
type: string
description: Repository for which the flag is set
example: openSUSE_Tumbleweed
- in: query
name: arch
schema:
type: string
description: Architecture for which the flag is set
example: x86_64
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
missing_parameter:
value:
code: missing_parameter
summary: Required Parameter flag missing.
summary: Missing Parameter
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'remove_flag'.
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=set_flag":
post:
summary: Set a flag for the project.
description: |
For the project, you can set a flag with the provided flag name, status, repository and architecture.
You can only set the flag if you have the permissions to do so.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: flag
required: true
schema:
type: string
description: Name of the flag to be set
example: access
- in: query
name: status
required: true
schema:
type: string
description: Status of the flag to be set
example: disable
- in: query
name: repository
schema:
type: string
description: Repository for which the flag is to be set
example: openSUSE_Tumbleweed
- in: query
name: arch
schema:
type: string
description: Architecture for which the flag is to be set
example: x86_64
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
missing_parameter_flag:
value:
code: missing_parameter
summary: Required Parameter flag missing.
summary: Missing Parameter flag
missing_parameter_status:
value:
code: missing_parameter
summary: Required Parameter status missing.
summary: Missing Parameter status
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'set_flag'.
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=showlinked":
post:
summary: List projects linking to the provided project.
description: Return a list of projects linking to the provided project. This
command doesn't perform any action.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
xml:
name: project
xml:
name: collection
wrapped: true
examples:
no_results:
summary: No results
value: |
<?xml version="1.0" encoding="UTF-8"?>
<collection/>
one_result:
summary: One result
value:
- name: OBS:Server:Unstable:Containers:ruby2.7
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}?cmd=undelete":
post:
summary: Restore a deleted project.
description: |
If the given project was previously deleted, you can restore it.
You can only restore it if you have the permissions to do so.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'undelete'.
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not deleted project:
value:
code: 404
summary: project 'Sandbox' already exists
description: Response when trying to "undelete" a project that was
not deleted previously.
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Sources - Projects
"/source/{project_name}?cmd=unlock":
post:
summary: Unlocks the project.
description: Unlocks the previously locked project, given as parameter. You
can pass a comment with the reason of the lock.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: query
name: comment
required: true
schema:
type: string
description: Comment that should be added to describe the reasoning behind
the unlock.
example: Unlocked project beacause A, B and C.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
missing_parameter:
value:
code: missing_parameter
summary: Required Parameter comment missing.
summary: Missing Parameter
not_locked:
value:
code: not_locked
summary: project 'Sandbox' is not locked.
summary: Not Locked
'403':
description: No permission to execute command 'unlock' because the user
do not have permission to modify the project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'unlock'.
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Projects
"/source/{project_name}/{package_name}":
get:
summary: List source files of a package.
description: Get a list of source files belonging to a package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: deleted
schema:
type: string
description: |
Set to `1` to list source files of deleted packages.
Return a "Bad Request" error (400) if it is set to `1` and the package exists.
example: 1
- in: query
name: expand
schema:
type: string
enum:
- 1
- 0
default: 0
description: Expand links.
example: 1
- in: query
name: extension
schema:
type: string
description: List source files with the given extension.
example: txt
- in: query
name: lastworking
schema:
type: string
enum:
- 1
- 0
default: 0
description: Show sources of the last mergeable sources in case of conflicting
changes.
example: 1
- in: query
name: linkrev
schema:
type: string
description: Show sources of the specified linked revision in the base package.
- in: query
name: meta
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to show only the metadata file (`_meta`) in the list
of files.
example: 1
- in: query
name: product
schema:
type: string
description: Use with `view=products`. Limit the product view to a given product.
- in: query
name: rev
schema:
type: string
description: Show sources of the specified revision.
example: 42
- in: query
name: view
schema:
type: string
enum:
- cpio
- getmultibuild
- info
- issues
- products
- productrepositories
description: |
Specify which information about a package should be returned.
* `cpio`: Stream all package files as cpio.
* `getmultibuild`: List multibuild packages.
* `info`: Show source version, md5sums and build description files, among other information.
See this [other endpoint](<#/Sources - Packages/get_source__project_name___package_name__view_info>) for details.
* `issues`: Show all tracked issues for this package.
* `products`: Show all products of a package (works only on `_product` or `000product` packages).
* `productrepositories`: Show all repositories used in product definitions (or a given product).
example: issues
- in: query
name: withlinked
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to show all used packages (in case of multiple link
indirections) in linkinfo information.
example: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [directory.xsd](../schema/directory.xsd). This schema is not used in the following cases:
* view=cpio
* view=issues
* view=products
* view=productrepositories
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
examples:
Without Any Parameters:
value:
name: package_1
rev: 4
vrev: 4
srcmd5: 2e276a9a18eb1f4e6d1187d456c9335d
entry:
- name: _config
md5: 38a56fe6747ddc35214cb2ace161496f
size: 59
mtime: 1677507657
- name: somefile.txt
md5: 8680db994e398a1542c6fd05ee7f9fef
size: 55
mtime: 1677507647
With Parameter meta=1:
value:
name: package_1
rev: 4
vrev: 4
srcmd5: 2e276a9a18eb1f4e6d1187d456c9335d
entry:
- name: _meta
md5: 6742b7fc375300ce04e56819a1a52f64
size: 181
mtime: 1678724165
With Parameter view=getmultibuild:
value:
entry:
- name: obs-bundled-gems
- name: obs-api-testsuite-rspec
With Parameter view=issues:
value: |
<?xml version="1.0" encoding="UTF-8"?>
<package project="project_1" name="package_1">
<issue change="kept">
<created_at>2008-11-18 16:47:00 UTC</created_at>
<updated_at>2020-02-24 13:01:11 UTC</updated_at>
<name>446164</name>
<tracker>bnc</tracker>
<label>boo#246064</label>
<url>https://bugzilla.test.com/show_bug.cgi?id=246064</url>
<state>CLOSED</state>
<summary>AUDIT-0: obs-server: /usr/bin/sign</summary>
<owner>
<login>user_1</login>
<email>user_1@test.com</email>
<realname>John Doe</realname>
</owner>
</issue>
</package>
With Parameter view=products:
value: |
<productlist>
<productdefinition xmlns:xi="http://www.w3.org/2001/XInclude">
<products>
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
<version>20230315</version>
<release>0</release>
<productline>openSUSE</productline>
<register>
<updates>
<distrotarget arch="x86_64">openSUSE-Tumbleweed-x86_64</distrotarget>
<distrotarget arch="s390x">openSUSE-Tumbleweed-s390x</distrotarget>
<distrotarget arch="ppc64le">openSUSE-Tumbleweed-ppc64le</distrotarget>
<distrotarget arch="aarch64">openSUSE-Tumbleweed-aarch64</distrotarget>
</updates>
</register>
<updaterepokey>000000000</updaterepokey>
<summary>openSUSE Tumbleweed</summary>
<shortsummary>openSUSE</shortsummary>
<description>openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.</description>
<linguas>
<language>cs</language>
<language>da</language>
</linguas>
<urls>
<url name="releasenotes">http://doc.opensuse.org/release-notes/x86_64/openSUSE/Tumbleweed/release-notes-openSUSE.rpm</url>
<url name="repository">http://download.opensuse.org/tumbleweed/repo/oss/</url>
</urls>
<buildconfig>
<producttheme>openSUSE</producttheme>
<create_flavors>true</create_flavors>
</buildconfig>
<installconfig>
<defaultlang>en_US</defaultlang>
<default_obs_repository_name>openSUSE_Tumbleweed</default_obs_repository_name>
<releasepackage name="openSUSE-release" flag="EQ" version="%{version}"/>
<distribution>openSUSE</distribution>
</installconfig>
<runtimeconfig/>
</product>
</products>
<conditionals>
<conditional name="baselibs_only_x86_64">
<platform onlyarch="x86_64"/>
</conditional>
<conditional name="baselibs_hammer_from_i686">
<platform arch="x86_64" baselibs_arch="i686"/>
</conditional>
</conditionals>
<repositories>
<repository path="obsrepositories:/"/>
</repositories>
<archsets>
<archset name="i586" productarch="i586">
<arch>i586</arch>
<arch>i686</arch>
<arch>noarch</arch>
</archset>
<archset name="i686" productarch="i686">
<arch>i686</arch>
<arch>i586</arch>
<arch>i486</arch>
<arch>i386</arch>
<arch>noarch</arch>
</archset>
</archsets>
</productdefinition>
</productlist>
With Parameter view=productrepositories:
value: |
<productrepositories>
<product name="MicroOS">
</product>
<product name="openSUSE-Addon-NonOss">
</product>
<product name="openSUSE">
<distrotarget arch="x86_64">openSUSE-Tumbleweed-x86_64</distrotarget>
<distrotarget arch="s390x">openSUSE-Tumbleweed-s390x</distrotarget>
<distrotarget arch="ppc64le">openSUSE-Tumbleweed-ppc64le</distrotarget>
<distrotarget arch="aarch64">openSUSE-Tumbleweed-aarch64</distrotarget>
</product>
</productrepositories>
application/x-cpio:
schema:
type: string
examples:
With Parameter view=cpio:
value: |
07070100000000000081a40000000000000000000000015331456900000135000000000000000000000000000000000000000d00000000_constraints<constraints>
<overwrite>
<conditions>
<package>obs-server</package>
</conditions>
<hardware>
<memory>
<size unit="M">2000</size>
</memory>
<physicalmemory>
<size unit="M">1500</size>
</physicalmemory>
</hardware>
</overwrite>
</constraints>
07070100000000000081a40000000000000000000000015b595e440000006a000000000000000000000000000000000000000c00000000_multibuild<multibuild>
<flavor>obs-bundled-gems</flavor>
<flavor>obs-api-testsuite-rspec</flavor>
</multibuild>
07070100000000000081a40000000000000000000000016229cffc000002ec000000000000000000000000000000000000000900000000_service<?xml version="1.0"?>
<services>
<service name="obs_scm">
<param name="versionformat">2.11~alpha.%ci.%h</param>
<param name="url">https://github.com/openSUSE/open-build-service.git</param>
<param name="scm">git</param>
<param name="revision">master</param>
<param name="extract">dist/obs-api-testsuite-rspec.spec</param>
<param name="extract">dist/obs-bundled-gems.spec</param>
<param name="extract">dist/obs-server.spec</param>
<param name="extract">dist/obs-rpmlintrc</param>
</service>
<service name="set_version"/>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
</services>
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `meta`,
for example.
value:
code: 400
summary: not boolean
With deleted=1 and Package exists:
description: Passing a value of `1` to `deleted`, and the package
exists.
value:
code: package_exists
summary: the package is not deleted
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Files
delete:
summary: Deletes a specified package including all its source files.
description: Deletes a specified package including all its source files. By
default only if no other packages use this package as a devel package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
schema:
type: string
description: Comment to be included in the revision history of the package.
example: This package was no longer needed.
- in: query
name: force
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to delete this package, even if other packages use
this one as devel package.
example: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Delete Error:
value:
code: delete_error
summary: 'Package is used by following packages as devel package:
project_devel/ctris'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}/_attribute":
get:
summary: List the attibutes of a package
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- name: rev
in: query
schema:
type: string
description: 'Passing the number of the revision, this endpoint displays the
attributes'' XML as it was at that point.
'
example: 3
- name: view
in: query
schema:
type: string
enum:
- blame
description: With `view=blame`, information about who changed each XML tag
and when is displayed.
example: blame
- name: with_default
in: query
schema:
type: string
description: |
If the attribute doesn't contain any value and `with_default` is present,
the default values will be displayed, if any.
example: 1
- name: with_project
in: query
schema:
type: string
description: 'Passing `with_project`, the response displays the attributes
of the package''s project in addition to the package ones.
'
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
examples:
manyAttributes:
value:
- name: MaintenanceProject
namespace: OBS
- name: ScreenShots
namespace: OBS
viewBlame:
description: Passing `view=blame`.
value: |
10 (Admin 2023-03-09 11:46:01 1) <attributes>
12 (Iggy 2023-03-13 14:46:01 5) <attribute namespace="OBS" name="MakeOriginOlder"/>
14 (Admin 2023-03-13 15:14:21 6) <attribute namespace="OBS" name="QualityCategory">
14 (Admin 2023-03-13 15:14:21 7) <value>Development</value>
14 (Admin 2023-03-13 15:14:21 8) </attribute>
10 (Admin 2023-03-09 11:46:01 9) </attributes>
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
remoteProject:
value:
code: remote_project
summary: Attribute access to remote project is not yet supported
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
post:
summary: Create or update the package's attribute given in the request body
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
security:
- basic_authentication: []
requestBody:
description: Attribute you want to create or update
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
example:
- name: MaintenanceProject
namespace: OBS
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
description: Wrong attribute name.
value:
code: invalid_attribute
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
invalid_xml:
description: When not passing an XML body to the requset.
value:
code: invalid_xml
summary: Invalid XML
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}/_attribute/{attribute_name}":
get:
summary: Get package's attribute
description: Get the specified attribute of the package
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
- name: rev
in: query
schema:
type: string
description: 'Passing the number of the revision, this endpoint displays the
attributes'' XML as it was at that point.
'
example: 3
- name: view
in: query
schema:
type: string
enum:
- blame
description: With `view=blame`, information about who changed each XML tag
and when is displayed.
example: blame
- name: with_default
in: query
schema:
type: string
description: |
If the attribute doesn't contain any value and `with_default` is present,
the default values will be displayed, if any.
example: 1
- name: with_project
in: query
schema:
type: string
description: 'Passing `with_project`, the response displays the specified
attribute of the package''s project, if any, in addition to the package
one.
'
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
examples:
oneAttribute:
value:
- name: MaintenanceProject
namespace: OBS
viewBlame:
description: Passing `view=blame`.
value: |
10 (Admin 2023-03-09 11:46:01 1) <attributes>
12 (Iggy 2023-03-13 14:46:01 5) <attribute namespace="OBS" name="MakeOriginOlder"/>
14 (Admin 2023-03-13 15:14:21 6) <attribute namespace="OBS" name="QualityCategory">
14 (Admin 2023-03-13 15:14:21 7) <value>Development</value>
14 (Admin 2023-03-13 15:14:21 8) </attribute>
10 (Admin 2023-03-09 11:46:01 9) </attributes>
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
description: Wrong attribute name.
value:
code: invalid_attribute
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Packages
post:
summary: Create or update an attribute of a package
description: Create or update the specified attribute of the package
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
requestBody:
description: Attribute you want to create or update
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
example:
- name: MaintenanceProject
namespace: OBS
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
description: Wrong attribute name.
value:
code: invalid_attribute
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
invalid_xml:
description: When not passing an XML body to the requset.
value:
code: invalid_xml
summary: Invalid XML
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
delete:
summary: Delete the specified attribute of a package
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
description: Wrong attribute name.
value:
code: invalid_attribute
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: The user don't have permission to delete the specified attribute
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
change_attribute_no_permission:
value:
code: change_attribute_no_permission
summary: User Iggy has no permission to change attribute
'404':
description: Unknown attribute
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
unknown_attribute_type:
value:
code: unknown_attribute_type
summary: Attribute Type OBS:Fake does not exist
tags:
- Sources - Packages
"/source/{project_name}/{package_name}/_history":
get:
summary: Get package commit history.
description: Get package commit history.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: deleted
schema:
type: string
description: Set to `1` to allow to retrieve the revision history of a deleted
package.
example: 1
- in: query
name: limit
schema:
type: integer
description: Limit the number of retrieved revision history elements to the
specified number.
example: 20
- in: query
name: meta
schema:
type: string
description: Set to `1` to retrieve the revision history of the meta file
(`_meta`) of the package.
example: 1
- in: query
name: startbefore
schema:
type: integer
description: Start the list of revision history elements before the given
revision number.
example: 124
- in: query
name: rev
schema:
type: string
description: Return the revision entry for a specific revision number.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [revisionlist.rng](../schema/revisionlist.rng)
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
xml:
name: revisionlist
wrapped: true
examples:
Two Revisions:
value:
- rev: 1
vrev: ''
srcmd5: d41d8cd98f00b204e9800998ecf8427e
version: ''
time: 1678364228
user: Admin
comment: package was deleted
- rev: 2
vrev: ''
srcmd5: d41d8cd98f00b204e9800998ecf8427e
version: ''
time: 1678364246
user: Admin
comment: package was undeleted
rev Parameter Specified (rev = 1):
value:
- rev: 1
vrev: ''
srcmd5: d41d8cd98f00b204e9800998ecf8427e
version: ''
time: 1678364228
user: Admin
comment: package was deleted
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}/_meta":
get:
summary: Get package meta file.
description: Get package meta file.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: meta
schema:
type: string
description: Set to `1` to force to retrieve the package metadata from the
backend.
example: 1
- in: query
name: rev
schema:
type: string
description: Return the package metadata for a specific revision number.
example: 42
- in: query
name: view
schema:
type: string
enum:
- blame
description: With `view=blame` show information about who and when each line
of the package metadata was changed.
example: blame
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
devel:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
xml:
name: package
examples:
Simple Request:
value:
name: package_1
title: ''
description: Test package
devel:
project: home:Admin
package: package_2
Request with view=blame:
value: |
11 (Admin 2023-03-09 12:14:58 1) <package name="package_1" project="home:Admin">
12 (Admin 2023-03-09 12:23:11 2) <title></title>
63 (Admin 2023-03-13 16:16:05 3) <description>Description 2 added...</description>
44 (Admin 2023-03-09 17:39:39 4) <devel project="home:Admin" package="package_2"/>
11 (Admin 2023-03-09 12:14:58 5) </package>
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Bad Revision:
description: Passing `rev=invalid_revision`.
value:
code: 400
summary: bad revision 'invalid_revision'
Not Boolean:
description: Passing `meta=not_boolean`.
value:
code: 400
summary: not boolean
Unknown View:
description: Passing `view=invalid_view`.
value:
code: 400
summary: unknown view 'invalid_view'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
Unknown Revision:
value:
code: 404
summary: revision '66' does not exist
details: 404 revision '66' does not exist
tags:
- Sources - Packages
put:
summary: Write package meta file.
description: Write package's meta file. Create the package if it doesn't exist.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
schema:
type: string
description: Comment that explains the changes you made in the meta file.
example: Fix the title of the package.
requestBody:
description: Package meta definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
title:
type: string
description:
type: string
devel:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
xml:
name: package
example:
name: package_1
title: ''
description: Test package
devel:
project: home:Admin
package: package_2
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
XML Not Valid:
value:
code: validation_failed
summary: 'package validation error: 1:11: FATAL: Extra content
at the end of the document'
Project Name Mismatch:
value:
code: project_name_mismatch
summary: project name in xml data does not match resource path
component
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Authorized to Update the Project:
value:
code: update_project_not_authorized
summary: You are not authorized to update this project
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=addcontainers":
post:
summary: Add docker container packages and repositories
description: Add docker container packages and repositories using the maintained
version of this package
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: cmd
required: true
schema:
type: string
enum:
- addcontainers
- in: query
name: extend_package_names
schema:
type: string
enum:
- 1
example: 1
description: |
Set to consider the container name as a parsed combination of container project and container name.
With format `[container name].[container project name]` where `:` was replaced by `_`,
i.e. "kiwi-templates-Minimal.SUSE_Templates_Images_SLE-15-SP4".
security:
- basic_authentication: []
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=branch":
post:
summary: Branch a package.
description: |
Create a source link from a package of an existing project to a
new subproject of the requester's home project.
The default target is `home:<user>:branches:<project>/<package>`.
A possible defined devel project in the package meta data gets ignored.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: target_project
schema:
type: string
description: Target project name.
example: home:Admin:subproject
- in: query
name: target_package
schema:
type: string
description: Target package name.
example: test
- in: query
name: add_repositories
schema:
type: string
enum:
- 1
description: Set to add repositories based on source project (default for
new projects).
- in: query
name: add_repositories_rebuild
schema:
type: string
enum:
- transitive
- direct
- local
- copy
description: Set one of the defined rebuild policies for new repositories
(`transitive`, `direct` or `local`) or copy it from the source project (`copy`)
- in: query
name: add_repositories_block
schema:
type: string
enum:
- all
- local
- never
description: Set to use defined block policy for new repositories.
- in: query
name: autocleanup
schema:
type: string
enum:
- 1
description: Set to enable autocleanup on the branched project.
- in: query
name: dryrun
schema:
type: string
enum:
- 1
description: Set to run without making action, just report results.
- in: query
name: extend_package_names
schema:
type: string
enum:
- 1
description: Set to extend package and repository names to allow multiple
instances of the same package.
- in: query
name: ignoredevel
schema:
type: string
enum:
- 1
description: Set to ignore validation and resolving of devel package or devel
project definition.
- in: query
name: force
schema:
type: string
description: 'Set to 1 to allow overwriting of a pre-existing package.
'
example: 1
- in: query
name: rev
schema:
type: string
description: Set to branch against a specific revision.
- in: query
name: maintenance
schema:
type: string
enum:
- 1
description: Set to explicitly ask for a maintenance branch.
- in: query
name: missingok
schema:
type: string
enum:
- 1
description: Set to create the target package if it does not exist.
- in: query
name: newinstance
schema:
type: string
enum:
- 1
description: Set to have the target package exist only via project links,
but the link should point to the given project.
- in: query
name: noaccess
schema:
type: string
enum:
- 1
description: Set to make the newly created project be read protected. This
won't work if the project already exists.
- in: query
name: noservice
schema:
type: string
enum:
- 1
description: Set to not run source services on branching.
- in: query
name: request
schema:
type: string
description: Creates a branch project based on the provided request number.
- in: query
name: update_path_elements
schema:
type: string
enum:
- 1
description: Set to update all the path elements if needed (used repositories
depend on each other).
- in: query
name: update_project_attribute
schema:
type: string
default: OBS:UpdateProject
description: Set a different Update Project attribute.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example: |
<status code="ok">
<summary>Ok</summary>
<data name="targetproject">home:Admin:subproject</data>
<data name="targetpackage">test</data>
<data name="sourceproject">home:Admin</data>
<data name="sourcepackage">ctris</data>
</status>
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Double Branch:
value:
code: double_branch_package
summary: 'branch target package already exists: home:Admin:subproject/test'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=collectbuildenv":
post:
summary: Collect build environment information.
description: |
Creates _buildenv files based on origin package builds. This can be used
to re-use exact older build enviroment even when further new binary packages
got added. For example to re-build an old maintenance update in the same way.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: oproject
required: true
schema:
type: string
description: Origin project. The project that the Origin Package will have
the build information copied from.
- in: query
name: opackage
schema:
type: string
description: Origin package. Build environment information of the package
that will be copied.
- in: query
name: orev
schema:
type: string
description: Origin package revision. Revision of the Origin Package on which
to base the build environment collection.
- in: query
name: comment
description: Comment for the new revision.
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
examples:
Copy:
value:
rev: 3
vrev: 3
srcmd5: d41d8cd98f00b204e9800998ecf8427e
version: 20220902.37b45c2
time: 1678785078
user: Admin
comment: Copying the build environment from origin
requestid:
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Missing Parameter:
value:
code: missing_parameter
summary: Required Parameter opackage missing
Bad Revision:
value:
code: 400
origin: backend
summary: bad revision '-3'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=commit":
post:
summary: Commit package changes.
description: Create a new revision of the package, committing package changes.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
schema:
type: string
description: Provide a comment to the revision in history.
example: This was changed to improve foobar.
- in: query
name: linkrev
schema:
type: string
description: |
Link revision in base package. Set to `base` to use the commit revision.
Used together with the `keeplink` parameter.
example: base
- in: query
name: rev
schema:
type: string
description: Revision of the package.
- in: query
name: keeplink
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to preserve the link (`_link` file) on the source.
example: 1
- in: query
name: repairlink
schema:
type: string
enum:
- 1
- 0
default: 0
description: |
Set to `1` to solve conflicts.
Used together with `keeplink` parameter.
example: 1
responses:
'200':
description: OK. Revision created with this commit.
content:
text/xml:
schema:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
example:
rev: 86
vrev: 86
srcmd5: 55452f7326fe90cb67ca96bf9e9ffabc
version: 2.10~pre
time: 1665060711
user: Admin
comment:
requestid:
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `keeplink`,
for example.
value: |
<xml version="1.0" encoding="UTF-8"?>
<status code="400" origin="backend">
<summary>not boolean</summary>
</status>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=commitfilelist":
post:
summary: Commit package changes from a filelist.
description: |
Create a new commit using defined files already uploaded to the repository.
This requires a directory xml providing file name and md5 as body.
It is recommended to use the `withvalidate` parameter and add the
sha256 sum including "sha256:" prefix in "hash" attribute for security reasons.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
schema:
type: string
description: Provide a comment to the revision
example: This was changed to improve foobar.
- in: query
name: linkrev
schema:
type: string
description: |
Link revision in base package. Set to `base` to use the commit revision.
Used together with the `keeplink` parameter.
example: base
- in: query
name: rev
schema:
type: string
description: Revision of the package.
- in: query
name: keeplink
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to preserve the link (`_link` file) on the source.
example: 1
- in: query
name: repairlink
schema:
type: string
enum:
- 1
- 0
default: 0
description: |
Set to `1` to solve conflicts.
Used together with `keeplink` parameter.
example: 1
- in: query
name: withvalidate
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to activate sha validation code (optional, but recommended)
example: 1
responses:
'200':
description: OK. Revision created with this commit.
content:
text/xml:
schema:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
example:
rev: 86
vrev: 86
srcmd5: 55452f7326fe90cb67ca96bf9e9ffabc
version: 2.10~pre
time: 1665060711
user: Admin
comment:
requestid:
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `keeplink`,
for example.
value: |
<xml version="1.0" encoding="UTF-8"?>
<status code="400" origin="backend">
<summary>not boolean</summary>
</status>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=copy":
post:
summary: Copy packages.
description: "Copy packages. \nAdditionally you can copy the binaries and/or
the commit history.\nThe copy can be done synchronously or asynchronously.\nYou
can leave a comment in the package revision.\n"
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: rev
schema:
type: string
enum:
- upload
- repository
example: repository
- in: query
name: opackage
schema:
type: string
description: Origin package. The package that will be copied.
- in: query
name: oproject
schema:
type: string
description: Origin project. The project that the Origin Package will be copied
from.
- in: query
name: withbinaries
schema:
type: string
enum:
- 1
- 0
description: Set to '1' to copy binaries that have been build by the origin
package too.
- in: query
name: makeolder
schema:
type: string
enum:
- 1
- 0
description: Set to '1' to make the target older, the source vrev is bumped
by two numbers and target by one. Setting both makeolder and makeoriginolder
will return an error back.
- in: query
name: makeoriginolder
schema:
type: string
enum:
- 1
- 0
description: Set to '1' to make the origin older, the source vrev is extended
and target is guaranteed to be newer. Setting both makeoriginolder and makeolder
will return an error back.
- in: query
name: nodelay
schema:
type: string
enum:
- 1
- 0
description: Set to '1' to do the copying synchronously. By default the copying
is done asynchronously.
- in: query
name: withhistory
schema:
type: string
enum:
- 1
- 0
description: Set to '1' to copy the package commit history.
- in: query
name: noservice
schema:
type: string
enum:
- 1
- 0
description: Set to '1' to avoid running the services after the copy.
- in: query
name: comment
description: Comment for the new revision.
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
rev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
name: revision
wrapped: true
examples:
Repository:
value:
srcmd5: d41d8cd98f00b204e9800998ecf8427e
Upload:
value:
srcmd5: d41d8cd98f00b204e9800998ecf8427e
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=createSpecFileTemplate":
post:
deprecated: true
summary: Create a RPM Spec File Template for a specified package.
description: |
Create a RPM Spec File Template for a specified package. This endpoint
is broken and will be removed.
See [https://github.com/openSUSE/open-build-service/issues/9707](https://github.com/openSUSE/open-build-service/issues/9707)
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=deleteuploadrev":
post:
summary: Delete all uploaded sources which are not committed yet.
description: Removes all changes made to the upload revision and reverts to
last committed revision
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package ctris in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=diff":
post:
summary: Returns the source diff of a package.
description: |
Without parameters, return the diff of the last change made to the package.
Despite using the method `POST`, this endpoint doesn't alter any data.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: cacheonly
schema:
type: string
enum:
- 1
- 0
description: |
Set to `1` to retrieve a diff only if the diff is already cached.
If the diff is not cached return a 412 "Precondition failed" error.
example: 1
- in: query
name: expand
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to expand any link before diffing.
example: 1
- in: query
name: file
schema:
type: string
description: Limit diff to the given file name.
example: hello_world.spec
deprecated: true
- in: query
name: file[]
schema:
type: array
elements:
type: string
description: Limit diff to the given file names.
example:
- hello_world.spec
- my_program.c
- in: query
name: filelimit
schema:
type: string
description: |
Limit the size of the diff to this amount of lines.
By default it takes a built-in value of 200.
Set to `0` to disable the limit.
example: 20
- in: query
name: linkrev
schema:
type: string
description: Link revision in base package. Set to `base` to use the commit
revision.
example: base
- in: query
name: meta
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to diff meta data instead of sources.
example: 1
- in: query
name: missingok
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to diff against an inexistent origin.
example: 1
- in: query
name: nodiff
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to only show changed files, and not details inside
files.
example:
- in: query
name: olinkrev
schema:
type: string
description: Link revision of the origin package.
- in: query
name: onlyissues
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to show no source diff, only the tracker issues and
their change state.
example: 1
- in: query
name: orev
schema:
type: string
description: Old revision.
- in: query
name: opackage
schema:
type: string
description: Old package.
- in: query
name: oproject
schema:
type: string
description: Old project.
- in: query
name: rev
schema:
type: string
description: Revision of the package.
- in: query
name: tarlimit
schema:
type: string
description: Limit the size of the diff of tar files to this amount of lines.
example: 100
- in: query
name: unified
schema:
type: string
enum:
- 1
- 0
description: |
Set to `1` to use unified diff format. Same as setting `view=unified`.
Setting `unified` to `1` takes precedence on the setting of the `view` parameter.
See `view` parameter for details on the unified format.
example: 1
- in: query
name: view
schema:
type: string
enum:
- unified
- xml
description: |
Set the format of the diff being returned.
Don't pass the parameter for custom diff format.
Set to `unified` for unified content.
Set to `xml` for structured content in a `sourcediff` xml element.
example: unified
- in: query
name: withissues
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to include parsed issue tracker issues and their change
state.
example: 1
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
examples:
Without parameters. One character change:
description: Diff of adding an exclamation mark.
value: |2
spec files:
-----------
--- hello_world.spec
+++ hello_world.spec
@@ -13,7 +13,7 @@
%build
cat > hello_world.sh <<EOF
#!/usr/bin/bash
-echo Hello world
+echo Hello world!
EOF
%install
With view=unified:
value: |
Index: hello_world.spec
===================================================================
--- hello_world.spec (revision 2)
+++ hello_world.spec (revision 3)
@@ -13,7 +13,7 @@
%build
cat > hello_world.sh <<EOF
#!/usr/bin/bash
-echo Hello world
+echo Hello world!
EOF
%install
With view=xml:
value: |
<?xml version="1.0" encoding="UTF-8"?>
<sourcediff key="e27d928c027cca122f604ad5240e4fbc">
<old project="home:Admin" package="hello_world" rev="2" srcmd5="3793527d5cd7aaac8e52a8b94e3c1ffc"/>
<new project="home:Admin" package="hello_world" rev="3" srcmd5="672795214454d08abd9143893d673e38"/>
<files>
<file state="changed">
<old name="hello_world.spec" md5="dcd026ba76f1723ea8292ad13579aa84" size="463"/>
<new name="hello_world.spec" md5="40f5f87134e806a20123821a3442f176" size="464"/>
<diff lines="9">@@ -13,7 +13,7 @@
%build
cat &gt; hello_world.sh &lt;&lt;EOF
#!/usr/bin/bash
-echo Hello world
+echo Hello world!
EOF
%install
</diff>
</file>
</files>
</sourcediff>
With nodiff=1:
description: Passing `nodiff=1` only shows changed files.
value: |2
spec files:
-----------
--- hello_world.spec
+++ hello_world.spec
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `nodiff`,
for example.
value:
code: 400
origin: backend
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
'412':
description: |
Precondition Failed
With `cacheonly=1`, and the diff is still not cached.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 412
origin: backend
summary: diff not yet in cache
details: 412 diff not yet in cache
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=fork":
post:
summary: Create a fork of a package taking the source from the scmsync parameter
description: |
Create a fork of a package taking the source from the scmsync parameter.
The target project is by default below home:<user>:branches namespace.
The target project will be setup to include the source project repository setup.
The source project must exists, the source package may not exist.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- name: scmsync
description: Checkout url for the source
in: query
required: true
schema:
type: string
- name: target_project
description: target project name, optional (default home:<user>:branches:<project>)
in: query
schema:
type: string
- name: target_package
description: target package name
in: query
schema:
type: string
- in: query
name: force
schema:
type: string
description: 'Set to 1 to allow overwriting of a pre-existing package.
'
example: 1
- name: add_repositories_rebuild
in: query
schema:
type: string
enum:
- transitive
- direct
- local
- copy
description: Set one of the defined rebuild policies for new repositories
(`transitive`, `direct` or `local`) or copy it from the source project (`copy`)
- in: query
name: add_repositories_block
schema:
type: string
enum:
- all
- local
- never
description: Set to use defined block policy for new repositories.
responses:
'200':
description: ok
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
data:
- home:Admin
- hello_world
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
summary:
type: string
xml:
name: status
example:
code: not_found
summary: project not found
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=getprojectservices":
post:
summary: List all services related to a package.
description: |
List all services defined in the project for this package.
Despite using the method `POST`, this endpoint doesn't alter any data.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: cmd
required: true
schema:
type: string
enum:
- getprojectservices
responses:
'200':
description:
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
mode:
type: string
xml:
attribute: true
xml:
name: service
xml:
wrapped: true
name: services
example:
- name: format_spec_file
mode: localonly
- name: download_files
mode: disabled
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=instantiate":
post:
summary: Instantiate a new package through a project link.
description: |
Instantiate a new package in the specified project based on the packages inherited
through a linked project (local). The new package will be a branch of the package
that lives in the linked project unless the `makeoriginolder` parameter is provided.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: makeoriginolder
schema:
type: string
description: |
Instead of creating a branch of the package, it will instantiate a copy
of the package and extend the `vrev` to ensure the copy represents a
newer version of the package.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 403
summary: package is already intialized here
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: unknown_package
summary: 'Package not found: openSUSE:Leap:15.0:Update/foo'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=linkdiff":
post:
summary: Return the diff of the linked package.
description: |
For a package with a link to another package, return the diff of the linked package.
Despite using the method `POST`, this endpoint doesn't alter any data.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: file
schema:
type: string
description: Limit diff to the given file name.
example: hello_world.spec
deprecated: true
- in: query
name: file[]
schema:
type: array
elements:
type: string
description: Limit diff to the given file names.
example:
- hello_world.spec
- my_program.c
- in: query
name: filelimit
schema:
type: string
description: |
Limit the size of the diff to this amount of lines.
By default it takes a built-in value of 200.
Set to `0` to disable the limit.
example: 20
- in: query
name: linkrev
schema:
type: string
description: Link revision in base package. Set to `base` to use the commit
revision.
example: base
- in: query
name: onlyissues
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to show no source diff, only the tracker issues and
their change state.
example: 1
- in: query
name: rev
schema:
type: string
description: Revision of the package.
- in: query
name: tarlimit
schema:
type: string
description: Limit the size of the diff of tar files to this amount of lines.
example: 100
- in: query
name: unified
schema:
type: string
enum:
- 1
- 0
description: |
Set to `1` to use unified diff format. Same as setting `view=unified`.
Setting `unified` to `1` takes precedence on the setting of the `view` parameter.
See `view` parameter for details on the unified format.
example: 1
- in: query
name: view
schema:
type: string
enum:
- unified
- xml
description: |
Set the format of the diff being returned.
Don't pass the parameter for custom diff format.
Set to `unified` for unified content.
Set to `xml` for structured content in a `sourcediff` xml element.
example: unified
- in: query
name: withissues
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to include parsed issue tracker issues and their change
state.
example: 1
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
examples:
Without parameters. One word change:
value: |2
spec files:
-----------
--- hello_world.spec
+++ hello_world.spec
@@ -1,7 +1,7 @@
Name: hello_world
Version: 1
Release: 1
-Summary: Most simple RPM package
+Summary: Most simple RPM package branched
License: CC0-1.0
%description
With view=unified:
value: |
Index: hello_world.spec
===================================================================
--- hello_world.spec (revision d1f45c7c7b5bf91353a4ec2042cbc53c)
+++ hello_world.spec (revision f03477e1b083c6499ee2c195e3340cdf)
@@ -1,7 +1,7 @@
Name: hello_world
Version: 1
Release: 1
-Summary: Most simple RPM package
+Summary: Most simple RPM package branched
License: CC0-1.0
%description
With view=xml:
value: |
<?xml version="1.0" encoding="UTF-8"?>
<sourcediff key="6eac2a5a0ac0e75ba854a2569b3b24f8">
<old project="home:Admin" package="hello_world" rev="d1f45c7c7b5bf91353a4ec2042cbc53c" srcmd5="d1f45c7c7b5bf91353a4ec2042cbc53c"/>
<new project="home:Admin:branches:home:Admin" package="hello_world" rev="f03477e1b083c6499ee2c195e3340cdf" srcmd5="f03477e1b083c6499ee2c195e3340cdf"/>
<files>
<file state="changed">
<old name="hello_world.spec" md5="40f5f87134e806a20123821a3442f176" size="464"/>
<new name="hello_world.spec" md5="5729ac8ecab5452b777b4a596332a6f4" size="473"/>
<diff lines="9">@@ -1,7 +1,7 @@
Name: hello_world
Version: 1
Release: 1
-Summary: Most simple RPM package
+Summary: Most simple RPM package branched
License: CC0-1.0
%description
</diff>
</file>
</files>
</sourcediff>
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `unified`,
for example.
value: |
<xml version="1.0" encoding="UTF-8"?>
<status code="400" origin="backend">
<summary>not boolean</summary>
</status>
Not a Link:
description: The package doesn't cotain a `_link` file.
value: |
<xml version="1.0" encoding="UTF-8"?>
<status code="400" origin="backend">
<summary>not a link</summary>
</status>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=linktobranch":
post:
summary: Turn link into a branch.
description: Convert a plain source link into a full branch.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: linkrev
schema:
type: string
description: 'Link revision in base package. Set to `base` to use the commit
revision.
'
example: base
- in: query
name: rev
schema:
type: string
description: Revision of the package.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not A Link:
value:
code: 400
origin: backend
summary: package is not a link
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=mergeservice":
post:
summary: Expand all server side generated files and adapt the _service file.
description: |
This command executes the following steps:
- Expand all server side generated files. Those are the files created by the services, starting with `_service:`.
- Modify The `_service` file:
- Preserve all those services which have the `mode` attribute set to `buildtime`.
- Remove the `_service` file only if there aren't any services with the `mode` attribute set to `buildtime`.
An example of a `_service` file, before:
```
<services>
<service name="obs_scm">
<param name="versionformat">2.11~alpha.%ci.%h</param>
<param name="url">https://github.com/openSUSE/open-build-service.git</param>
<param name="scm">git</param>
<param name="revision">master</param>
<param name="extract">dist/obs-server.spec</param>
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
</services>
```
An example of a `_service` file, after this command is run:
```
<services>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
</services>
```
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
schema:
type: string
description: Set a comment.
example: Merge services.
responses:
'200':
description: Revision of the merge of the service file.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
example:
rev: 8
vrev: 8
srcmd5: beb268dc9f786efaa585ac07e17fea47
version: 2.10~pre
time: 1665060711
user: Admin
comment:
requestid:
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Package Without _service file:
value:
code: 400
origin: backend
summary: package has no service
Services Running:
value:
code: 400
origin: backend
summary: service in progress
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=rebuild":
post:
deprecated: true
summary: Trigger a package rebuild.
description: |
Triggers a rebuild of the package. This endpoint
is broken and will be removed.
See [`POST /build/{project_name}?cmd=rebuild`](#/Build/post_build__project_name__cmd_rebuild).
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=release":
post:
summary: Release sources and binaries of a specified package.
description: |
Release sources and binaries of the specified package. If no release target is specified through
the optional parameters, it will trigger the release for all manual release targets
set on the specified project repository definitions for the specified package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: target_project
schema:
type: string
description: |
The name of the release target project. Specify in which project the sources and
binaries are going to be released. You need to provide the `target_repository`
parameter as well.
example: OBS:Server:2.10
- in: query
name: target_repository
schema:
type: string
description: |
The name of the release target repository. Specify in which repository the sources and
binaries are going to be released. You need to provide the `target_project`
parameter as well.
example: openSUSE_Tumbleweed
- in: query
name: repository
schema:
type: string
description: 'Limit the release to a certain repository, set on the project
repository definitions.
'
example: openSUSE_Tumbleweed
- in: query
name: setrelease
schema:
type: string
description: 'If this parameter is present, the release will be tagged with
this parameter''s value.
'
example: Build8.18
- in: query
name: arch
schema:
type: string
description: The name of the architecture. Limit the release to a certain
architecture.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Missing Parameter:
value:
code: missing_parameter
summary: release action with specified target project needs also
"repository" and "target_repository" parameter
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to execute command 'release' for package hello_world
in project home:foo
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=remove_flag":
post:
summary: Remove a specific flag.
description: Remove a specific flag for a package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: flag
required: true
schema:
type: string
enum:
- access
- binarydownload
- build
- debuginfo
- lock
- publish
- sourceaccess
- useforbuild
description: Name of the flag to be removed.
example: build
- in: query
name: repository
schema:
type: string
description: Repository for which the flag is to be removed.
example: openSUSE_Tumbleweed
- in: query
name: arch
schema:
type: string
description: Architecture for which the flag is to be removed.
example: x86_64
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Missing Parameter flag:
value:
code: missing_parameter
summary: Required Parameter flag missing
Invalid flag:
value:
code: invalid_flag
summary: 'Error: unknown flag type ''RANDOM_STRING'' not found.'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=runservice":
post:
summary: Trigger run of defined services.
description: Trigger run of defined services in the `_service` file.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
schema:
type: string
description: Set a comment.
default: trigger service run
example: Trigger services once more.
- in: query
name: user
schema:
type: string
description: Set the user who triggers the services.
example: Iggy
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Package is _project:
value:
code: 400
origin: backend
summary: triggerservicerun does not work with _project
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
No Permission to Run Services:
value:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
No Source Service Defined:
value:
code: not_found
summary: |
<status code="404">
<summary>no source service defined!</summary>
<details>404 no source service defined!</details>
</status>
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=servicediff":
post:
summary: Return the diff of changes made by a service run.
description: |
Return the diff of changes made by a service run.
Despite using the method `POST`, this endpoint doesn't alter any data.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: file
schema:
type: string
description: Limit diff to the given file name.
example: hello_world.spec
deprecated: true
- in: query
name: file[]
schema:
type: array
elements:
type: string
description: Limit diff to the given file names.
example:
- hello_world.spec
- my_program.c
- in: query
name: filelimit
schema:
type: string
description: |
Limit the size of the diff to this amount of lines.
By default it takes a built-in value of 200.
Set to `0` to disable the limit.
example: 20
- in: query
name: onlyissues
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to show no source diff, only the tracker issues and
their change state.
example: 1
- in: query
name: rev
schema:
type: string
description: Revision of the package.
- in: query
name: tarlimit
schema:
type: string
description: Limit the size of the diff of tar files to this amount of lines.
example: 100
- in: query
name: unified
schema:
type: string
enum:
- 1
- 0
description: |
Set to `1` to use unified diff format. Same as setting `view=unified`.
Setting `unified` to `1` takes precedence on the setting of the `view` parameter.
See `view` parameter for details on the unified format.
example: 1
- in: query
name: view
schema:
type: string
enum:
- unified
- xml
description: |
Set the format of the diff being returned.
Don't pass the parameter for custom diff format.
Set to `unified` for unified content.
Set to `xml` for structured content in a `sourcediff` xml element.
example: unified
- in: query
name: withissues
schema:
type: string
enum:
- 1
- 0
description: Set to `1` to include parsed issue tracker issues and their change
state.
example: 1
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
examples:
No Changes:
description: If the last run of services didn't change the sources,
return empty.
value: ''
Without any value for view parameter:
value: |
new:
----
_service:obs_scm:obs-api-testsuite-rspec.spec
spec files:
-----------
++++++ new spec file:
--- _service:obs_scm:obs-api-testsuite-rspec.spec
+++ _service:obs_scm:obs-api-testsuite-rspec.spec
@@ -0,0 +1,73 @@
+#
+# spec file for package obs-api-testsuite-rspec
+#
+
+
+Name: obs-api-testsuite-rspec
+Version: 2.10~pre
+Release: 0
+Summary: The Open Build Service -- RSpec test suite
+License: GPL-2.0-only OR GPL-3.0-only
+Group: Productivity/Networking/Web/Utilities
+Url: http://www.openbuildservice.org
+Source0: open-build-service-%version.tar.xz
+BuildRequires: obs-api-testsuite-deps
+# rspec specific dependencies
+BuildRequires: chromedriver
+BuildRequires: xorg-x11-fonts
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%if 0%{?disable_obs_frontend_test_suite} || 0%{?disable_obs_test_suite}
+ExclusiveArch: nothere
+%else
+ExclusiveArch: x86_64
+%endif
+
+
+%description
+Running the RSpec test suite of the OBS frontend independently
+of packaging the application
+
+%prep
+%setup -q -n open-build-service-%{version}
+
+%build
+# run in build environment
+pushd src/backend/
+rm -rf build
+ln -sf /usr/lib/build build
+popd
+
+pushd src/api
+# configure to the bundled gems
+bundle --local --path %_libdir/obs-api/
+
+./script/prepare_spec_tests.sh
+
+export RAILS_ENV=test
+bin/rake db:setup
+bin/rails assets:precompile
+
+bin/rspec -f d --exclude-pattern 'spec/db/**/*_spec.rb'
+
+# now migration tests (if they fail they create tons of follow up errors, so run them last)
+bin/rspec -f d -P 'spec/db/**/*_spec.rb'
+
+%install
+
+# no result
+%files
+
+%changelog
With view=unified:
value: |
Index: _service:obs_scm:obs-api-testsuite-rspec.spec
===================================================================
--- _service:obs_scm:obs-api-testsuite-rspec.spec (added)
+++ _service:obs_scm:obs-api-testsuite-rspec.spec (revision c63d8550ea46703ce56000277de12d1c)
@@ -0,0 +1,73 @@
+#
+# spec file for package obs-api-testsuite-rspec
+#
[...]
+%changelog
Index: _service:obs_scm:obs-server.spec
===================================================================
--- _service:obs_scm:obs-server.spec (added)
+++ _service:obs_scm:obs-server.spec (revision c63d8550ea46703ce56000277de12d1c)
@@ -0,0 +1,1120 @@
+#
+# spec file for package obs-server
[...]
+Recommends: yum yum-metadata-parser repoview dpkg
+Recommends: deb >= 1.5
(921 more lines skipped)
Index: _service:obs_scm:open-build-service-2.11~alpha.20221007T165328.9f99a31a.obscpio
===================================================================
Binary file _service:obs_scm:open-build-service-2.11~alpha.20221007T165328.9f99a31a.obscpio (revision c63d8550ea46703ce56000277de12d1c) added
Index: _service:obs_scm:open-build-service.obsinfo
===================================================================
--- _service:obs_scm:open-build-service.obsinfo (added)
+++ _service:obs_scm:open-build-service.obsinfo (revision c63d8550ea46703ce56000277de12d1c)
@@ -0,0 +1,4 @@
+name: open-build-service
+version: 2.11~alpha.20221007T165328.9f99a31a
+mtime: 1665154408
+commit: 9f99a31afe0ab435c1dd1d02be5f52fe4425b00f
text/xml:
schema:
type: object
properties:
name:
key: string
xml:
attribute: true
xml:
name: sourcediff
examples:
With view=xml:
value: |
<?xml version="1.0" encoding="UTF-8"?>
<sourcediff key="1634c0e9b7625f79874458d437a4f225">
<old project="home:Admin" package="test" rev="62be45f382bfef30d5028b3f3161d4fc" srcmd5="62be45f382bfef30d5028b3f3161d4fc"/>
<new project="home:Admin" package="test" rev="c63d8550ea46703ce56000277de12d1c" srcmd5="c63d8550ea46703ce56000277de12d1c"/>
<files>
<file state="added">
<new name="_service:obs_scm:obs-api-testsuite-rspec.spec" md5="4fab7cf67a4293a22778d2062239864c" size="2069"/>
<diff lines="74">@@ -0,0 +1,73 @@
+#
+# spec file for package obs-api-testsuite-rspec
[...]
+
+%changelog
</diff>
</file>
<file state="added">
<new name="_service:obs_scm:obs-server.spec" md5="49bbbfd13505e676cd02296094095933" size="36575"/>
<diff lines="1121" shown="200">@@ -0,0 +1,1120 @@
+#
+# spec file for package obs-server
[...]
+Recommends: yum yum-metadata-parser repoview dpkg
+Recommends: deb &gt;= 1.5
</diff>
</file>
<file state="added">
<new name="_service:obs_scm:open-build-service-2.11~alpha.20221007T165328.9f99a31a.obscpio" md5="9f6cb81b792f4afc208d285086f3e9ec" size="96545294"/>
<diff binary="1" lines="0"></diff>
</file>
<file state="added">
<new name="_service:obs_scm:open-build-service.obsinfo" md5="7220e2c761f90c579e01ba0d3c2af25a" size="137"/>
<diff lines="5">@@ -0,0 +1,4 @@
+name: open-build-service
+version: 2.11~alpha.20221007T165328.9f99a31a
+mtime: 1665154408
+commit: 9f99a31afe0ab435c1dd1d02be5f52fe4425b00f
</diff>
</file>
</files>
</sourcediff>
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `unified`,
for example.
value: |
<xml version="1.0" encoding="UTF-8"?>
<status code="400" origin="backend">
<summary>not boolean</summary>
</status>
No Service Run:
value: |
<xml version="1.0" encoding="UTF-8"?>
<status code="400" origin="backend">
<summary>no service was run for this revision</summary>
</status>
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=set_flag":
post:
summary: Enable or disable a specific flag.
description: Enable or disable a specific flag for a package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: flag
required: true
schema:
type: string
enum:
- access
- binarydownload
- build
- debuginfo
- lock
- publish
- sourceaccess
- useforbuild
description: Name of the flag to be set.
example: build
- in: query
name: status
required: true
schema:
type: string
enum:
- enable
- disable
description: Status of the flag to be set.
example: enable
- in: query
name: repository
schema:
type: string
description: Repository for which the flag is to be set.
example: openSUSE_Tumbleweed
- in: query
name: arch
schema:
type: string
description: Architecture for which the flag is to be set.
example: x86_64
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Missing Parameter flag:
value:
code: missing_parameter
summary: Required Parameter flag missing
Missing Parameter status:
value:
code: missing_parameter
summary: Required Parameter status missing
Invalid flag:
value:
code: invalid_flag
summary: 'Error: unknown flag type ''RANDOM_STRING'' not found.'
Invalid status:
value:
code: invalid_flag
summary: 'Error: unknown status flag ''RANDOM_STRING'''
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=showlinked":
post:
summary: List all packages linking to this one.
description: List all packages linking to this one. Despite using the method
`POST`, this endpoint doesn't alter any data.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
xml:
name: package
xml:
name: collection
wrapped: true
examples:
No results:
value: |
<?xml version="1.0" encoding="UTF-8"?>
<collection/>
Two linked packages:
value:
- name: hello_world
project: home:Admin:branches:home:Admin
- name: hello_world2
project: home:Admin:branches:home:Admin
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=undelete":
post:
summary: Undelete the package.
description: Undelete the package.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
schema:
type: string
description: Set a comment.
default: package was undeleted
example: The package was removed by mistake. Undeleting.
- in: query
name: time
schema:
type: integer
description: |
Set the time of the undelete operation, expressed in seconds since the epoch.
Set to `1` to set the time of the undelete operation to the same time the package was deleted.
examples:
Seconds Since Epoch:
value: 1664912989
Same as Delete Time:
value: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Package Exists:
value:
code: package_exists
summary: the package exists already home:Admin hello_world
Time is Not a Number:
value:
code: 400
origin: backend
summary: 'not a number: ''RANDOM_STRING'''
Time is Less than Time in Last Commit:
value:
code: 400
origin: backend
summary: specified time is less than time in last commit
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Package Was Not Deleted:
value:
code: 403
summary: package 'hello_world' was not deleted
details: 403 package 'hello_world' was not deleted
No Permission to Create Package:
value:
code: cmd_execution_no_permission
summary: no permission to create package in project home:Admin
No Permission to Set the Time:
value:
code: cmd_execution_no_permission
summary: Only administrators are allowed to set the time
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=unlock":
post:
summary: Unlock a locked package.
description: Unlock a locked package (`<lock><enable/></lock>` flag present
in the package `_meta` file).
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: comment
required: true
schema:
type: string
description: Comment to be included in the revision history of the `_meta`
file
example: Locking the package is no longer needed
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Missing Parameter:
value:
code: missing_parameter
summary: Required Parameter comment missing
Not locked:
value:
code: not_locked
summary: package 'home:Foo/hello_world' is not locked
'403':
description: Forbidden
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package ruby in project home:Foo
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: unknown_package
summary: 'Package not found: openSUSE:Leap:15.0:Update/foo'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=updatepatchinfo":
post:
summary: Update the issues listed in the `_patchinfo` file of a specified package.
description: |
Update the issues listed in the `_patchinfo` file of a specified package, based on
infos available through the issue trackers.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: cmd_execution_no_permission
summary: no permission to modify package patchinfo in project openSUSE:Maintenance:123
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?cmd=waitservice":
post:
summary: Return when the last run of defined services has finished.
description: |
Return an `Ok` code when the last run of defined services in the `_service` file has finished.
If a run of services is in progress, wait until all services finish.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Service Not Installed:
value:
code: 400
origin: backend
summary: " 400 remote error: /usr/lib/obs/service//set_version.service
\ No such file or directory (http://backend:5152/sourceupdate/home:Admin/obs-server?timeout=3600)"
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
No Permission to Wait for Services:
value:
code: cmd_execution_no_permission
summary: no permission to modify package test in project home:Admin
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}?view=info":
get:
summary: Show source version, md5sums and build description files of a package.
description: Show source version, md5sums and build description files of a package,
among other information.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: query
name: view
schema:
type: string
enum:
- cpio
- getmultibuild
- info
- issues
- products
- productrepositories
description: |
Specify which information about a package should be returned.
* `info`: Show source version, md5sums and build description files, among other information.
* `cpio`, `getmultibuild`, `issues`, `products`, `productrepositories`:
See this [other endpoint](<#/Sources - Files/get_source__project_name___package_name_>) for details.
example: info
- in: query
name: arch
schema:
type: string
description: Filter by architecture name.
example: x86_64
- in: query
name: nofilename
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to prevent from showing filename elements. Shows only
the `sourceinfo` root element.
example: 1
- in: query
name: repository
schema:
type: string
description: Filter by repository name.
example: openSUSE_Tumbleweed
- in: query
name: parse
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to show more details, like `originproject`, `linked
package`, `name`, `version`, `release`, `subpacks`, `deps`, and `prereqs`
elements.
example: 1
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
package:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
verifymd5:
type: string
xml:
attribute: true
metamd5:
type: string
xml:
attribute: true
filename:
type: string
originproject:
type: string
linked:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
name:
type: string
version:
type: string
release:
type: string
revtime:
type: string
error:
type: string
subpacks:
type: array
items:
type: string
deps:
type: array
items:
type: string
prereqs:
type: array
items:
type: string
xml:
name: sourceinfo
examples:
Without Any Other Parameters:
value:
package: texlive-specs-w
rev: 9f5336fcf6e4521b6a9587b02087eef9
vrev: 55
srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
filename: texlive-specs-w.spec
originproject: openSUSE:Factory:Rings:1-MinimalX
linked:
- project: openSUSE:Factory:Rings:0-Bootstrap
package: textlive-specs-w
- project: openSUSE:Factory:Rings:1-MinimalX
package: textlive-specs-w
With Parameter nofilename=1:
value:
package: texlive-specs-w
rev: 9f5336fcf6e4521b6a9587b02087eef9
vrev: 55
srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
originproject: openSUSE:Factory:Rings:1-MinimalX
linked:
- project: openSUSE:Factory:Rings:0-Bootstrap
package: textlive-specs-w
- project: openSUSE:Factory:Rings:1-MinimalX
package: textlive-specs-w
With Parameter parse=1:
value:
package: texlive-specs-w
rev: 9f5336fcf6e4521b6a9587b02087eef9
vrev: 55
srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
filename: texlive-specs-w.spec
originproject: openSUSE:Factory:Rings:1-MinimalX
linked:
- project: openSUSE:Factory:Rings:0-Bootstrap
package: textlive-specs-w
- project: openSUSE:Factory:Rings:1-MinimalX
package: textlive-specs-w
name: textlive-specs-w
version: 2023
release: 0
subpacks:
- texlive-specs-w
- texlive-tablists
deps:
- texlive-kpathsea
- texlive-tie-bin
prereqs:
- texlive-filesystem
- coreutils
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Boolean:
description: Passing a value different than `0` or `1` to `parse`,
for example.
value:
code: 400
summary: not boolean
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Packages
"/source/{project_name}/{package_name}/{file_name}":
get:
summary: Read a specified source file
description: Read a specified source file and return the content
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
- in: query
name: rev
schema:
type: integer
description: Retrieve the file at a specific package revision.
example: 3
- in: query
name: meta
schema:
type: integer
enum:
- 1
- 0
description: Set to `1` to show meta data instead of sources.
example: 1
- in: query
name: deleted
schema:
type: integer
enum:
- 1
- 0
description: Set to 1 to retrieve a file from a deleted project or package.
example: 0
- in: query
name: expand
schema:
type: integer
enum:
- 1
- 0
description: Set to `1` to include files from linked packages.
example: 1
- name: view
in: query
schema:
type: string
enum:
- blame
description: With `view=blame`, information about who changed the file.
example: blame
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Unknown parameter
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown parameter:
value:
code: unknown_parameter
summary: unknown parameter 'limit'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
Unknown File:
value:
code: unknown_file
summary: 'File not found: home:some_project/some_package/some_file'
tags:
- Sources - Files
delete:
summary: Deletes a specified source file of a package.
description: Deletes a specified source file of a package of a project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
- in: query
name: rev
schema:
type: string
description: |
If set to 'upload', multiple files can be deleted in just one commit.
Delete first the files with `rev=upload`, then close the single commit by another request call with `cmd=commit`
example: upload
- in: query
name: meta
schema:
type: integer
enum:
- 1
- 0
description: Set to `1` to delete meta data instead of sources.
example: 1
- in: query
name: comment
schema:
type: string
description: A comment that will appear in the package's comment section explaining
the reason behind the deletion of the file.
example: File deleted because it is useless.
- in: query
name: keeplink
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to preserve the link (`_link` file) on the source.
example: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
Unknown File:
value:
code: unknown_file
summary: 'File not found: home:some_project/some_package/some_file'
tags:
- Sources - Files
put:
summary: Write a specified source file into a package.
description: Write a specified source file of a package of a project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: file_name
schema:
type: string
required: true
description: The file name
example: ctris-0.42.1-4.1.x86_64.rpm
- in: query
name: rev
schema:
type: string
description: |
If set to 'upload', multiple files can be uploaded in just one commit.
Upload first the files with `rev=upload`, then close the single commit by another request call with `cmd=commit`
example: upload
- in: query
name: meta
schema:
type: integer
enum:
- 1
- 0
description: Set to `1` to write meta data instead of sources.
example: 1
- in: query
name: comment
schema:
type: string
description: A comment that will appear in the package's comment section explaining
the reason behind the creation of the new file.
example: Added new configuration file.
- in: query
name: keeplink
schema:
type: string
enum:
- 1
- 0
default: 0
description: Set to `1` to preserve the link (`_link` file) on the source.
example: 1
requestBody:
content:
plain/text:
schema:
type: string
properties:
file:
type: string
format: binary
responses:
'200':
description: Updates the artifact's file contents
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
version:
type: string
time:
type: string
user:
type: string
comment:
type: string
requestid:
type: string
xml:
name: revision
example:
rev: 28
vrev: 28
srcmd5: 2e0bd85c089953743bd30eeacf70989b
version: 1
time: 1678787266
user: Admin
comment:
requestid:
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
Unknown File:
value:
code: unknown_file
summary: 'File not found: home:some_project/some_package/some_file'
tags:
- Sources - Files
"/source/{project_name}/{package_name}/{binary_filename}/_attribute/{attribute_name}":
get:
summary: Get values of an attribute
description: Get attribute and attribute values of a given attribute and binary
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: binary_filename
schema:
type: string
required: true
description: Binary filename
example: ctris-0.42.1-8.1.x86_64.rpm
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
example:
name: AllowSubmitToMaintenanceRelease
namespace: OBS
binary: Ceph
'400':
description: Bad request
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
value:
code: invalid_attribute
summary: Attribute '{attribute_name}' must be in the $NAMESPACE:$NAME
style
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
Unknown Attribute:
value:
code: unknown_attribute
summary: Attribute some_attribute does not exist
tags:
- Sources - Files
delete:
summary: Removes a specified attribute
description: Removes a specified attribute from a package
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: binary_filename
schema:
type: string
required: true
description: Binary filename
example: ctris-0.42.1-8.1.x86_64.rpm
- in: path
name: attribute_name
schema:
type: string
required: true
description: The name of the attribute
example: OBS:OwnerRootProjectTest
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Wrong value for deleted parameter.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
invalid_attribute:
value:
code: invalid_attribute
summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
style
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
Unknown Attribute:
value:
code: unknown_attribute
summary: Attribute some_attribute does not exist
tags:
- Sources - Files
"/source/{project_name}/{package_name}/{binary_filename}/_attribute":
get:
summary: Get list of attributes and attribute values with binary parameter
description: Get a list of all attributes and their values for a given binary
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: binary_filename
schema:
type: string
required: true
description: Binary filename
example: ctris-0.42.1-8.1.x86_64.rpm
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
example:
- name: AllowSubmitToMaintenanceRelease
namespace: OBS
binary: SLES-cd-DVD-x86_64
- name: OwnerRootProjectTest
namespace: OBS
binary: Ceph
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Files
post:
summary: Add an attribute
description: Add an attribute with binary to a package
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: package_name
schema:
type: string
required: true
description: Package name
example: ctris
- in: path
name: binary_filename
schema:
type: string
required: true
description: Binary filename
example: ctris-0.42.1-8.1.x86_64.rpm
requestBody:
description: Attributes you want to update
content:
application/xml; charset=utf-8:
schema:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
namespace:
type: string
xml:
attribute: true
binary:
type: string
xml:
attribute: true
xml:
name: attribute
xml:
name: attributes
wrapped: true
example:
name: MaintenanceProject
namespace: OBS
binary: Ceph
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Package:
value:
code: unknown_package
summary: 'Package not found: home:some_project/some_package'
tags:
- Sources - Files
"/staging/{project_name}/backlog":
get:
summary: List the requests in the staging backlog.
description: List the requests that can be assigned to the staging project (backlog).
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: List of request in the staging backlog.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
type:
type: string
example: submit
xml:
attribute: true
state:
type: string
example: review
xml:
attribute: true
package:
type: string
example: hello_world
xml:
attribute: true
superseded_by:
type: integer
example: 43
xml:
attribute: true
updated:
type: string
example: '2023-04-24T08:34:39Z'
xml:
attribute: true
xml:
name: backlog
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project_without_staging_workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Staging Workflow
"/staging/{project_name}/excluded_requests":
get:
summary: List the requests excluded from a staging workflow.
description: List the requests excluded from the staging workflow associated
to the specified project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: List of requests that are excluded from the staging workflow
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
description:
type: string
example: Missing dependencies
xml:
attribute: true
xml:
name: excluded_requests
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project_without_staging_workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Staging Workflow
post:
summary: Exclude requests from the staging workflow.
description: Add requests to the list of excluded requests of the staging workflow
associated to the specified project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
requestBody:
description: List of requests to be excluded from the staging workflow
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
description:
type: string
example: Missing dependencies
xml:
attribute: true
xml:
name: excluded_requests
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Excluding Failed:
value:
code: invalid_request
summary: 'Excluding requests for project_name failed:'
Invalid XML Format:
value:
code: invalid_xml_format
summary: XML format is not valid
Empty Body:
value:
code: invalid_request
summary: Empty body
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project_without_staging_workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Staging Workflow
delete:
summary: Delete the specified requests from the list of excluded requests.
description: Stop excluding the requests from the staging workflow.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
requestBody:
description: List of requests to stop excluding from the staging workflow
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
description:
type: string
example: Missing dependencies
xml:
attribute: true
xml:
name: excluded_requests
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Invalid Request:
value:
code: invalid_request
summary: 'Error while unexcluding requests: Requests with number
ID are not excluded.'
Invalid XML Format:
value:
code: invalid_xml_format
summary: XML format is not valid
Empty Body:
value:
code: invalid_request
summary: Empty body
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project_without_staging_workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Staging Workflow
"/staging/{project_name}/staged_requests":
delete:
summary: Delete requests from any of the staging projects.
description: Delete the given requests from any of the staging projects they
were staged in.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
requestBody:
description: List of requests to be deleted.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
xml:
name: requests
examples:
Multiple Requests:
value:
request:
- id: 1
- id: 2
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Request Not Staged:
value:
code: invalid_request
summary: 'Error while unassigning requests: Request ''ID'' is
not staged'
Request Not In Staging:
value:
code: invalid_request
summary: 'Error while unassigning requests: Requests with number:
ID don''t belong to Staging: project_name'
Unknown Request:
value:
code: invalid_request
summary: 'Error while unassigning requests: Requests with number:
212 don''t exist'
Wrong Request Number:
value:
code: invalid_request
summary: Error while parsing the numbers of the requests
Invalid XML Format:
value:
code: invalid_xml_format
summary: XML format is not valid
Empty Body:
value:
code: invalid_request
summary: Empty body
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Without Staging Workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: not_found
summary: Project 'project_name' not found.
tags:
- Staging Workflow
"/staging/{project_name}/staging_projects":
get:
summary: List all the staging projects of a staging workflow.
description: |
List the staging projects of the staging workflow associated to the specified project.
Extra information can be requested by adding any combination of these parameters in the URL: `requests`, `status` and `history`.
- If `requests` is present, the output includes the staged, untracked and obsolete requests as well as missing reviews.
- If `status` is present, the output includes the overall state and the status xml (broken packages, missing reviews, checks, etc.)
- If `history` is present, the output includes the history of the staging project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: requests
in: query
schema:
type: string
example: 1
description: '"Set to `1` if you want to include the staged, untracked and
obsolete requests as well as missing reviews, otherwise don''t pass this
query parameter."
'
- name: status
in: query
schema:
type: string
example: 1
description: '"Set to `1` if you want to include the overall state and the
status xml (broken packages, missing reviews, checks, etc.), otherwise don''t
pass this query parameter"
'
- name: history
in: query
schema:
type: string
example: 1
description: Set to `1` if you want to include the history of the staging
project, otherwise don't pass this query parameter.
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
staging_project:
type: array
items:
type: object
properties:
name:
type: string
example: openSUSE:Factory
xml:
attribute: true
state:
type: string
example: empty
xml:
attribute: true
staged_requests:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
untracked_requests:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
obsolete_requests:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
missing_reviews:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
building_repositories:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
broken_packages:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
checks:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
missing_checks:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
history:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
xml:
name: staging_project
xml:
name: staging_projects
examples:
Simple Result:
value:
staging_project:
- name: openSUSE:Factory:Staging:A
- name: openSUSE:Factory:Staging:B
Detailed Result:
value:
staging_project:
name: openSUSE:Factory:Staging:A
state: empty
staged_requests:
count: 0
untracked_requests:
count: 0
obsolete_requests:
count: 0
missing_reviews:
count: 0
building_repositories:
count: 0
broken_packages:
count: 0
checks:
count: 0
missing_checks:
count: 0
history:
count: 0
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Project Without Staging Workflow:
value:
code: project_has_no_staging_workflow
summary: No staging workflow for project 'project_name'
Unknown Project:
value:
code: not_found
summary: Project 'project_name' not found.
tags:
- Staging Workflow
post:
summary: Create staging projects
description: Create staging projects on the staging workflow associated to the
specified project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
requestBody:
description: List of the names of the staging projects you want to add to
the staging workflow
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
staging_project:
type: array
items:
type: string
example: openSUSE:Factory:Staging:C
xml:
name: workflow
examples:
Multiple Staging Projects:
value:
staging_project:
- openSUSE:Factory:Staging:C
- openSUSE:Factory:Staging:D
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Invalid Project Name:
value:
code: invalid_request
summary: 'Staging Projects for package_name failed: Project "0":
Name is illegal.'
Already Assigned:
value:
code: invalid_request
summary: 'Staging Projects for project_name failed: Project "project_name":
is already assigned to a staging workflow.'
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Project Without Staging Workflow:
value:
code: not_found
summary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: not_found
summary: Project 'project_name' not found.
tags:
- Staging Workflow
"/staging/{project_name}/staging_projects/{staging_project_name}":
get:
summary: Gets the overall state of a staging project.
description: |
Extra information can be requested by adding any combination of these parameters in the URL: requests, status and history.
- If requests is present, the output includes the staged, untracked and obsolete requests as well as missing reviews.
- If status is present, the output includes the overall state and the status xml (broken packages, missing reviews, checks, etc.)
- If history is present, the output includes the history of the staging project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: staging_project_name
schema:
type: string
required: true
description: Staging Project Name
example: openSUSE:Factory:Staging:A
- name: requests
in: query
schema:
type: string
enum:
- 1
description: 'Set to `1` if you want to include the staged, untracked and
obsolete requests as well as missing reviews, otherwise don''t pass this
query parameter.
'
- name: status
in: query
schema:
type: string
enum:
- 1
description: 'Set to `1` if you want to include the overall state and the
status xml (broken packages, missing reviews, checks, etc.), otherwise don''t
pass this query parameter.
'
- name: history
in: query
schema:
type: string
enum:
- 1
description: Set to `1` if you want to include the history of the staging
project, otherwise don't pass this query parameter.
responses:
'200':
description: Get the state of a staging project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: openSUSE:Factory
xml:
attribute: true
state:
type: string
example: empty
xml:
attribute: true
staged_requests:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
untracked_requests:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
obsolete_requests:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
missing_reviews:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
building_repositories:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
broken_packages:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
checks:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
missing_checks:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
history:
type: object
properties:
count:
type: integer
example: 0
xml:
attribute: true
xml:
name: staging_project
example:
name: home:Iggy:Staging:A
state: empty
staged_requests:
count: 0
untracked_requests:
count: 0
obsolete_requests:
count: 0
missing_reviews:
count: 0
building_repositories:
count: 0
broken_packages:
count: 0
checks:
count: 0
missing_checks:
count: 0
history:
count: 0
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: Staging Workflow Project Not Found
value:
code: not_found
summary: Project home:Adminn not found.
staging_project_not_found:
summary: Staging Project Name Not Found
value:
code: staging_project_not_found
details: Staging Project "home:Admin:Staging:AA" does not exist.
tags:
- Staging Workflow
"/staging/{project_name}/staging_projects/{staging_project_name}/accept":
post:
summary: Accept a staging project
description: |
This accepts all staged requests and sets the project state back to 'empty'.
Will return in an error if staging project is not acceptable, unless force is given. You can force
accept staging projects with building or failing packages, but not with missing reviews
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: staging_project_name
schema:
type: string
required: true
description: Staging Project Name
example: openSUSE:Factory:Staging:A
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
staging_project_not_in_acceptable_state:
summary: Staging Project is not in an acceptable state
value:
code: staging_project_not_in_acceptable_state
summary: 'Staging Project is not acceptable: empty is not an acceptable
state'
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: Staging Workflow Project Not Found
value:
code: not_found
summary: Project home:Adminn not found.
staging_project_not_found:
summary: Staging Project Name Not Found
value:
code: staging_project_not_found
details: Staging Project "home:Admin:Staging:AA" does not exist.
tags:
- Staging Workflow
"/staging/{project_name}/staging_projects/{staging_project_name}/copy/{staging_project_copy_name}":
post:
summary: Copy a staging project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: staging_project_name
schema:
type: string
required: true
description: Staging Project Name
example: openSUSE:Factory:Staging:A
- in: path
name: staging_project_copy_name
schema:
type: string
required: true
description: The name of the staging project's copy
example: openSUSE:Factory:Staging:B
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
not_found:
summary: Staging Workflow Project Not Found
value:
code: not_found
summary: Project home:Adminn not found.
staging_project_not_found:
summary: Staging Project Name Not Found
value:
code: staging_project_not_found
details: Staging Project "home:Admin:Staging:AA" does not exist.
tags:
- Staging Workflow
"/staging/{project_name}/staging_projects/{staging_project_name}/staged_requests":
get:
summary: List all the staged requests of a staging project.
description: List all the requests that are already associated to a staging
project (staged requests).
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: staging_project_name
schema:
type: string
required: true
description: Staging Project Name
example: openSUSE:Factory:Staging:A
responses:
'200':
description: List of staged requests.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
creator:
type: string
example: foo-user
xml:
attribute: true
type:
type: string
example: submit
xml:
attribute: true
state:
type: string
example: review
xml:
attribute: true
package:
type: string
example: hello_world
xml:
attribute: true
superseded_by:
type: integer
example: 43
xml:
attribute: true
updated:
type: string
example: '2023-04-24T08:34:39Z'
xml:
attribute: true
xml:
name: staged_requests
examples:
Multiple Requests:
value:
request:
- id: 1
creator: Iggy
type: submit
state: accepted
package: package_a
updated_at: '2023-04-24T08:34:39Z'
- id: 2
creator: Dan
type: submit
state: review
package: package_b
superseded_by: 3
updated_at: '2022-02-22T02:22:22Z'
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Project Without Staging Workflow:
value:
code: not_found
summary: Project project_name doesn't have an associated Staging
Workflow
Unknown Staging Project:
value:
code: not_found
summary: 'Staging Project ''staging_project_name'' not found in
Staging: ''project_name'''
Unknown Project:
value:
code: not_found
summary: Project 'project_name' not found.
tags:
- Staging Workflow
post:
summary: Add requests to the staging project.
description: |
Add requests to the specified staging project except those that are excluded from the staging workflow.
Pass `remove_exclusion` to stop excluding the requests before adding them to the staging project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: staging_project_name
schema:
type: string
required: true
description: Staging Project Name
example: openSUSE:Factory:Staging:A
- in: query
name: remove_exclusion
schema:
type: string
description: |
Set to `1` if you want to stop excluding the specified requests before you add them to the staging project.
Don't pass this parameter to only stage the requests that are not excluded.
example: 1
requestBody:
description: List of requests to be added to the staging project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
xml:
name: requests
examples:
Multiple Requests:
value:
request:
- id: 1
- id: 2
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
With Excluded Requests:
value:
code: invalid_request
summary: 'Request ID currently excluded from project project_name.
Use --remove-exclusion if you want to force this action.
'
Unknown Request:
value:
code: invalid_request
summary: Request ID doesn't exist
Invalid XML Format:
value:
code: invalid_xml_format
summary: XML format is not valid
Empty Body:
value:
code: invalid_request
summary: Empty body
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Without Staging Workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Staging Project:
value:
code: not_found
summary: 'Staging Project ''project_name:Staging:G'' not found
in Staging: ''project_name'''
Unknown Project:
value:
code: not_found
summary: Project 'project_name' not found.
'424':
description: Unacceptable State
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unacceptable State:
value:
code: staging_project_not_in_acceptable_state
sumary: 'Can''t change staged requests: Project ''project_name''
is being accepted.'
tags:
- Staging Workflow
delete:
summary: Delete requests from the staging project.
description: Delete the given requests from the staging project they were staged
in.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: staging_project_name
schema:
type: string
required: true
description: Staging Project Name
example: openSUSE:Factory:Staging:A
requestBody:
description: List of requests to be removed from the staging project.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
request:
type: array
items:
type: object
properties:
id:
type: integer
example: 42
xml:
attribute: true
xml:
name: requests
examples:
Multiple Requests:
value:
request:
- id: 1
- id: 2
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Request Not Staged:
value:
code: invalid_request
summary: 'Error while unassigning requests: Request ''ID'' is
not staged'
Request Not In Staging:
value:
code: invalid_request
summary: 'Error while unassigning requests: Requests with number:
ID don''t belong to Staging: project_name'
Wrong Request Number:
value:
code: invalid_request
summary: Error while parsing the numbers of the requests
Invalid XML Format:
value:
code: invalid_xml_format
summary: XML format is not valid
Empty Body:
value:
code: invalid_request
summary: Empty body
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Without Staging Workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: not_found
summary: Project 'project_name' not found.
tags:
- Staging Workflow
"/staging/{project_name}/workflow":
post:
summary: Create a staging workflow for the specified project
description: Create a staging workflow associated to the project and the manager
group specified in the body of the request
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
requestBody:
description: Title of the staging workflow's managers group
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
managers:
type: string
example: group-test
xml:
attribute: true
xml:
name: workflow
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Staging Workflow Exists:
description: The project is already associated to a staging workflow
value:
code: staging_workflow_exists
summary: 'Project project_name already has an associated Staging
Workflow with id: ID'
Invalid XML Format:
value:
code: invalid_xml_format
summary: XML format is not valid
Empty Body:
value:
code: invalid_request
summary: Empty body
Invalid Request:
value:
code: invalid_request
summary: 'Staging for project_name couldn''t be created:'
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Staging Workflow
put:
summary: Change the managers group of a staging workflow
description: Change the managers group of the staging workflow associated to
the specified project.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
requestBody:
description: Title of the staging workflow's managers group
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
managers:
type: string
example: group-test
xml:
attribute: true
xml:
name: workflow
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'400':
description: |
Bad Request.
XML Schema used for body validation: [status.rng](../schema/status.rng).
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Invalid XML Format:
value:
code: invalid_xml_format
summary: XML format is not valid
Empty Body:
value:
code: invalid_request
summary: Empty body
Invalid Request:
value:
code: invalid_request
summary: 'Staging for project_name couldn''t be updated:'
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project_without_staging_workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Staging Workflow
delete:
summary: Delete the staging workflow of the specified project
description: |
Delete the staging workflow associated to the given project (a.k.a staging workflow project).
The staging projects associated to that workflow are not removed unless the parameter `with_staging_projects` is given.
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- name: with_staging_projects
in: query
schema:
type: integer
description: |
Set to `1` if you want to delete all the staging projects associated to the staging workflow when it is deleted.
Staging projects' names usually look like: project_name:Staging:A, project_name:Staging:B etc.
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
project_without_staging_workflow:
value:
code: not_found
sumary: Project project_name doesn't have an associated Staging
Workflow
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Staging Workflow
"/statistics":
get:
deprecated: true
summary: This endpoint is deprecated
description: This endpoint is no longer supported or might not work as expected.
tags:
- Statistics
"/statistics/active_request_creators/{project_name}":
get:
deprecated: true
summary: This endpoint is deprecated
description: This endpoint is no longer supported or might not work as expected.
tags:
- Statistics
"/statistics/activity/{project_name}/{package_name}":
get:
deprecated: true
summary: This endpoint is deprecated
description: This endpoint is no longer supported or might not work as expected.
tags:
- Statistics
"/statistics/added_timestamp/{project_name}/{package_name}":
get:
deprecated: true
summary: This endpoint is deprecated
description: This endpoint is no longer supported or might not work as expected.
tags:
- Statistics
"/statistics/global_counters":
get:
deprecated: true
summary: This endpoint is deprecated
description: This endpoint is no longer supported or might not work as expected.
tags:
- Statistics
"/statistics/latest_added":
get:
summary: Get a list of last added project and packages
description: Get a list of last added project and packages
security:
- basic_authentication: []
parameters:
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 10 entries to be returned.
example: 20
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
packages:
type: integer
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
package:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
name:
type: string
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
xml:
name: package
xml:
name: latest_added
example:
package:
- name: pgbackrest
project: openSUSE:Factory:Staging:adi:24
created: '2023-06-01T07:07:24Z'
project:
- name: openSUSE:Factory:Staging:adi:24
created: '2023-06-01T07:07:22Z'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Statistics
"/statistics/latest_updated":
get:
summary: Get a list of last updated project and packages
description: Get a list of last updated project and packages
security:
- basic_authentication: []
parameters:
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 10 entries to be returned.
example: 20
- in: query
name: timelimit
schema:
type: integer
description: Limit the maximum age to this number of days.
example: 1
- in: query
name: prjfilter
schema:
type: string
description: Filter by project name.
example: openSUSE:Factory
- in: query
name: pkgfilter
schema:
type: string
description: Filter by package name.
example: 0ad
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
packages:
type: integer
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
package:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
name:
type: string
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
xml:
name: package
xml:
name: latest_updated
example:
package:
- name: calc
project: openSUSE:Factory:Staging:adi:26
created: '2023-06-01T07:07:36Z'
project:
- name: openSUSE:Factory:Staging:adi:26
created: '2023-06-01T07:07:27Z'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Statistics
"/statistics/maintenance_statistics/{project_name}":
get:
deprecated: true
summary: This endpoint is deprecated
description: This endpoint is no longer supported or might not work as expected.
tags:
- Statistics
"/statistics/most_active_packages":
get:
summary: Get a list of the most active packages
description: Get a list of the most active packages
security:
- basic_authentication: []
parameters:
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 10 entries to be returned.
example: 20
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
packages:
type: integer
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
package:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
name:
type: string
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
xml:
name: package
xml:
name: most_active
example:
package:
- activity: 1371.487973151121
project: openSUSE:Factory:Staging
name: dashboard
- activity: 1369.5483848725057
project: home:repo-checker
name: reports
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Statistics
"/statistics/most_active_projects":
get:
summary: Get a list of the most active projects
description: Get a list of the most active projects
security:
- basic_authentication: []
parameters:
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 10 entries to be returned.
example: 20
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
project:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
packages:
type: integer
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
package:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
name:
type: string
xml:
attribute: true
activity:
type: number
xml:
attribute: true
created:
type: string
xml:
attribute: true
updated:
type: string
xml:
attribute: true
xml:
name: package
xml:
name: most_active
example:
project:
- activity: 1371.492028553694
packages: 1
name: openSUSE:Factory:Staging
- activity: 1369.5524345398396
packages: 2
name: home:repo-checker
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Statistics
"/statistics/updated_timestamp/{project_name}/{package_name}":
get:
deprecated: true
summary: This endpoint is deprecated
description: This endpoint is no longer supported or might not work as expected.
tags:
- Statistics
"/status/messages":
get:
summary: Get list of status messages
description: Get a list of all status messages
security:
- basic_authentication: []
parameters:
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 1000 entries to be returned.
example: 20
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
status_message:
type: array
items:
type: object
properties:
id:
type: integer
xml:
attribute: true
message:
type: string
user:
type: string
severity:
type: string
scope:
type: string
created_at:
type: string
xml:
name: status_message
count:
type: integer
xml:
attribute: true
xml:
name: status_messages
example:
count: 2
status_message:
- id: 2
message: OBS 3.0 is released!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-15 13:28:22 UTC
- id: 1
message: Feature number 42 was implemented!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-12 11:18:12 UTC
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Status Messages
post:
summary: Create a status message
description: |
Create a new status message (Only admins are allowed to add status messages).
Possible values for severity: (information, green, yellow, red, announcement).
Possible values for scope: (all_users, logged_in_users, admin_users, in_beta_users, in_rollout_users)
security:
- basic_authentication: []
requestBody:
description: Attributes for status message
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
xml:
attribute: true
message:
type: string
user:
type: string
severity:
type: string
scope:
type: string
created_at:
type: string
xml:
name: status_message
example:
message: Feature number 42 was implemented!
severity: announcement
scope: all_users
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad request. Validation Error
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Validation Failed:
value:
code: validation_failed
summary: 'status_message validation error: 2:0: ERROR: Element
''<some element>'': No matching global declaration available
for the validation root.'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Status message no permission.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
status message no permission:
value:
code: put_request_no_permission
summary: Requires admin privileges
tags:
- Status Messages
"/status_message":
get:
summary: Get list of status messages
description: Get a list of all status messages
security:
- basic_authentication: []
parameters:
- in: query
name: limit
schema:
type: integer
description: Override default maximum value of 1000 entries to be returned.
example: 20
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
status_message:
type: array
items:
type: object
properties:
id:
type: integer
xml:
attribute: true
message:
type: string
user:
type: string
severity:
type: string
scope:
type: string
created_at:
type: string
xml:
name: status_message
count:
type: integer
xml:
attribute: true
xml:
name: status_messages
example:
count: 2
status_message:
- id: 2
message: OBS 3.0 is released!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-15 13:28:22 UTC
- id: 1
message: Feature number 42 was implemented!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-12 11:18:12 UTC
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Status Messages
"/status/messages/{id}":
get:
summary: Get a status message
description: Find a status message with id
security:
- basic_authentication: []
parameters:
- in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
id:
type: integer
xml:
attribute: true
message:
type: string
user:
type: string
severity:
type: string
scope:
type: string
created_at:
type: string
xml:
name: status_message
example:
id: 2
message: OBS 3.0 is released!
user: Iggy
severity: announcement
scope: all_users
created_at: 2021-10-15 13:28:22 UTC
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
tags:
- Status Messages
delete:
summary: Delete a status message
description: Delete a status message with id
security:
- basic_authentication: []
parameters:
- in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Status message no permission.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
status message no permission:
value:
code: put_request_no_permission
summary: Requires admin privileges
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
tags:
- Status Messages
"/status/project/{project_name}":
get:
summary: Get list of packages inside a project
description: Get a full list of packages and their status
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
package:
type: array
items:
type: object
properties:
project:
type: string
xml:
attribute: true
name:
type: string
xml:
attribute: true
version:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
changesmd5:
type: string
xml:
attribute: true
maxmtime:
type: string
xml:
attribute: true
release:
type: string
xml:
attribute: true
verifymd5:
type: string
xml:
attribute: true
link:
type: object
properties:
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
error:
type: string
xml:
name: package
xml:
name: packages
example:
package:
- project: home:Admin
name: ruby
version: 1
srcmd5: 7fbfafc07ebb87ef62119216619d0fa5
changesmd5: d0fa5
- project: home:Admin
name: linked_package
version: 1.1
verifymd5: 7fbfafc07ebb87ef62rrrvvv555
srcmd5: 7fbfafc07ebb87ef62119216619d0fa5
link:
project: home:Admin
package: ut
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Status Project
"/status/workerstatus":
get:
deprecated: true
summary: Lists status of workers, jobs, backend services and general statistics.
description: |
Lists status of workers, running jobs, waiting jobs, status of the backend services and general statistics.
This endpoint is exactly the same as `GET /worker/_status`, please use that one.
security:
- basic_authentication: []
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
clients:
type: integer
xml:
attribute: true
idle:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
building:
type: array
items:
type: object
properties:
repository:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
down:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
waiting:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
blocked:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
buildavg:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
buildavg:
type: string
xml:
attribute: true
partition:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
daemon:
type: array
items:
type: object
properties:
type:
type: string
xml:
attribute: true
state:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
queue:
type: object
properties:
high:
type: string
xml:
attribute: true
med:
type: string
xml:
attribute: true
low:
type: string
xml:
attribute: true
next:
type: string
xml:
attribute: true
xml:
name: workerstatus
example:
clients: '2'
idle:
- workerid: 1a1f67b948b6:1
hostarch: x86_64
building:
- repository: openSUSE_11.3_Update
arch: x86_64
project: home:enzokiel
package: android-sdk
starttime: '1289838671'
workerid: 1a1f67b948b6:2
hostarch: x86_64
down:
- workerid: armbuild03:1
hostarch: aarch64
waiting:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
blocked:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
buildavg:
- arch: i586
buildavg: '1200'
- arch: x86_64
buildavg: '1200'
partition:
- daemon:
- type: srcserver
state: running
starttime: '1617711138'
- type: servicedispatch
state: running
starttime: '1617711144'
- type: service
state: running
starttime: '1617711144'
- type: clouduploadserver
state: running
starttime: '1617711145'
- type: clouduploadworker
state: running
starttime: '1617711144'
- type: scheduler
arch: i586
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: scheduler
arch: x86_64
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: repserver
state: running
starttime: '1617711143'
- type: dispatcher
state: running
starttime: '1617711144'
- type: publisher
state: running
starttime: '1617711145'
- type: signer
state: running
starttime: '1617711146'
- name: back-main
daemon:
- type: scheduler
arch: aarch64
state: running
starttime: '1617148925'
queue:
high: '0'
med: '1'
low: '4'
next: '22'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Status Project
"/status_reports/built/{project_name}/{repository_name}/{architecture_name}/reports/{build_id}":
get:
summary: Get list of checks in the built project repository
description: Get a full list of checks in the built project repository's status
reports
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: build_id
schema:
type: integer
required: true
description: The id of the build.
example: 16
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
check:
type: array
items:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
uuid:
type: integer
xml:
attribute: true
xml:
name: status_report
example:
check:
- name: First
required: false
state: pending
short_description: This is the first of the checks
url: https://ci.opensuse.org/
- name: Second
required: true
state: success
short_description: This is the second of the checks
url: https://check.opensuse.org/
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
tags:
- Status Reports
post:
summary: Submit a check to a built project repository's status report
description: Create or update a check to the status report for the built project
repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: build_id
schema:
type: integer
required: true
description: The id of the build.
example: 16
requestBody:
description: Check definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
example:
name: First
required: false
state: pending
short_description: This is the first of the checks
url: https://ci.opensuse.org/
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: update_status/report_not_authorized
summary: Sorry, you are not authorized to update this status/report.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Invalid State:
value:
code: invalid_check
summary: "Could not save check: State State '\U0001F680' is not
a valid. Valid states are: pending, error, failure, success"
tags:
- Status Reports
"/status_reports/published/{project_name}/{repository_name}/reports/{build_id}":
get:
summary: Get list of checks in the published project repository
description: Get a full list of checks in the published project repository's
status reports
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: build_id
schema:
type: integer
required: true
description: The id of the build.
example: 16
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
check:
type: array
items:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
uuid:
type: integer
xml:
attribute: true
xml:
name: status_report
example:
check:
- name: First
required: false
state: pending
short_description: This is the first of the checks
url: https://ci.opensuse.org/
- name: Second
required: true
state: success
short_description: This is the second of the checks
url: https://check.opensuse.org/
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
tags:
- Status Reports
post:
summary: Submit a check to a published project repository's status report
description: Create or update a check to the status report for the published
project repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: build_id
schema:
type: integer
required: true
description: The id of the build.
example: 16
requestBody:
description: Check definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
example:
name: First
required: false
state: pending
short_description: This is the first of the checks
url: https://ci.opensuse.org/
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: update_status/report_not_authorized
summary: Sorry, you are not authorized to update this status/report.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Invalid State:
value:
code: invalid_check
summary: "Could not save check: State State '\U0001F680' is not
a valid. Valid states are: pending, error, failure, success"
tags:
- Status Reports
"/status_reports/requests/{id}/reports":
get:
summary: Get list of checks in the request
description: Get a full list of checks in the request's status reports
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
check:
type: array
items:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
uuid:
type: integer
xml:
attribute: true
xml:
name: status_report
example:
check:
- name: First
required: false
state: pending
short_description: This is the first of the checks
url: https://ci.opensuse.org/
- name: Second
required: true
state: success
short_description: This is the second of the checks
url: https://check.opensuse.org/
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
tags:
- Status Reports
post:
summary: Submit a check to the request's status report
description: Create or update a check to the status report for the request
security:
- basic_authentication: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: Id of the choosen request.
example: 743
requestBody:
description: Check definition.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: string
example: first_ci
xml:
attribute: true
required:
type: string
enum:
- true
- false
xml:
attribute: true
state:
type: string
enum:
- pending
- error
- failure
- success
short_description:
type: string
example: A short description of the check
url:
type: string
example: https://ci.opensuse.org/
xml:
name: check
example:
name: First
required: false
state: pending
short_description: This is the first of the checks
url: https://ci.opensuse.org/
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: update_status/report_not_authorized
summary: Sorry, you are not authorized to update this status/report.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Not Found:
value:
code: not_found
summary: Couldn't find StatusMessage with 'id'=300
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Invalid State:
value:
code: invalid_check
summary: "Could not save check: State State '\U0001F680' is not
a valid. Valid states are: pending, error, failure, success"
tags:
- Status Reports
"/status_reports/built_repositories/{project_name}/{repository_name}/{architecture_name}/required_checks":
get:
summary: Get list of required checks in the built repository
description: Get a full list of required checks in the built repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
repository: openSUSE_Tumbleweed
architecture: x86_64
name:
- first
- second
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Repository:
value:
code: not_found
summary: Couldn't find Repository
Unknown Architecture:
value:
code: not_found
summary: Couldn't find Architecture
tags:
- Status Reports - Required Checks
post:
summary: Submit a required checks list to the built repository
description: Submit a new or modified required checks list to the built repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
requestBody:
description: Required checks list.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
repository: openSUSE_Tumbleweed
architecture: x86_64
name:
- first
- second
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
repository: openSUSE_Tumbleweed
architecture: x86_64
name:
- first
- second
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: create_repository_architecture_not_authorized
summary: Sorry, you are not authorized to create this repository architecture.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Repository:
value:
code: not_found
summary: Couldn't find Repository
Unknown Architecture:
value:
code: not_found
summary: Couldn't find Architecture
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Could not save:
value:
code: invalid_required_check
summary: 'Could not save required check:'
Could not delete:
value:
code: invalid_required_check
summary: 'Could not delete required check:'
tags:
- Status Reports - Required Checks
"/status_reports/built_repositories/{project_name}/{repository_name}/{architecture_name}/required_checks/{check_name}":
delete:
summary: Delete a required check from the built repository
description: Delete a required check from the built repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: check_name
schema:
type: string
required: true
description: Check name.
example: first
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: delete_repository_architecture_not_authorized
summary: Sorry, you are not authorized to delete this repository architecture.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Repository:
value:
code: not_found
summary: Couldn't find Repository
Unknown Architecture:
value:
code: not_found
summary: Couldn't find Architecture
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Could not save:
value:
code: invalid_required_check
summary: 'Could not save required check:'
Could not delete:
value:
code: invalid_required_check
summary: 'Could not delete required check:'
tags:
- Status Reports - Required Checks
"/status_reports/projects/{project_name}/required_checks":
get:
summary: Get list of required checks in the project
description: Get a full list of required checks in the project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
name:
- first
- second
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
tags:
- Status Reports - Required Checks
post:
summary: Submit a required checks list to the project
description: Submit a new or modified required checks list to the project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
requestBody:
description: Required checks list.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
name:
- first
- second
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
name:
- first
- second
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: create_project_not_authorized
summary: Sorry, you are not authorized to create this project.
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Could not save:
value:
code: invalid_required_check
summary: 'Could not save required check:'
Could not delete:
value:
code: invalid_required_check
summary: 'Could not delete required check:'
tags:
- Status Reports - Required Checks
"/status_reports/projects/{project_name}/required_checks/{check_name}":
delete:
summary: Delete a required checks from the project
description: Delete a required check from the project
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: check_name
schema:
type: string
required: true
description: Check name.
example: first
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: delete_project_not_authorized
summary: Sorry, you are not authorized to delete this project.
'404':
description: |
Unknown project.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: <some project>.'
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Could not save:
value:
code: invalid_required_check
summary: 'Could not save required check:'
Could not delete:
value:
code: invalid_required_check
summary: 'Could not delete required check:'
tags:
- Status Reports - Required Checks
"/status_reports/repositories/{project_name}/{repository_name}/required_checks":
get:
summary: Get list of required checks in the project repository
description: Get a full list of required checks in the project repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
repository: openSUSE_Tumbleweed
name:
- first
- second
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Repository:
value:
code: not_found
summary: Couldn't find Repository
tags:
- Status Reports - Required Checks
post:
summary: Submit a required checks list to the project repository
description: Submit a new or modified required checks list to the project repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
requestBody:
description: Required checks list.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
repository: openSUSE_Tumbleweed
name:
- first
- second
responses:
'200':
description: OK. The request has succeeded.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
name:
type: array
items:
type: string
example:
- first
- second
project:
type: string
xml:
attribute: true
example: home:Admin
repository:
type: string
xml:
attribute: true
example: openSUSE_Tumbleweed
architecture:
type: string
xml:
attribute: true
example: x86_64
xml:
name: required_checks
example:
project: home:Admin
repository: openSUSE_Tumbleweed
name:
- first
- second
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: create_repository_not_authorized
summary: Sorry, you are not authorized to create this repository.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Repository:
value:
code: not_found
summary: Couldn't find Repository
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Could not save:
value:
code: invalid_required_check
summary: 'Could not save required check:'
Could not delete:
value:
code: invalid_required_check
summary: 'Could not delete required check:'
tags:
- Status Reports - Required Checks
"/status_reports/repositories/{project_name}/{repository_name}/required_checks/{check_name}":
delete:
summary: Delete a required check from the project repository
description: Delete a required checks from the project repository
security:
- basic_authentication: []
parameters:
- in: path
name: project_name
schema:
type: string
required: true
description: Project name
example: home:Admin
- in: path
name: repository_name
schema:
type: string
required: true
description: Repository name
example: openSUSE_Tumbleweed
- in: path
name: check_name
schema:
type: string
required: true
description: Check name.
example: first
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'403':
description: |
Forbidden.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: delete_repository_not_authorized
summary: Sorry, you are not authorized to delete this repository.
'404':
description: |
Not Found.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Unknown Project:
value:
code: unknown_project
summary: 'Project not found: home:some_project'
Unknown Repository:
value:
code: not_found
summary: Couldn't find Repository
'422':
description: |
Unprocessable Content.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
Could not save:
value:
code: invalid_required_check
summary: 'Could not save required check:'
Could not delete:
value:
code: invalid_required_check
summary: 'Could not delete required check:'
tags:
- Status Reports - Required Checks
"/trigger":
post:
summary: Trigger a rebuild, release or service run via an API token
description: |
This route allows to trigger
- a Project/Package rebuild
- a Project/Package release
- a Package service run
via an API token.
You are required to authenticate with the API token secret. The API token secret needs
to be provided either by HTTP headers or by a Hash-based Message Authentication Code (HMAC).
See the [/person/{login}/token](#/Person/post_person__login__token) endpoint for
information how to create an API token.
security:
- GitLab_key_authentication: []
parameters:
- in: header
name: X-OBS-SIGNATURE
description: |
A HMAC of the request body, signed with the API token secret.
Only useful in combination with the id parameter.
schema:
type: string
example: 123458568938927827827
- in: header
name: X-HUB-SIGNATURE-256
description: |
A HMAC of the request body, signed with the API token secret.
Only useful in combination with the id parameter.
schema:
type: string
example: 123458568938927827827
- in: header
name: X-Pagure-Signature-256
description: |
A HMAC of the request body, signed with the API token secret.
Only useful in combination with the id parameter.
schema:
type: string
example: 123458568938927827827
- in: header
name: X-GitLab-Token
description: The API token secret.
schema:
type: string
example: THE_TOKEN_SECRET
- in: header
name: Authorization
description: The API token secret in the Token realm.
schema:
type: string
example: Token THE_TOKEN_SECRET
- in: query
name: id
description: |
Numerical ID of the token to trigger.
This is required if you authenticate via a HMAC.
schema:
type: integer
example: 1
- in: query
name: project
description: |
If the API token does not have a package assigned you can set a project via this parameter.
The operation of the API token is then executed on this project.
schema:
type: string
example: home:user
- in: query
name: package
description: |
If the API token does not have a package assigned you can set a package via this parameter.
The operation of the API token is then executed on this package.
Setting this requires the project parameter to be set too.
schema:
type: string
example: vim
- in: query
name: repository
description: |
Restrict the API token operation to this repository.
Only has an effect if the API token operation is 'rebuild' or 'release'.
schema:
type: string
example: openSUSE_Factory
- in: query
name: arch
description: |
Restrict the API token operation to this architecture with this name.
Only has an effect when the API token operation is 'rebuild' or 'release'.
schema:
type: string
example: x86_64
- in: query
name: targetproject
description: |
Release binaries only to the provided project with this name.
Setting this requires the 'targetrepository' parameter to be set also.
Only has an effect if the API token operation is 'release'.
schema:
type: string
example: devel:languages:ruby
- in: query
name: targetrepository
description: |
Release binaries only to the target repository with this name.
Setting this requires the 'targetproject' parameter to be set also.
Only has an effect if the API token operation is 'release'.
schema:
type: string
example: openSUSE_Factory
- in: query
name: filter_source_repository
description: |
Release binaries only from the repository with this name.
Only has an effect if the API token operation is 'release'.
schema:
type: string
example: openSUSE_Factory
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: invalid_token
summary: No valid token found
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: permission_denied
summary: No valid token found
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
unknown_project:
summary: Project not found
value:
code: unknown_project
details: 'Project not found: home:Admin'
unknown_package:
summary: Package not found
value:
code: unknown_package
details: 'Package not found: home:Admin/foo'
tags:
- Trigger
"/trigger/rebuild":
post:
summary: Trigger a Project/Package rebuild
description: |
This endpoint behaves exactly as the [/trigger](#/Trigger/post_trigger) endpoint but
only allows API tokens with the operation 'rebuild' to be triggered.
security:
- GitLab_key_authentication: []
tags:
- Trigger
"/trigger/release":
post:
summary: Trigger a Project/Package release
description: |
This endpoint behaves exactly as the [/trigger](#/Trigger/post_trigger) endpoint but
only allows API tokens the the operation 'release' to be triggered.
security:
- GitLab_key_authentication: []
tags:
- Trigger
"/trigger/runservice":
post:
summary: Trigger a Package service run
description: |
This endpoint behaves exactly as the [/trigger](#/Trigger/post_trigger) endpoint but
only allows API tokens with the operation 'runservice' to be triggered.
security:
- GitLab_key_authentication: []
tags:
- Trigger
"/trigger/workflow":
post:
summary: Trigger a SCM/CI Workflow via an API token
description: |
This route allows to trigger an [OBS SCM/CI workflow](https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.scm_ci_workflow_integration)
via an API token.
You are required to authenticate with the API token secret. The API token secret needs
to be provided either by HTTP headers or by a Hash-based Message Authentication Code (HMAC).
See the [/person/{login}/token](#/Person/post_person__login__token) endpoint for
information how to create an API token.
security:
- GitLab_key_authentication: []
parameters:
- in: header
name: X-OBS-SIGNATURE
description: |
A HMAC of the request body, signed with the API token secret.
Only useful in combination with the id parameter.
schema:
type: string
example: 123458568938927827827
- in: header
name: X-HUB-SIGNATURE-256
description: |
A HMAC of the request body, signed with the API token secret.
Only useful in combination with the id parameter.
schema:
type: string
example: 123458568938927827827
- in: header
name: X-Pagure-Signature-256
description: |
A HMAC of the request body, signed with the API token secret.
Only useful in combination with the id parameter.
schema:
type: string
example: 123458568938927827827
- in: header
name: X-GitLab-Token
description: The API token secret.
schema:
type: string
example: THE_TOKEN_SECRET
- in: header
name: Authorization
description: The API token secret in the Token realm.
schema:
type: string
example: Token THE_TOKEN_SECRET
- in: query
name: id
description: |
Numerical ID of the token to trigger.
This is required if you authenticate via a HMAC.
schema:
type: integer
example: 1
responses:
'200':
description: |
OK. The request has succeeded.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: ok
summary: Ok
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: invalid_token
summary: No valid token found
'403':
description: Forbidden.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: permission_denied
summary: No valid token found
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
unknown_project:
summary: Project not found
value:
code: unknown_project
details: 'Project not found: home:Admin'
unknown_package:
summary: Package not found
value:
code: unknown_package
details: 'Package not found: home:Admin/foo'
tags:
- Trigger
"/trigger/webhook":
post:
deprecated: true
summary: Trigger an operation
description: This endpoint behaves exactly as the [/trigger](#/Trigger) endpoint.
security:
- GitLab_key_authentication: []
tags:
- Trigger
"/worker/_status":
get:
summary: Lists status of workers, jobs, backend services and general statistics.
description: Lists status of workers, running jobs, waiting jobs, status of
the backend services and general statistics.
security:
- basic_authentication: []
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
clients:
type: integer
xml:
attribute: true
idle:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
building:
type: array
items:
type: object
properties:
repository:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
down:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
waiting:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
blocked:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
buildavg:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
buildavg:
type: string
xml:
attribute: true
partition:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
daemon:
type: array
items:
type: object
properties:
type:
type: string
xml:
attribute: true
state:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
queue:
type: object
properties:
high:
type: string
xml:
attribute: true
med:
type: string
xml:
attribute: true
low:
type: string
xml:
attribute: true
next:
type: string
xml:
attribute: true
xml:
name: workerstatus
example:
clients: '2'
idle:
- workerid: 1a1f67b948b6:1
hostarch: x86_64
building:
- repository: openSUSE_11.3_Update
arch: x86_64
project: home:enzokiel
package: android-sdk
starttime: '1289838671'
workerid: 1a1f67b948b6:2
hostarch: x86_64
down:
- workerid: armbuild03:1
hostarch: aarch64
waiting:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
blocked:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
buildavg:
- arch: i586
buildavg: '1200'
- arch: x86_64
buildavg: '1200'
partition:
- daemon:
- type: srcserver
state: running
starttime: '1617711138'
- type: servicedispatch
state: running
starttime: '1617711144'
- type: service
state: running
starttime: '1617711144'
- type: clouduploadserver
state: running
starttime: '1617711145'
- type: clouduploadworker
state: running
starttime: '1617711144'
- type: scheduler
arch: i586
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: scheduler
arch: x86_64
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: repserver
state: running
starttime: '1617711143'
- type: dispatcher
state: running
starttime: '1617711144'
- type: publisher
state: running
starttime: '1617711145'
- type: signer
state: running
starttime: '1617711146'
- name: back-main
daemon:
- type: scheduler
arch: aarch64
state: running
starttime: '1617148925'
queue:
high: '0'
med: '1'
low: '4'
next: '22'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Workers
"/worker/status":
get:
deprecated: true
summary: Lists status of workers, jobs, backend services and general statistics.
description: |
Lists status of workers, running jobs, waiting jobs, status of the backend services and general statistics.
This endpoint is exactly the same as `GET /worker/_status`, please use that one.
security:
- basic_authentication: []
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
clients:
type: integer
xml:
attribute: true
idle:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
building:
type: array
items:
type: object
properties:
repository:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
project:
type: string
xml:
attribute: true
package:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
down:
type: array
items:
type: object
properties:
workerid:
type: string
xml:
attribute: true
hostarch:
type: string
xml:
attribute: true
waiting:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
blocked:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
jobs:
type: string
xml:
attribute: true
buildavg:
type: array
items:
type: object
properties:
arch:
type: string
xml:
attribute: true
buildavg:
type: string
xml:
attribute: true
partition:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
daemon:
type: array
items:
type: object
properties:
type:
type: string
xml:
attribute: true
state:
type: string
xml:
attribute: true
starttime:
type: string
xml:
attribute: true
arch:
type: string
xml:
attribute: true
queue:
type: object
properties:
high:
type: string
xml:
attribute: true
med:
type: string
xml:
attribute: true
low:
type: string
xml:
attribute: true
next:
type: string
xml:
attribute: true
xml:
name: workerstatus
example:
clients: '2'
idle:
- workerid: 1a1f67b948b6:1
hostarch: x86_64
building:
- repository: openSUSE_11.3_Update
arch: x86_64
project: home:enzokiel
package: android-sdk
starttime: '1289838671'
workerid: 1a1f67b948b6:2
hostarch: x86_64
down:
- workerid: armbuild03:1
hostarch: aarch64
waiting:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
blocked:
- arch: i586
jobs: '0'
- arch: x86_64
jobs: '0'
buildavg:
- arch: i586
buildavg: '1200'
- arch: x86_64
buildavg: '1200'
partition:
- daemon:
- type: srcserver
state: running
starttime: '1617711138'
- type: servicedispatch
state: running
starttime: '1617711144'
- type: service
state: running
starttime: '1617711144'
- type: clouduploadserver
state: running
starttime: '1617711145'
- type: clouduploadworker
state: running
starttime: '1617711144'
- type: scheduler
arch: i586
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: scheduler
arch: x86_64
state: running
starttime: '1617711145'
queue:
high: '0'
med: '0'
low: '11'
next: '0'
- type: repserver
state: running
starttime: '1617711143'
- type: dispatcher
state: running
starttime: '1617711144'
- type: publisher
state: running
starttime: '1617711145'
- type: signer
state: running
starttime: '1617711146'
- name: back-main
daemon:
- type: scheduler
arch: aarch64
state: running
starttime: '1617148925'
queue:
high: '0'
med: '1'
low: '4'
next: '22'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
tags:
- Workers
"/worker/{architecture_name}:{worker_id}":
get:
summary: Lists capabilites of a worker.
description: |
Lists capabilites of a worker.
This can be useful when checking for constraints.
This operation is the same as `GET /worker/capability/{architecture_name}:{worker_id}`.
security:
- basic_authentication: []
parameters:
- in: path
name: architecture_name
schema:
type: string
required: true
description: Architecture name
example: x86_64
- in: path
name: worker_id
schema:
type: string
required: true
description: Worker id.
example: 1a1f67b948b6:1
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
hostarch:
type: string
xml:
attribute: true
registerserver:
type: string
xml:
attribute: true
workerid:
type: string
xml:
attribute: true
hostlabel:
type: string
sandbox:
type: string
linux:
type: object
properties:
version:
type: string
flavor:
type: string
hardware:
type: object
properties:
cpu:
type: object
properties:
flag:
type: array
items:
type: string
processors:
type: string
jobs:
type: string
xml:
name: worker
example:
hostarch: x86_64
registerserver: http://backend:5252
workerid: 1a1f67b948b6:1
hostlabel: OBS_WORKER_SECURITY_LEVEL_
sandbox: chroot
linux:
version: 5.11.6-1
flavor: default
hardware:
cpu:
flag:
- fpu
- vme
- de
- pse
- tsc
- msr
processors: '8'
jobs: '1'
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: '404'
summary: 'remote error: unknown worker (http://backend:5252/worker/x86_64:1a1f67b948bf:1)'
details: '404 remote error: unknown worker (http://backend:5252/worker/x86_64:1a1f67b948bf:1)'
tags:
- Workers
"/worker?cmd=checkconstraints":
post:
summary: Lists workers which match a constraints filter.
description: |
Given a project, package, repository and architecture, list workers which can build with that restrictions, and also match a constraints filter.
This endpoint doesn't create or modify any data.
More information about constraints can be found in the
[user guide](https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.build_job_constraints.html).
This operation is the same as `POST /worker/command/run?cmd=checkconstraints`.
security:
- basic_authentication: []
parameters:
- in: query
name: project
schema:
type: string
required: true
example: home:user1
description: Project name.
- in: query
name: repository
schema:
type: string
required: true
description: Repository name.
example: openSUSE_Tumbleweed
- in: query
name: arch
schema:
type: string
required: true
description: Architecture name.
example: x86_64
- in: query
name: package
schema:
type: string
required: true
description: Package name.
example: test_package
requestBody:
description: Constraints XML filter
required: true
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
hostlabel:
type: string
sandbox:
type: string
example: chroot
linux:
type: object
properties:
version:
type: object
properties:
min:
type: string
max:
type: string
flavor:
type: string
hardware:
type: object
properties:
cpu:
type: object
properties:
flag:
type: array
items:
type: string
processors:
type: string
disk:
type: object
properties:
size:
type: string
memory:
type: object
properties:
size:
type: string
physicalmemory:
type: object
properties:
size:
type: string
xml:
name: constraints
examples:
cpu_flags:
summary: Cpu flags
value:
hardware:
cpu:
flag:
- mmx
- sse2
processors:
summary: Number of processors
value:
hardware:
processors: 2
mix:
summary: Linux version and linux flavor
value:
linux:
version:
min: 3.0
max: 4.0
flavor: default
responses:
'200':
description: OK
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
count:
type: integer
xml:
attribute: true
name:
type: string
xml:
attribute: true
rev:
type: string
xml:
attribute: true
vrev:
type: string
xml:
attribute: true
srcmd5:
type: string
xml:
attribute: true
entry:
type: array
items:
type: object
properties:
name:
type: string
xml:
attribute: true
md5:
type: string
xml:
attribute: true
size:
type: string
xml:
attribute: true
mtime:
type: string
xml:
attribute: true
xml:
name: directory
examples:
two_workers:
summary: Two Workers Satisfy the Constraints
value:
entry:
- name: x86_64:1a1f67b948b6:1
- name: x86_64:1a1f67b948b6:2
no_workers:
summary: No Workers Satisfy the Constraints
value:
'400':
description: Bad Request.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: missing_parameter
summary: Required Parameter arch missing
'401':
description: |
Unauthorized.
XML Schema used for body validation: [status.rng](../schema/status.rng)
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
examples:
anonymous_user:
value:
code: anonymous_user
summary: Anonymous user is not allowed here - please login
summary: Anonymous User
authentication_required:
value:
code: authentication_required
summary: Unknown user 'Admin' or invalid password
summary: Authentication Required
'404':
description: Not Found.
content:
application/xml; charset=utf-8:
schema:
type: object
properties:
code:
type: string
xml:
attribute: true
origin:
type: string
xml:
attribute: true
summary:
type: string
details:
type: string
data:
type: array
items:
type: string
xml:
name: status
example:
code: 404
summary: repository 'home:Admin/openSUSE_Tumbleweed' has no architecture
'x86_64d'
tags:
- Workers
components:
securitySchemes:
basic_authentication:
type: http
scheme: basic
GitLab_key_authentication:
type: apiKey
in: header
name: X-GitLab-Token
externalDocs:
url: https://openbuildservice.org/help/
description: Open Build Service - Documentation