openapi: 3.1.0 x-pagination: none servers: - url: '{host}' variables: host: default: http://localhost description: Server host. info: version: '1.0' title: Redocly Scout agent description: Scout Worker API. termsOfService: https://redocly.com/subscription-agreement contact: name: Redocly Support email: team@redocly.com url: https://github.com/Redocly/redocly license: name: Redocly url: https://redocly.com/subscription-agreement tags: - name: Health description: Operations related to health checks. - name: Webhooks description: Operations related to incoming git webhooks. paths: /health: get: tags: - Health security: [] summary: Get health status operationId: health responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/Health' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError' /webhooks/github: post: tags: - Webhooks security: - GithubApiKey: [] summary: Create GitHub webhook event description: >- Registers and start process GitHub repository event. For now only push and create pull request events are supported. operationId: processGithubWebhook requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/push' - $ref: '#/components/schemas/pull-request-opened' - $ref: '#/components/schemas/pull-request-reopened' - $ref: '#/components/schemas/pull-request-synchronize' responses: '200': description: OK. content: application/problem+json: schema: $ref: '#/components/schemas/WebhookResponse' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' /webhooks/gitlab: post: tags: - Webhooks security: - GitlabApiKey: [] summary: Create GitLab webhook event description: >- Register and start to process GitLab repository event. For now only push and create merge request events are supported. operationId: processGitlabWebhook requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/push-2' - $ref: '#/components/schemas/merge-request-open' - $ref: '#/components/schemas/merge-request-reopen' - $ref: '#/components/schemas/merge-request-update' responses: '200': description: OK. content: application/problem+json: schema: $ref: '#/components/schemas/WebhookResponse' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' components: securitySchemes: GithubApiKey: type: apiKey in: header name: x-hub-signature-256 GitlabApiKey: type: apiKey in: header name: x-gitlab-token schemas: Health: type: object properties: scout: type: string const: ok readOnly: true description: Scout health status. required: - scout committer: description: Metaproperties for Git author/committer information. required: - email - name type: object properties: name: type: string description: The git author's name. email: description: The git author's email address. oneOf: - type: string format: email - type: 'null' date: type: string format: date-time username: type: string additionalProperties: false title: Committer commit: required: - id - tree_id - distinct - message - timestamp - url - author - committer - added - removed - modified type: object properties: id: type: string tree_id: type: string distinct: type: boolean description: >- Whether this commit is distinct from any that have been pushed before. message: type: string description: The commit message. timestamp: type: string format: date-time description: The ISO 8601 timestamp of the commit. url: type: string format: uri description: URL that points to the commit API resource. author: $ref: '#/components/schemas/committer' committer: $ref: '#/components/schemas/committer' added: type: array items: type: string description: An array of files added in the commit. modified: type: array items: type: string description: An array of files modified by the commit. removed: type: array items: type: string description: An array of files removed in the commit. additionalProperties: false title: Commit user: type: object required: - login - id - node_id - avatar_url - gravatar_id - url - html_url - followers_url - following_url - gists_url - starred_url - subscriptions_url - organizations_url - repos_url - events_url - received_events_url - type - site_admin properties: login: type: string id: type: integer node_id: type: string name: type: string email: type: - string - 'null' avatar_url: type: string format: uri gravatar_id: type: string url: type: string format: uri html_url: type: string format: uri followers_url: type: string format: uri following_url: type: string format: uri-template gists_url: type: string format: uri-template starred_url: type: string format: uri-template subscriptions_url: type: string format: uri organizations_url: type: string format: uri repos_url: type: string format: uri events_url: type: string format: uri-template received_events_url: type: string format: uri type: type: string enum: - Bot - User - Organization site_admin: type: boolean additionalProperties: false title: User license: type: object required: - key - name - spdx_id - url - node_id properties: key: type: string name: type: string spdx_id: type: string url: type: - string - 'null' format: uri node_id: type: string additionalProperties: false title: License repository: description: A git repository. type: object required: - id - node_id - name - full_name - private - owner - html_url - description - fork - url - forks_url - keys_url - collaborators_url - teams_url - hooks_url - issue_events_url - events_url - assignees_url - branches_url - tags_url - blobs_url - git_tags_url - git_refs_url - trees_url - statuses_url - languages_url - stargazers_url - contributors_url - subscribers_url - subscription_url - commits_url - git_commits_url - comments_url - issue_comment_url - contents_url - compare_url - merges_url - archive_url - downloads_url - issues_url - pulls_url - milestones_url - notifications_url - labels_url - releases_url - deployments_url - created_at - updated_at - pushed_at - git_url - ssh_url - clone_url - svn_url - homepage - size - stargazers_count - watchers_count - language - has_issues - has_projects - has_downloads - has_wiki - has_pages - forks_count - mirror_url - archived - open_issues_count - license - forks - open_issues - watchers - default_branch - is_template - web_commit_signoff_required - topics - visibility properties: id: type: integer description: Unique identifier of the repository. node_id: type: string description: The GraphQL identifier of the repository. name: type: string description: The name of the repository. full_name: type: string description: The full, globally unique, name of the repository. private: type: boolean description: Whether the repository is private or public. owner: $ref: '#/components/schemas/user' html_url: type: string format: uri description: The URL to view the repository on GitHub.com. description: type: - string - 'null' description: The repository description. fork: type: boolean description: Whether the repository is a fork. url: type: string format: uri description: >- The URL to get more information about the repository from the GitHub API. forks_url: type: string format: uri description: The API URL to list the forks of the repository. keys_url: type: string format: uri-template description: >- A template for the API URL to get information about deploy keys on the repository. collaborators_url: type: string format: uri-template description: >- A template for the API URL to get information about collaborators of the repository. teams_url: type: string format: uri description: The API URL to list the teams on the repository. hooks_url: type: string format: uri description: The API URL to list the hooks on the repository. issue_events_url: type: string format: uri-template description: >- A template for the API URL to get information about issue events on the repository. events_url: type: string format: uri description: The API URL to list the events of the repository. assignees_url: type: string format: uri-template description: >- A template for the API URL to list the available assignees for issues in the repository. branches_url: type: string format: uri-template description: >- A template for the API URL to get information about branches in the repository. tags_url: type: string format: uri description: The API URL to get information about tags on the repository. blobs_url: type: string format: uri-template description: >- A template for the API URL to create or retrieve a raw Git blob in the repository. git_tags_url: type: string format: uri-template description: >- A template for the API URL to get information about Git tags of the repository. git_refs_url: type: string format: uri-template description: >- A template for the API URL to get information about Git refs of the repository. trees_url: type: string format: uri-template description: >- A template for the API URL to create or retrieve a raw Git tree of the repository. statuses_url: type: string format: uri-template description: >- A template for the API URL to get information about statuses of a commit. languages_url: type: string format: uri description: >- The API URL to get information about the languages of the repository. stargazers_url: type: string format: uri description: The API URL to list the stargazers on the repository. contributors_url: type: string format: uri description: >- A template for the API URL to list the contributors to the repository. subscribers_url: type: string format: uri description: The API URL to list the subscribers on the repository. subscription_url: type: string format: uri description: The API URL to subscribe to notifications for this repository. commits_url: type: string format: uri-template description: >- A template for the API URL to get information about commits on the repository. git_commits_url: type: string format: uri-template description: >- A template for the API URL to get information about Git commits of the repository. comments_url: type: string format: uri-template description: >- A template for the API URL to get information about comments on the repository. issue_comment_url: type: string format: uri-template description: >- A template for the API URL to get information about issue comments on the repository. contents_url: type: string format: uri-template description: A template for the API URL to get the contents of the repository. compare_url: type: string format: uri-template description: A template for the API URL to compare two commits or refs. merges_url: type: string format: uri description: The API URL to merge branches in the repository. archive_url: type: string format: uri-template description: A template for the API URL to download the repository as an archive. downloads_url: type: string format: uri description: The API URL to list the downloads on the repository. issues_url: type: string format: uri-template description: >- A template for the API URL to get information about issues on the repository. pulls_url: type: string format: uri-template description: >- A template for the API URL to get information about pull requests on the repository. milestones_url: type: string format: uri-template description: >- A template for the API URL to get information about milestones of the repository. notifications_url: type: string format: uri-template description: >- A template for the API URL to get information about notifications on the repository. labels_url: type: string format: uri-template description: >- A template for the API URL to get information about labels of the repository. releases_url: type: string format: uri-template description: >- A template for the API URL to get information about releases on the repository. deployments_url: type: string format: uri description: The API URL to list the deployments of the repository. created_at: oneOf: - type: integer - type: string format: date-time updated_at: type: string format: date-time pushed_at: oneOf: - type: integer - type: string format: date-time - type: 'null' git_url: type: string format: uri ssh_url: type: string clone_url: type: string format: uri svn_url: type: string format: uri homepage: type: - string - 'null' size: type: integer stargazers_count: type: integer watchers_count: type: integer language: type: - string - 'null' has_issues: type: boolean description: Whether issues are enabled. default: true has_projects: type: boolean description: Whether projects are enabled. default: true has_downloads: type: boolean description: Whether downloads are enabled. default: true has_wiki: type: boolean description: Whether the wiki is enabled. default: true has_pages: type: boolean forks_count: type: integer mirror_url: type: - string - 'null' format: uri archived: type: boolean description: Whether the repository is archived. default: false disabled: type: boolean description: Returns whether or not this repository is disabled. open_issues_count: type: integer license: oneOf: - $ref: '#/components/schemas/license' - type: 'null' forks: type: integer open_issues: type: integer watchers: type: integer stargazers: type: integer default_branch: type: string description: The default branch of the repository. allow_squash_merge: type: boolean description: Whether to allow squash merges for pull requests. default: true allow_merge_commit: type: boolean description: Whether to allow merge commits for pull requests. default: true allow_rebase_merge: type: boolean description: Whether to allow rebase merges for pull requests. default: true allow_auto_merge: type: boolean description: Whether to allow auto-merge for pull requests. default: false allow_forking: type: boolean description: Whether to allow private forks. allow_update_branch: type: boolean use_squash_pr_title_as_default: type: boolean is_template: type: boolean web_commit_signoff_required: type: boolean topics: type: array items: type: string visibility: type: string enum: - public - private - internal delete_branch_on_merge: type: boolean description: Whether to delete head branches when pull requests are merged. default: false master_branch: type: string permissions: type: object required: - pull - push - admin properties: pull: type: boolean push: type: boolean admin: type: boolean maintain: type: boolean triage: type: boolean additionalProperties: false public: type: boolean organization: type: string additionalProperties: false title: Repository installation-lite: description: Installation. type: object required: - id - node_id properties: id: type: integer description: The ID of the installation. node_id: type: string additionalProperties: false title: InstallationLite organization: type: object required: - login - id - node_id - url - repos_url - events_url - hooks_url - issues_url - members_url - public_members_url - avatar_url - description properties: login: type: string id: type: integer node_id: type: string url: type: string format: uri html_url: type: string format: uri repos_url: type: string format: uri events_url: type: string format: uri hooks_url: type: string format: uri issues_url: type: string format: uri members_url: type: string format: uri-template public_members_url: type: string format: uri-template avatar_url: type: string format: uri description: type: - string - 'null' additionalProperties: false title: Organization push: type: object required: - ref - before - after - created - deleted - forced - base_ref - compare - commits - head_commit - repository - pusher - sender properties: ref: type: string description: >- The full git ref that is pushed. Example: `refs/heads/main` or `refs/tags/v3.14.1`. before: type: string description: The SHA of the most recent commit on `ref` before the push. after: type: string description: The SHA of the most recent commit on `ref` after the push. created: type: boolean description: Whether this push created the `ref`. deleted: type: boolean description: Whether this push deleted the `ref`. forced: type: boolean description: Whether this push is a force push of the `ref`. base_ref: type: - string - 'null' compare: type: string description: >- URL that shows the changes in this `ref` update, from the `before` commit to the `after` commit. For a newly created `ref` that is directly based on the default branch, this is the comparison between the head of the default branch and the `after` commit. Otherwise, this shows all commits until the `after` commit. commits: type: array description: >- An array of commit objects describing the pushed commits. (Pushed commits are all commits that are included in the `compare` between the `before` commit and the `after` commit.) The array includes a maximum of 20 commits. If necessary, you can use the [Commits API](https://docs.github.com/en/rest/reference/repos#commits) to fetch additional commits. This limit is applied to timeline events only and isn't applied to webhook deliveries. items: $ref: '#/components/schemas/commit' head_commit: oneOf: - $ref: '#/components/schemas/commit' - type: 'null' description: >- For pushes where `after` is or points to a commit object, an expanded representation of that commit. For pushes where `after` refers to an annotated tag object, an expanded representation of the commit pointed to by the annotated tag. repository: $ref: '#/components/schemas/repository' pusher: $ref: '#/components/schemas/committer' sender: $ref: '#/components/schemas/user' installation: $ref: '#/components/schemas/installation-lite' organization: $ref: '#/components/schemas/organization' additionalProperties: false title: push event team: description: >- Groups of organization members that gives permissions on specified. repositories. type: object required: - name - id - node_id - slug - description - privacy - url - html_url - members_url - repositories_url - permission properties: name: type: string description: Name of the team. id: type: integer description: Unique identifier of the team. node_id: type: string slug: type: string description: type: - string - 'null' description: Description of the team. privacy: type: string enum: - open - closed - secret url: type: string format: uri description: URL for the team. html_url: type: string format: uri members_url: type: string format: uri-template repositories_url: type: string format: uri permission: type: string description: Permission that the team has for its repositories. parent: type: - object - 'null' required: - name - id - node_id - slug - description - privacy - url - html_url - members_url - repositories_url - permission properties: name: type: string description: Name of the team. id: type: integer description: Unique identifier of the team. node_id: type: string slug: type: string description: type: - string - 'null' description: Description of the team. privacy: type: string enum: - open - closed - secret url: type: string format: uri description: URL for the team. html_url: type: string format: uri members_url: type: string format: uri-template repositories_url: type: string format: uri permission: type: string description: Permission that the has for its repositories. additionalProperties: false additionalProperties: false title: Team label: type: object required: - id - node_id - url - name - color - default - description properties: id: type: integer node_id: type: string url: description: URL for the label. type: string format: uri name: description: The name of the label. type: string description: type: - string - 'null' color: description: '6-character hex code, without the leading #, identifying the color.' type: string default: type: boolean additionalProperties: false title: Label milestone: description: A collection of related issues and pull requests. required: - url - html_url - labels_url - id - node_id - number - title - description - creator - open_issues - closed_issues - state - created_at - updated_at - due_on - closed_at type: object properties: url: type: string format: uri html_url: type: string format: uri labels_url: type: string format: uri id: type: integer node_id: type: string number: type: integer description: The number of the milestone. title: type: string description: The title of the milestone. description: type: - string - 'null' creator: $ref: '#/components/schemas/user' open_issues: type: integer closed_issues: type: integer state: type: string enum: - open - closed description: The state of the milestone. created_at: type: string format: date-time updated_at: type: string format: date-time due_on: type: - string - 'null' format: date-time closed_at: type: - string - 'null' format: date-time additionalProperties: false title: Milestone link: required: - href type: object properties: href: type: string format: uri-template additionalProperties: false title: Link author-association: type: string description: How the author is associated with the repository. enum: - COLLABORATOR - CONTRIBUTOR - FIRST_TIMER - FIRST_TIME_CONTRIBUTOR - MANNEQUIN - MEMBER - NONE - OWNER title: AuthorAssociation auto-merge: type: object required: - enabled_by - merge_method - commit_title - commit_message properties: enabled_by: $ref: '#/components/schemas/user' merge_method: type: string enum: - merge - squash - rebase description: The merge method to use. commit_title: type: string description: Title for the merge commit message. commit_message: type: string description: Commit message for the merge commit. additionalProperties: false title: PullRequestAutoMerge description: The status of auto merging a pull request. pull-request: required: - url - id - node_id - html_url - diff_url - patch_url - issue_url - number - state - locked - title - user - body - created_at - updated_at - closed_at - merged_at - merge_commit_sha - assignee - assignees - requested_reviewers - requested_teams - labels - milestone - commits_url - review_comments_url - review_comment_url - comments_url - statuses_url - head - base - _links - author_association - auto_merge - active_lock_reason - draft - merged - mergeable - rebaseable - mergeable_state - merged_by - comments - review_comments - maintainer_can_modify - commits - additions - deletions - changed_files type: object properties: url: type: string format: uri id: type: integer node_id: type: string html_url: type: string format: uri diff_url: type: string format: uri patch_url: type: string format: uri issue_url: type: string format: uri number: type: integer description: Number uniquely identifying the pull request within its repository. state: type: string enum: - open - closed description: State of this Pull Request. Either `open` or `closed`. locked: type: boolean title: type: string description: The title of the pull request. user: $ref: '#/components/schemas/user' body: type: - string - 'null' created_at: type: string format: date-time updated_at: type: string format: date-time closed_at: type: - string - 'null' format: date-time merged_at: type: - string - 'null' format: date-time merge_commit_sha: type: - string - 'null' assignee: oneOf: - $ref: '#/components/schemas/user' - type: 'null' assignees: type: array items: $ref: '#/components/schemas/user' requested_reviewers: type: array items: oneOf: - $ref: '#/components/schemas/user' - $ref: '#/components/schemas/team' requested_teams: type: array items: $ref: '#/components/schemas/team' labels: type: array items: $ref: '#/components/schemas/label' milestone: oneOf: - $ref: '#/components/schemas/milestone' - type: 'null' commits_url: type: string format: uri review_comments_url: type: string format: uri review_comment_url: type: string format: uri-template comments_url: type: string format: uri statuses_url: type: string format: uri head: type: object required: - label - ref - sha - user - repo properties: label: type: string ref: type: string sha: type: string user: $ref: '#/components/schemas/user' repo: $ref: '#/components/schemas/repository' additionalProperties: false base: type: object required: - label - ref - sha - user - repo properties: label: type: string ref: type: string sha: type: string user: $ref: '#/components/schemas/user' repo: $ref: '#/components/schemas/repository' additionalProperties: false _links: type: object required: - self - html - issue - comments - review_comments - review_comment - commits - statuses properties: self: $ref: '#/components/schemas/link' html: $ref: '#/components/schemas/link' issue: $ref: '#/components/schemas/link' comments: $ref: '#/components/schemas/link' review_comments: $ref: '#/components/schemas/link' review_comment: $ref: '#/components/schemas/link' commits: $ref: '#/components/schemas/link' statuses: $ref: '#/components/schemas/link' additionalProperties: false author_association: $ref: '#/components/schemas/author-association' auto_merge: oneOf: - $ref: '#/components/schemas/auto-merge' - type: 'null' active_lock_reason: type: - string - 'null' enum: - resolved - off-topic - too heated - spam - null draft: type: boolean description: Indicates whether or not the pull request is a draft. merged: type: - boolean - 'null' mergeable: type: - boolean - 'null' rebaseable: type: - boolean - 'null' mergeable_state: type: string merged_by: oneOf: - $ref: '#/components/schemas/user' - type: 'null' comments: type: integer review_comments: type: integer maintainer_can_modify: type: boolean description: Indicates whether maintainers can modify the pull request. commits: type: integer additions: type: integer deletions: type: integer changed_files: type: integer additionalProperties: false title: Pull Request pull-request-opened: type: object required: - action - number - pull_request - repository - sender properties: action: type: string enum: - opened number: type: integer description: The pull request number. pull_request: allOf: - $ref: '#/components/schemas/pull-request' - type: object required: - state - closed_at - merged_at - active_lock_reason - merged_by properties: state: type: string enum: - open closed_at: type: 'null' merged_at: type: 'null' active_lock_reason: type: 'null' merged_by: type: 'null' additionalProperties: false repository: $ref: '#/components/schemas/repository' installation: $ref: '#/components/schemas/installation-lite' organization: $ref: '#/components/schemas/organization' sender: $ref: '#/components/schemas/user' additionalProperties: false title: pull_request opened event pull-request-reopened: type: object required: - action - number - pull_request - repository - sender properties: action: type: string enum: - reopened number: type: integer description: The pull request number. pull_request: allOf: - $ref: '#/components/schemas/pull-request' - type: object required: - state - closed_at - merged_at - merged - merged_by properties: state: type: string enum: - open closed_at: type: 'null' merged_at: type: 'null' merged: type: boolean merged_by: type: 'null' additionalProperties: false repository: $ref: '#/components/schemas/repository' installation: $ref: '#/components/schemas/installation-lite' organization: $ref: '#/components/schemas/organization' sender: $ref: '#/components/schemas/user' additionalProperties: false title: pull_request reopened event pull-request-synchronize: type: object required: - action - number - before - after - pull_request - repository - sender properties: action: type: string enum: - synchronize number: type: integer description: The pull request number. before: type: string after: type: string pull_request: $ref: '#/components/schemas/pull-request' repository: $ref: '#/components/schemas/repository' installation: $ref: '#/components/schemas/installation-lite' organization: $ref: '#/components/schemas/organization' sender: $ref: '#/components/schemas/user' additionalProperties: false title: pull_request synchronize event WebhookResponse: type: object properties: message: type: string description: A human-readable message with more details. example: Job created event: type: string description: Type of incoming webhook event. example: push jobId: type: string description: Created Scout job ID. example: sjob_01h4gev6h1j50ge5z3yn28ge5e required: - detail project: description: GitLab Project details. type: object required: - id - name - description - web_url - avatar_url - git_ssh_url - git_http_url - namespace - visibility_level - path_with_namespace - default_branch - homepage - url - ssh_url - http_url properties: id: type: integer description: Unique identifier of the project. name: type: string description: The name of the project. description: type: string description: The description of the project. web_url: type: string description: The URL to view the repository. format: uri example: http://example.com/gitlabhq/gitlab-test avatar_url: type: string description: Repository avatar url. format: uri example: >- https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40&d=identicon git_ssh_url: type: string description: SSH url of a project. format: uri example: ssh://git@example.com/gitlabhq/gitlab-test.git git_http_url: type: string description: Url of a project. format: uri example: http://example.com/gitlabhq/gitlab-test.git namespace: type: string description: Project namespace. example: GitlabHQ visibility_level: type: integer description: Visibility level of a project. example: 20 path_with_namespace: type: string description: Project path including namespace. example: gitlabhq/gitlab-test default_branch: type: string description: Project default branch. example: develop homepage: type: string description: Project homepage url. format: uri example: http://example.com/gitlabhq/gitlab-test url: type: string description: Url of a project. format: uri example: http://example.com/gitlabhq/gitlab-test.git ssh_url: type: string description: SSH url of a project. format: uri example: ssh://git@example.com/gitlabhq/gitlab-test.git http_url: type: string description: Url of a project. format: uri example: http://example.com/gitlabhq/gitlab-test.git additionalProperties: false title: Project repository-2: description: GitLab repository details. type: object required: - name - url - description - homepage - git_http_url - git_ssh_url - visibility_level properties: name: type: string description: The name of the project. example: Awesome project url: type: string description: Repository git url. format: uri example: http://example.com/gitlabhq/awesome-project.git description: type: string description: The description of the project. example: Awesome project description. homepage: type: string description: Project homepage url. format: uri example: http://example.com/gitlabhq/awesome-project git_http_url: type: string description: Git url of a project. format: uri example: http://example.com/gitlabhq/gitlab-test.git git_ssh_url: type: string description: SSH url of a project. format: uri example: ssh://git@example.com/gitlabhq/gitlab-test.git web_url: type: string description: The URL to view the repository. format: uri example: http://example.com/gitlabhq/awesome-project avatar_url: type: string description: Avatar url of the repository. format: uri example: >- https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40&d=identicon visibility_level: type: integer description: Visibility level of a project. example: 20 additionalProperties: false title: Repository author: required: - name - email type: object description: Author details. properties: name: type: string description: Author name. example: John email: type: string description: Author email. example: john.doe@email.com additionalProperties: false commit-2: description: Commit details. type: object required: - id - message - title - timestamp - url - author - added - modified - removed properties: id: type: string description: Commit sha. example: b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327 message: type: string description: The commit message. example: fixed readme timestamp: type: string format: date-time description: The ISO 8601 timestamp of the commit. url: type: string format: uri description: URL that points to the commit API resource. example: >- http://example.com/mike/diaspora/commit/da1560886d4f094c3e6c9ef40349f7d38b5d27d7 author: $ref: '#/components/schemas/author' added: type: array items: type: string description: An array of files added in the commit. example: - CHANGELOG modified: type: array items: type: string description: An array of files modified by the commit. example: - app/controller/application.rb removed: type: array items: type: string description: An array of files removed in the commit. example: - app/controller/product.rb additionalProperties: false title: Commit push-2: type: object required: - object_kind - before - after - ref - checkout_sha - user_id - user_name - user_username - user_email - user_avatar - project_id - project - repository - commits - total_commits_count properties: object_kind: type: string description: Type of webhook event data. example: push before: type: string description: The SHA of the most recent commit on `ref` before the push. example: 95790bf891e76fee5e1747ab589903a6a1f80f22 after: type: string description: The SHA of the most recent commit on `ref` after the push. example: da1560886d4f094c3e6c9ef40349f7d38b5d27d7 ref: type: string description: 'The full git ref that is pushed. Example: `refs/heads/main`.' example: refs/heads/main checkout_sha: type: string description: The SHA of the most recent commit on `ref` after the push. example: da1560886d4f094c3e6c9ef40349f7d38b5d27d7 user_id: type: integer description: Id of a gitlab user. example: 1 user_name: type: string description: Name of a gitlab user. example: John user_username: type: string description: Nickname of a gitlab user. example: john87 user_email: type: string description: Email of a gitlab user. example: john87@email.com user_avatar: type: string description: User avatar url. example: >- https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80 project_id: type: integer description: Project id. example: 15 project: $ref: '#/components/schemas/project' repository: $ref: '#/components/schemas/repository-2' commits: type: array description: >- An array of commit objects describing the pushed commits. (Pushed commits are all commits that are included in the `compare` between the `before` commit and the `after` commit.) The array includes a maximum of 20 commits. items: $ref: '#/components/schemas/commit-2' total_commits_count: type: integer description: Contains the actual number of commits. example: 34 additionalProperties: false title: Push event user-2: type: object required: - name - username - avatar_url properties: name: type: string description: User name. example: John username: type: string description: User nickname. example: johnDoe47 avatar_url: type: string description: User avatar url. example: >- https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40&d=identicon additionalProperties: false title: User source: description: Merge request source details. type: object required: - name - description - web_url - avatar_url - git_ssh_url - git_http_url - namespace - visibility_level - path_with_namespace - default_branch - homepage - url - ssh_url - http_url properties: name: type: string description: The name of the project. description: type: string description: The description of the project. web_url: type: string description: The URL to view the repository. format: uri example: http://example.com/gitlabhq/gitlab-test avatar_url: type: string description: Avatar url of the repository. format: uri example: >- https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40&d=identicon git_ssh_url: type: string description: SSH url of a project. format: uri example: ssh://git@example.com/gitlabhq/gitlab-test.git git_http_url: type: string description: Git url of a project. format: uri example: http://example.com/gitlabhq/gitlab-test.git namespace: type: string description: Project namespace. example: GitlabHQ visibility_level: type: integer description: Visibility level of a project. example: 20 path_with_namespace: type: string description: Project path including namespace. example: gitlabhq/gitlab-test default_branch: type: string description: Project default branch. example: develop homepage: type: string description: Project homepage url. format: uri example: http://example.com/gitlabhq/gitlab-test url: type: string description: Url of a project. format: uri example: http://example.com/gitlabhq/gitlab-test.git ssh_url: type: string description: SSH url of a project. format: uri example: ssh://git@example.com/gitlabhq/gitlab-test.git http_url: type: string description: Url of a project. format: uri example: http://example.com/gitlabhq/gitlab-test.git additionalProperties: false title: Source commit-flat: description: Flattened commit details. type: object required: - id - message - title - timestamp - url - author properties: id: type: string description: Commit SHA. example: b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327 message: type: string description: The commit message. example: fixed readme title: type: string description: Commit title. example: Update file README.md timestamp: type: string format: date-time description: The ISO 8601 timestamp of the commit. url: type: string format: uri description: URL that points to the commit API resource. author: $ref: '#/components/schemas/author' additionalProperties: false title: Commit merge-request-details: description: Merge request details. type: object required: - id - target_branch - source_branch - source_project_id - author_id - assignee_id - title - created_at - updated_at - milestone_id - state - merge_status - target_project_id - iid - description - source - target - last_commit - work_in_progress - url - action - assignee properties: id: type: integer description: Merge request id. example: 324 target_branch: type: string description: Target branch name. example: main source_branch: type: string description: Source branch name. example: feat/gitlab-implementation source_project_id: type: integer description: Source project id. example: 32 author_id: type: integer description: Author id. example: 2 assignee_id: type: integer description: Assignee id. example: 4 title: type: string description: Merge request title. example: gitlab implementation created_at: type: string description: Merge request created date. format: date-time updated_at: type: string description: Merge request updated date. format: date-time milestone_id: type: integer description: Milestone id. example: 12 state: type: string description: Merge request current state. enum: - opened - closed - locked - merged merge_status: type: string description: Merge status. enum: - unchecked - can_be_merged - cannot_be_merged target_project_id: type: integer description: Target project id. example: 456 iid: type: integer description: Merge request id unique only in scope of a single project. example: 254 description: type: string description: Merge request description. example: GitLab implementation source: $ref: '#/components/schemas/source' target: $ref: '#/components/schemas/source' last_commit: $ref: '#/components/schemas/commit-flat' work_in_progress: type: boolean description: Work in progress flag. url: type: string description: Merge request url. example: http://example.com/diaspora/merge_requests/324 action: type: string enum: - open - close - reopen - update - approved - unapproved - approval - unapproval - merge assignee: $ref: '#/components/schemas/user-2' additionalProperties: false title: Merge request details label-2: description: GitLab label details. type: object required: - id - title - color - project_id - created_at - updated_at - template - description - type - group_id properties: id: type: integer description: Label id. example: 202 title: type: string description: Label title. example: transport-label color: type: string description: Label color specified using hexadecimal value. example: '#ffffff' project_id: type: integer description: Project id. example: 43 created_at: type: string description: Label creation date. format: date-time updated_at: type: string description: Label last update date. format: date-time description: type: string description: Label description. example: Transport related issues type: type: string description: Label type. example: ProjectLabel group_id: type: integer description: Group id the label is created for. example: 41 additionalProperties: false title: Label updated-by-id: type: object required: - previous - current properties: previous: type: integer description: Id of a user that previously updated merge request. example: 0 current: type: integer description: Id of the most recent user that updated merge request. example: 1 additionalProperties: false title: Updated by id updated-at: type: object required: - previous - current properties: previous: type: string format: date-time current: type: string format: date-time additionalProperties: false title: Updated at labels: type: object description: Object specifying labels changes. required: - previous - current properties: previous: $ref: '#/components/schemas/label-2' current: $ref: '#/components/schemas/label-2' additionalProperties: false title: Labels changes: type: object description: Object containing merge request change details. required: - updated_by_id - updated_at - labels properties: updated_by_id: $ref: '#/components/schemas/updated-by-id' updated_at: $ref: '#/components/schemas/updated-at' labels: $ref: '#/components/schemas/labels' additionalProperties: false title: Change merge-request-open: type: object required: - object_kind - user - project - repository - object_attributes - labels - changes properties: object_kind: type: string enum: - open description: Type of webhook event data. user: description: Merge request creator details. $ref: '#/components/schemas/user-2' project: $ref: '#/components/schemas/project' repository: $ref: '#/components/schemas/repository-2' object_attributes: $ref: '#/components/schemas/merge-request-details' labels: type: array items: $ref: '#/components/schemas/label-2' changes: $ref: '#/components/schemas/changes' additionalProperties: false title: Merge request open event merge-request-reopen: type: object required: - object_kind - user - project - repository - object_attributes - labels - changes properties: object_kind: type: string enum: - reopen description: Type of webhook event data. user: description: Merge request creator details. $ref: '#/components/schemas/user-2' project: $ref: '#/components/schemas/project' repository: $ref: '#/components/schemas/repository-2' object_attributes: $ref: '#/components/schemas/merge-request-details' labels: type: array items: $ref: '#/components/schemas/label-2' changes: $ref: '#/components/schemas/changes' additionalProperties: false title: Merge request reopen event merge-request-update: type: object required: - object_kind - user - project - repository - object_attributes - labels - changes properties: object_kind: type: string enum: - update description: Type of webhook event data. user: description: Merge request creator details. $ref: '#/components/schemas/user-2' project: $ref: '#/components/schemas/project' repository: $ref: '#/components/schemas/repository-2' object_attributes: $ref: '#/components/schemas/merge-request-details' labels: type: array items: $ref: '#/components/schemas/label-2' changes: $ref: '#/components/schemas/changes' additionalProperties: false title: Merge request update event responses: BadRequest: description: Bad Request. content: application/problem+json: schema: type: object properties: type: type: string description: Error type. example: about:blank title: type: string description: Error title. example: Unauthorized status: type: integer description: >- HTTP status code generated by the origin server for this occurrence of the problem. example: 401 detail: type: string description: A human-readable message with more details. example: The request doesn't contain a GitHub signature required: - detail InternalServerError: description: Internal Server Error. content: application/problem+json: schema: type: object properties: type: type: string description: Error type. example: about:blank title: type: string description: Error title. example: Internal server error status: type: integer description: >- HTTP status code generated by the origin server for this occurrence of the problem. example: 500 detail: type: string description: A human-readable message with more details. example: Disk space is full event: type: string description: Type of incoming webhook event. example: push required: - detail Unauthorized: description: Unauthorized. content: application/problem+json: schema: type: object properties: type: type: string description: Error type. example: about:blank title: type: string description: Error title. example: Unauthorized status: type: integer description: >- HTTP status code generated by the origin server for this occurrence of the problem. example: 401 detail: type: string description: A human-readable message with more details. example: The request doesn't contain a GitHub signature required: - detail