@@ -8,7 +8,7 @@ This guide provides an overview of how one can interact with the REST API. For
detailed information on type and response format of the various resources
exposed by the API, refer to the web browsable API. This can be found at:
- https://patchwork.example.com/api/1.1/
+ https://patchwork.example.com/api/1.2/
where `patchwork.example.com` refers to the URL of your Patchwork instance.
@@ -33,6 +33,12 @@ If all you want is reference guides, skip straight to :ref:`rest-api-schemas`.
The API version was bumped to v1.1 in Patchwork v2.1. The older v1.0 API is
still supported. For more information, refer to :ref:`rest-api-versions`.
+.. versionchanged:: 2.2
+
+ The API version was bumped to v1.2 in Patchwork v2.2. The older v1.0 and v1.1
+ APIs are still supported. For more information, refer to
+ :ref:`rest-api-versions`.
+
Getting Started
---------------
@@ -47,16 +53,16 @@ Patchwork instance hosted at `patchwork.example.com`, run:
.. code-block:: shell
- $ curl -s 'https://patchwork.example.com/api/1.1/' | python -m json.tool
+ $ curl -s 'https://patchwork.example.com/api/1.2/' | python -m json.tool
{
- "bundles": "https://patchwork.example.com/api/1.1/bundles/",
- "covers": "https://patchwork.example.com/api/1.1/covers/",
- "events": "https://patchwork.example.com/api/1.1/events/",
- "patches": "https://patchwork.example.com/api/1.1/patches/",
- "people": "https://patchwork.example.com/api/1.1/people/",
- "projects": "https://patchwork.example.com/api/1.1/projects/",
- "series": "https://patchwork.example.com/api/1.1/series/",
- "users": "https://patchwork.example.com/api/1.1/users/"
+ "bundles": "https://patchwork.example.com/api/1.2/bundles/",
+ "covers": "https://patchwork.example.com/api/1.2/covers/",
+ "events": "https://patchwork.example.com/api/1.2/events/",
+ "patches": "https://patchwork.example.com/api/1.2/patches/",
+ "people": "https://patchwork.example.com/api/1.2/people/",
+ "projects": "https://patchwork.example.com/api/1.2/projects/",
+ "series": "https://patchwork.example.com/api/1.2/series/",
+ "users": "https://patchwork.example.com/api/1.2/users/"
}
@@ -69,17 +75,17 @@ well-supported. To repeat the above example using `requests`:, run
$ python
>>> import json
>>> import requests
- >>> r = requests.get('https://patchwork.example.com/api/1.1/')
+ >>> r = requests.get('https://patchwork.example.com/api/1.2/')
>>> print(json.dumps(r.json(), indent=2))
{
- "bundles": "https://patchwork.example.com/api/1.1/bundles/",
- "covers": "https://patchwork.example.com/api/1.1/covers/",
- "events": "https://patchwork.example.com/api/1.1/events/",
- "patches": "https://patchwork.example.com/api/1.1/patches/",
- "people": "https://patchwork.example.com/api/1.1/people/",
- "projects": "https://patchwork.example.com/api/1.1/projects/",
- "series": "https://patchwork.example.com/api/1.1/series/",
- "users": "https://patchwork.example.com/api/1.1/users/"
+ "bundles": "https://patchwork.example.com/api/1.2/bundles/",
+ "covers": "https://patchwork.example.com/api/1.2/covers/",
+ "events": "https://patchwork.example.com/api/1.2/events/",
+ "patches": "https://patchwork.example.com/api/1.2/patches/",
+ "people": "https://patchwork.example.com/api/1.2/people/",
+ "projects": "https://patchwork.example.com/api/1.2/projects/",
+ "series": "https://patchwork.example.com/api/1.2/series/",
+ "users": "https://patchwork.example.com/api/1.2/users/"
}
Tools like `curl` and libraries like `requests` can be used to build anything
@@ -98,7 +104,7 @@ Versioning
----------
By default, all requests will receive the latest version of the API: currently
-``1.1``:
+``1.2``:
.. code-block:: http
@@ -109,7 +115,7 @@ changes breaking your application:
.. code-block:: http
- GET /api/1.1 HTTP/1.1
+ GET /api/1.2 HTTP/1.1
Older API versions will be deprecated and removed over time. For more
information, refer to :ref:`rest-api-versions`.
@@ -263,6 +269,7 @@ Supported Versions
1.0, 2.0, ✓
1.1, 2.1, ✓
+ 1.2, 2.2, ✓
Further information about this and more can typically be found in
:doc:`the release notes </releases/index>`.
@@ -278,6 +285,7 @@ Auto-generated schema documentation is provided below.
/api/rest/schemas/v1.0
/api/rest/schemas/v1.1
+ /api/rest/schemas/v1.2
.. Links
@@ -1,5 +1,5 @@
-API v1.1 (latest)
-=================
+API v1.1
+========
.. openapi:: ../../schemas/v1.1/patchwork.yaml
:examples:
new file mode 100644
@@ -0,0 +1,5 @@
+API v1.2 (latest)
+=================
+
+.. openapi:: ../../schemas/v1.2/patchwork.yaml
+ :examples:
@@ -5,8 +5,8 @@ import os
import jinja2
ROOT_DIR = os.path.dirname(os.path.realpath(__file__))
-VERSIONS = [(1, 0), (1, 1), None]
-LATEST_VERSION = (1, 1)
+VERSIONS = [(1, 0), (1, 1), (1, 2), None]
+LATEST_VERSION = (1, 2)
def generate_schema():
@@ -12,7 +12,7 @@ info:
license:
name: GPL v2 License
url: https://www.gnu.org/licenses/gpl-2.0.html
- version: '1.1'
+ version: '1.2'
paths:
/api/:
get:
@@ -1863,6 +1863,11 @@ components:
type: string
readOnly: true
maxLength: 64
+ patches_mbox:
+ title: Patches mbox
+ type: string
+ format: uri
+ readOnly: true
Series:
type: object
properties:
@@ -1879,6 +1879,13 @@ components:
type: string
readOnly: true
maxLength: 64
+{% endif %}
+{% if version > (1, 1) %}
+ patches_mbox:
+ title: Patches mbox
+ type: string
+ format: uri
+ readOnly: true
{% endif %}
Series:
type: object
new file mode 100644
@@ -0,0 +1,2319 @@
+# DO NOT EDIT THIS FILE. It is generated from a template. Changes should be
+# proposed against the template.
+---
+openapi: '3.0.0'
+info:
+ title: Patchwork API
+ description: >
+ Patchwork is a web-based patch tracking system designed to facilitate the
+ contribution and management of contributions to an open-source project.
+ contact:
+ email: patchwork@lists.ozlabs.org
+ license:
+ name: GPL v2 License
+ url: https://www.gnu.org/licenses/gpl-2.0.html
+ version: '1.2'
+paths:
+ /api/1.2/:
+ get:
+ description: List API resources.
+ operationId: api_list
+ parameters: []
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Index'
+ tags:
+ - api
+ /api/1.2/bundles/:
+ get:
+ description: List bundles.
+ operationId: bundles_list
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ - in: query
+ name: project
+ description: An ID or linkname of a project to filter bundles by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: owner
+ description: An ID or username of a user to filter bundles by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: public
+ description: Show only public (`true`) or private (`false`) bundles.
+ schema:
+ title: ''
+ type: string
+ enum:
+ - 'true'
+ - 'false'
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Bundle'
+ tags:
+ - bundles
+ /api/1.2/bundles/{id}/:
+ get:
+ description: Show a bundle.
+ operationId: bundles_read
+ parameters:
+ - in: path
+ name: id
+ required: true
+ description: A unique integer value identifying this bundle.
+ schema:
+ title: ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Bundle'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - bundles
+ /api/1.2/covers/:
+ get:
+ description: List cover letters.
+ operationId: covers_list
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ - $ref: '#/components/parameters/BeforeFilter'
+ - $ref: '#/components/parameters/SinceFilter'
+ - in: query
+ name: project
+ description: >
+ An ID or linkname of a project to filter cover letters by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: series
+ description: An ID of a series to filter cover letters by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: submitter
+ description: >
+ An ID or email address of a person to filter cover letters by.
+ schema:
+ title: ''
+ type: string
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CoverLetterList'
+ tags:
+ - covers
+ /api/1.2/covers/{id}/:
+ get:
+ description: Show a cover letter.
+ operationId: covers_read
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this cover letter.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CoverLetterDetail'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - covers
+ /api/1.2/covers/{id}/comments/:
+ get:
+ description: List comments
+ operationId: cover_comments_list
+ parameters:
+ - in: path
+ name: id
+ description: >
+ A unique integer value identifying the parent cover letter.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Comment'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - comments
+ /api/1.2/events/:
+ get:
+ description: List events.
+ operationId: events_list
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ - $ref: '#/components/parameters/BeforeFilter'
+ - $ref: '#/components/parameters/SinceFilter'
+ - in: query
+ name: project
+ description: An ID or linkname of a project to filter events by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: category
+ description: An event category to filter events by.
+ schema:
+ title: ''
+ type: string
+ enum:
+ - cover-created
+ - patch-created
+ - patch-completed
+ - patch-state-changed
+ - patch-delegated
+ - check-created
+ - series-created
+ - series-completed
+ - in: query
+ name: series
+ description: An ID of a series to filter events by.
+ schema:
+ title: ''
+ type: integer
+ - in: query
+ name: patch
+ description: An ID of a patch to filter events by.
+ schema:
+ title: ''
+ type: integer
+ - in: query
+ name: cover
+ description: An ID of a cover letter to filter events by.
+ schema:
+ title: ''
+ type: integer
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ oneOf:
+ - $ref: '#/components/schemas/EventCoverCreated'
+ - $ref: '#/components/schemas/EventPatchCreated'
+ - $ref: '#/components/schemas/EventPatchCompleted'
+ - $ref: '#/components/schemas/EventPatchStateChanged'
+ - $ref: '#/components/schemas/EventPatchDelegated'
+ - $ref: '#/components/schemas/EventCheckCreated'
+ - $ref: '#/components/schemas/EventSeriesCreated'
+ - $ref: '#/components/schemas/EventSeriesCompleted'
+ discriminator:
+ propertyName: category
+ mapping:
+ cover-created: '#/components/schemas/EventCoverCreated'
+ patch-created: '#/components/schemas/EventPatchCreated'
+ patch-completed: >
+ '#/components/schemas/EventPatchCompleted'
+ patch-state-changed: >
+ '#/components/schemas/EventPatchStateChanged'
+ patch-delegated: >
+ '#/components/schemas/EventPatchDelegated'
+ check-created: '#/components/schemas/EventCheckCreated'
+ series-created: '#/components/schemas/EventSeriesCreated'
+ series-completed: >
+ '#/components/schemas/EventSeriesCompleted'
+ tags:
+ - events
+ /api/1.2/patches/:
+ get:
+ description: List patches.
+ operationId: patches_list
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ - $ref: '#/components/parameters/BeforeFilter'
+ - $ref: '#/components/parameters/SinceFilter'
+ - in: query
+ name: project
+ description: An ID or linkname of a project to filter patches by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: series
+ description: An ID of a series to filter patches by.
+ schema:
+ title: ''
+ type: integer
+ - in: query
+ name: submitter
+ description: >
+ An ID or email address of a person to filter patches by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: delegate
+ description: An ID or username of a user to filter patches by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: state
+ description: A slug representation of a state to filter patches by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: archived
+ description: >
+ Show only archived (`true`) or non-archived (`false`) patches.
+ schema:
+ title: ''
+ type: string
+ enum:
+ - 'true'
+ - 'false'
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/PatchList'
+ tags:
+ - patches
+ /api/1.2/patches/{id}/:
+ get:
+ description: Show a patch.
+ operationId: patches_read
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this patch.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PatchDetail'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - patches
+ patch:
+ description: Update a patch (partial).
+ operationId: patches_partial_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this patch.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Patch'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PatchDetail'
+ '400':
+ description: Invalid Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorPatchUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - patches
+ put:
+ description: Update a patch.
+ operationId: patches_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this patch.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Patch'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PatchDetail'
+ '400':
+ description: Invalid Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorPatchUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - patches
+ /api/1.2/patches/{id}/comments/:
+ get:
+ description: List comments
+ operationId: patch_comments_list
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying the parent patch.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Comment'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - comments
+ /api/1.2/patches/{patch_id}/checks/:
+ get:
+ description: List checks.
+ operationId: checks_list
+ parameters:
+ - in: path
+ name: patch_id
+ description: A unique integer value identifying the parent patch.
+ required: true
+ schema:
+ title: Patch ID
+ type: integer
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ - $ref: '#/components/parameters/BeforeFilter'
+ - $ref: '#/components/parameters/SinceFilter'
+ - in: query
+ name: user
+ description: An ID or username of a user to filter checks by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: state
+ description: A check state to filter checks by.
+ schema:
+ title: ''
+ type: string
+ enum:
+ - pending
+ - success
+ - warning
+ - fail
+ - in: query
+ name: context
+ description: A check context to filter checks by.
+ schema:
+ title: ''
+ type: string
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Check'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - checks
+ post:
+ description: Create a check.
+ operationId: checks_create
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: patch_id
+ description: A unique integer value identifying the parent patch.
+ required: true
+ schema:
+ title: Patch ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Check'
+ responses:
+ '201':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Check'
+ '400':
+ description: Invalid Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorCheckCreate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - checks
+ /api/1.2/patches/{patch_id}/checks/{check_id}/:
+ get:
+ description: Show a check.
+ operationId: checks_read
+ parameters:
+ - in: path
+ name: patch_id
+ description: A unique integer value identifying the parent patch.
+ required: true
+ schema:
+ title: Patch ID
+ type: integer
+ - in: path
+ name: check_id
+ description: A unique integer value identifying this check.
+ required: true
+ schema:
+ title: Check ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Check'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - checks
+ /api/1.2/people/:
+ get:
+ description: List people.
+ operationId: people_list
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Person'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - people
+ /api/1.2/people/{id}/:
+ get:
+ description: Show a person.
+ operationId: people_read
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this person.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Person'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - people
+ /api/1.2/projects/:
+ get:
+ description: List projects.
+ operationId: projects_list
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Project'
+ tags:
+ - projects
+ /api/1.2/projects/{id}/:
+ get:
+ description: Show a project.
+ operationId: projects_read
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this project.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Project'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - projects
+ patch:
+ description: Update a project (partial).
+ operationId: projects_partial_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this project.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Project'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Project'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorProjectUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - projects
+ put:
+ description: Update a project.
+ operationId: projects_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this project.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/Project'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Project'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorProjectUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - projects
+ /api/1.2/series/:
+ get:
+ description: List series.
+ operationId: series_list
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ - $ref: '#/components/parameters/BeforeFilter'
+ - $ref: '#/components/parameters/SinceFilter'
+ - in: query
+ name: submitter
+ description: An ID or email address of a person to filter series by.
+ schema:
+ title: ''
+ type: string
+ - in: query
+ name: project
+ description: An ID or linkname of a project to filter series by.
+ schema:
+ title: ''
+ type: string
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Series'
+ tags:
+ - series
+ /api/1.2/series/{id}/:
+ get:
+ description: Show a series.
+ operationId: series_read
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this series.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Series'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - series
+ /api/1.2/users/:
+ get:
+ description: List users.
+ operationId: users_list
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - $ref: '#/components/parameters/Page'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/Order'
+ - $ref: '#/components/parameters/Search'
+ responses:
+ '200':
+ description: ''
+ headers:
+ Link:
+ $ref: '#/components/headers/Link'
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/User'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - users
+ /api/1.2/users/{id}/:
+ get:
+ description: Show a user.
+ operationId: users_read
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this user.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - users
+ patch:
+ description: Update a user (partial).
+ operationId: users_partial_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this user.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/User'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorUserUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - users
+ put:
+ description: Update a user.
+ operationId: users_update
+ security:
+ - basicAuth: []
+ - apiKeyAuth: []
+ parameters:
+ - in: path
+ name: id
+ description: A unique integer value identifying this user.
+ required: true
+ schema:
+ title: ID
+ type: integer
+ requestBody:
+ $ref: '#/components/requestBodies/User'
+ responses:
+ '200':
+ description: ''
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ '400':
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorUserUpdate'
+ '403':
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ tags:
+ - users
+components:
+ securitySchemes:
+ basicAuth:
+ type: http
+ scheme: basic
+ apiKeyAuth:
+ type: http
+ scheme: bearer
+ parameters:
+ Page:
+ in: query
+ name: page
+ description: A page number within the paginated result set.
+ schema:
+ title: Page
+ type: integer
+ PageSize:
+ in: query
+ name: per_page
+ description: Number of results to return per page.
+ schema:
+ title: Page size
+ type: integer
+ Order:
+ in: query
+ name: order
+ description: Which field to use when ordering the results.
+ schema:
+ title: Ordering
+ type: string
+ Search:
+ in: query
+ name: q
+ description: A search term.
+ schema:
+ title: Search
+ type: string
+ BeforeFilter:
+ in: query
+ name: before
+ description: Latest date-time to retrieve results for.
+ schema:
+ title: ''
+ type: string
+ SinceFilter:
+ in: query
+ name: since
+ description: Earliest date-time to retrieve results for.
+ schema:
+ title: ''
+ type: string
+ headers:
+ Link:
+ description: >
+ Links to related resources, in the format defined by
+ [RFC 5988](https://tools.ietf.org/html/rfc5988#section-5).
+ This will include a link with relation type `next` to the
+ next page, if there is a next page.
+ schema:
+ type: string
+ requestBodies:
+ Check:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CheckCreate'
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CheckCreate'
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/CheckCreate'
+ Patch:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PatchUpdate'
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/PatchUpdate'
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/PatchUpdate'
+ Project:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Project'
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/Project'
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/Project'
+ User:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/User'
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/User'
+ schemas:
+ Index:
+ type: object
+ properties:
+ bundles:
+ title: Bundles URL
+ type: string
+ format: uri
+ readOnly: true
+ covers:
+ title: Covers URL
+ type: string
+ format: uri
+ readOnly: true
+ events:
+ title: Events URL
+ type: string
+ format: uri
+ readOnly: true
+ patches:
+ title: Patches URL
+ type: string
+ format: uri
+ readOnly: true
+ people:
+ title: People URL
+ type: string
+ format: uri
+ readOnly: true
+ projects:
+ title: Projects URL
+ type: string
+ format: uri
+ readOnly: true
+ users:
+ title: Users URL
+ type: string
+ format: uri
+ readOnly: true
+ Bundle:
+ required:
+ - name
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ project:
+ $ref: '#/components/schemas/ProjectEmbedded'
+ name:
+ title: Name
+ type: string
+ minLength: 1
+ maxLength: 50
+ owner:
+ type: object
+ title: Owner
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/UserEmbedded'
+ patches:
+ type: array
+ items:
+ $ref: '#/components/schemas/PatchEmbedded'
+ readOnly: true
+ uniqueItems: true
+ public:
+ title: Public
+ type: boolean
+ mbox:
+ title: Mbox
+ type: string
+ format: uri
+ readOnly: true
+ Check:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: Url
+ type: string
+ format: uri
+ readOnly: true
+ user:
+ $ref: '#/components/schemas/UserEmbedded'
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ state:
+ title: State
+ description: The state of the check.
+ type: string
+ enum:
+ - pending
+ - success
+ - warning
+ - fail
+ target_url:
+ title: Target URL
+ description: >
+ The target URL to associate with this check. This should be
+ specific to the patch.
+ type: string
+ format: uri
+ maxLength: 200
+ nullable: true
+ context:
+ title: Context
+ description: >
+ A label to discern check from checks of other testing systems.
+ type: string
+ pattern: ^[-a-zA-Z0-9_]+$
+ minLength: 1
+ maxLength: 255
+ description:
+ title: Description
+ description: A brief description of the check.
+ type: string
+ nullable: true
+ CheckCreate:
+ type: object
+ required:
+ - state
+ properties:
+ state:
+ title: State
+ description: The state of the check.
+ type: string
+ enum:
+ - pending
+ - success
+ - warning
+ - fail
+ target_url:
+ title: Target URL
+ description:
+ The target URL to associate with this check. This should be
+ specific to the patch.
+ type: string
+ format: uri
+ maxLength: 200
+ nullable: true
+ context:
+ title: Context
+ description: >
+ A label to discern check from checks of other testing systems.
+ type: string
+ pattern: ^[-a-zA-Z0-9_]+$
+ minLength: 1
+ maxLength: 255
+ description:
+ title: Description
+ description: A brief description of the check.
+ type: string
+ nullable: true
+ Comment:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ msgid:
+ title: Message ID
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ subject:
+ title: Subject
+ type: string
+ readOnly: true
+ submitter:
+ type: object
+ title: Submitter
+ allOf:
+ - $ref: '#/components/schemas/PersonEmbedded'
+ content:
+ title: Content
+ type: string
+ readOnly: true
+ minLength: 1
+ headers:
+ title: Headers
+ type: array
+ items:
+ type: string
+ readOnly: true
+ CoverLetterList:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ project:
+ $ref: '#/components/schemas/ProjectEmbedded'
+ msgid:
+ title: Message ID
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ submitter:
+ type: object
+ title: Submitter
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/PersonEmbedded'
+ mbox:
+ title: Mbox
+ type: string
+ format: uri
+ readOnly: true
+ series:
+ type: array
+ items:
+ $ref: '#/components/schemas/SeriesEmbedded'
+ readOnly: true
+ comments:
+ title: Comments
+ type: string
+ format: uri
+ readOnly: true
+ CoverLetterDetail:
+ allOf:
+ - $ref: '#/components/schemas/CoverLetterList'
+ - properties:
+ headers:
+ title: Headers
+ type: array
+ items:
+ type: string
+ readOnly: true
+ content:
+ title: Content
+ type: string
+ readOnly: true
+ minLength: 1
+ EventBase:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ category:
+ title: Category
+ description: The category of the event.
+ type: string
+ readOnly: true
+ project:
+ $ref: '#/components/schemas/ProjectEmbedded'
+ date:
+ title: Date
+ description: The time this event was created.
+ type: string
+ format: iso8601
+ readOnly: true
+ payload:
+ type: object
+ EventCoverCreated:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - cover-created
+ payload:
+ properties:
+ cover:
+ title: Cover
+ type: string
+ readOnly: true
+ EventPatchCreated:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - patch-created
+ payload:
+ properties:
+ patch:
+ $ref: '#/components/schemas/PatchEmbedded'
+ EventPatchCompleted:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - patch-completed
+ payload:
+ properties:
+ patch:
+ $ref: '#/components/schemas/PatchEmbedded'
+ series:
+ $ref: '#/components/schemas/SeriesEmbedded'
+ EventPatchStateChanged:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - patch-state-changed
+ payload:
+ properties:
+ patch:
+ $ref: '#/components/schemas/PatchEmbedded'
+ previous_state:
+ title: Previous state
+ type: string
+ current_state:
+ title: Current state
+ type: string
+ EventPatchDelegated:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - patch-delegated
+ payload:
+ properties:
+ patch:
+ $ref: '#/components/schemas/PatchEmbedded'
+ previous_delegate:
+ allOf:
+ - $ref: '#/components/schemas/UserEmbedded'
+ - title: Previous delegate
+ current_delegate:
+ allOf:
+ - $ref: '#/components/schemas/UserEmbedded'
+ - title: Current delegate
+ EventCheckCreated:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - check-created
+ payload:
+ properties:
+ patch:
+ $ref: '#/components/schemas/PatchEmbedded'
+ check:
+ $ref: '#/components/schemas/CheckEmbedded'
+ EventSeriesCreated:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - series-created
+ payload:
+ properties:
+ series:
+ $ref: '#/components/schemas/SeriesEmbedded'
+ EventSeriesCompleted:
+ allOf:
+ - $ref: '#/components/schemas/EventBase'
+ - type: object
+ properties:
+ category:
+ enum:
+ - series-completed
+ payload:
+ properties:
+ series:
+ $ref: '#/components/schemas/SeriesEmbedded'
+ PatchList:
+ required:
+ - state
+ - delegate
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ project:
+ $ref: '#/components/schemas/ProjectEmbedded'
+ msgid:
+ title: Message ID
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ commit_ref:
+ title: Commit ref
+ type: string
+ maxLength: 255
+ nullable: true
+ pull_url:
+ title: Pull URL
+ type: string
+ format: uri
+ maxLength: 255
+ nullable: true
+ state:
+ title: State
+ type: string
+ archived:
+ title: Archived
+ type: boolean
+ hash:
+ title: Hash
+ type: string
+ readOnly: true
+ minLength: 1
+ submitter:
+ type: object
+ title: Submitter
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/PersonEmbedded'
+ delegate:
+ type: object
+ title: Delegate
+ nullable: true
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/UserEmbedded'
+ mbox:
+ title: Mbox
+ type: string
+ format: uri
+ readOnly: true
+ series:
+ type: array
+ items:
+ $ref: '#/components/schemas/SeriesEmbedded'
+ readOnly: true
+ comments:
+ title: Comments
+ type: string
+ format: uri
+ readOnly: true
+ check:
+ title: Check
+ type: string
+ readOnly: true
+ enum:
+ - pending
+ - success
+ - warning
+ - fail
+ checks:
+ title: Checks
+ type: string
+ format: uri
+ readOnly: true
+ tags:
+ title: Tags
+ type: array
+ items:
+ type: string
+ readOnly: true
+ PatchDetail:
+ allOf:
+ - $ref: '#/components/schemas/PatchList'
+ - properties:
+ headers:
+ title: Headers
+ type: array
+ items:
+ type: string
+ readOnly: true
+ content:
+ title: Content
+ type: string
+ readOnly: true
+ minLength: 1
+ diff:
+ title: Diff
+ type: string
+ readOnly: true
+ minLength: 1
+ prefixes:
+ title: Prefixes
+ type: array
+ items:
+ type: string
+ readOnly: true
+ PatchUpdate:
+ type: object
+ properties:
+ commit_ref:
+ title: Commit ref
+ type: string
+ maxLength: 255
+ nullable: true
+ pull_url:
+ title: Pull URL
+ type: string
+ format: uri
+ maxLength: 255
+ nullable: true
+ state:
+ title: State
+ type: string
+ archived:
+ title: Archived
+ type: boolean
+ delegate:
+ title: Delegate
+ type: integer
+ nullable: true
+ Person:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ email:
+ title: Email
+ type: string
+ format: email
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ user:
+ type: object
+ title: User
+ nullable: true
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/UserEmbedded'
+ Project:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ link_name:
+ title: Link name
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ list_id:
+ title: List ID
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 255
+ list_email:
+ title: List email
+ type: string
+ format: email
+ readOnly: true
+ minLength: 1
+ maxLength: 200
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ maxLength: 2000
+ scm_url:
+ title: SCM URL
+ type: string
+ format: uri
+ maxLength: 2000
+ webscm_url:
+ title: Web SCM URL
+ type: string
+ format: uri
+ maxLength: 2000
+ maintainers:
+ type: array
+ items:
+ $ref: '#/components/schemas/UserEmbedded'
+ readOnly: true
+ uniqueItems: true
+ subject_match:
+ title: Subject match
+ description: >
+ Regex to match the subject against if only part of emails sent to
+ the list belongs to this project. Will be used with IGNORECASE and
+ MULTILINE flags. If rules for more projects match the first one
+ returned from DB is chosen; empty field serves as a default for
+ every email which has no other match.
+ type: string
+ readOnly: true
+ maxLength: 64
+ patches_mbox:
+ title: Patches mbox
+ type: string
+ format: uri
+ readOnly: true
+ Series:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ project:
+ $ref: '#/components/schemas/ProjectEmbedded'
+ name:
+ title: Name
+ description: >
+ An optional name to associate with the series, e.g. "John's PCI
+ series".
+ type: string
+ maxLength: 255
+ nullable: true
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ submitter:
+ type: object
+ title: Submitter
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/PersonEmbedded'
+ version:
+ title: Version
+ description: >
+ Version of series as indicated by the subject prefix(es).
+ type: integer
+ total:
+ title: Total
+ description: >
+ Number of patches in series as indicated by the subject prefix(es).
+ type: integer
+ readOnly: true
+ received_total:
+ title: Received total
+ type: integer
+ readOnly: true
+ received_all:
+ title: Received all
+ type: boolean
+ readOnly: true
+ mbox:
+ title: Mbox
+ type: string
+ format: uri
+ readOnly: true
+ cover_letter:
+ $ref: '#/components/schemas/CoverLetterEmbedded'
+ patches:
+ type: array
+ items:
+ $ref: '#/components/schemas/PatchEmbedded'
+ readOnly: true
+ uniqueItems: true
+ User:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ username:
+ title: Username
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 150
+ first_name:
+ title: First name
+ type: string
+ maxLength: 30
+ last_name:
+ title: Last name
+ type: string
+ maxLength: 150
+ email:
+ title: Email address
+ type: string
+ format: email
+ readOnly: true
+ minLength: 1
+ CheckEmbedded:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: Url
+ type: string
+ format: uri
+ readOnly: true
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ state:
+ title: State
+ description: The state of the check.
+ type: string
+ readOnly: true
+ enum:
+ - pending
+ - success
+ - warning
+ - fail
+ target_url:
+ title: Target url
+ description: >
+ The target URL to associate with this check. This should be specific
+ to the patch.
+ type: string
+ format: uri
+ maxLength: 200
+ nullable: true
+ readOnly: true
+ context:
+ title: Context
+ description: >
+ A label to discern check from checks of other testing systems.
+ type: string
+ pattern: ^[-a-zA-Z0-9_]+$
+ maxLength: 255
+ minLength: 1
+ readOnly: true
+ CoverLetterEmbedded:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ msgid:
+ title: Message ID
+ type: string
+ readOnly: true
+ minLength: 1
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ mbox:
+ title: Mbox
+ type: string
+ format: uri
+ readOnly: true
+ PatchEmbedded:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ msgid:
+ title: Message ID
+ type: string
+ readOnly: true
+ minLength: 1
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ mbox:
+ title: Mbox
+ type: string
+ format: uri
+ readOnly: true
+ PersonEmbedded:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ email:
+ title: Email
+ type: string
+ format: email
+ readOnly: true
+ minLength: 1
+ ProjectEmbedded:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ name:
+ title: Name
+ type: string
+ readOnly: true
+ minLength: 1
+ link_name:
+ title: Link name
+ type: string
+ readOnly: true
+ maxLength: 255
+ minLength: 1
+ list_id:
+ title: List ID
+ type: string
+ readOnly: true
+ maxLength: 255
+ minLength: 1
+ list_email:
+ title: List email
+ type: string
+ format: email
+ readOnly: true
+ maxLength: 200
+ minLength: 1
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ maxLength: 2000
+ scm_url:
+ title: SCM URL
+ type: string
+ format: uri
+ readOnly: true
+ maxLength: 2000
+ webscm_url:
+ title: WebSCM URL
+ type: string
+ format: uri
+ readOnly: true
+ maxLength: 2000
+ SeriesEmbedded:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ name:
+ title: Name
+ description: >
+ An optional name to associate with the series, e.g. "John's PCI
+ series".
+ type: string
+ readOnly: true
+ maxLength: 255
+ nullable: true
+ date:
+ title: Date
+ type: string
+ format: iso8601
+ readOnly: true
+ version:
+ title: Version
+ description: >
+ Version of series as indicated by the subject prefix(es).
+ type: integer
+ readOnly: true
+ mbox:
+ title: Mbox
+ type: string
+ format: uri
+ readOnly: true
+ UserEmbedded:
+ type: object
+ properties:
+ id:
+ title: ID
+ type: integer
+ readOnly: true
+ url:
+ title: URL
+ type: string
+ format: uri
+ readOnly: true
+ username:
+ title: Username
+ type: string
+ readOnly: true
+ minLength: 1
+ maxLength: 150
+ first_name:
+ title: First name
+ type: string
+ maxLength: 30
+ readOnly: true
+ last_name:
+ title: Last name
+ type: string
+ maxLength: 150
+ readOnly: true
+ email:
+ title: Email address
+ type: string
+ format: email
+ readOnly: true
+ minLength: 1
+ Error:
+ type: object
+ properties:
+ detail:
+ title: Detail
+ type: string
+ readOnly: true
+ ErrorCheckCreate:
+ type: object
+ properties:
+ state:
+ title: State
+ type: string
+ readOnly: true
+ target_url:
+ title: Target URL
+ type: string
+ readOnly: true
+ context:
+ title: Context
+ type: string
+ readOnly: true
+ description:
+ title: Description
+ type: string
+ readOnly: true
+ ErrorPatchUpdate:
+ type: object
+ properties:
+ state:
+ title: State
+ type: string
+ readOnly: true
+ delegate:
+ title: Delegate
+ type: string
+ readOnly: true
+ commit_ref:
+ title: Commit ref
+ type: string
+ readOnly: true
+ archived:
+ title: Archived
+ type: string
+ readOnly: true
+ ErrorProjectUpdate:
+ type: object
+ properties:
+ web_url:
+ title: Web URL
+ type: string
+ format: uri
+ readOnly: true
+ scm_url:
+ title: SCM URL
+ type: string
+ format: uri
+ readOnly: true
+ webscm_url:
+ title: Web SCM URL
+ type: string
+ format: uri
+ readOnly: true
+ ErrorUserUpdate:
+ type: object
+ properties:
+ first_name:
+ title: First name
+ type: string
+ readOnly: true
+ last_name:
+ title: First name
+ type: string
+ readOnly: true
Signed-off-by: Mete Polat <metepolat2000@gmail.com> --- In the index.rst (section 'supported versions') we have to specify since which patchwork version an api version is available. If this patch will be integrated in a patchwork version other than 2.2, the version number has to be updated here. docs/api/rest/index.rst | 50 +- docs/api/rest/schemas/v1.1.rst | 4 +- docs/api/rest/schemas/v1.2.rst | 5 + docs/api/schemas/generate_schema.py | 4 +- docs/api/schemas/latest/patchwork.yaml | 7 +- docs/api/schemas/patchwork.j2 | 7 + docs/api/schemas/v1.2/patchwork.yaml | 2319 ++++++++++++++++++++++++ 7 files changed, 2370 insertions(+), 26 deletions(-) create mode 100644 docs/api/rest/schemas/v1.2.rst create mode 100644 docs/api/schemas/v1.2/patchwork.yaml