{"components":{"schemas":{"Branch":{"description":"Branch tip. Create and rename responses only include name.","properties":{"commit":{"description":"Tip commit SHA.","type":"string"},"date":{"description":"Tip commit date.","type":"string"},"default":{"description":"True for the default branch.","type":"boolean"},"name":{"description":"Branch name.","type":"string"},"subject":{"description":"Tip commit subject.","type":"string"}},"type":"object"},"BranchCreate":{"description":"Create a branch.","properties":{"from":{"description":"Existing branch or commit to start from.","type":"string"},"name":{"description":"New branch name.","type":"string"}},"type":"object"},"BranchDelete":{"description":"Delete a branch.","properties":{"confirm":{"description":"Branch name, repeated as confirmation.","type":"string"}},"type":"object"},"BranchUpdate":{"description":"Rename a branch.","properties":{"confirm":{"description":"Current branch name, repeated as confirmation.","type":"string"},"name":{"description":"New branch name.","type":"string"}},"type":"object"},"Error":{"properties":{"message":{"type":"string"}},"type":"object"},"ForkCreate":{"description":"Fork a project with all branches and tags. Objects are hard-linked on the server disk. A fork of a private project is private and cannot be made public. The response adds forked_from.","properties":{"name":{"description":"Optional new name. Default keeps the upstream name. 409 if it already exists.","type":"string"},"namespace":{"description":"Group path where you are at least developer. Empty: your own account.","type":"string"}},"type":"object"},"ForkMergeRequest":{"description":"Merge request from a fork branch into upstream. The merge request lives in upstream and is merged there by its maintainers. Pipelines for it run in upstream on forks/\u003cfork id\u003e/\u003cbranch\u003e without any group or project secrets.","properties":{"description":{"description":"Description.","type":"string"},"draft":{"description":"Open as draft.","type":"boolean"},"source_branch":{"description":"Branch in the fork.","type":"string"},"target_branch":{"description":"Branch in upstream. Default: upstream default branch.","type":"string"},"title":{"description":"Title.","type":"string"}},"type":"object"},"ForkedProject":{"description":"A project (same fields as GET /projects/{owner}/{repo}). The fork response adds forked_from.","properties":{"forked_from":{"description":"Upstream owner/name (only in the fork response).","type":"string"},"path_with_namespace":{"description":"owner/name.","type":"string"},"visibility":{"description":"public or private.","type":"string"}},"type":"object"},"GroupDelete":{"description":"Delete an empty group. Fails with 409 while the group still has repositories (no force). Removes members, invitations, group secrets, webhooks and approval rules, and revokes group runners. Group maintainers and admins only.","properties":{"confirm":{"description":"Group name or path, to confirm.","type":"string"}},"type":"object"},"InheritedSecret":{"description":"A group secret the project inherits. Values are never returned. Jobs get group secrets first; a project secret with the same name wins.","properties":{"group":{"description":"Path of the group it comes from.","type":"string"},"name":{"description":"Secret name.","type":"string"},"overridden":{"description":"A project secret with the same name replaces it.","type":"boolean"},"protected":{"description":"Only injected on protected refs.","type":"boolean"}},"type":"object"},"Issue":{"description":"Issue. The list omits notes.","properties":{"assignees":{"description":"Assignee usernames.","items":{"type":"string"},"type":"array"},"author":{"description":"Author username.","type":"string"},"closed_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"confidential":{"description":"Hidden from users who cannot triage.","type":"boolean"},"created_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"description":{"description":"Description.","type":"string"},"due_date":{"description":"Due date, YYYY-MM-DD, or empty.","type":"string"},"id":{"description":"Issue number in the project.","format":"int64","type":"integer"},"labels":{"description":"Label names.","items":{"type":"string"},"type":"array"},"milestone":{"description":"Milestone title.","type":"string"},"notes":{"description":"Notes. Omitted on the list.","items":{"$ref":"#/components/schemas/IssueNote"},"type":"array"},"status":{"description":"open or closed.","type":"string"},"title":{"description":"Title.","type":"string"},"updated_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"web_url":{"description":"Full page URL. An empty base URL yields a path.","type":"string"}},"type":"object"},"IssueList":{"description":"Issue list.","properties":{"issues":{"items":{"$ref":"#/components/schemas/Issue"},"type":"array"}},"type":"object"},"IssueNote":{"description":"Issue note.","properties":{"author":{"description":"Author username.","type":"string"},"body":{"description":"Note text.","type":"string"},"created_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"id":{"description":"Note id.","format":"int64","type":"integer"}},"type":"object"},"IssueNoteCreate":{"description":"New issue note. A body that is only quick actions returns the issue instead of a note.","properties":{"body":{"description":"Note text, including optional quick actions.","type":"string"}},"type":"object"},"IssueWrite":{"description":"Fields to create or update an issue. Omitted fields stay unchanged on update.","properties":{"assignees":{"description":"Assignee usernames.","items":{"type":"string"},"type":"array"},"confidential":{"description":"Confidential issue.","type":"boolean"},"description":{"description":"Description.","type":"string"},"due_date":{"description":"Due date, YYYY-MM-DD, or empty.","type":"string"},"labels":{"description":"Label names.","items":{"type":"string"},"type":"array"},"milestone":{"description":"Milestone title.","type":"string"},"state":{"description":"open or closed.","type":"string"},"title":{"description":"Title. Required when creating.","type":"string"}},"type":"object"},"Job":{"description":"CI job.","properties":{"allow_failure":{"description":"A failed job does not fail the pipeline.","type":"boolean"},"cancel_reason":{"description":"For status canceled: superseded, stale (expired manual job) or manual. Null otherwise.","type":"string"},"display_status":{"description":"Status as the UI shows it: obsolete for a job canceled because a newer pipeline started for the same ref or an expired manual job, otherwise equal to status.","type":"string"},"do_not_interrupt":{"description":"doNotInterrupt is set: the job is never stopped automatically, and cancelling it while it runs needs force=true.","type":"boolean"},"failure_reason":{"description":"For status failed: job_execution_timeout, script_failure or runner_system_failure when known. Null otherwise.","type":"string"},"finished_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"id":{"description":"Job id.","format":"int64","type":"integer"},"name":{"description":"Job name.","type":"string"},"stage":{"description":"Stage name.","type":"string"},"started_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"status":{"description":"Job status.","type":"string"},"when":{"description":"When the job runs.","type":"string"}},"type":"object"},"MergeRequest":{"description":"Merge request.","properties":{"author":{"description":"Author username.","type":"string"},"created_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"description":{"description":"Description.","type":"string"},"draft":{"description":"Draft merge request.","type":"boolean"},"id":{"description":"Internal id.","format":"int64","type":"integer"},"iid":{"description":"Merge request number in the project.","format":"int64","type":"integer"},"labels":{"description":"Comma-separated label names.","type":"string"},"remove_source_branch":{"description":"Delete the source branch after a successful merge.","type":"boolean"},"source_branch":{"description":"Source branch.","type":"string"},"squash":{"description":"Squash commits when merging.","type":"boolean"},"squash_commit_message":{"description":"Commit message used when squash is enabled. Empty uses the title.","type":"string"},"state":{"description":"open, closed or merged.","type":"string"},"target_branch":{"description":"Target branch.","type":"string"},"title":{"description":"Title.","type":"string"},"updated_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"web_url":{"description":"Full page URL. An empty base URL yields a path.","type":"string"}},"type":"object"},"MergeRequestCreate":{"description":"Fields for a new merge request. Omitted remove_source_branch means true. Omitted squash means false.","properties":{"description":{"description":"Description.","type":"string"},"draft":{"description":"Create as draft.","type":"boolean"},"remove_source_branch":{"description":"Delete the source branch after merge. Omitted means true.","type":"boolean"},"source_branch":{"description":"Source branch.","type":"string"},"squash":{"description":"Squash commits. Omitted means false.","type":"boolean"},"squash_commit_message":{"description":"Squash commit message. Empty uses the merge request title.","type":"string"},"target_branch":{"description":"Target branch.","type":"string"},"title":{"description":"Title.","type":"string"}},"type":"object"},"MergeRequestMerge":{"description":"Merge options for this attempt. Omitted fields keep the stored value.","properties":{"remove_source_branch":{"description":"Delete the source branch after merge.","type":"boolean"},"squash":{"description":"Squash commits.","type":"boolean"},"squash_commit_message":{"description":"Squash commit message.","type":"string"}},"type":"object"},"MergeRequestUpdate":{"description":"Fields to change on a merge request. Omitted merge options keep the stored value.","properties":{"description":{"description":"Description.","type":"string"},"labels":{"description":"Comma-separated label names.","type":"string"},"remove_source_branch":{"description":"Delete the source branch after merge.","type":"boolean"},"squash":{"description":"Squash commits.","type":"boolean"},"squash_commit_message":{"description":"Squash commit message.","type":"string"},"title":{"description":"Title.","type":"string"}},"type":"object"},"MergeResult":{"description":"Result of a merge.","properties":{"source_branch_removed":{"description":"True when the source branch was deleted.","type":"boolean"},"source_branch_skip":{"description":"Empty when the branch was removed. Otherwise disabled, protected, default, forbidden, missing or error.","type":"string"},"state":{"description":"merged.","type":"string"},"web_url":{"description":"Full page URL of the merge request.","type":"string"}},"type":"object"},"MergeState":{"description":"State after close or reopen.","properties":{"state":{"description":"open or closed.","type":"string"},"web_url":{"description":"Full page URL of the merge request.","type":"string"}},"type":"object"},"Pipeline":{"description":"Pipeline.","properties":{"actor":{"description":"Username that started the pipeline.","type":"string"},"cancel_reason":{"description":"For status canceled: superseded (a newer pipeline started for the same ref; also for manual jobs that expired that way), stale (a manual job expired because its pipeline waited only for manual action longer than stale_manual_days) or manual. Null otherwise. Only in list and get responses.","type":"string"},"created_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"display_status":{"description":"Status as the UI shows it: obsolete when every canceled job was superseded by a newer pipeline on the same ref, otherwise equal to status. Only in list and get responses.","type":"string"},"finished_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"id":{"description":"Pipeline id.","format":"int64","type":"integer"},"ref":{"description":"Git ref, for example refs/heads/master.","type":"string"},"sha":{"description":"Commit SHA.","type":"string"},"source":{"description":"Trigger source.","type":"string"},"started_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"status":{"description":"Pipeline status: queued, running, success, failed, canceled, waiting_for_update, waiting_for_job or manual. manual means only manual jobs are left, plus jobs that wait on them; such a pipeline is not running and has no finished_at until a manual job is played. A pipeline stopped by a newer pipeline stays canceled; see cancel_reason.","type":"string"},"waiting_for":{"description":"For status waiting_for_job: the running doNotInterrupt job (job_id, job_name, pipeline_id) in an older pipeline on the same ref that this pipeline waits for. Only in list and get responses.","nullable":true,"type":"object"},"web_url":{"description":"Full page URL. An empty base URL yields a path.","type":"string"}},"type":"object"},"PipelineCreate":{"description":"Start a pipeline.","properties":{"ref":{"description":"Branch, tag or full ref to run.","type":"string"}},"type":"object"},"PipelineRetry":{"description":"Retry a pipeline. all starts a new pipeline on the same commit, ref, source and merge request. failed requeues failed jobs and the skipped or never-started jobs that depend on them. The response is 201 for all and 200 for failed.","properties":{"mode":{"description":"all or failed.","enum":["all","failed"],"type":"string"}},"type":"object"},"Secret":{"description":"A secret. Values are never returned.","properties":{"created_at":{"description":"Creation time (RFC 3339).","type":"string"},"expand":{"description":"$NAME and ${NAME} in the value are expanded in the runner after group, project, job and CI_* variables are merged. $$ gives a literal $. Unknown names and cycles stay literal, like GitLab.","type":"boolean"},"name":{"description":"Secret name.","type":"string"},"protected":{"description":"Only injected on protected refs.","type":"boolean"}},"type":"object"},"SecretName":{"description":"The stored secret name.","properties":{"name":{"description":"Secret name.","type":"string"}},"type":"object"},"SecretWrite":{"description":"Create or replace a secret.","properties":{"expand":{"description":"Expand $NAME references in the value at job time. Default false; omitted on update keeps the stored setting.","type":"boolean"},"name":{"description":"Secret name.","type":"string"},"protected":{"description":"Only injected on protected refs.","type":"boolean"},"value":{"description":"Secret value. Never returned.","type":"string"}},"type":"object"},"SyncResult":{"description":"Outcome of an upstream sync.","properties":{"after":{"description":"Fork commit after.","type":"string"},"before":{"description":"Fork commit before (empty if the branch was new).","type":"string"},"branch":{"description":"Branch.","type":"string"},"up_to_date":{"description":"Nothing to do.","type":"boolean"}},"type":"object"},"SyncUpstream":{"description":"Fast-forward a fork branch to the same branch in upstream. Never forces; a diverged branch gives 409.","properties":{"branch":{"description":"Branch to sync. Default: the fork's default branch.","type":"string"}},"type":"object"},"User":{"description":"User. counts, repos and groups are present on GET /users/{username}, which is public. Without a token only public repositories and groups are included, and contributions count only those repositories. instance_admin and language are present for the signed-in user.","properties":{"avatar_url":{"description":"Avatar URL.","type":"string"},"bio":{"description":"Profile text. Empty when unset.","type":"string"},"counts":{"description":"Totals the viewer is allowed to see.","properties":{"contributions":{"description":"Contributions in the last 12 months in repositories the viewer may see.","format":"int64","type":"integer"},"groups":{"description":"Groups the user belongs to that the viewer may see.","format":"int64","type":"integer"},"repos":{"description":"Owned repositories visible to the viewer.","format":"int64","type":"integer"}},"type":"object"},"created_at":{"description":"RFC3339 timestamp. Null when the moment has not happened yet.","type":"string"},"groups":{"description":"Groups visible to the viewer.","items":{"$ref":"#/components/schemas/UserGroup"},"type":"array"},"id":{"description":"User id.","format":"int64","type":"integer"},"instance_admin":{"description":"Instance administrator. Only on the signed-in user.","type":"boolean"},"language":{"description":"Interface language. Only on the signed-in user.","type":"string"},"name":{"description":"Display name. Empty when unset.","type":"string"},"repos":{"description":"Owned repositories visible to the viewer.","items":{"$ref":"#/components/schemas/UserRepo"},"type":"array"},"username":{"description":"Username.","type":"string"},"web_url":{"description":"Profile page at /users/{username}.","type":"string"}},"type":"object"},"UserGroup":{"description":"Group on a user profile.","properties":{"description":{"description":"Description.","type":"string"},"id":{"description":"Group id.","format":"int64","type":"integer"},"name":{"description":"Group name.","type":"string"},"path":{"description":"Group path.","type":"string"},"visibility":{"description":"public or private.","type":"string"},"web_url":{"description":"Full page URL.","type":"string"}},"type":"object"},"UserRepo":{"description":"Repository on a user profile.","properties":{"description":{"description":"Description.","type":"string"},"id":{"description":"Repository id.","format":"int64","type":"integer"},"name":{"description":"Repository name.","type":"string"},"path":{"description":"Full path, owner/name.","type":"string"},"visibility":{"description":"public or private.","type":"string"},"web_url":{"description":"Full page URL.","type":"string"}},"type":"object"},"UserUpdate":{"description":"Fields to change on the signed-in user. Omitted fields stay unchanged.","properties":{"bio":{"description":"Profile text. Empty clears it. Newlines are kept.","type":"string"},"language":{"description":"Interface language.","type":"string"},"name":{"description":"Display name. Empty clears it.","type":"string"}},"type":"object"},"Webhook":{"description":"Webhook.","properties":{"active":{"description":"Hook is enabled.","type":"boolean"},"branch_filter":{"description":"Branch filter. Empty matches every branch.","type":"string"},"events":{"description":"Events that trigger the hook: push, merge_request, pipeline_success, pipeline_failure, release_published, issue, issue_opened, issue_closed, issue_reopened, issue_updated, issue_comment, merge_request_comment. issue and merge_request also cover the finer issue_* and merge_request_comment events.","items":{"type":"string"},"type":"array"},"id":{"description":"Webhook id.","format":"int64","type":"integer"},"method":{"description":"HTTP method.","type":"string"},"name":{"description":"Display name.","type":"string"},"preset":{"description":"Preset name, or empty for a custom hook.","type":"string"},"url":{"description":"URL template.","type":"string"}},"type":"object"},"WebhookCopy":{"description":"Copy a webhook to a project or group where you are maintainer. Secrets the hook references and the target cannot already see are copied encrypted on the server; their values never reach the client.","properties":{"events":{"description":"Optional event filter. Default keeps the events.","items":{"type":"string"},"type":"array"},"name":{"description":"Optional new name. Default keeps the name.","type":"string"},"target":{"description":"Target path: owner/project or group path.","type":"string"},"target_type":{"description":"project or group.","type":"string"}},"type":"object"},"WebhookCopyResult":{"description":"The new webhook plus the names (never values) of copied secrets.","properties":{"active":{"description":"Hook is enabled.","type":"boolean"},"branch_filter":{"description":"Branch filter.","type":"string"},"copied_secrets":{"description":"Names of secrets copied to the target.","items":{"type":"string"},"type":"array"},"events":{"description":"Events.","items":{"type":"string"},"type":"array"},"id":{"description":"New webhook id.","format":"int64","type":"integer"},"method":{"description":"HTTP method.","type":"string"},"missing_secrets":{"description":"Referenced secret names found nowhere; add them in the target.","items":{"type":"string"},"type":"array"},"name":{"description":"Display name.","type":"string"},"preset":{"description":"Preset name.","type":"string"},"scope":{"description":"repo or group.","type":"string"},"url":{"description":"URL template.","type":"string"}},"type":"object"},"WebhookCreate":{"description":"Create a webhook. Preset fields depend on the chosen preset.","properties":{"alias":{"description":"Alias.","type":"string"},"avatar":{"description":"Avatar URL.","type":"string"},"body":{"description":"Body template.","type":"string"},"branch_filter":{"description":"Branch filter.","type":"string"},"chat":{"description":"Chat id.","type":"string"},"content_type":{"description":"Content type.","type":"string"},"events":{"description":"Events, see the list on the webhook schema.","items":{"type":"string"},"type":"array"},"headers":{"description":"Extra headers.","type":"string"},"homeserver":{"description":"Matrix homeserver.","type":"string"},"icon":{"description":"Icon URL or emoji.","type":"string"},"method":{"description":"HTTP method.","type":"string"},"name":{"description":"Display name.","type":"string"},"preset":{"description":"Preset name.","type":"string"},"room":{"description":"Matrix room.","type":"string"},"server":{"description":"Server URL.","type":"string"},"token":{"description":"Name of the secret that holds the token. The value is never returned.","type":"string"},"topic":{"description":"Topic.","type":"string"},"url":{"description":"URL template.","type":"string"},"username":{"description":"Username for the preset.","type":"string"}},"type":"object"},"WebhookUpdate":{"description":"Change a webhook. Omitted fields keep the stored value. An empty or omitted token keeps the stored secret reference; secret values are never returned.","properties":{"active":{"description":"Enable or disable the hook.","type":"boolean"},"alias":{"description":"Alias.","type":"string"},"avatar":{"description":"Avatar URL.","type":"string"},"body":{"description":"Body template.","type":"string"},"branch_filter":{"description":"Branch filter.","type":"string"},"chat":{"description":"Chat id.","type":"string"},"content_type":{"description":"Content type.","type":"string"},"events":{"description":"Events, see the list on the webhook schema.","items":{"type":"string"},"type":"array"},"headers":{"description":"Extra headers. Empty keeps the current headers.","type":"string"},"homeserver":{"description":"Matrix homeserver.","type":"string"},"icon":{"description":"Icon URL or emoji.","type":"string"},"method":{"description":"HTTP method.","type":"string"},"name":{"description":"Display name.","type":"string"},"preset":{"description":"Preset name.","type":"string"},"room":{"description":"Matrix room.","type":"string"},"server":{"description":"Server URL.","type":"string"},"token":{"description":"Name of the secret that holds the token. Empty keeps the current one.","type":"string"},"topic":{"description":"Topic.","type":"string"},"url":{"description":"URL template.","type":"string"},"username":{"description":"Username for the preset.","type":"string"}},"type":"object"}},"securitySchemes":{"basic":{"scheme":"basic","type":"http"},"bearer":{"scheme":"bearer","type":"http"},"privateToken":{"in":"header","name":"PRIVATE-TOKEN","type":"apiKey"}}},"info":{"title":"BlueGit","version":"v1"},"openapi":"3.0.3","paths":{"/admin/cache":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Read cache settings and usage"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Set cache path"}},"/admin/cache/clear":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Clear the read cache"}},"/admin/pipelines/expire-stale":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Expire stale manual jobs now (superseded and age rule) and list what expired (instance admin)"}},"/admin/pipelines/settings":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Pipeline settings: stale_manual_days (instance admin)"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Change stale_manual_days: manual jobs expire when their pipeline waited only for manual action this many days; 0 = off (instance admin)"}},"/admin/runner/jobs":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Active and recent jobs of the built-in runner (instance admin)"}},"/admin/runner/pause":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Pause (drain) the built-in runner (instance admin)"}},"/admin/runner/resume":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Resume the built-in runner (instance admin)"}},"/admin/runner/settings":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get built-in runner settings (instance admin)"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Change built-in runner settings (instance admin)"}},"/admin/runner/status":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Built-in runner status (instance admin)"}},"/admin/runners":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List global runners (instance admin)"}},"/admin/runners/registration-token":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create global runner registration token (instance admin)"}},"/admin/runners/{id}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Revoke global runner. 409 while it runs a doNotInterrupt job, unless force=true."},"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get global runner"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Rename or pause global runner"}},"/admin/runners/{id}/jobs":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Recent jobs of global runner"}},"/admin/runners/{id}/pause":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Pause global runner"}},"/admin/runners/{id}/resume":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Resume global runner"}},"/admin/self-update/force":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Install the pending self-update now, without waiting for running jobs"}},"/admin/storage":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Read instance storage"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Set instance storage"}},"/admin/users":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List users and their admin status (instance admin)"}},"/admin/users/{username}/admin":{"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Grant or revoke instance admin (instance admin; not yourself)"}},"/ci/presets":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"CI image presets"}},"/ci/spec":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"CI specification"}},"/groups":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List groups you are a member of. page and per_page paginate; sort=pushed orders by the most recent push, like the dashboard."},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create group"}},"/groups/{path}":{"delete":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupDelete"}}},"required":true},"responses":{"204":{"description":"No content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete an empty group. Body {\"confirm\": name or path}. 409 while the group still has repositories; no force. Members, invitations, group secrets, webhooks and approval rules are removed; group runners are revoked."},"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get group"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Update group"}},"/groups/{path}/approvals":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get group approvals"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Save group approvals"}},"/groups/{path}/logo":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Group logo"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Upload group logo"}},"/groups/{path}/members":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List group members"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Add group member"}},"/groups/{path}/members/{username}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Remove group member"}},"/groups/{path}/projects":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List group projects"}},"/groups/{path}/runner-optin":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get own runner opt-in for group"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Set own runner opt-in for group"}},"/groups/{path}/runner-settings":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get group runner settings"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Set group runner settings"}},"/groups/{path}/runners":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List group runners"}},"/groups/{path}/runners/registration-token":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create group runner registration token"}},"/groups/{path}/runners/{id}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Revoke group runner"},"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get group runner"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Rename or pause group runner"}},"/groups/{path}/runners/{id}/jobs":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Recent jobs of group runner"}},"/groups/{path}/runners/{id}/pause":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Pause group runner"}},"/groups/{path}/runners/{id}/resume":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Resume group runner"}},"/groups/{path}/secrets":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Secret"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List group secrets"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretWrite"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretName"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Set group secret"}},"/groups/{path}/secrets/{name}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete group secret"}},"/groups/{path}/transfer":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Transfer group owner"}},"/groups/{path}/webhooks":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Webhook"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List group webhooks"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create group webhook"}},"/groups/{path}/webhooks/{id}":{"delete":{"responses":{"204":{"description":"No content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete group webhook"},"patch":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Update group webhook. Omitted fields and an empty token keep the stored value."}},"/groups/{path}/webhooks/{id}/copy":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCopy"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCopyResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Copy group webhook to a project or group, secrets stay server-side"}},"/openapi.json":{"get":{"responses":{"200":{"description":"OK"}},"summary":"OpenAPI document"}},"/projects":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List projects you can access. page and per_page paginate; sort=pushed orders by the most recent push, like the dashboard."},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create project"}},"/projects/{owner}/{repo}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete project. A running doNotInterrupt job makes this 409 unless the query has force=true."},"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get project"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Update project"}},"/projects/{owner}/{repo}/approvals":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get project approvals"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Save project approvals"}},"/projects/{owner}/{repo}/ci/file":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Read CI file"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Save CI file"}},"/projects/{owner}/{repo}/ci/lint":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Lint CI file"}},"/projects/{owner}/{repo}/fork":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkCreate"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkedProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Fork a project with all branches and tags. Body {namespace: group path or empty for your account, name: optional}. 409 if the name is taken. A fork of a private project is private."}},"/projects/{owner}/{repo}/forks":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ForkedProject"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List forks of a project you can see."}},"/projects/{owner}/{repo}/logo":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Project logo"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Upload project logo"}},"/projects/{owner}/{repo}/members":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List project members"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Add project member"}},"/projects/{owner}/{repo}/members/{username}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Remove project member"}},"/projects/{owner}/{repo}/merge_requests":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MergeRequest"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List merge requests. Optional query: state (open, merged, closed, all), source_branch, target_branch."},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeRequestCreate"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create merge request"}},"/projects/{owner}/{repo}/merge_requests/{number}":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get merge request"},"put":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeRequestUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Update merge request"}},"/projects/{owner}/{repo}/merge_requests/{number}/close":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeState"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Close merge request"}},"/projects/{owner}/{repo}/merge_requests/{number}/merge":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeRequestMerge"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Merge merge request"}},"/projects/{owner}/{repo}/merge_requests/{number}/notes":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List notes"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create note"}},"/projects/{owner}/{repo}/merge_requests/{number}/reopen":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeState"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Reopen merge request"}},"/projects/{owner}/{repo}/merge_requests/{number}/reviews":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Submit review"}},"/projects/{owner}/{repo}/merge_requests/{number}/reviews/dismiss":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Dismiss review"}},"/projects/{owner}/{repo}/merge_requests/{number}/suggestions":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Apply suggestions"}},"/projects/{owner}/{repo}/pipelines":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List pipelines, newest first. Optional query: sha (7-40 hex, prefix), ref (branch, tag or full ref), mr (merge request number; its pipelines plus pushes to its source branch)."},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineCreate"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Start pipeline"}},"/projects/{owner}/{repo}/pipelines/{id}":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get pipeline"}},"/projects/{owner}/{repo}/pipelines/{id}/cancel":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Cancel pipeline. A running doNotInterrupt job makes this 409 unless the query has force=true."}},"/projects/{owner}/{repo}/pipelines/{id}/jobs":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Job"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List jobs"}},"/projects/{owner}/{repo}/pipelines/{id}/jobs/{job}":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get job"}},"/projects/{owner}/{repo}/pipelines/{id}/jobs/{job}/artifacts":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List artifacts"}},"/projects/{owner}/{repo}/pipelines/{id}/jobs/{job}/artifacts/{path}":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Download artifact"}},"/projects/{owner}/{repo}/pipelines/{id}/jobs/{job}/cancel":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Cancel job. A running doNotInterrupt job needs force=true in the query, otherwise 409."}},"/projects/{owner}/{repo}/pipelines/{id}/jobs/{job}/log":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Job log"}},"/projects/{owner}/{repo}/pipelines/{id}/jobs/{job}/play":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Play manual job"}},"/projects/{owner}/{repo}/pipelines/{id}/jobs/{job}/retry":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Retry job"}},"/projects/{owner}/{repo}/pipelines/{id}/retry":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineRetry"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Retry pipeline"}},"/projects/{owner}/{repo}/protected_branches":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List protected branches"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Protect branch pattern"}},"/projects/{owner}/{repo}/protected_branches/{pattern}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Unprotect branch pattern"}},"/projects/{owner}/{repo}/protected_tags":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List protected tags"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Protect tag pattern"}},"/projects/{owner}/{repo}/protected_tags/{pattern}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Unprotect tag pattern"}},"/projects/{owner}/{repo}/releases":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List releases"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Publish release"}},"/projects/{owner}/{repo}/releases/{tag}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete release (assets included). Query delete_tag=true also deletes the git tag."}},"/projects/{owner}/{repo}/releases/{tag}/assets/{name}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete one release asset (tag and source stay)"},"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Download release asset"}},"/projects/{owner}/{repo}/repository/branches":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Branch"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List branches"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchCreate"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Branch"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create branch"}},"/projects/{owner}/{repo}/repository/branches/{branch}":{"delete":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchDelete"}}},"required":true},"responses":{"204":{"description":"No content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete branch"},"put":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Branch"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Rename branch"}},"/projects/{owner}/{repo}/repository/commits":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List commits"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create commit"}},"/projects/{owner}/{repo}/repository/commits/{sha}":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get commit"}},"/projects/{owner}/{repo}/repository/commits/{sha}/diff":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Commit diff"}},"/projects/{owner}/{repo}/repository/files/{path}":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Read file"}},"/projects/{owner}/{repo}/repository/tags":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List tags"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create tag"}},"/projects/{owner}/{repo}/repository/tags/{tag}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete tag"}},"/projects/{owner}/{repo}/repository/tags/{tag}/archive":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Download tag archive"}},"/projects/{owner}/{repo}/repository/tree":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List tree"}},"/projects/{owner}/{repo}/secrets":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Secret"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List project secrets"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretWrite"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretName"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Set project secret"}},"/projects/{owner}/{repo}/secrets/inherited":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/InheritedSecret"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List group secrets this project inherits (names only). overridden is true when a project secret with the same name wins."}},"/projects/{owner}/{repo}/secrets/{name}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete project secret"}},"/projects/{owner}/{repo}/star":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Toggle star"}},"/projects/{owner}/{repo}/sync-upstream":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncUpstream"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Fast-forward a branch of this fork to upstream. Body {branch: optional, default branch}. 409 when the fork has diverged (no force). Needs developer on the fork and read access to upstream."}},"/projects/{owner}/{repo}/upstream-merge-requests":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkMergeRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkedProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Open a merge request in the upstream of this fork. Body {source_branch (fork), target_branch (upstream, default its default branch), title, description, draft}. The source is mirrored to forks/\u003cfork id\u003e/\u003cbranch\u003e in upstream; pipelines there never get upstream secrets. Needs read access to upstream and the role that may open merge requests there."}},"/projects/{owner}/{repo}/webhooks":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Webhook"},"type":"array"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List project webhooks"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create project webhook"}},"/projects/{owner}/{repo}/webhooks/{id}":{"delete":{"responses":{"204":{"description":"No content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete project webhook"},"patch":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Update project webhook. Omitted fields and an empty token keep the stored value."}},"/projects/{owner}/{repo}/webhooks/{id}/copy":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCopy"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCopyResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Copy project webhook to a project or group, secrets stay server-side"}},"/repos/{owner}/{repo}/issues":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueList"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List issues"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueWrite"}}},"required":true},"responses":{"200":{"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Issue"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create issue"}},"/repos/{owner}/{repo}/issues/{number}":{"delete":{"responses":{"204":{"description":"No content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Delete issue"},"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Issue"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get issue"},"put":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueWrite"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Issue"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Update issue"}},"/repos/{owner}/{repo}/issues/{number}/notes":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueNoteCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Issue"}}},"description":"Issue, when the note contains only quick actions."},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueNote"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create issue note"}},"/repos/{owner}/{repo}/releases":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Publish release from a job or user token. A job token may send replace=true to replace its own release: running job of this project, pipeline on an unprotected branch (not forks/*), actor maintainer or higher, existing release made by a job on the same branch. Audited."}},"/user":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Current user"},"put":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Update profile"}},"/user/export":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Export account"}},"/user/keys":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List SSH keys"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Add SSH key"}},"/user/keys/{id}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Remove SSH key"}},"/user/runner-settings":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get runner preference"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Set runner preference"}},"/user/runners":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List account runners"}},"/user/runners/registration-token":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create account runner registration token"}},"/user/runners/{id}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Revoke account runner"},"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Get account runner"},"put":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Rename or pause account runner"}},"/user/runners/{id}/jobs":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Recent jobs of account runner"}},"/user/runners/{id}/pause":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Pause account runner"}},"/user/runners/{id}/resume":{"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Resume account runner"}},"/user/tokens":{"get":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"List access tokens"},"post":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Create access token"}},"/user/tokens/{id}":{"delete":{"responses":{"200":{"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"Revoke access token"}},"/users/{username}":{"get":{"description":"Public. Without a token the viewer is anonymous and only sees public repositories and groups. A valid token includes private items that account may see. Contributions follow the same filter.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{},{"bearer":[]},{"privateToken":[]},{"basic":[]}],"summary":"User profile"}}},"servers":[{"url":"/api/v1"}]}
