From 7a557ae9ea09f5d1d3801586336f2743fbc7ccea Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Sat, 27 Oct 2018 00:49:17 +0100 Subject: docs: Make API document versioned OpenAPI doesn't appear to support versioning natively, suggesting instead that separate documents are kept. Rather than doing this manually, let's use a templating tool - Jinja2, in this case - to generate these document for us from a single master document. Note that while we can now auto-generate these whenever we need them (and we tend to avoid storing auto-generated assets in VCS), these change so rarely that it's easier to just store them. This also means we can reference the schemas themselves online. We do this in a following change. Signed-off-by: Stephen Finucane --- docs/api/schemas/generate_schema.py | 36 + docs/api/schemas/patchwork.j2 | 2304 +++++++++++++++++++++++++++++++++++ docs/api/schemas/patchwork.yaml | 2277 ---------------------------------- 3 files changed, 2340 insertions(+), 2277 deletions(-) create mode 100644 docs/api/schemas/generate_schema.py create mode 100644 docs/api/schemas/patchwork.j2 delete mode 100644 docs/api/schemas/patchwork.yaml (limited to 'docs/api/schemas') diff --git a/docs/api/schemas/generate_schema.py b/docs/api/schemas/generate_schema.py new file mode 100644 index 0000000..01ebaed --- /dev/null +++ b/docs/api/schemas/generate_schema.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 + +import os + +import jinja2 + +ROOT_DIR = os.path.dirname(os.path.realpath(__file__)) +VERSIONS = [(1, 0), (1, 1), None] +LATEST_VERSION = (1, 1) + + +def generate_schema(): + env = jinja2.Environment( + loader=jinja2.FileSystemLoader(ROOT_DIR), + trim_blocks=True, + lstrip_blocks=True) + template = env.get_template('patchwork.j2') + + for version in VERSIONS: + version_dir = os.path.join( + ROOT_DIR, 'v%d.%d' % version if version else 'latest') + + if not os.path.exists(version_dir): + os.mkdir(version_dir) + + version_str = '%d.%d' % (version or LATEST_VERSION) + version_url = '%d.%d/' % version if version else '' + version = version or LATEST_VERSION + + with open(os.path.join(version_dir, 'patchwork.yaml'), 'wb') as fh: + template.stream(version=version, version_str=version_str, + version_url=version_url).dump(fh, encoding='utf-8') + + +if __name__ == '__main__': + generate_schema() diff --git a/docs/api/schemas/patchwork.j2 b/docs/api/schemas/patchwork.j2 new file mode 100644 index 0000000..e411b8f --- /dev/null +++ b/docs/api/schemas/patchwork.j2 @@ -0,0 +1,2304 @@ +{# You can obviously ignore the below when editing this template #} +# 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: '{{ version_str }}' +paths: + /api/{{ version_url}}: + get: + description: List API resources. + operationId: api_list + parameters: [] + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Index' + tags: + - api + /api/{{ version_url}}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 + schema: + description: '' + title: '' + type: string + - in: query + name: owner + schema: + description: '' + title: '' + type: string + - in: query + name: public + schema: + description: '' + title: '' + type: string + responses: + '200': + description: '' + headers: + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Bundle' + tags: + - bundles + /api/{{ version_url }}bundles/{id}/: + get: + description: Show a bundle. + operationId: bundles_read + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}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 + schema: + description: '' + title: '' + type: string + - in: query + name: series + schema: + description: '' + title: '' + type: string + - in: query + name: submitter + schema: + description: '' + 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/{{ version_url }}covers/{id}/: + get: + description: Show a cover letter. + operationId: covers_read + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}covers/{id}/comments/: + get: + description: List comments + operationId: cover_comments_list + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + - $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/{{ version_url }}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 + schema: + description: '' + title: '' + type: string + - in: query + name: category + schema: + description: '' + 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 + schema: + description: '' + title: '' + type: string + - in: query + name: patch + schema: + description: '' + title: '' + type: string + - in: query + name: cover + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}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 + schema: + description: '' + title: '' + type: string + - in: query + name: series + schema: + description: '' + title: '' + type: string + - in: query + name: submitter + schema: + description: '' + title: '' + type: string + - in: query + name: delegate + schema: + description: '' + title: '' + type: string + - in: query + name: state + schema: + description: '' + title: '' + type: string + - in: query + name: archived + schema: + description: '' + title: '' + type: string + responses: + '200': + description: '' + headers: + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PatchList' + tags: + - patches + /api/{{ version_url }}patches/{id}/: + get: + description: Show a patch. + operationId: patches_read + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + tags: + - patches + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/PatchDetail' + '404': + description: 'Not found' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + patch: + description: Update a patch (partial). + operationId: patches_partial_update + security: + - basicAuth: [] + - apiKeyAuth: [] + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + 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 + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}patches/{id}/comments/: + get: + description: List comments + operationId: patch_comments_list + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + - $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/{{ version_url }}patches/{patch_id}/checks/: + get: + description: List checks. + operationId: checks_list + parameters: + - in: path + name: patch_id + required: true + schema: + description: '' + title: '' + type: string + - $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 + schema: + description: '' + title: '' + type: string + - in: query + name: state + schema: + description: '' + title: '' + type: string + - in: query + name: context + schema: + description: '' + 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 + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}patches/{patch_id}/checks/{check_id}/: + get: + description: Show a check. + operationId: checks_read + parameters: + - in: path + name: patch_id + required: true + schema: + description: '' + title: '' + type: string + - in: path + name: check_id + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}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/{{ version_url }}people/{id}/: + get: + description: Show a person. + operationId: people_read + security: + - basicAuth: [] + - apiKeyAuth: [] + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}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/{{ version_url }}projects/{id}/: + get: + description: Show a project. + operationId: projects_read + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + 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 + required: true + schema: + description: '' + title: '' + type: string + 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 + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}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 + schema: + description: '' + title: '' + type: string + - in: query + name: project + schema: + description: '' + 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/{{ version_url }}series/{id}/: + get: + description: Show a series. + operationId: series_read + parameters: + - in: path + name: id + required: true + schema: + description: '' + title: '' + type: string + 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/{{ version_url }}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/{{ version_url }}users/{id}/: + get: + description: Show a user. + operationId: users_read + security: + - basicAuth: [] + - apiKeyAuth: [] + parameters: + - in: path + name: id + required: true + schema: + description: A unique integer value identifying this user. + 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 + required: true + schema: + description: A unique integer value identifying this user. + 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 + required: true + schema: + description: A unique integer value identifying this user. + 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 + schema: + description: A page number within the paginated result set. + title: Page + type: integer + PageSize: + in: query + name: per_page + schema: + description: Number of results to return per page. + title: Page size + type: integer + Order: + in: query + name: order + schema: + description: Which field to use when ordering the results. + title: Ordering + type: string + Search: + in: query + name: q + schema: + description: A search term. + title: Search + type: string + BeforeFilter: + in: query + name: before + schema: + description: '' + title: '' + type: string + SinceFilter: + in: query + name: since + schema: + description: '' + 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 +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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 + 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 +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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 +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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' +{% if version > (1, 0) %} + mbox: + title: Mbox + type: string + format: uri + readOnly: true +{% endif %} + series: + type: array + items: + $ref: '#/components/schemas/SeriesEmbedded' + readOnly: true +{% if version > (1, 0) %} + comments: + title: Comments + type: string + format: uri + readOnly: true +{% endif %} + 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 +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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 +{% if version > (1, 0) %} + comments: + title: Comments + type: string + format: uri + readOnly: true +{% endif %} + 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 +{% if version > (1, 0) %} + 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 +{% endif %} + Series: + type: object + properties: + id: + title: ID + type: integer + readOnly: true + url: + title: URL + type: string + format: uri + readOnly: true +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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 +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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 +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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 +{% if version > (1, 0) %} + web_url: + title: Web URL + type: string + format: uri + readOnly: true +{% endif %} + 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 diff --git a/docs/api/schemas/patchwork.yaml b/docs/api/schemas/patchwork.yaml deleted file mode 100644 index 875c120..0000000 --- a/docs/api/schemas/patchwork.yaml +++ /dev/null @@ -1,2277 +0,0 @@ -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.1' -paths: - /api/: - get: - description: List API resources. - operationId: api_list - parameters: [] - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/Index' - tags: - - api - /api/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 - schema: - description: '' - title: '' - type: string - - in: query - name: owner - schema: - description: '' - title: '' - type: string - - in: query - name: public - schema: - description: '' - title: '' - type: string - responses: - '200': - description: '' - headers: - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Bundle' - tags: - - bundles - /api/bundles/{id}/: - get: - description: Show a bundle. - operationId: bundles_read - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - 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/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 - schema: - description: '' - title: '' - type: string - - in: query - name: series - schema: - description: '' - title: '' - type: string - - in: query - name: submitter - schema: - description: '' - 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/covers/{id}/: - get: - description: Show a cover letter. - operationId: covers_read - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - 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/covers/{id}/comments/: - get: - description: List comments - operationId: cover_comments_list - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - - $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/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 - schema: - description: '' - title: '' - type: string - - in: query - name: category - schema: - description: '' - 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 - schema: - description: '' - title: '' - type: string - - in: query - name: patch - schema: - description: '' - title: '' - type: string - - in: query - name: cover - schema: - description: '' - title: '' - type: string - 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/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 - schema: - description: '' - title: '' - type: string - - in: query - name: series - schema: - description: '' - title: '' - type: string - - in: query - name: submitter - schema: - description: '' - title: '' - type: string - - in: query - name: delegate - schema: - description: '' - title: '' - type: string - - in: query - name: state - schema: - description: '' - title: '' - type: string - - in: query - name: archived - schema: - description: '' - title: '' - type: string - responses: - '200': - description: '' - headers: - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/PatchList' - tags: - - patches - /api/patches/{id}/: - get: - description: Show a patch. - operationId: patches_read - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - tags: - - patches - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/PatchDetail' - '404': - description: 'Not found' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - patch: - description: Update a patch (partial). - operationId: patches_partial_update - security: - - basicAuth: [] - - apiKeyAuth: [] - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - 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 - required: true - schema: - description: '' - title: '' - type: string - 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/patches/{id}/comments/: - get: - description: List comments - operationId: patch_comments_list - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - - $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/patches/{patch_id}/checks/: - get: - description: List checks. - operationId: checks_list - parameters: - - in: path - name: patch_id - required: true - schema: - description: '' - title: '' - type: string - - $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 - schema: - description: '' - title: '' - type: string - - in: query - name: state - schema: - description: '' - title: '' - type: string - - in: query - name: context - schema: - description: '' - 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 - required: true - schema: - description: '' - title: '' - type: string - 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/patches/{patch_id}/checks/{check_id}/: - get: - description: Show a check. - operationId: checks_read - parameters: - - in: path - name: patch_id - required: true - schema: - description: '' - title: '' - type: string - - in: path - name: check_id - required: true - schema: - description: '' - title: '' - type: string - 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/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/people/{id}/: - get: - description: Show a person. - operationId: people_read - security: - - basicAuth: [] - - apiKeyAuth: [] - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - 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/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/projects/{id}/: - get: - description: Show a project. - operationId: projects_read - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - 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 - required: true - schema: - description: '' - title: '' - type: string - 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 - required: true - schema: - description: '' - title: '' - type: string - 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/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 - schema: - description: '' - title: '' - type: string - - in: query - name: project - schema: - description: '' - 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/series/{id}/: - get: - description: Show a series. - operationId: series_read - parameters: - - in: path - name: id - required: true - schema: - description: '' - title: '' - type: string - 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/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/users/{id}/: - get: - description: Show a user. - operationId: users_read - security: - - basicAuth: [] - - apiKeyAuth: [] - parameters: - - in: path - name: id - required: true - schema: - description: A unique integer value identifying this user. - 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 - required: true - schema: - description: A unique integer value identifying this user. - 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 - required: true - schema: - description: A unique integer value identifying this user. - 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 - schema: - description: A page number within the paginated result set. - title: Page - type: integer - PageSize: - in: query - name: per_page - schema: - description: Number of results to return per page. - title: Page size - type: integer - Order: - in: query - name: order - schema: - description: Which field to use when ordering the results. - title: Ordering - type: string - Search: - in: query - name: q - schema: - description: A search term. - title: Search - type: string - BeforeFilter: - in: query - name: before - schema: - description: '' - title: '' - type: string - SinceFilter: - in: query - name: since - schema: - description: '' - 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 - 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 - 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 -- cgit v1.2.3