openapi: 3.1.1 info: title: Weblate's REST addons hooks API version: '' x-logo: url: /static/weblate.svg description: "\nThe API is accessible on the ``/api/`` URL and it is based on [Django REST framework](https://www.django-rest-framework.org/).\n\nThe OpenAPI specification is available as feature preview, feedback welcome!\n\n## Authorization\n\n\n\n\n " license: name: GNU General Public License v3 or later url: https://docs.weblate.org/en/latest/contributing/license.html servers: - url: 'http:' description: Weblate tags: - name: hooks description: 'Notification hooks allow external applications to notify Weblate that the VCS repository has been updated. You can use repository endpoints for projects, components and translations to update individual repositories.' paths: /hooks/{service}/: post: operationId: hooks_incoming description: Process incoming webhook from a code hosting site. parameters: - in: path name: service schema: type: string enum: - azure - bitbucket - forgejo - gitea - gitee - github - gitlab - pagure required: true tags: - hooks security: - {} responses: '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse400' description: '' '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse404' examples: NotFound: value: type: client_error errors: - code: not_found detail: Not found. attr: null description: '' '405': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse405' examples: MethodNotAllowed: value: type: client_error errors: - code: method_not_allowed detail: Method "get" not allowed. attr: null description: '' '406': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse406' examples: NotAcceptable: value: type: client_error errors: - code: not_acceptable detail: Could not satisfy the request Accept header. attr: null description: '' '423': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse423' description: '' '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse500' examples: APIException: value: type: server_error errors: - code: error detail: A server error occurred. attr: null description: '' '200': content: application/json: schema: $ref: '#/components/schemas/HookResponse' description: '' headers: X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' components: headers: X-RateLimit-Limit: schema: type: integer description: Allowed number of requests to perform required: true X-RateLimit-Remaining: schema: type: integer description: Remaining number of requests to perform required: true X-RateLimit-Reset: schema: type: integer description: Number of seconds until the rate-limit window resets required: true schemas: ErrorCode406Enum: enum: - not_acceptable type: string description: '* `not_acceptable` - Not Acceptable' Error423: type: object properties: code: $ref: '#/components/schemas/ErrorCode423Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorResponse404: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error404' required: - errors - type HookMatch: type: object properties: repository_matches: type: integer branch_matches: type: integer enabled_hook_matches: type: integer required: - branch_matches - enabled_hook_matches - repository_matches Error406: type: object properties: code: $ref: '#/components/schemas/ErrorCode406Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail Error405: type: object properties: code: $ref: '#/components/schemas/ErrorCode405Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail Error400: type: object properties: code: type: string description: Error code. The examples list common validation and parse error codes. examples: - blank - date - datetime - does_not_exist - empty - incorrect_match - incorrect_type - invalid - invalid_choice - invalid_image - invalid_list - make_aware - max_length - max_string_length - max_value - min_value - no_match - no_name - not_a_list - 'null' - null_characters_not_allowed - overflow - parse_error - required - surrogate_characters_not_allowed - unique detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorResponse400TypeEnum: enum: - validation_error - client_error type: string description: '* `validation_error` - Validation Error * `client_error` - Client Error' HookResponse: type: object properties: message: type: string maxLength: 200 status: $ref: '#/components/schemas/StatusEnum' match_status: $ref: '#/components/schemas/HookMatch' updated_components: type: array items: type: string format: uri readOnly: true required: - message - status - updated_components Error500: type: object properties: code: $ref: '#/components/schemas/ErrorCode500Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorCode500Enum: enum: - error type: string description: '* `error` - Error' ServerErrorEnum: enum: - server_error type: string description: '* `server_error` - Server Error' Error404: type: object properties: code: $ref: '#/components/schemas/ErrorCode404Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorCode404Enum: enum: - not_found type: string description: '* `not_found` - Not Found' ErrorResponse500: type: object properties: type: $ref: '#/components/schemas/ServerErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error500' required: - errors - type ErrorResponse423: type: object properties: type: $ref: '#/components/schemas/ServerErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error423' required: - errors - type ErrorCode423Enum: enum: - repository-locked - component-locked - unknown-locked type: string description: '* `repository-locked` - Repository Locked * `component-locked` - Component Locked * `unknown-locked` - Unknown Locked' ErrorResponse400: type: object properties: type: $ref: '#/components/schemas/ErrorResponse400TypeEnum' errors: type: array items: $ref: '#/components/schemas/Error400' required: - errors - type StatusEnum: enum: - success - failure type: string description: '* `success` - success * `failure` - failure' ErrorResponse406: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error406' required: - errors - type ErrorResponse405: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error405' required: - errors - type ErrorCode405Enum: enum: - method_not_allowed type: string description: '* `method_not_allowed` - Method Not Allowed' ClientErrorEnum: enum: - client_error type: string description: '* `client_error` - Client Error' securitySchemes: bearerAuth: type: apiKey in: header name: Bearer description: "Token-based authentication with required prefix `Bearer`.\n\n- Each user has a personal access token which they can get from their respective user profile. These tokens have the `wlu_` prefix.\n- It is possible to create project tokens whose access to the API is limited to operations to their associated project. These tokens have the `wlp_` prefix.\n " cookieAuth: type: apiKey in: cookie name: sessionid description: Session-based authentication used when user is signed in. tokenAuth: type: apiKey in: header name: Token description: "Token-based authentication with required prefix `Token`.\n\n- Each user has a personal access token which they can get from their respective user profile. These tokens have the `wlu_` prefix.\n- It is possible to create project tokens whose access to the API is limited to operations to their associated project. These tokens have the `wlp_` prefix.\n " externalDocs: url: https://docs.weblate.org/en/latest/index.html description: Official Weblate documentation