From 10906ab115459bfa506e7ac416f07be6b85b3c04 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 22 Dec 2025 04:45:30 +0000 Subject: [PATCH] Initial commit: Gitea MCP Server - 6 curated MCP tools (get_my_user_info, search_repos, list_my_repos, get_repo, list_repo_issues, list_repo_commits) - API pass-through tool (gitea_api_call) for complete API coverage - Curated API reference resource (gitea://api-reference) - Health check endpoint - Docker support with health checks --- .env.example | 2 + .gitignore | 26 + Dockerfile | 24 + README.md | 92 + docker-compose.yml | 15 + plugin-redoc-2.yaml | 21796 ++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 27 + server.py | 374 + 8 files changed, 22356 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 plugin-redoc-2.yaml create mode 100644 pyproject.toml create mode 100644 server.py diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..f6605c7 --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +GITEA_URL=https://gitea.example.com +GITEA_TOKEN=your_access_token diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cb49b22 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +.env +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +.venv/ +venv/ +ENV/ +.pytest_cache/ +.mypy_cache/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a48afe0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM python:3.12-slim + +WORKDIR /app + +# Install uv for fast dependency management +COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv + +# Copy project files +COPY pyproject.toml . +COPY server.py . + +# Install dependencies +RUN uv pip install --system --no-cache . + +# Install curl for health checks +RUN apt-get update && apt-get install -y --no-install-recommends curl && \ + rm -rf /var/lib/apt/lists/* + +EXPOSE 8000 + +HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ + CMD curl -f http://localhost:8000/health || exit 1 + +CMD ["python", "server.py"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..7120915 --- /dev/null +++ b/README.md @@ -0,0 +1,92 @@ +# Gitea MCP Server + +A lightweight Model Context Protocol (MCP) server for Gitea, following the **Hybrid MCP Light** pattern. + +## Features + +- **5 Curated Tools** for common operations +- **API Pass-through** for complete API coverage +- **Embedded API Reference** for agent self-service +- **Health Check Endpoint** for Docker/Kubernetes + +## Tools + +| Tool | Description | +|:-----|:------------| +| `get_my_user_info` | Get authenticated user info | +| `search_repos` | Search repositories by keyword | +| `list_my_repos` | List user's accessible repositories | +| `get_repo` | Get repository details | +| `list_repo_issues` | List issues for a repository | +| `list_repo_commits` | List commits for a repository | +| `gitea_api_call` | Raw API pass-through for any endpoint | + +## Resources + +| Resource URI | Description | +|:-------------|:------------| +| `gitea://api-reference` | Quick reference for common API endpoints | + +## Setup + +### Environment Variables + +```bash +GITEA_URL=https://gitea.example.com +GITEA_TOKEN=your_access_token +``` + +### Local Development + +```bash +# Install dependencies +uv pip install -e . + +# Run server +python server.py +``` + +### Docker + +```bash +# Build and run +docker compose up -d + +# Check health +curl http://localhost:8000/health +``` + +## MCP Client Configuration + +### Gemini CLI (`~/.gemini/settings.json`) + +```json +{ + "mcpServers": { + "gitea": { + "url": "http://localhost:8000/mcp" + } + } +} +``` + +## API Pass-through Examples + +```python +# Create a release +gitea_api_call( + endpoint="/repos/myorg/myrepo/releases", + method="POST", + body='{"tag_name": "v1.0.0", "name": "Release 1.0"}' +) + +# Get file contents +gitea_api_call( + endpoint="/repos/myorg/myrepo/contents/README.md", + params='{"ref": "main"}' +) +``` + +## License + +MIT diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e875e05 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +services: + gitea-mcp: + build: . + container_name: gitea-mcp + restart: unless-stopped + ports: + - "8000:8000" + env_file: + - .env + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 5s diff --git a/plugin-redoc-2.yaml b/plugin-redoc-2.yaml new file mode 100644 index 0000000..19f40fe --- /dev/null +++ b/plugin-redoc-2.yaml @@ -0,0 +1,21796 @@ +consumes: + - application/json + - text/plain +produces: + - application/json + - text/html +schemes: + - https + - http +swagger: '2.0' +info: + description: This documentation describes the Gitea API. + title: Gitea API + license: + name: MIT + url: http://opensource.org/licenses/MIT + version: 1.25.3 +basePath: https://gitea.com/api/v1 +paths: + /activitypub/user-id/{user-id}: + get: + produces: + - application/json + tags: + - activitypub + summary: Returns the Person actor for a user + operationId: activitypubPerson + parameters: + - type: integer + description: user ID of the user + name: user-id + in: path + required: true + responses: + '200': + $ref: '#/responses/ActivityPub' + /activitypub/user-id/{user-id}/inbox: + post: + produces: + - application/json + tags: + - activitypub + summary: Send to the inbox + operationId: activitypubPersonInbox + parameters: + - type: integer + description: user ID of the user + name: user-id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + /admin/actions/jobs: + get: + produces: + - application/json + tags: + - admin + summary: Lists all jobs + operationId: listAdminWorkflowJobs + parameters: + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowJobsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /admin/actions/runners: + get: + produces: + - application/json + tags: + - admin + summary: Get all runners + operationId: getAdminRunners + responses: + '200': + $ref: '#/definitions/ActionRunnersResponse' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /admin/actions/runners/registration-token: + post: + produces: + - application/json + tags: + - admin + summary: Get an global actions runner registration token + operationId: adminCreateRunnerRegistrationToken + responses: + '200': + $ref: '#/responses/RegistrationToken' + /admin/actions/runners/{runner_id}: + get: + produces: + - application/json + tags: + - admin + summary: Get an global runner + operationId: getAdminRunner + parameters: + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '200': + $ref: '#/definitions/ActionRunner' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - admin + summary: Delete an global runner + operationId: deleteAdminRunner + parameters: + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '204': + description: runner has been deleted + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /admin/actions/runs: + get: + produces: + - application/json + tags: + - admin + summary: Lists all runs + operationId: listAdminWorkflowRuns + parameters: + - type: string + description: workflow event name + name: event + in: query + - type: string + description: workflow branch + name: branch + in: query + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: string + description: triggered by user + name: actor + in: query + - type: string + description: triggering sha of the workflow run + name: head_sha + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowRunsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /admin/cron: + get: + produces: + - application/json + tags: + - admin + summary: List cron tasks + operationId: adminCronList + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/CronList' + '403': + $ref: '#/responses/forbidden' + /admin/cron/{task}: + post: + produces: + - application/json + tags: + - admin + summary: Run cron task + operationId: adminCronRun + parameters: + - type: string + description: task to run + name: task + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /admin/emails: + get: + produces: + - application/json + tags: + - admin + summary: List all emails + operationId: adminGetAllEmails + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/EmailList' + '403': + $ref: '#/responses/forbidden' + /admin/emails/search: + get: + produces: + - application/json + tags: + - admin + summary: Search all emails + operationId: adminSearchEmails + parameters: + - type: string + description: keyword + name: q + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/EmailList' + '403': + $ref: '#/responses/forbidden' + /admin/hooks: + get: + produces: + - application/json + tags: + - admin + summary: List system's webhooks + operationId: adminListHooks + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + - enum: + - system + - default + - all + type: string + default: system + description: system, default or both kinds of webhooks + name: type + in: query + responses: + '200': + $ref: '#/responses/HookList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Create a hook + operationId: adminCreateHook + parameters: + - name: body + in: body + required: true + schema: + $ref: '#/definitions/CreateHookOption' + responses: + '201': + $ref: '#/responses/Hook' + /admin/hooks/{id}: + get: + produces: + - application/json + tags: + - admin + summary: Get a hook + operationId: adminGetHook + parameters: + - type: integer + format: int64 + description: id of the hook to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Hook' + delete: + produces: + - application/json + tags: + - admin + summary: Delete a hook + operationId: adminDeleteHook + parameters: + - type: integer + format: int64 + description: id of the hook to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Update a hook + operationId: adminEditHook + parameters: + - type: integer + format: int64 + description: id of the hook to update + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditHookOption' + responses: + '200': + $ref: '#/responses/Hook' + /admin/orgs: + get: + produces: + - application/json + tags: + - admin + summary: List all organizations + operationId: adminGetAllOrgs + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/OrganizationList' + '403': + $ref: '#/responses/forbidden' + /admin/runners/registration-token: + get: + produces: + - application/json + tags: + - admin + summary: Get an global actions runner registration token + operationId: adminGetRunnerRegistrationToken + responses: + '200': + $ref: '#/responses/RegistrationToken' + /admin/unadopted: + get: + produces: + - application/json + tags: + - admin + summary: List unadopted repositories + operationId: adminUnadoptedList + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + - type: string + description: pattern of repositories to search for + name: pattern + in: query + responses: + '200': + $ref: '#/responses/StringSlice' + '403': + $ref: '#/responses/forbidden' + /admin/unadopted/{owner}/{repo}: + post: + produces: + - application/json + tags: + - admin + summary: Adopt unadopted files as a repository + operationId: adminAdoptRepository + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - admin + summary: Delete unadopted files + operationId: adminDeleteUnadoptedRepository + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + /admin/users: + get: + produces: + - application/json + tags: + - admin + summary: Search users according filter conditions + operationId: adminSearchUsers + parameters: + - type: integer + format: int64 + description: ID of the user's login source to search for + name: source_id + in: query + - type: string + description: identifier of the user, provided by the external authenticator + name: login_name + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '403': + $ref: '#/responses/forbidden' + post: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Create a user + operationId: adminCreateUser + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/CreateUserOption' + responses: + '201': + $ref: '#/responses/User' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /admin/users/{username}: + delete: + produces: + - application/json + tags: + - admin + summary: Delete a user + operationId: adminDeleteUser + parameters: + - type: string + description: username of the user to delete + name: username + in: path + required: true + - type: boolean + description: purge the user from the system completely + name: purge + in: query + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Edit an existing user + operationId: adminEditUser + parameters: + - type: string + description: username of the user whose data is to be edited + name: username + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditUserOption' + responses: + '200': + $ref: '#/responses/User' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /admin/users/{username}/badges: + get: + produces: + - application/json + tags: + - admin + summary: List a user's badges + operationId: adminListUserBadges + parameters: + - type: string + description: username of the user whose badges are to be listed + name: username + in: path + required: true + responses: + '200': + $ref: '#/responses/BadgeList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Add a badge to a user + operationId: adminAddUserBadges + parameters: + - type: string + description: username of the user to whom a badge is to be added + name: username + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UserBadgeOption' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + delete: + produces: + - application/json + tags: + - admin + summary: Remove a badge from a user + operationId: adminDeleteUserBadges + parameters: + - type: string + description: username of the user whose badge is to be deleted + name: username + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UserBadgeOption' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /admin/users/{username}/keys: + post: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Add a public key on behalf of a user + operationId: adminCreatePublicKey + parameters: + - type: string + description: username of the user who is to receive a public key + name: username + in: path + required: true + - name: key + in: body + schema: + $ref: '#/definitions/CreateKeyOption' + responses: + '201': + $ref: '#/responses/PublicKey' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /admin/users/{username}/keys/{id}: + delete: + produces: + - application/json + tags: + - admin + summary: Delete a user's public key + operationId: adminDeleteUserPublicKey + parameters: + - type: string + description: username of the user whose public key is to be deleted + name: username + in: path + required: true + - type: integer + format: int64 + description: id of the key to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /admin/users/{username}/orgs: + post: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Create an organization + operationId: adminCreateOrg + parameters: + - type: string + description: username of the user who will own the created organization + name: username + in: path + required: true + - name: organization + in: body + required: true + schema: + $ref: '#/definitions/CreateOrgOption' + responses: + '201': + $ref: '#/responses/Organization' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /admin/users/{username}/rename: + post: + produces: + - application/json + tags: + - admin + summary: Rename a user + operationId: adminRenameUser + parameters: + - type: string + description: current username of the user + name: username + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/RenameUserOption' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /admin/users/{username}/repos: + post: + consumes: + - application/json + produces: + - application/json + tags: + - admin + summary: Create a repository on behalf of a user + operationId: adminCreateRepo + parameters: + - type: string + description: username of the user who will own the created repository + name: username + in: path + required: true + - name: repository + in: body + required: true + schema: + $ref: '#/definitions/CreateRepoOption' + responses: + '201': + $ref: '#/responses/Repository' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + /gitignore/templates: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns a list of all gitignore templates + operationId: listGitignoresTemplates + responses: + '200': + $ref: '#/responses/GitignoreTemplateList' + /gitignore/templates/{name}: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns information about a gitignore template + operationId: getGitignoreTemplateInfo + parameters: + - type: string + description: name of the template + name: name + in: path + required: true + responses: + '200': + $ref: '#/responses/GitignoreTemplateInfo' + '404': + $ref: '#/responses/notFound' + /label/templates: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns a list of all label templates + operationId: listLabelTemplates + responses: + '200': + $ref: '#/responses/LabelTemplateList' + /label/templates/{name}: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns all labels in a template + operationId: getLabelTemplateInfo + parameters: + - type: string + description: name of the template + name: name + in: path + required: true + responses: + '200': + $ref: '#/responses/LabelTemplateInfo' + '404': + $ref: '#/responses/notFound' + /licenses: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns a list of all license templates + operationId: listLicenseTemplates + responses: + '200': + $ref: '#/responses/LicenseTemplateList' + /licenses/{name}: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns information about a license template + operationId: getLicenseTemplateInfo + parameters: + - type: string + description: name of the license + name: name + in: path + required: true + responses: + '200': + $ref: '#/responses/LicenseTemplateInfo' + '404': + $ref: '#/responses/notFound' + /markdown: + post: + consumes: + - application/json + produces: + - text/html + tags: + - miscellaneous + summary: Render a markdown document as HTML + operationId: renderMarkdown + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/MarkdownOption' + responses: + '200': + $ref: '#/responses/MarkdownRender' + '422': + $ref: '#/responses/validationError' + /markdown/raw: + post: + consumes: + - text/plain + produces: + - text/html + tags: + - miscellaneous + summary: Render raw markdown as HTML + operationId: renderMarkdownRaw + parameters: + - description: Request body to render + name: body + in: body + required: true + schema: + type: string + responses: + '200': + $ref: '#/responses/MarkdownRender' + '422': + $ref: '#/responses/validationError' + /markup: + post: + consumes: + - application/json + produces: + - text/html + tags: + - miscellaneous + summary: Render a markup document as HTML + operationId: renderMarkup + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/MarkupOption' + responses: + '200': + $ref: '#/responses/MarkupRender' + '422': + $ref: '#/responses/validationError' + /nodeinfo: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns the nodeinfo of the Gitea application + operationId: getNodeInfo + responses: + '200': + $ref: '#/responses/NodeInfo' + /notifications: + get: + consumes: + - application/json + produces: + - application/json + tags: + - notification + summary: List users's notification threads + operationId: notifyGetList + parameters: + - type: boolean + description: If true, show notifications marked as read. Default value is false + name: all + in: query + - type: array + items: + type: string + collectionFormat: multi + description: >- + Show notifications with the provided status types. Options are: + unread, read and/or pinned. Defaults to unread & pinned. + name: status-types + in: query + - type: array + items: + enum: + - issue + - pull + - commit + - repository + type: string + collectionFormat: multi + description: filter notifications by subject type + name: subject-type + in: query + - type: string + format: date-time + description: >- + Only show notifications updated after the given time. This is a + timestamp in RFC 3339 format + name: since + in: query + - type: string + format: date-time + description: >- + Only show notifications updated before the given time. This is a + timestamp in RFC 3339 format + name: before + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/NotificationThreadList' + put: + consumes: + - application/json + produces: + - application/json + tags: + - notification + summary: Mark notification threads as read, pinned or unread + operationId: notifyReadList + parameters: + - type: string + format: date-time + description: >- + Describes the last point that notifications were checked. Anything + updated since this time will not be updated. + name: last_read_at + in: query + - type: string + description: If true, mark all notifications on this repo. Default value is false + name: all + in: query + - type: array + items: + type: string + collectionFormat: multi + description: >- + Mark notifications with the provided status types. Options are: + unread, read and/or pinned. Defaults to unread. + name: status-types + in: query + - type: string + description: Status to mark notifications as, Defaults to read. + name: to-status + in: query + responses: + '205': + $ref: '#/responses/NotificationThreadList' + /notifications/new: + get: + tags: + - notification + summary: Check if unread notifications exist + operationId: notifyNewAvailable + responses: + '200': + $ref: '#/responses/NotificationCount' + /notifications/threads/{id}: + get: + consumes: + - application/json + produces: + - application/json + tags: + - notification + summary: Get notification thread by ID + operationId: notifyGetThread + parameters: + - type: string + description: id of notification thread + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/NotificationThread' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - notification + summary: Mark notification thread as read by ID + operationId: notifyReadThread + parameters: + - type: string + description: id of notification thread + name: id + in: path + required: true + - type: string + default: read + description: Status to mark notifications as + name: to-status + in: query + responses: + '205': + $ref: '#/responses/NotificationThread' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /org/{org}/repos: + post: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create a repository in an organization + operationId: createOrgRepoDeprecated + deprecated: true + parameters: + - type: string + description: name of organization + name: org + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateRepoOption' + responses: + '201': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /orgs: + get: + produces: + - application/json + tags: + - organization + summary: Get list of organizations + operationId: orgGetAll + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/OrganizationList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create an organization + operationId: orgCreate + parameters: + - name: organization + in: body + required: true + schema: + $ref: '#/definitions/CreateOrgOption' + responses: + '201': + $ref: '#/responses/Organization' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /orgs/{org}: + get: + produces: + - application/json + tags: + - organization + summary: Get an organization + operationId: orgGet + parameters: + - type: string + description: name of the organization to get + name: org + in: path + required: true + responses: + '200': + $ref: '#/responses/Organization' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - organization + summary: Delete an organization + operationId: orgDelete + parameters: + - type: string + description: organization that is to be deleted + name: org + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Edit an organization + operationId: orgEdit + parameters: + - type: string + description: name of the organization to edit + name: org + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/EditOrgOption' + responses: + '200': + $ref: '#/responses/Organization' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/jobs: + get: + produces: + - application/json + tags: + - organization + summary: Get org-level workflow jobs + operationId: getOrgWorkflowJobs + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowJobsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/runners: + get: + produces: + - application/json + tags: + - organization + summary: Get org-level runners + operationId: getOrgRunners + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + responses: + '200': + $ref: '#/definitions/ActionRunnersResponse' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/runners/registration-token: + get: + produces: + - application/json + tags: + - organization + summary: Get an organization's actions runner registration token + operationId: orgGetRunnerRegistrationToken + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + responses: + '200': + $ref: '#/responses/RegistrationToken' + post: + produces: + - application/json + tags: + - organization + summary: Get an organization's actions runner registration token + operationId: orgCreateRunnerRegistrationToken + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + responses: + '200': + $ref: '#/responses/RegistrationToken' + /orgs/{org}/actions/runners/{runner_id}: + get: + produces: + - application/json + tags: + - organization + summary: Get an org-level runner + operationId: getOrgRunner + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '200': + $ref: '#/definitions/ActionRunner' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - organization + summary: Delete an org-level runner + operationId: deleteOrgRunner + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '204': + description: runner has been deleted + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/runs: + get: + produces: + - application/json + tags: + - organization + summary: Get org-level workflow runs + operationId: getOrgWorkflowRuns + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: workflow event name + name: event + in: query + - type: string + description: workflow branch + name: branch + in: query + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: string + description: triggered by user + name: actor + in: query + - type: string + description: triggering sha of the workflow run + name: head_sha + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowRunsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/secrets: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's actions secrets + operationId: orgListActionsSecrets + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/SecretList' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/secrets/{secretname}: + put: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create or Update a secret value in an organization + operationId: updateOrgSecret + parameters: + - type: string + description: name of organization + name: org + in: path + required: true + - type: string + description: name of the secret + name: secretname + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateOrUpdateSecretOption' + responses: + '201': + description: response when creating a secret + '204': + description: response when updating a secret + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Delete a secret in an organization + operationId: deleteOrgSecret + parameters: + - type: string + description: name of organization + name: org + in: path + required: true + - type: string + description: name of the secret + name: secretname + in: path + required: true + responses: + '204': + description: delete one secret of the organization + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/variables: + get: + produces: + - application/json + tags: + - organization + summary: Get an org-level variables list + operationId: getOrgVariablesList + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/VariableList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/actions/variables/{variablename}: + get: + produces: + - application/json + tags: + - organization + summary: Get an org-level variable + operationId: getOrgVariable + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + responses: + '200': + $ref: '#/responses/ActionVariable' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + put: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Update an org-level variable + operationId: updateOrgVariable + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UpdateVariableOption' + responses: + '201': + description: response when updating an org-level variable + '204': + description: response when updating an org-level variable + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create an org-level variable + operationId: createOrgVariable + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateVariableOption' + responses: + '201': + description: successfully created the org-level variable + '400': + $ref: '#/responses/error' + '409': + description: variable name already exists. + '500': + $ref: '#/responses/error' + delete: + produces: + - application/json + tags: + - organization + summary: Delete an org-level variable + operationId: deleteOrgVariable + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + responses: + '200': + $ref: '#/responses/ActionVariable' + '201': + description: response when deleting a variable + '204': + description: response when deleting a variable + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/activities/feeds: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's activity feeds + operationId: orgListActivityFeeds + parameters: + - type: string + description: name of the org + name: org + in: path + required: true + - type: string + format: date + description: the date of the activities to be found + name: date + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/ActivityFeedsList' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/avatar: + post: + produces: + - application/json + tags: + - organization + summary: Update Avatar + operationId: orgUpdateAvatar + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UpdateUserAvatarOption' + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - organization + summary: Delete Avatar + operationId: orgDeleteAvatar + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/blocks: + get: + produces: + - application/json + tags: + - organization + summary: List users blocked by the organization + operationId: organizationListBlocks + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + /orgs/{org}/blocks/{username}: + get: + tags: + - organization + summary: Check if a user is blocked by the organization + operationId: organizationCheckUserBlock + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user to check + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + put: + tags: + - organization + summary: Block a user + operationId: organizationBlockUser + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user to block + name: username + in: path + required: true + - type: string + description: optional note for the block + name: note + in: query + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + delete: + tags: + - organization + summary: Unblock a user + operationId: organizationUnblockUser + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user to unblock + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /orgs/{org}/hooks: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's webhooks + operationId: orgListHooks + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/HookList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create a hook + operationId: orgCreateHook + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/CreateHookOption' + responses: + '201': + $ref: '#/responses/Hook' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/hooks/{id}: + get: + produces: + - application/json + tags: + - organization + summary: Get a hook + operationId: orgGetHook + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + format: int64 + description: id of the hook to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Hook' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - organization + summary: Delete a hook + operationId: orgDeleteHook + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + format: int64 + description: id of the hook to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Update a hook + operationId: orgEditHook + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + format: int64 + description: id of the hook to update + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditHookOption' + responses: + '200': + $ref: '#/responses/Hook' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/labels: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's labels + operationId: orgListLabels + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/LabelList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create a label for an organization + operationId: orgCreateLabel + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateLabelOption' + responses: + '201': + $ref: '#/responses/Label' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /orgs/{org}/labels/{id}: + get: + produces: + - application/json + tags: + - organization + summary: Get a single label + operationId: orgGetLabel + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + format: int64 + description: id of the label to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Label' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - organization + summary: Delete a label + operationId: orgDeleteLabel + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + format: int64 + description: id of the label to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Update a label + operationId: orgEditLabel + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + format: int64 + description: id of the label to edit + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditLabelOption' + responses: + '200': + $ref: '#/responses/Label' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /orgs/{org}/members: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's members + operationId: orgListMembers + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/members/{username}: + get: + tags: + - organization + summary: Check if a user is a member of an organization + operationId: orgIsMember + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user to check for an organization membership + name: username + in: path + required: true + responses: + '204': + description: user is a member + '303': + description: redirection to /orgs/{org}/public_members/{username} + '404': + description: user is not a member + delete: + produces: + - application/json + tags: + - organization + summary: Remove a member from an organization + operationId: orgDeleteMember + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user to remove from the organization + name: username + in: path + required: true + responses: + '204': + description: member removed + '404': + $ref: '#/responses/notFound' + /orgs/{org}/public_members: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's public members + operationId: orgListPublicMembers + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/public_members/{username}: + get: + tags: + - organization + summary: Check if a user is a public member of an organization + operationId: orgIsPublicMember + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user to check for a public organization membership + name: username + in: path + required: true + responses: + '204': + description: user is a public member + '404': + description: user is not a public member + put: + produces: + - application/json + tags: + - organization + summary: Publicize a user's membership + operationId: orgPublicizeMember + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user whose membership is to be publicized + name: username + in: path + required: true + responses: + '204': + description: membership publicized + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - organization + summary: Conceal a user's membership + operationId: orgConcealMember + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: username of the user whose membership is to be concealed + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/rename: + post: + produces: + - application/json + tags: + - organization + summary: Rename an organization + operationId: renameOrg + parameters: + - type: string + description: existing org name + name: org + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/RenameOrgOption' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '422': + $ref: '#/responses/validationError' + /orgs/{org}/repos: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's repos + operationId: orgListRepos + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create a repository in an organization + operationId: createOrgRepo + parameters: + - type: string + description: name of organization + name: org + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateRepoOption' + responses: + '201': + $ref: '#/responses/Repository' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /orgs/{org}/teams: + get: + produces: + - application/json + tags: + - organization + summary: List an organization's teams + operationId: orgListTeams + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/TeamList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Create a team + operationId: orgCreateTeam + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateTeamOption' + responses: + '201': + $ref: '#/responses/Team' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /orgs/{org}/teams/search: + get: + produces: + - application/json + tags: + - organization + summary: Search for teams within an organization + operationId: teamSearch + parameters: + - type: string + description: name of the organization + name: org + in: path + required: true + - type: string + description: keywords to search + name: q + in: query + - type: boolean + description: include search within team description (defaults to true) + name: include_desc + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + description: SearchResults of a successful search + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/definitions/Team' + ok: + type: boolean + '404': + $ref: '#/responses/notFound' + /packages/{owner}: + get: + produces: + - application/json + tags: + - package + summary: Gets all packages of an owner + operationId: listPackages + parameters: + - type: string + description: owner of the packages + name: owner + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + - enum: + - alpine + - cargo + - chef + - composer + - conan + - conda + - container + - cran + - debian + - generic + - go + - helm + - maven + - npm + - nuget + - pub + - pypi + - rpm + - rubygems + - swift + - vagrant + type: string + description: package type filter + name: type + in: query + - type: string + description: name filter + name: q + in: query + responses: + '200': + $ref: '#/responses/PackageList' + '404': + $ref: '#/responses/notFound' + /packages/{owner}/{type}/{name}: + get: + produces: + - application/json + tags: + - package + summary: Gets all versions of a package + operationId: listPackageVersions + parameters: + - type: string + description: owner of the package + name: owner + in: path + required: true + - type: string + description: type of the package + name: type + in: path + required: true + - type: string + description: name of the package + name: name + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/PackageList' + '404': + $ref: '#/responses/notFound' + /packages/{owner}/{type}/{name}/-/latest: + get: + produces: + - application/json + tags: + - package + summary: Gets the latest version of a package + operationId: getLatestPackageVersion + parameters: + - type: string + description: owner of the package + name: owner + in: path + required: true + - type: string + description: type of the package + name: type + in: path + required: true + - type: string + description: name of the package + name: name + in: path + required: true + responses: + '200': + $ref: '#/responses/Package' + '404': + $ref: '#/responses/notFound' + /packages/{owner}/{type}/{name}/-/link/{repo_name}: + post: + tags: + - package + summary: Link a package to a repository + operationId: linkPackage + parameters: + - type: string + description: owner of the package + name: owner + in: path + required: true + - type: string + description: type of the package + name: type + in: path + required: true + - type: string + description: name of the package + name: name + in: path + required: true + - type: string + description: name of the repository to link. + name: repo_name + in: path + required: true + responses: + '201': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /packages/{owner}/{type}/{name}/-/unlink: + post: + tags: + - package + summary: Unlink a package from a repository + operationId: unlinkPackage + parameters: + - type: string + description: owner of the package + name: owner + in: path + required: true + - type: string + description: type of the package + name: type + in: path + required: true + - type: string + description: name of the package + name: name + in: path + required: true + responses: + '201': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /packages/{owner}/{type}/{name}/{version}: + get: + produces: + - application/json + tags: + - package + summary: Gets a package + operationId: getPackage + parameters: + - type: string + description: owner of the package + name: owner + in: path + required: true + - type: string + description: type of the package + name: type + in: path + required: true + - type: string + description: name of the package + name: name + in: path + required: true + - type: string + description: version of the package + name: version + in: path + required: true + responses: + '200': + $ref: '#/responses/Package' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - package + summary: Delete a package + operationId: deletePackage + parameters: + - type: string + description: owner of the package + name: owner + in: path + required: true + - type: string + description: type of the package + name: type + in: path + required: true + - type: string + description: name of the package + name: name + in: path + required: true + - type: string + description: version of the package + name: version + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /packages/{owner}/{type}/{name}/{version}/files: + get: + produces: + - application/json + tags: + - package + summary: Gets all files of a package + operationId: listPackageFiles + parameters: + - type: string + description: owner of the package + name: owner + in: path + required: true + - type: string + description: type of the package + name: type + in: path + required: true + - type: string + description: name of the package + name: name + in: path + required: true + - type: string + description: version of the package + name: version + in: path + required: true + responses: + '200': + $ref: '#/responses/PackageFileList' + '404': + $ref: '#/responses/notFound' + /repos/issues/search: + get: + produces: + - application/json + tags: + - issue + summary: Search for issues across the repositories that the user has access to + operationId: issueSearchIssues + parameters: + - enum: + - open + - closed + - all + type: string + default: open + description: State of the issue + name: state + in: query + - type: string + description: >- + Comma-separated list of label names. Fetch only issues that have any + of these labels. Non existent labels are discarded. + name: labels + in: query + - type: string + description: >- + Comma-separated list of milestone names. Fetch only issues that have + any of these milestones. Non existent milestones are discarded. + name: milestones + in: query + - type: string + description: Search string + name: q + in: query + - type: integer + format: int64 + description: Repository ID to prioritize in the results + name: priority_repo_id + in: query + - enum: + - issues + - pulls + type: string + description: Filter by issue type + name: type + in: query + - type: string + format: date-time + description: Only show issues updated after the given time (RFC 3339 format) + name: since + in: query + - type: string + format: date-time + description: Only show issues updated before the given time (RFC 3339 format) + name: before + in: query + - type: boolean + default: false + description: Filter issues or pulls assigned to the authenticated user + name: assigned + in: query + - type: boolean + default: false + description: Filter issues or pulls created by the authenticated user + name: created + in: query + - type: boolean + default: false + description: Filter issues or pulls mentioning the authenticated user + name: mentioned + in: query + - type: boolean + default: false + description: >- + Filter pull requests where the authenticated user's review was + requested + name: review_requested + in: query + - type: boolean + default: false + description: Filter pull requests reviewed by the authenticated user + name: reviewed + in: query + - type: string + description: Filter by repository owner + name: owner + in: query + - type: string + description: Filter by team (requires organization owner parameter) + name: team + in: query + - minimum: 1 + type: integer + default: 1 + description: Page number of results to return (1-based) + name: page + in: query + - minimum: 0 + type: integer + description: Number of items per page + name: limit + in: query + responses: + '200': + $ref: '#/responses/IssueList' + '400': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + /repos/migrate: + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Migrate a remote git repository + operationId: repoMigrate + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/MigrateRepoOptions' + responses: + '201': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '409': + description: The repository with the same name already exists. + '422': + $ref: '#/responses/validationError' + /repos/search: + get: + produces: + - application/json + tags: + - repository + summary: Search for repositories + operationId: repoSearch + parameters: + - type: string + description: keyword + name: q + in: query + - type: boolean + description: Limit search to repositories with keyword as topic + name: topic + in: query + - type: boolean + description: include search of keyword within repository description + name: includeDesc + in: query + - type: integer + format: int64 + description: >- + search only for repos that the user with the given id owns or + contributes to + name: uid + in: query + - type: integer + format: int64 + description: repo owner to prioritize in the results + name: priority_owner_id + in: query + - type: integer + format: int64 + description: search only for repos that belong to the given team id + name: team_id + in: query + - type: integer + format: int64 + description: search only for repos that the user with the given id has starred + name: starredBy + in: query + - type: boolean + description: >- + include private repositories this user has access to (defaults to + true) + name: private + in: query + - type: boolean + description: show only pubic, private or all repositories (defaults to all) + name: is_private + in: query + - type: boolean + description: >- + include template repositories this user has access to (defaults to + true) + name: template + in: query + - type: boolean + description: >- + show only archived, non-archived or all repositories (defaults to + all) + name: archived + in: query + - type: string + description: >- + type of repository to search for. Supported values are "fork", + "source", "mirror" and "collaborative" + name: mode + in: query + - type: boolean + description: if `uid` is given, search only for repos that the user owns + name: exclusive + in: query + - type: string + description: >- + sort repos by attribute. Supported values are "alpha", "created", + "updated", "size", "git_size", "lfs_size", "stars", "forks" and + "id". Default is "alpha" + name: sort + in: query + - type: string + description: >- + sort order, either "asc" (ascending) or "desc" (descending). Default + is "asc", ignored if "sort" is not specified. + name: order + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/SearchResults' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}: + get: + produces: + - application/json + tags: + - repository + summary: Get a repository + operationId: repoGet + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/Repository' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a repository + operationId: repoDelete + parameters: + - type: string + description: owner of the repo to delete + name: owner + in: path + required: true + - type: string + description: name of the repo to delete + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + patch: + produces: + - application/json + tags: + - repository + summary: >- + Edit a repository's properties. Only fields that are set will be + changed. + operationId: repoEdit + parameters: + - type: string + description: owner of the repo to edit + name: owner + in: path + required: true + - type: string + description: name of the repo to edit + name: repo + in: path + required: true + - description: Properties of a repo that you can edit + name: body + in: body + schema: + $ref: '#/definitions/EditRepoOption' + responses: + '200': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/actions/artifacts: + get: + produces: + - application/json + tags: + - repository + summary: Lists all artifacts for a repository + operationId: getArtifacts + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: name of the artifact + name: name + in: query + responses: + '200': + $ref: '#/responses/ArtifactsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/artifacts/{artifact_id}: + get: + produces: + - application/json + tags: + - repository + summary: Gets a specific artifact for a workflow run + operationId: getArtifact + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: id of the artifact + name: artifact_id + in: path + required: true + responses: + '200': + $ref: '#/responses/Artifact' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Deletes a specific artifact for a workflow run + operationId: deleteArtifact + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: id of the artifact + name: artifact_id + in: path + required: true + responses: + '204': + description: No Content + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip: + get: + produces: + - application/json + tags: + - repository + summary: Downloads a specific artifact for a workflow run redirects to blob url + operationId: downloadArtifact + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: id of the artifact + name: artifact_id + in: path + required: true + responses: + '302': + description: redirect to the blob download + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/jobs: + get: + produces: + - application/json + tags: + - repository + summary: Lists all jobs for a repository + operationId: listWorkflowJobs + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowJobsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/jobs/{job_id}: + get: + produces: + - application/json + tags: + - repository + summary: Gets a specific workflow job for a workflow run + operationId: getWorkflowJob + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: id of the job + name: job_id + in: path + required: true + responses: + '200': + $ref: '#/responses/WorkflowJob' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/jobs/{job_id}/logs: + get: + produces: + - application/json + tags: + - repository + summary: Downloads the job logs for a workflow run + operationId: downloadActionsRunJobLogs + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: integer + description: id of the job + name: job_id + in: path + required: true + responses: + '200': + description: output blob content + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/runners: + get: + produces: + - application/json + tags: + - repository + summary: Get repo-level runners + operationId: getRepoRunners + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/definitions/ActionRunnersResponse' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/runners/registration-token: + get: + produces: + - application/json + tags: + - repository + summary: Get a repository's actions runner registration token + operationId: repoGetRunnerRegistrationToken + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/RegistrationToken' + post: + produces: + - application/json + tags: + - repository + summary: Get a repository's actions runner registration token + operationId: repoCreateRunnerRegistrationToken + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/RegistrationToken' + /repos/{owner}/{repo}/actions/runners/{runner_id}: + get: + produces: + - application/json + tags: + - repository + summary: Get an repo-level runner + operationId: getRepoRunner + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '200': + $ref: '#/definitions/ActionRunner' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete an repo-level runner + operationId: deleteRepoRunner + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '204': + description: runner has been deleted + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/runs: + get: + produces: + - application/json + tags: + - repository + summary: Lists all runs for a repository run + operationId: getWorkflowRuns + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: workflow event name + name: event + in: query + - type: string + description: workflow branch + name: branch + in: query + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: string + description: triggered by user + name: actor + in: query + - type: string + description: triggering sha of the workflow run + name: head_sha + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowRunsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/runs/{run}: + get: + produces: + - application/json + tags: + - repository + summary: Gets a specific workflow run + operationId: GetWorkflowRun + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: id of the run + name: run + in: path + required: true + responses: + '200': + $ref: '#/responses/WorkflowRun' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a workflow run + operationId: deleteActionRun + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: integer + description: runid of the workflow run + name: run + in: path + required: true + responses: + '204': + description: No Content + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/runs/{run}/artifacts: + get: + produces: + - application/json + tags: + - repository + summary: Lists all artifacts for a repository run + operationId: getArtifactsOfRun + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: integer + description: runid of the workflow run + name: run + in: path + required: true + - type: string + description: name of the artifact + name: name + in: query + responses: + '200': + $ref: '#/responses/ArtifactsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/runs/{run}/jobs: + get: + produces: + - application/json + tags: + - repository + summary: Lists all jobs for a workflow run + operationId: listWorkflowRunJobs + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: integer + description: runid of the workflow run + name: run + in: path + required: true + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowJobsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/secrets: + get: + produces: + - application/json + tags: + - repository + summary: List an repo's actions secrets + operationId: repoListActionsSecrets + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/SecretList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/secrets/{secretname}: + put: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create or Update a secret value in a repository + operationId: updateRepoSecret + parameters: + - type: string + description: owner of the repository + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: name of the secret + name: secretname + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateOrUpdateSecretOption' + responses: + '201': + description: response when creating a secret + '204': + description: response when updating a secret + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Delete a secret in a repository + operationId: deleteRepoSecret + parameters: + - type: string + description: owner of the repository + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: name of the secret + name: secretname + in: path + required: true + responses: + '204': + description: delete one secret of the repository + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/tasks: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's action tasks + operationId: ListActionTasks + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results, default maximum page size is 50 + name: limit + in: query + responses: + '200': + $ref: '#/responses/TasksList' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/conflict' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/actions/variables: + get: + produces: + - application/json + tags: + - repository + summary: Get repo-level variables list + operationId: getRepoVariablesList + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/VariableList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/variables/{variablename}: + get: + produces: + - application/json + tags: + - repository + summary: Get a repo-level variable + operationId: getRepoVariable + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + responses: + '200': + $ref: '#/responses/ActionVariable' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + put: + produces: + - application/json + tags: + - repository + summary: Update a repo-level variable + operationId: updateRepoVariable + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UpdateVariableOption' + responses: + '201': + description: response when updating a repo-level variable + '204': + description: response when updating a repo-level variable + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - repository + summary: Create a repo-level variable + operationId: createRepoVariable + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateVariableOption' + responses: + '201': + description: response when creating a repo-level variable + '400': + $ref: '#/responses/error' + '409': + description: variable name already exists. + '500': + $ref: '#/responses/error' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a repo-level variable + operationId: deleteRepoVariable + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repository + name: repo + in: path + required: true + - type: string + description: name of the variable + name: variablename + in: path + required: true + responses: + '200': + $ref: '#/responses/ActionVariable' + '201': + description: response when deleting a variable + '204': + description: response when deleting a variable + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/actions/workflows: + get: + produces: + - application/json + tags: + - repository + summary: List repository workflows + operationId: ActionsListRepositoryWorkflows + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/ActionWorkflowList' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + '500': + $ref: '#/responses/error' + /repos/{owner}/{repo}/actions/workflows/{workflow_id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a workflow + operationId: ActionsGetWorkflow + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the workflow + name: workflow_id + in: path + required: true + responses: + '200': + $ref: '#/responses/ActionWorkflow' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + '500': + $ref: '#/responses/error' + /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable: + put: + produces: + - application/json + tags: + - repository + summary: Disable a workflow + operationId: ActionsDisableWorkflow + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the workflow + name: workflow_id + in: path + required: true + responses: + '204': + description: No Content + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches: + post: + produces: + - application/json + tags: + - repository + summary: Create a workflow dispatch event + operationId: ActionsDispatchWorkflow + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the workflow + name: workflow_id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateActionWorkflowDispatch' + responses: + '204': + description: No Content + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable: + put: + produces: + - application/json + tags: + - repository + summary: Enable a workflow + operationId: ActionsEnableWorkflow + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the workflow + name: workflow_id + in: path + required: true + responses: + '204': + description: No Content + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/conflict' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/activities/feeds: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's activity feeds + operationId: repoListActivityFeeds + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + format: date + description: the date of the activities to be found + name: date + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/ActivityFeedsList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/archive/{archive}: + get: + produces: + - application/json + tags: + - repository + summary: Get an archive of a repository + operationId: repoGetArchive + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + the git reference for download with attached archive format (e.g. + master.zip) + name: archive + in: path + required: true + responses: + '200': + description: success + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/assignees: + get: + produces: + - application/json + tags: + - repository + summary: Return all users that have write access and can be assigned to issues + operationId: repoGetAssignees + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/avatar: + post: + produces: + - application/json + tags: + - repository + summary: Update avatar + operationId: repoUpdateAvatar + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UpdateRepoAvatarOption' + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete avatar + operationId: repoDeleteAvatar + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/branch_protections: + get: + produces: + - application/json + tags: + - repository + summary: List branch protections for a repository + operationId: repoListBranchProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/BranchProtectionList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a branch protections for a repository + operationId: repoCreateBranchProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateBranchProtectionOption' + responses: + '201': + $ref: '#/responses/BranchProtection' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/branch_protections/priority: + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Update the priorities of branch protections for a repository. + operationId: repoUpdateBranchProtectionPriories + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UpdateBranchProtectionPriories' + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/branch_protections/{name}: + get: + produces: + - application/json + tags: + - repository + summary: Get a specific branch protection for the repository + operationId: repoGetBranchProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of protected branch + name: name + in: path + required: true + responses: + '200': + $ref: '#/responses/BranchProtection' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a specific branch protection for the repository + operationId: repoDeleteBranchProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of protected branch + name: name + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: >- + Edit a branch protections for a repository. Only fields that are set + will be changed + operationId: repoEditBranchProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of protected branch + name: name + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditBranchProtectionOption' + responses: + '200': + $ref: '#/responses/BranchProtection' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/branches: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's branches + operationId: repoListBranches + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/BranchList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a branch + operationId: repoCreateBranch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateBranchRepoOption' + responses: + '201': + $ref: '#/responses/Branch' + '403': + description: The branch is archived or a mirror. + '404': + description: The old branch does not exist. + '409': + description: The branch with the same name already exists. + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/branches/{branch}: + get: + produces: + - application/json + tags: + - repository + summary: >- + Retrieve a specific branch from a repository, including its effective + branch protection + operationId: repoGetBranch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: branch to get + name: branch + in: path + required: true + responses: + '200': + $ref: '#/responses/Branch' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a specific branch from a repository + operationId: repoDeleteBranch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: branch to delete + name: branch + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Rename a branch + operationId: repoRenameBranch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of the branch + name: branch + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/RenameBranchRepoOption' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/collaborators: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's collaborators + operationId: repoListCollaborators + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/collaborators/{collaborator}: + get: + produces: + - application/json + tags: + - repository + summary: Check if a user is a collaborator of a repository + operationId: repoCheckCollaborator + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: username of the user to check for being a collaborator + name: collaborator + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + put: + produces: + - application/json + tags: + - repository + summary: Add or Update a collaborator to a repository + operationId: repoAddCollaborator + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: username of the user to add or update as a collaborator + name: collaborator + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/AddCollaboratorOption' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a collaborator from a repository + operationId: repoDeleteCollaborator + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: username of the collaborator to delete + name: collaborator + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/collaborators/{collaborator}/permission: + get: + produces: + - application/json + tags: + - repository + summary: Get repository permissions for a user + operationId: repoGetRepoPermissions + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: username of the collaborator whose permissions are to be obtained + name: collaborator + in: path + required: true + responses: + '200': + $ref: '#/responses/RepoCollaboratorPermission' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/commits: + get: + produces: + - application/json + tags: + - repository + summary: Get a list of all commits from a repository + operationId: repoGetAllCommits + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: SHA or branch to start listing commits from (usually 'master') + name: sha + in: query + - type: string + description: filepath of a file/dir + name: path + in: query + - type: string + format: date-time + description: Only commits after this date will be returned (ISO 8601 format) + name: since + in: query + - type: string + format: date-time + description: Only commits before this date will be returned (ISO 8601 format) + name: until + in: query + - type: boolean + description: >- + include diff stats for every commit (disable for speedup, default + 'true') + name: stat + in: query + - type: boolean + description: >- + include verification for every commit (disable for speedup, default + 'true') + name: verification + in: query + - type: boolean + description: >- + include a list of affected files for every commit (disable for + speedup, default 'true') + name: files + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results (ignored if used with 'path') + name: limit + in: query + - type: string + description: commits that match the given specifier will not be listed. + name: not + in: query + responses: + '200': + $ref: '#/responses/CommitList' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/EmptyRepository' + /repos/{owner}/{repo}/commits/{ref}/status: + get: + produces: + - application/json + tags: + - repository + summary: Get a commit's combined status, by branch/tag/commit reference + operationId: repoGetCombinedStatusByRef + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of branch/tag/commit + name: ref + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/CombinedStatus' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/commits/{ref}/statuses: + get: + produces: + - application/json + tags: + - repository + summary: Get a commit's statuses, by branch/tag/commit reference + operationId: repoListStatusesByRef + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of branch/tag/commit + name: ref + in: path + required: true + - enum: + - oldest + - recentupdate + - leastupdate + - leastindex + - highestindex + type: string + description: type of sort + name: sort + in: query + - enum: + - pending + - success + - error + - failure + - warning + type: string + description: type of state + name: state + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/CommitStatusList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/commits/{sha}/pull: + get: + produces: + - application/json + tags: + - repository + summary: Get the merged pull request of the commit + operationId: repoGetCommitPullRequest + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: SHA of the commit to get + name: sha + in: path + required: true + responses: + '200': + $ref: '#/responses/PullRequest' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/compare/{basehead}: + get: + produces: + - application/json + tags: + - repository + summary: Get commit comparison information + operationId: repoCompareDiff + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: compare two branches or commits + name: basehead + in: path + required: true + responses: + '200': + $ref: '#/responses/Compare' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/contents: + get: + description: >- + This API follows GitHub's design, and it is not easy to use. Recommend + users to use our "contents-ext" API instead. + produces: + - application/json + tags: + - repository + summary: Gets the metadata of all the entries of the root dir. + operationId: repoGetContentsList + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag. Default to the repository’s + default branch. + name: ref + in: query + responses: + '200': + $ref: '#/responses/ContentsListResponse' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Modify multiple files in a repository + operationId: repoChangeFiles + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/ChangeFilesOptions' + responses: + '201': + $ref: '#/responses/FilesResponse' + '403': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/error' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/contents-ext/{filepath}: + get: + description: >- + It guarantees that only one of the response fields is set if the request + succeeds. Users can pass "includes=file_content" or + "includes=lfs_metadata" to retrieve more fields. "includes=file_content" + only works for single file, if you need to retrieve file contents in + batch, use "file-contents" API after listing the directory. + produces: + - application/json + tags: + - repository + summary: >- + The extended "contents" API, to get file metadata and/or content, or + list a directory. + operationId: repoGetContentsExt + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + path of the dir, file, symlink or submodule in the repo. Swagger + requires path parameter to be "required", you can leave it empty or + pass a single dot (".") to get the root directory. + name: filepath + in: path + required: true + - type: string + description: >- + the name of the commit/branch/tag, default to the repository’s + default branch. + name: ref + in: query + - type: string + description: >- + By default this API's response only contains file's metadata. Use + comma-separated "includes" options to retrieve more fields. Option + "file_content" will try to retrieve the file content, "lfs_metadata" + will try to retrieve LFS metadata, "commit_metadata" will try to + retrieve commit metadata, and "commit_message" will try to retrieve + commit message. + name: includes + in: query + responses: + '200': + $ref: '#/responses/ContentsExtResponse' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/contents/{filepath}: + get: + description: >- + This API follows GitHub's design, and it is not easy to use. Recommend + users to use the "contents-ext" API instead. + produces: + - application/json + tags: + - repository + summary: >- + Gets the metadata and contents (if a file) of an entry in a repository, + or a list of entries if a dir. + operationId: repoGetContents + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: path of the dir, file, symlink or submodule in the repo + name: filepath + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag. Default to the repository’s + default branch. + name: ref + in: query + responses: + '200': + $ref: '#/responses/ContentsResponse' + '404': + $ref: '#/responses/notFound' + put: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Update a file in a repository + operationId: repoUpdateFile + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: path of the file to update + name: filepath + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/UpdateFileOptions' + responses: + '200': + $ref: '#/responses/FileResponse' + '403': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/error' + '423': + $ref: '#/responses/repoArchivedError' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a file in a repository + operationId: repoCreateFile + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: path of the file to create + name: filepath + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/CreateFileOptions' + responses: + '201': + $ref: '#/responses/FileResponse' + '403': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/error' + '423': + $ref: '#/responses/repoArchivedError' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Delete a file in a repository + operationId: repoDeleteFile + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: path of the file to delete + name: filepath + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/DeleteFileOptions' + responses: + '200': + $ref: '#/responses/FileDeleteResponse' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/error' + '404': + $ref: '#/responses/error' + '422': + $ref: '#/responses/error' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/diffpatch: + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Apply diff patch to repository + operationId: repoApplyDiffPatch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/ApplyDiffPatchFileOptions' + responses: + '200': + $ref: '#/responses/FileResponse' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/editorconfig/{filepath}: + get: + produces: + - application/json + tags: + - repository + summary: Get the EditorConfig definitions of a file in a repository + operationId: repoGetEditorConfig + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: filepath of file to get + name: filepath + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag. Default to the repository’s + default branch. + name: ref + in: query + responses: + '200': + description: success + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/file-contents: + get: + description: >- + See the POST method. This GET method supports using JSON encoded request + body in query parameter. + produces: + - application/json + tags: + - repository + summary: Get the metadata and contents of requested files + operationId: repoGetFileContents + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag. Default to the repository’s + default branch. + name: ref + in: query + - type: string + description: >- + The JSON encoded body (see the POST request): {"files": + ["filename1", "filename2"]} + name: body + in: query + required: true + responses: + '200': + $ref: '#/responses/ContentsListResponse' + '404': + $ref: '#/responses/notFound' + post: + description: >- + Uses automatic pagination based on default page size and max response + size and returns the maximum allowed number of files. Files which could + not be retrieved are null. Files which are too large are being returned + with `encoding == null`, `content == null` and `size > 0`, they can be + requested separately by using the `download_url`. + produces: + - application/json + tags: + - repository + summary: Get the metadata and contents of requested files + operationId: repoGetFileContentsPost + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag. Default to the repository’s + default branch. + name: ref + in: query + - name: body + in: body + required: true + schema: + $ref: '#/definitions/GetFilesOptions' + responses: + '200': + $ref: '#/responses/ContentsListResponse' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/forks: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's forks + operationId: listForks + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - repository + summary: Fork a repository + operationId: createFork + parameters: + - type: string + description: owner of the repo to fork + name: owner + in: path + required: true + - type: string + description: name of the repo to fork + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateForkOption' + responses: + '202': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + description: The repository with the same name already exists. + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/git/blobs/{sha}: + get: + produces: + - application/json + tags: + - repository + summary: Gets the blob of a repository. + operationId: GetBlob + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: sha of the commit + name: sha + in: path + required: true + responses: + '200': + $ref: '#/responses/GitBlobResponse' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/git/commits/{sha}: + get: + produces: + - application/json + tags: + - repository + summary: Get a single commit from a repository + operationId: repoGetSingleCommit + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: a git ref or commit sha + name: sha + in: path + required: true + - type: boolean + description: >- + include diff stats for every commit (disable for speedup, default + 'true') + name: stat + in: query + - type: boolean + description: >- + include verification for every commit (disable for speedup, default + 'true') + name: verification + in: query + - type: boolean + description: >- + include a list of affected files for every commit (disable for + speedup, default 'true') + name: files + in: query + responses: + '200': + $ref: '#/responses/Commit' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/git/commits/{sha}.{diffType}: + get: + produces: + - text/plain + tags: + - repository + summary: Get a commit's diff or patch + operationId: repoDownloadCommitDiffOrPatch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: SHA of the commit to get + name: sha + in: path + required: true + - enum: + - diff + - patch + type: string + description: whether the output is diff or patch + name: diffType + in: path + required: true + responses: + '200': + $ref: '#/responses/string' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/git/notes/{sha}: + get: + produces: + - application/json + tags: + - repository + summary: Get a note corresponding to a single commit from a repository + operationId: repoGetNote + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: a git ref or commit sha + name: sha + in: path + required: true + - type: boolean + description: >- + include verification for every commit (disable for speedup, default + 'true') + name: verification + in: query + - type: boolean + description: >- + include a list of affected files for every commit (disable for + speedup, default 'true') + name: files + in: query + responses: + '200': + $ref: '#/responses/Note' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/git/refs: + get: + produces: + - application/json + tags: + - repository + summary: Get specified ref or filtered repository's refs + operationId: repoListAllGitRefs + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/ReferenceList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/git/refs/{ref}: + get: + produces: + - application/json + tags: + - repository + summary: Get specified ref or filtered repository's refs + operationId: repoListGitRefs + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: part or full name of the ref + name: ref + in: path + required: true + responses: + '200': + $ref: '#/responses/ReferenceList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/git/tags/{sha}: + get: + produces: + - application/json + tags: + - repository + summary: Gets the tag object of an annotated tag (not lightweight tags) + operationId: GetAnnotatedTag + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + sha of the tag. The Git tags API only supports annotated tag + objects, not lightweight tags. + name: sha + in: path + required: true + responses: + '200': + $ref: '#/responses/AnnotatedTag' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/git/trees/{sha}: + get: + produces: + - application/json + tags: + - repository + summary: Gets the tree of a repository. + operationId: GetTree + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: sha of the commit + name: sha + in: path + required: true + - type: boolean + description: show all directories and files + name: recursive + in: query + - type: integer + description: >- + page number; the 'truncated' field in the response will be true if + there are still more items after this page, false if the last page + name: page + in: query + - type: integer + description: number of items per page + name: per_page + in: query + responses: + '200': + $ref: '#/responses/GitTreeResponse' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/hooks: + get: + produces: + - application/json + tags: + - repository + summary: List the hooks in a repository + operationId: repoListHooks + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/HookList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a hook + operationId: repoCreateHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateHookOption' + responses: + '201': + $ref: '#/responses/Hook' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/hooks/git: + get: + produces: + - application/json + tags: + - repository + summary: List the Git hooks in a repository + operationId: repoListGitHooks + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/GitHookList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/hooks/git/{id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a Git hook + operationId: repoGetGitHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the hook to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/GitHook' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a Git hook in a repository + operationId: repoDeleteGitHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the hook to get + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + produces: + - application/json + tags: + - repository + summary: Edit a Git hook in a repository + operationId: repoEditGitHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: id of the hook to get + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditGitHookOption' + responses: + '200': + $ref: '#/responses/GitHook' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/hooks/{id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a hook + operationId: repoGetHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the hook to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Hook' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a hook in a repository + operationId: repoDeleteHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the hook to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + produces: + - application/json + tags: + - repository + summary: Edit a hook in a repository + operationId: repoEditHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the hook + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditHookOption' + responses: + '200': + $ref: '#/responses/Hook' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/hooks/{id}/tests: + post: + produces: + - application/json + tags: + - repository + summary: Test a push webhook + operationId: repoTestHook + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the hook to test + name: id + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag, indicates which commit will be + loaded to the webhook payload. + name: ref + in: query + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issue_config: + get: + produces: + - application/json + tags: + - repository + summary: Returns the issue config for a repo + operationId: repoGetIssueConfig + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/RepoIssueConfig' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issue_config/validate: + get: + produces: + - application/json + tags: + - repository + summary: Returns the validation information for a issue config + operationId: repoValidateIssueConfig + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/RepoIssueConfigValidation' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issue_templates: + get: + produces: + - application/json + tags: + - repository + summary: Get available issue templates for a repository + operationId: repoGetIssueTemplates + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/IssueTemplates' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues: + get: + produces: + - application/json + tags: + - issue + summary: List a repository's issues + operationId: issueListIssues + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - enum: + - closed + - open + - all + type: string + description: whether issue is open or closed + name: state + in: query + - type: string + description: >- + comma separated list of labels. Fetch only issues that have any of + this labels. Non existent labels are discarded + name: labels + in: query + - type: string + description: search string + name: q + in: query + - enum: + - issues + - pulls + type: string + description: filter by type (issues / pulls) if set + name: type + in: query + - type: string + description: >- + comma separated list of milestone names or ids. It uses names and + fall back to ids. Fetch only issues that have any of this + milestones. Non existent milestones are discarded + name: milestones + in: query + - type: string + format: date-time + description: >- + Only show items updated after the given time. This is a timestamp in + RFC 3339 format + name: since + in: query + - type: string + format: date-time + description: >- + Only show items updated before the given time. This is a timestamp + in RFC 3339 format + name: before + in: query + - type: string + description: Only show items which were created by the given user + name: created_by + in: query + - type: string + description: Only show items for which the given user is assigned + name: assigned_by + in: query + - type: string + description: Only show items in which the given user was mentioned + name: mentioned_by + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/IssueList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: >- + Create an issue. If using deadline only the date will be taken into + account, and time of day ignored. + operationId: issueCreateIssue + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateIssueOption' + responses: + '201': + $ref: '#/responses/Issue' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '412': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/comments: + get: + produces: + - application/json + tags: + - issue + summary: List all comments in a repository + operationId: issueGetRepoComments + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + format: date-time + description: >- + if provided, only comments updated since the provided time are + returned. + name: since + in: query + - type: string + format: date-time + description: >- + if provided, only comments updated before the provided time are + returned. + name: before + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/CommentList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/comments/{id}: + get: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Get a comment + operationId: issueGetComment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Comment' + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - issue + summary: Delete a comment + operationId: issueDeleteComment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of comment to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Edit a comment + operationId: issueEditComment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment to edit + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditIssueCommentOption' + responses: + '200': + $ref: '#/responses/Comment' + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/comments/{id}/assets: + get: + produces: + - application/json + tags: + - issue + summary: List comment's attachments + operationId: issueListIssueCommentAttachments + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/AttachmentList' + '404': + $ref: '#/responses/error' + post: + consumes: + - multipart/form-data + produces: + - application/json + tags: + - issue + summary: Create a comment attachment + operationId: issueCreateIssueCommentAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment + name: id + in: path + required: true + - type: string + description: name of the attachment + name: name + in: query + - type: file + description: attachment to upload + name: attachment + in: formData + required: true + responses: + '201': + $ref: '#/responses/Attachment' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/error' + '413': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id}: + get: + produces: + - application/json + tags: + - issue + summary: Get a comment attachment + operationId: issueGetIssueCommentAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment + name: id + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to get + name: attachment_id + in: path + required: true + responses: + '200': + $ref: '#/responses/Attachment' + '404': + $ref: '#/responses/error' + delete: + produces: + - application/json + tags: + - issue + summary: Delete a comment attachment + operationId: issueDeleteIssueCommentAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment + name: id + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to delete + name: attachment_id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/error' + '423': + $ref: '#/responses/repoArchivedError' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Edit a comment attachment + operationId: issueEditIssueCommentAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment + name: id + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to edit + name: attachment_id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditAttachmentOptions' + responses: + '201': + $ref: '#/responses/Attachment' + '404': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/comments/{id}/reactions: + get: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Get a list of reactions from a comment of an issue + operationId: issueGetCommentReactions + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment to edit + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/ReactionList' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Add a reaction to a comment of an issue + operationId: issuePostCommentReaction + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment to edit + name: id + in: path + required: true + - name: content + in: body + schema: + $ref: '#/definitions/EditReactionOption' + responses: + '200': + $ref: '#/responses/Reaction' + '201': + $ref: '#/responses/Reaction' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Remove a reaction from a comment of an issue + operationId: issueDeleteCommentReaction + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the comment to edit + name: id + in: path + required: true + - name: content + in: body + schema: + $ref: '#/definitions/EditReactionOption' + responses: + '200': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/pinned: + get: + produces: + - application/json + tags: + - repository + summary: List a repo's pinned issues + operationId: repoListPinnedIssues + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/IssueList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}: + get: + produces: + - application/json + tags: + - issue + summary: Get an issue + operationId: issueGetIssue + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue to get + name: index + in: path + required: true + responses: + '200': + $ref: '#/responses/Issue' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - issue + summary: Delete an issue + operationId: issueDelete + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of issue to delete + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: >- + Edit an issue. If using deadline only the date will be taken into + account, and time of day ignored. + operationId: issueEditIssue + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue to edit + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditIssueOption' + responses: + '201': + $ref: '#/responses/Issue' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '412': + $ref: '#/responses/error' + /repos/{owner}/{repo}/issues/{index}/assets: + get: + produces: + - application/json + tags: + - issue + summary: List issue's attachments + operationId: issueListIssueAttachments + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + responses: + '200': + $ref: '#/responses/AttachmentList' + '404': + $ref: '#/responses/error' + post: + consumes: + - multipart/form-data + produces: + - application/json + tags: + - issue + summary: Create an issue attachment + operationId: issueCreateIssueAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: string + description: name of the attachment + name: name + in: query + - type: file + description: attachment to upload + name: attachment + in: formData + required: true + responses: + '201': + $ref: '#/responses/Attachment' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/error' + '413': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id}: + get: + produces: + - application/json + tags: + - issue + summary: Get an issue attachment + operationId: issueGetIssueAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to get + name: attachment_id + in: path + required: true + responses: + '200': + $ref: '#/responses/Attachment' + '404': + $ref: '#/responses/error' + delete: + produces: + - application/json + tags: + - issue + summary: Delete an issue attachment + operationId: issueDeleteIssueAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to delete + name: attachment_id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/error' + '423': + $ref: '#/responses/repoArchivedError' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Edit an issue attachment + operationId: issueEditIssueAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to edit + name: attachment_id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditAttachmentOptions' + responses: + '201': + $ref: '#/responses/Attachment' + '404': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/{index}/blocks: + get: + produces: + - application/json + tags: + - issue + summary: List issues that are blocked by this issue + operationId: issueListBlocks + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: index of the issue + name: index + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/IssueList' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - issue + summary: Block the issue given in the body by the issue in path + operationId: issueCreateIssueBlocking + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/IssueMeta' + responses: + '201': + $ref: '#/responses/Issue' + '404': + description: the issue does not exist + delete: + produces: + - application/json + tags: + - issue + summary: Unblock the issue given in the body by the issue in path + operationId: issueRemoveIssueBlocking + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/IssueMeta' + responses: + '200': + $ref: '#/responses/Issue' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/comments: + get: + produces: + - application/json + tags: + - issue + summary: List all comments on an issue + operationId: issueGetComments + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: string + format: date-time + description: >- + if provided, only comments updated since the specified time are + returned. + name: since + in: query + - type: string + format: date-time + description: >- + if provided, only comments updated before the provided time are + returned. + name: before + in: query + responses: + '200': + $ref: '#/responses/CommentList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Add a comment to an issue + operationId: issueCreateComment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateIssueCommentOption' + responses: + '201': + $ref: '#/responses/Comment' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/{index}/comments/{id}: + delete: + tags: + - issue + summary: Delete a comment + operationId: issueDeleteCommentDeprecated + deprecated: true + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: this parameter is ignored + name: index + in: path + required: true + - type: integer + format: int64 + description: id of comment to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Edit a comment + operationId: issueEditCommentDeprecated + deprecated: true + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: this parameter is ignored + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the comment to edit + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditIssueCommentOption' + responses: + '200': + $ref: '#/responses/Comment' + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/deadline: + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: >- + Set an issue deadline. If set to null, the deadline is deleted. If using + deadline only the date will be taken into account, and time of day + ignored. + operationId: issueEditIssueDeadline + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue to create or update a deadline on + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditDeadlineOption' + responses: + '201': + $ref: '#/responses/IssueDeadline' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/dependencies: + get: + produces: + - application/json + tags: + - issue + summary: List an issue's dependencies, i.e all issues that block this issue. + operationId: issueListIssueDependencies + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: index of the issue + name: index + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/IssueList' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - issue + summary: Make the issue in the url depend on the issue in the form. + operationId: issueCreateIssueDependencies + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/IssueMeta' + responses: + '201': + $ref: '#/responses/Issue' + '404': + description: the issue does not exist + '423': + $ref: '#/responses/repoArchivedError' + delete: + produces: + - application/json + tags: + - issue + summary: Remove an issue dependency + operationId: issueRemoveIssueDependencies + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/IssueMeta' + responses: + '200': + $ref: '#/responses/Issue' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/issues/{index}/labels: + get: + produces: + - application/json + tags: + - issue + summary: Get an issue's labels + operationId: issueGetLabels + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + responses: + '200': + $ref: '#/responses/LabelList' + '404': + $ref: '#/responses/notFound' + put: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Replace an issue's labels + operationId: issueReplaceLabels + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/IssueLabelsOption' + responses: + '200': + $ref: '#/responses/LabelList' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Add a label to an issue + operationId: issueAddLabel + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/IssueLabelsOption' + responses: + '200': + $ref: '#/responses/LabelList' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - issue + summary: Remove all labels from an issue + operationId: issueClearLabels + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/labels/{id}: + delete: + produces: + - application/json + tags: + - issue + summary: Remove a label from an issue + operationId: issueRemoveLabel + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the label to remove + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/issues/{index}/lock: + put: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Lock an issue + operationId: issueLockIssue + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/LockIssueOption' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Unlock an issue + operationId: issueUnlockIssue + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/pin: + post: + tags: + - issue + summary: Pin an Issue + operationId: pinIssue + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of issue to pin + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - issue + summary: Unpin an Issue + operationId: unpinIssue + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of issue to unpin + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/pin/{position}: + patch: + tags: + - issue + summary: Moves the Pin to the given Position + operationId: moveIssuePin + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of issue + name: index + in: path + required: true + - type: integer + format: int64 + description: the new position + name: position + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/reactions: + get: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Get a list reactions of an issue + operationId: issueGetIssueReactions + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/ReactionList' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Add a reaction to an issue + operationId: issuePostIssueReaction + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - name: content + in: body + schema: + $ref: '#/definitions/EditReactionOption' + responses: + '200': + $ref: '#/responses/Reaction' + '201': + $ref: '#/responses/Reaction' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Remove a reaction from an issue + operationId: issueDeleteIssueReaction + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - name: content + in: body + schema: + $ref: '#/definitions/EditReactionOption' + responses: + '200': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/stopwatch/delete: + delete: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Delete an issue's existing stopwatch. + operationId: issueDeleteStopWatch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue to stop the stopwatch on + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + description: Not repo writer, user does not have rights to toggle stopwatch + '404': + $ref: '#/responses/notFound' + '409': + description: Cannot cancel a non-existent stopwatch + /repos/{owner}/{repo}/issues/{index}/stopwatch/start: + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Start stopwatch on an issue. + operationId: issueStartStopWatch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue to create the stopwatch on + name: index + in: path + required: true + responses: + '201': + $ref: '#/responses/empty' + '403': + description: Not repo writer, user does not have rights to toggle stopwatch + '404': + $ref: '#/responses/notFound' + '409': + description: Cannot start a stopwatch again if it already exists + /repos/{owner}/{repo}/issues/{index}/stopwatch/stop: + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Stop an issue's existing stopwatch. + operationId: issueStopStopWatch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue to stop the stopwatch on + name: index + in: path + required: true + responses: + '201': + $ref: '#/responses/empty' + '403': + description: Not repo writer, user does not have rights to toggle stopwatch + '404': + $ref: '#/responses/notFound' + '409': + description: Cannot stop a non-existent stopwatch + /repos/{owner}/{repo}/issues/{index}/subscriptions: + get: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Get users who subscribed on an issue. + operationId: issueSubscriptions + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/subscriptions/check: + get: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Check if user is subscribed to an issue + operationId: issueCheckSubscription + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + responses: + '200': + $ref: '#/responses/WatchInfo' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/subscriptions/{user}: + put: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Subscribe user to issue + operationId: issueAddSubscription + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: string + description: username of the user to subscribe the issue to + name: user + in: path + required: true + responses: + '200': + description: Already subscribed + '201': + description: Successfully Subscribed + '304': + description: User can only subscribe itself if he is no admin + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Unsubscribe user from issue + operationId: issueDeleteSubscription + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: string + description: username of the user to unsubscribe from an issue + name: user + in: path + required: true + responses: + '200': + description: Already unsubscribed + '201': + description: Successfully Unsubscribed + '304': + description: User can only subscribe itself if he is no admin + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/timeline: + get: + produces: + - application/json + tags: + - issue + summary: List all comments and events on an issue + operationId: issueGetCommentsAndTimeline + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: string + format: date-time + description: >- + if provided, only comments updated since the specified time are + returned. + name: since + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + - type: string + format: date-time + description: >- + if provided, only comments updated before the provided time are + returned. + name: before + in: query + responses: + '200': + $ref: '#/responses/TimelineList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/times: + get: + produces: + - application/json + tags: + - issue + summary: List an issue's tracked times + operationId: issueTrackedTimes + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: string + description: optional filter by user (available for issue managers) + name: user + in: query + - type: string + format: date-time + description: >- + Only show times updated after the given time. This is a timestamp in + RFC 3339 format + name: since + in: query + - type: string + format: date-time + description: >- + Only show times updated before the given time. This is a timestamp + in RFC 3339 format + name: before + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/TrackedTimeList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Add tracked time to a issue + operationId: issueAddTime + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/AddTimeOption' + responses: + '200': + $ref: '#/responses/TrackedTime' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Reset a tracked time of an issue + operationId: issueResetTime + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue to add tracked time to + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/issues/{index}/times/{id}: + delete: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Delete specific tracked time + operationId: issueDeleteTime + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the issue + name: index + in: path + required: true + - type: integer + format: int64 + description: id of time to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/keys: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's keys + operationId: repoListKeys + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: the key_id to search for + name: key_id + in: query + - type: string + description: fingerprint of the key + name: fingerprint + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/DeployKeyList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Add a key to a repository + operationId: repoCreateKey + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateKeyOption' + responses: + '201': + $ref: '#/responses/DeployKey' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/keys/{id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a repository's key by id + operationId: repoGetKey + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the key to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/DeployKey' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - repository + summary: Delete a key from a repository + operationId: repoDeleteKey + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the key to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/labels: + get: + produces: + - application/json + tags: + - issue + summary: Get all of a repository's labels + operationId: issueListLabels + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/LabelList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Create a label + operationId: issueCreateLabel + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateLabelOption' + responses: + '201': + $ref: '#/responses/Label' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/labels/{id}: + get: + produces: + - application/json + tags: + - issue + summary: Get a single label + operationId: issueGetLabel + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the label to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Label' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - issue + summary: Delete a label + operationId: issueDeleteLabel + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the label to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Update a label + operationId: issueEditLabel + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the label to edit + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditLabelOption' + responses: + '200': + $ref: '#/responses/Label' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/languages: + get: + produces: + - application/json + tags: + - repository + summary: Get languages and number of bytes of code written + operationId: repoGetLanguages + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/LanguageStatistics' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/licenses: + get: + produces: + - application/json + tags: + - repository + summary: Get repo licenses + operationId: repoGetLicenses + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/LicensesList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/media/{filepath}: + get: + produces: + - application/octet-stream + tags: + - repository + summary: Get a file or it's LFS object from a repository + operationId: repoGetRawFileOrLFS + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + path of the file to get, it should be "{ref}/{filepath}". If there + is no ref could be inferred, it will be treated as the default + branch + name: filepath + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag. Default to the repository’s + default branch + name: ref + in: query + responses: + '200': + description: Returns raw file content. + schema: + type: file + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/merge-upstream: + post: + produces: + - application/json + tags: + - repository + summary: Merge a branch from upstream + operationId: repoMergeUpstream + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/MergeUpstreamRequest' + responses: + '200': + $ref: '#/responses/MergeUpstreamResponse' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/milestones: + get: + produces: + - application/json + tags: + - issue + summary: Get all of a repository's opened milestones + operationId: issueGetMilestonesList + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + Milestone state, Recognized values are open, closed and all. + Defaults to "open" + name: state + in: query + - type: string + description: filter by milestone name + name: name + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/MilestoneList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Create a milestone + operationId: issueCreateMilestone + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateMilestoneOption' + responses: + '201': + $ref: '#/responses/Milestone' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/milestones/{id}: + get: + produces: + - application/json + tags: + - issue + summary: Get a milestone + operationId: issueGetMilestone + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: the milestone to get, identified by ID and if not available by name + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Milestone' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - issue + summary: Delete a milestone + operationId: issueDeleteMilestone + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + the milestone to delete, identified by ID and if not available by + name + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - issue + summary: Update a milestone + operationId: issueEditMilestone + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: the milestone to edit, identified by ID and if not available by name + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditMilestoneOption' + responses: + '200': + $ref: '#/responses/Milestone' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/mirror-sync: + post: + produces: + - application/json + tags: + - repository + summary: Sync a mirrored repository + operationId: repoMirrorSync + parameters: + - type: string + description: owner of the repo to sync + name: owner + in: path + required: true + - type: string + description: name of the repo to sync + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/new_pin_allowed: + get: + produces: + - application/json + tags: + - repository + summary: Returns if new Issue Pins are allowed + operationId: repoNewPinAllowed + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/RepoNewIssuePinsAllowed' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/notifications: + get: + consumes: + - application/json + produces: + - application/json + tags: + - notification + summary: List users's notification threads on a specific repo + operationId: notifyGetRepoList + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: boolean + description: If true, show notifications marked as read. Default value is false + name: all + in: query + - type: array + items: + type: string + collectionFormat: multi + description: >- + Show notifications with the provided status types. Options are: + unread, read and/or pinned. Defaults to unread & pinned + name: status-types + in: query + - type: array + items: + enum: + - issue + - pull + - commit + - repository + type: string + collectionFormat: multi + description: filter notifications by subject type + name: subject-type + in: query + - type: string + format: date-time + description: >- + Only show notifications updated after the given time. This is a + timestamp in RFC 3339 format + name: since + in: query + - type: string + format: date-time + description: >- + Only show notifications updated before the given time. This is a + timestamp in RFC 3339 format + name: before + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/NotificationThreadList' + put: + consumes: + - application/json + produces: + - application/json + tags: + - notification + summary: Mark notification threads as read, pinned or unread on a specific repo + operationId: notifyReadRepoList + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: If true, mark all notifications on this repo. Default value is false + name: all + in: query + - type: array + items: + type: string + collectionFormat: multi + description: >- + Mark notifications with the provided status types. Options are: + unread, read and/or pinned. Defaults to unread. + name: status-types + in: query + - type: string + description: Status to mark notifications as. Defaults to read. + name: to-status + in: query + - type: string + format: date-time + description: >- + Describes the last point that notifications were checked. Anything + updated since this time will not be updated. + name: last_read_at + in: query + responses: + '205': + $ref: '#/responses/NotificationThreadList' + /repos/{owner}/{repo}/pulls: + get: + produces: + - application/json + tags: + - repository + summary: List a repo's pull requests + operationId: repoListPullRequests + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: Name of the repo + name: repo + in: path + required: true + - type: string + description: Filter by target base branch of the pull request + name: base_branch + in: query + - enum: + - open + - closed + - all + type: string + default: open + description: State of pull request + name: state + in: query + - enum: + - oldest + - recentupdate + - recentclose + - leastupdate + - mostcomment + - leastcomment + - priority + type: string + description: Type of sort + name: sort + in: query + - type: integer + format: int64 + description: ID of the milestone + name: milestone + in: query + - type: array + items: + type: integer + format: int64 + collectionFormat: multi + description: Label IDs + name: labels + in: query + - type: string + description: Filter by pull request author + name: poster + in: query + - minimum: 1 + type: integer + default: 1 + description: Page number of results to return (1-based) + name: page + in: query + - minimum: 0 + type: integer + description: Page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/PullRequestList' + '404': + $ref: '#/responses/notFound' + '500': + $ref: '#/responses/error' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a pull request + operationId: repoCreatePullRequest + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreatePullRequestOption' + responses: + '201': + $ref: '#/responses/PullRequest' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/pulls/pinned: + get: + produces: + - application/json + tags: + - repository + summary: List a repo's pinned pull requests + operationId: repoListPinnedPullRequests + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/PullRequestList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/pulls/{base}/{head}: + get: + produces: + - application/json + tags: + - repository + summary: Get a pull request by base and head + operationId: repoGetPullRequestByBaseHead + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: base of the pull request to get + name: base + in: path + required: true + - type: string + description: head of the pull request to get + name: head + in: path + required: true + responses: + '200': + $ref: '#/responses/PullRequest' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/pulls/{index}: + get: + produces: + - application/json + tags: + - repository + summary: Get a pull request + operationId: repoGetPullRequest + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to get + name: index + in: path + required: true + responses: + '200': + $ref: '#/responses/PullRequest' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: >- + Update a pull request. If using deadline only the date will be taken + into account, and time of day ignored. + operationId: repoEditPullRequest + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to edit + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditPullRequestOption' + responses: + '201': + $ref: '#/responses/PullRequest' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/error' + '412': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/pulls/{index}.{diffType}: + get: + produces: + - text/plain + tags: + - repository + summary: Get a pull request diff or patch + operationId: repoDownloadPullDiffOrPatch + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to get + name: index + in: path + required: true + - enum: + - diff + - patch + type: string + description: whether the output is diff or patch + name: diffType + in: path + required: true + - type: boolean + description: >- + whether to include binary file changes. if true, the diff is + applicable with `git apply` + name: binary + in: query + responses: + '200': + $ref: '#/responses/string' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/pulls/{index}/commits: + get: + produces: + - application/json + tags: + - repository + summary: Get commits for a pull request + operationId: repoGetPullRequestCommits + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to get + name: index + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + - type: boolean + description: >- + include verification for every commit (disable for speedup, default + 'true') + name: verification + in: query + - type: boolean + description: >- + include a list of affected files for every commit (disable for + speedup, default 'true') + name: files + in: query + responses: + '200': + $ref: '#/responses/CommitList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/pulls/{index}/files: + get: + produces: + - application/json + tags: + - repository + summary: Get changed files for a pull request + operationId: repoGetPullRequestFiles + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to get + name: index + in: path + required: true + - type: string + description: skip to given file + name: skip-to + in: query + - enum: + - ignore-all + - ignore-change + - ignore-eol + - show-all + type: string + description: whitespace behavior + name: whitespace + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/ChangedFileList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/pulls/{index}/merge: + get: + produces: + - application/json + tags: + - repository + summary: Check if a pull request has been merged + operationId: repoPullRequestIsMerged + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + responses: + '204': + description: pull request has been merged + '404': + description: pull request has not been merged + post: + produces: + - application/json + tags: + - repository + summary: Merge a pull request + operationId: repoMergePullRequest + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to merge + name: index + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/MergePullRequestOption' + responses: + '200': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '405': + $ref: '#/responses/empty' + '409': + $ref: '#/responses/error' + '423': + $ref: '#/responses/repoArchivedError' + delete: + produces: + - application/json + tags: + - repository + summary: Cancel the scheduled auto merge for the given pull request + operationId: repoCancelScheduledAutoMerge + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to merge + name: index + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/pulls/{index}/requested_reviewers: + post: + produces: + - application/json + tags: + - repository + summary: create review requests for a pull request + operationId: repoCreatePullReviewRequests + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/PullReviewRequestOptions' + responses: + '201': + $ref: '#/responses/PullReviewList' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + delete: + produces: + - application/json + tags: + - repository + summary: cancel review requests for a pull request + operationId: repoDeletePullReviewRequests + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/PullReviewRequestOptions' + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/pulls/{index}/reviews: + get: + produces: + - application/json + tags: + - repository + summary: List all reviews for a pull request + operationId: repoListPullReviews + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/PullReviewList' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - repository + summary: Create a review to an pull request + operationId: repoCreatePullReview + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/CreatePullReviewOptions' + responses: + '200': + $ref: '#/responses/PullReview' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/pulls/{index}/reviews/{id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a specific review for a pull request + operationId: repoGetPullReview + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the review + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/PullReview' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - repository + summary: Submit a pending review to an pull request + operationId: repoSubmitPullReview + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the review + name: id + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/SubmitPullReviewOptions' + responses: + '200': + $ref: '#/responses/PullReview' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a specific review from a pull request + operationId: repoDeletePullReview + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the review + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments: + get: + produces: + - application/json + tags: + - repository + summary: Get a specific review for a pull request + operationId: repoGetPullReviewComments + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the review + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/PullReviewCommentList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/dismissals: + post: + produces: + - application/json + tags: + - repository + summary: Dismiss a review for a pull request + operationId: repoDismissPullReview + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the review + name: id + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/DismissPullReviewOptions' + responses: + '200': + $ref: '#/responses/PullReview' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/undismissals: + post: + produces: + - application/json + tags: + - repository + summary: Cancel to dismiss a review for a pull request + operationId: repoUnDismissPullReview + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request + name: index + in: path + required: true + - type: integer + format: int64 + description: id of the review + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/PullReview' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/pulls/{index}/update: + post: + produces: + - application/json + tags: + - repository + summary: Merge PR's baseBranch into headBranch + operationId: repoUpdatePullRequest + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: index of the pull request to get + name: index + in: path + required: true + - enum: + - merge + - rebase + type: string + description: how to update pull request + name: style + in: query + responses: + '200': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/push_mirrors: + get: + produces: + - application/json + tags: + - repository + summary: Get all push mirrors of the repository + operationId: repoListPushMirrors + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/PushMirrorList' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: add a push mirror to the repository + operationId: repoAddPushMirror + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreatePushMirrorOption' + responses: + '200': + $ref: '#/responses/PushMirror' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/push_mirrors-sync: + post: + produces: + - application/json + tags: + - repository + summary: Sync all push mirrored repository + operationId: repoPushMirrorSync + parameters: + - type: string + description: owner of the repo to sync + name: owner + in: path + required: true + - type: string + description: name of the repo to sync + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/empty' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/push_mirrors/{name}: + get: + produces: + - application/json + tags: + - repository + summary: Get push mirror of the repository by remoteName + operationId: repoGetPushMirrorByRemoteName + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: remote name of push mirror + name: name + in: path + required: true + responses: + '200': + $ref: '#/responses/PushMirror' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: deletes a push mirror from a repository by remoteName + operationId: repoDeletePushMirror + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: remote name of the pushMirror + name: name + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/raw/{filepath}: + get: + produces: + - application/octet-stream + tags: + - repository + summary: Get a file from a repository + operationId: repoGetRawFile + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: >- + path of the file to get, it should be "{ref}/{filepath}". If there + is no ref could be inferred, it will be treated as the default + branch + name: filepath + in: path + required: true + - type: string + description: >- + The name of the commit/branch/tag. Default to the repository’s + default branch + name: ref + in: query + responses: + '200': + description: Returns raw file content. + schema: + type: file + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/releases: + get: + produces: + - application/json + tags: + - repository + summary: List a repo's releases + operationId: repoListReleases + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: boolean + description: >- + filter (exclude / include) drafts, if you dont have repo write + access none will show + name: draft + in: query + - type: boolean + description: filter (exclude / include) pre-releases + name: pre-release + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/ReleaseList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a release + operationId: repoCreateRelease + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateReleaseOption' + responses: + '201': + $ref: '#/responses/Release' + '404': + $ref: '#/responses/notFound' + '409': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/releases/latest: + get: + produces: + - application/json + tags: + - repository + summary: >- + Gets the most recent non-prerelease, non-draft release of a repository, + sorted by created_at + operationId: repoGetLatestRelease + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/Release' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/releases/tags/{tag}: + get: + produces: + - application/json + tags: + - repository + summary: Get a release by tag name + operationId: repoGetReleaseByTag + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: tag name of the release to get + name: tag + in: path + required: true + responses: + '200': + $ref: '#/responses/Release' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - repository + summary: Delete a release by tag name + operationId: repoDeleteReleaseByTag + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: tag name of the release to delete + name: tag + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/releases/{id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a release + operationId: repoGetRelease + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Release' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - repository + summary: Delete a release + operationId: repoDeleteRelease + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Update a release + operationId: repoEditRelease + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release to edit + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditReleaseOption' + responses: + '200': + $ref: '#/responses/Release' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/releases/{id}/assets: + get: + produces: + - application/json + tags: + - repository + summary: List release's attachments + operationId: repoListReleaseAttachments + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/AttachmentList' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - multipart/form-data + - application/octet-stream + produces: + - application/json + tags: + - repository + summary: Create a release attachment + operationId: repoCreateReleaseAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release + name: id + in: path + required: true + - type: string + description: name of the attachment + name: name + in: query + - type: file + description: attachment to upload + name: attachment + in: formData + responses: + '201': + $ref: '#/responses/Attachment' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + '413': + $ref: '#/responses/error' + /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a release attachment + operationId: repoGetReleaseAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release + name: id + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to get + name: attachment_id + in: path + required: true + responses: + '200': + $ref: '#/responses/Attachment' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a release attachment + operationId: repoDeleteReleaseAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release + name: id + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to delete + name: attachment_id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Edit a release attachment + operationId: repoEditReleaseAttachment + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + format: int64 + description: id of the release + name: id + in: path + required: true + - type: integer + format: int64 + description: id of the attachment to edit + name: attachment_id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditAttachmentOptions' + responses: + '201': + $ref: '#/responses/Attachment' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/reviewers: + get: + produces: + - application/json + tags: + - repository + summary: Return all users that can be requested to review in this repo + operationId: repoGetReviewers + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/signing-key.gpg: + get: + produces: + - text/plain + tags: + - repository + summary: Get signing-key.gpg for given repository + operationId: repoSigningKey + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + description: GPG armored public key + schema: + type: string + /repos/{owner}/{repo}/signing-key.pub: + get: + produces: + - text/plain + tags: + - repository + summary: Get signing-key.pub for given repository + operationId: repoSigningKeySSH + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + description: ssh public key + schema: + type: string + /repos/{owner}/{repo}/stargazers: + get: + produces: + - application/json + tags: + - repository + summary: List a repo's stargazers + operationId: repoListStargazers + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/statuses/{sha}: + get: + produces: + - application/json + tags: + - repository + summary: Get a commit's statuses + operationId: repoListStatuses + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: sha of the commit + name: sha + in: path + required: true + - enum: + - oldest + - recentupdate + - leastupdate + - leastindex + - highestindex + type: string + description: type of sort + name: sort + in: query + - enum: + - pending + - success + - error + - failure + - warning + type: string + description: type of state + name: state + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/CommitStatusList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - repository + summary: Create a commit status + operationId: repoCreateStatus + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: sha of the commit + name: sha + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateStatusOption' + responses: + '201': + $ref: '#/responses/CommitStatus' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/subscribers: + get: + produces: + - application/json + tags: + - repository + summary: List a repo's watchers + operationId: repoListSubscribers + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/subscription: + get: + tags: + - repository + summary: Check if the current user is watching a repo + operationId: userCurrentCheckSubscription + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/WatchInfo' + '404': + description: User is not watching this repo or repo do not exist + put: + tags: + - repository + summary: Watch a repo + operationId: userCurrentPutSubscription + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/WatchInfo' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - repository + summary: Unwatch a repo + operationId: userCurrentDeleteSubscription + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/tag_protections: + get: + produces: + - application/json + tags: + - repository + summary: List tag protections for a repository + operationId: repoListTagProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/TagProtectionList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a tag protections for a repository + operationId: repoCreateTagProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateTagProtectionOption' + responses: + '201': + $ref: '#/responses/TagProtection' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/tag_protections/{id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a specific tag protection for the repository + operationId: repoGetTagProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: id of the tag protect to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/TagProtection' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a specific tag protection for the repository + operationId: repoDeleteTagProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: id of protected tag + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: >- + Edit a tag protections for a repository. Only fields that are set will + be changed + operationId: repoEditTagProtection + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: id of protected tag + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditTagProtectionOption' + responses: + '200': + $ref: '#/responses/TagProtection' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/tags: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's tags + operationId: repoListTags + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results, default maximum page size is 50 + name: limit + in: query + responses: + '200': + $ref: '#/responses/TagList' + '404': + $ref: '#/responses/notFound' + post: + produces: + - application/json + tags: + - repository + summary: Create a new git tag in a repository + operationId: repoCreateTag + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateTagOption' + responses: + '200': + $ref: '#/responses/Tag' + '404': + $ref: '#/responses/notFound' + '405': + $ref: '#/responses/empty' + '409': + $ref: '#/responses/conflict' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/tags/{tag}: + get: + produces: + - application/json + tags: + - repository + summary: Get the tag of a repository by tag name + operationId: repoGetTag + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of tag + name: tag + in: path + required: true + responses: + '200': + $ref: '#/responses/Tag' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a repository's tag by name + operationId: repoDeleteTag + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of tag to delete + name: tag + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '405': + $ref: '#/responses/empty' + '409': + $ref: '#/responses/conflict' + '422': + $ref: '#/responses/validationError' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/teams: + get: + produces: + - application/json + tags: + - repository + summary: List a repository's teams + operationId: repoListTeams + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/TeamList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/teams/{team}: + get: + produces: + - application/json + tags: + - repository + summary: Check if a team is assigned to a repository + operationId: repoCheckTeam + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: team name + name: team + in: path + required: true + responses: + '200': + $ref: '#/responses/Team' + '404': + $ref: '#/responses/notFound' + '405': + $ref: '#/responses/error' + put: + produces: + - application/json + tags: + - repository + summary: Add a team to a repository + operationId: repoAddTeam + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: team name + name: team + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '405': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a team from a repository + operationId: repoDeleteTeam + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: team name + name: team + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '405': + $ref: '#/responses/error' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/times: + get: + produces: + - application/json + tags: + - repository + summary: List a repo's tracked times + operationId: repoTrackedTimes + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: optional filter by user (available for issue managers) + name: user + in: query + - type: string + format: date-time + description: >- + Only show times updated after the given time. This is a timestamp in + RFC 3339 format + name: since + in: query + - type: string + format: date-time + description: >- + Only show times updated before the given time. This is a timestamp + in RFC 3339 format + name: before + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/TrackedTimeList' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/times/{user}: + get: + produces: + - application/json + tags: + - repository + summary: List a user's tracked times in a repo + operationId: userTrackedTimes + deprecated: true + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: username of the user whose tracked times are to be listed + name: user + in: path + required: true + responses: + '200': + $ref: '#/responses/TrackedTimeList' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/topics: + get: + produces: + - application/json + tags: + - repository + summary: Get list of topics that a repository has + operationId: repoListTopics + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/TopicNames' + '404': + $ref: '#/responses/notFound' + put: + produces: + - application/json + tags: + - repository + summary: Replace list of topics for a repository + operationId: repoUpdateTopics + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/RepoTopicOptions' + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/invalidTopicsError' + /repos/{owner}/{repo}/topics/{topic}: + put: + produces: + - application/json + tags: + - repository + summary: Add a topic to a repository + operationId: repoAddTopic + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of the topic to add + name: topic + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/invalidTopicsError' + delete: + produces: + - application/json + tags: + - repository + summary: Delete a topic from a repository + operationId: repoDeleteTopic + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of the topic to delete + name: topic + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/invalidTopicsError' + /repos/{owner}/{repo}/transfer: + post: + produces: + - application/json + tags: + - repository + summary: Transfer a repo ownership + operationId: repoTransfer + parameters: + - type: string + description: owner of the repo to transfer + name: owner + in: path + required: true + - type: string + description: name of the repo to transfer + name: repo + in: path + required: true + - description: Transfer Options + name: body + in: body + required: true + schema: + $ref: '#/definitions/TransferRepoOption' + responses: + '202': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /repos/{owner}/{repo}/transfer/accept: + post: + produces: + - application/json + tags: + - repository + summary: Accept a repo transfer + operationId: acceptRepoTransfer + parameters: + - type: string + description: owner of the repo to transfer + name: owner + in: path + required: true + - type: string + description: name of the repo to transfer + name: repo + in: path + required: true + responses: + '202': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/transfer/reject: + post: + produces: + - application/json + tags: + - repository + summary: Reject a repo transfer + operationId: rejectRepoTransfer + parameters: + - type: string + description: owner of the repo to transfer + name: owner + in: path + required: true + - type: string + description: name of the repo to transfer + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/wiki/new: + post: + consumes: + - application/json + tags: + - repository + summary: Create a wiki page + operationId: repoCreateWikiPage + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateWikiPageOptions' + responses: + '201': + $ref: '#/responses/WikiPage' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/wiki/page/{pageName}: + get: + produces: + - application/json + tags: + - repository + summary: Get a wiki page + operationId: repoGetWikiPage + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of the page + name: pageName + in: path + required: true + responses: + '200': + $ref: '#/responses/WikiPage' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - repository + summary: Delete a wiki page + operationId: repoDeleteWikiPage + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of the page + name: pageName + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + patch: + consumes: + - application/json + tags: + - repository + summary: Edit a wiki page + operationId: repoEditWikiPage + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of the page + name: pageName + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateWikiPageOptions' + responses: + '200': + $ref: '#/responses/WikiPage' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '423': + $ref: '#/responses/repoArchivedError' + /repos/{owner}/{repo}/wiki/pages: + get: + produces: + - application/json + tags: + - repository + summary: Get all wiki pages + operationId: repoGetWikiPages + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WikiPageList' + '404': + $ref: '#/responses/notFound' + /repos/{owner}/{repo}/wiki/revisions/{pageName}: + get: + produces: + - application/json + tags: + - repository + summary: Get revisions of a wiki page + operationId: repoGetWikiPageRevisions + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + - type: string + description: name of the page + name: pageName + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + responses: + '200': + $ref: '#/responses/WikiCommitList' + '404': + $ref: '#/responses/notFound' + /repos/{template_owner}/{template_repo}/generate: + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + summary: Create a repository using a template + operationId: generateRepo + parameters: + - type: string + description: owner of the template repository + name: template_owner + in: path + required: true + - type: string + description: name of the template repository + name: template_repo + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/GenerateRepoOption' + responses: + '201': + $ref: '#/responses/Repository' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '409': + description: The repository with the same name already exists. + '422': + $ref: '#/responses/validationError' + /repositories/{id}: + get: + produces: + - application/json + tags: + - repository + summary: Get a repository by id + operationId: repoGetByID + parameters: + - type: integer + format: int64 + description: id of the repo to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Repository' + '404': + $ref: '#/responses/notFound' + /settings/api: + get: + produces: + - application/json + tags: + - settings + summary: Get instance's global settings for api + operationId: getGeneralAPISettings + responses: + '200': + $ref: '#/responses/GeneralAPISettings' + /settings/attachment: + get: + produces: + - application/json + tags: + - settings + summary: Get instance's global settings for Attachment + operationId: getGeneralAttachmentSettings + responses: + '200': + $ref: '#/responses/GeneralAttachmentSettings' + /settings/repository: + get: + produces: + - application/json + tags: + - settings + summary: Get instance's global settings for repositories + operationId: getGeneralRepositorySettings + responses: + '200': + $ref: '#/responses/GeneralRepoSettings' + /settings/ui: + get: + produces: + - application/json + tags: + - settings + summary: Get instance's global settings for ui + operationId: getGeneralUISettings + responses: + '200': + $ref: '#/responses/GeneralUISettings' + /signing-key.gpg: + get: + produces: + - text/plain + tags: + - miscellaneous + summary: Get default signing-key.gpg + operationId: getSigningKey + responses: + '200': + description: GPG armored public key + schema: + type: string + /signing-key.pub: + get: + produces: + - text/plain + tags: + - miscellaneous + summary: Get default signing-key.pub + operationId: getSigningKeySSH + responses: + '200': + description: ssh public key + schema: + type: string + /teams/{id}: + get: + produces: + - application/json + tags: + - organization + summary: Get a team + operationId: orgGetTeam + parameters: + - type: integer + format: int64 + description: id of the team to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Team' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - organization + summary: Delete a team + operationId: orgDeleteTeam + parameters: + - type: integer + format: int64 + description: id of the team to delete + name: id + in: path + required: true + responses: + '204': + description: team deleted + '404': + $ref: '#/responses/notFound' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - organization + summary: Edit a team + operationId: orgEditTeam + parameters: + - type: integer + description: id of the team to edit + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditTeamOption' + responses: + '200': + $ref: '#/responses/Team' + '404': + $ref: '#/responses/notFound' + /teams/{id}/activities/feeds: + get: + produces: + - application/json + tags: + - organization + summary: List a team's activity feeds + operationId: orgListTeamActivityFeeds + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: string + format: date + description: the date of the activities to be found + name: date + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/ActivityFeedsList' + '404': + $ref: '#/responses/notFound' + /teams/{id}/members: + get: + produces: + - application/json + tags: + - organization + summary: List a team's members + operationId: orgListTeamMembers + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /teams/{id}/members/{username}: + get: + produces: + - application/json + tags: + - organization + summary: List a particular member of team + operationId: orgListTeamMember + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: string + description: username of the user whose data is to be listed + name: username + in: path + required: true + responses: + '200': + $ref: '#/responses/User' + '404': + $ref: '#/responses/notFound' + put: + produces: + - application/json + tags: + - organization + summary: Add a team member + operationId: orgAddTeamMember + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: string + description: username of the user to add to a team + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - organization + summary: Remove a team member + operationId: orgRemoveTeamMember + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: string + description: username of the user to remove from a team + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /teams/{id}/repos: + get: + produces: + - application/json + tags: + - organization + summary: List a team's repos + operationId: orgListTeamRepos + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + '404': + $ref: '#/responses/notFound' + /teams/{id}/repos/{org}/{repo}: + get: + produces: + - application/json + tags: + - organization + summary: List a particular repo of team + operationId: orgListTeamRepo + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: string + description: organization that owns the repo to list + name: org + in: path + required: true + - type: string + description: name of the repo to list + name: repo + in: path + required: true + responses: + '200': + $ref: '#/responses/Repository' + '404': + $ref: '#/responses/notFound' + put: + produces: + - application/json + tags: + - organization + summary: Add a repository to a team + operationId: orgAddTeamRepository + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: string + description: organization that owns the repo to add + name: org + in: path + required: true + - type: string + description: name of the repo to add + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + description: >- + This does not delete the repository, it only removes the repository from + the team. + produces: + - application/json + tags: + - organization + summary: Remove a repository from a team + operationId: orgRemoveTeamRepository + parameters: + - type: integer + format: int64 + description: id of the team + name: id + in: path + required: true + - type: string + description: organization that owns the repo to remove + name: org + in: path + required: true + - type: string + description: name of the repo to remove + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /topics/search: + get: + produces: + - application/json + tags: + - repository + summary: search topics via keyword + operationId: topicSearch + parameters: + - type: string + description: keywords to search + name: q + in: query + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/TopicListResponse' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /user: + get: + produces: + - application/json + tags: + - user + summary: Get the authenticated user + operationId: userGetCurrent + responses: + '200': + $ref: '#/responses/User' + /user/actions/jobs: + get: + produces: + - application/json + tags: + - user + summary: Get workflow jobs + operationId: getUserWorkflowJobs + parameters: + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowJobsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /user/actions/runners: + get: + produces: + - application/json + tags: + - user + summary: Get user-level runners + operationId: getUserRunners + responses: + '200': + $ref: '#/definitions/ActionRunnersResponse' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /user/actions/runners/registration-token: + get: + produces: + - application/json + tags: + - user + summary: Get an user's actions runner registration token + operationId: userGetRunnerRegistrationToken + responses: + '200': + $ref: '#/responses/RegistrationToken' + post: + produces: + - application/json + tags: + - user + summary: Get an user's actions runner registration token + operationId: userCreateRunnerRegistrationToken + responses: + '200': + $ref: '#/responses/RegistrationToken' + /user/actions/runners/{runner_id}: + get: + produces: + - application/json + tags: + - user + summary: Get an user-level runner + operationId: getUserRunner + parameters: + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '200': + $ref: '#/definitions/ActionRunner' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - user + summary: Delete an user-level runner + operationId: deleteUserRunner + parameters: + - type: string + description: id of the runner + name: runner_id + in: path + required: true + responses: + '204': + description: runner has been deleted + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /user/actions/runs: + get: + produces: + - application/json + tags: + - user + summary: Get workflow runs + operationId: getUserWorkflowRuns + parameters: + - type: string + description: workflow event name + name: event + in: query + - type: string + description: workflow branch + name: branch + in: query + - type: string + description: >- + workflow status (pending, queued, in_progress, failure, success, + skipped) + name: status + in: query + - type: string + description: triggered by user + name: actor + in: query + - type: string + description: triggering sha of the workflow run + name: head_sha + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/WorkflowRunsList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /user/actions/secrets/{secretname}: + put: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Create or Update a secret value in a user scope + operationId: updateUserSecret + parameters: + - type: string + description: name of the secret + name: secretname + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateOrUpdateSecretOption' + responses: + '201': + description: response when creating a secret + '204': + description: response when updating a secret + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + delete: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Delete a secret in a user scope + operationId: deleteUserSecret + parameters: + - type: string + description: name of the secret + name: secretname + in: path + required: true + responses: + '204': + description: delete one secret of the user + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /user/actions/variables: + get: + produces: + - application/json + tags: + - user + summary: Get the user-level list of variables which is created by current doer + operationId: getUserVariablesList + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/VariableList' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /user/actions/variables/{variablename}: + get: + produces: + - application/json + tags: + - user + summary: Get a user-level variable which is created by current doer + operationId: getUserVariable + parameters: + - type: string + description: name of the variable + name: variablename + in: path + required: true + responses: + '200': + $ref: '#/responses/ActionVariable' + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + put: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Update a user-level variable which is created by current doer + operationId: updateUserVariable + parameters: + - type: string + description: name of the variable + name: variablename + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/UpdateVariableOption' + responses: + '201': + description: response when updating a variable + '204': + description: response when updating a variable + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + post: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Create a user-level variable + operationId: createUserVariable + parameters: + - type: string + description: name of the variable + name: variablename + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateVariableOption' + responses: + '201': + description: successfully created the user-level variable + '400': + $ref: '#/responses/error' + '409': + description: variable name already exists. + delete: + produces: + - application/json + tags: + - user + summary: Delete a user-level variable which is created by current doer + operationId: deleteUserVariable + parameters: + - type: string + description: name of the variable + name: variablename + in: path + required: true + responses: + '201': + description: response when deleting a variable + '204': + description: response when deleting a variable + '400': + $ref: '#/responses/error' + '404': + $ref: '#/responses/notFound' + /user/applications/oauth2: + get: + produces: + - application/json + tags: + - user + summary: List the authenticated user's oauth2 applications + operationId: userGetOauth2Application + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/OAuth2ApplicationList' + post: + produces: + - application/json + tags: + - user + summary: creates a new OAuth2 application + operationId: userCreateOAuth2Application + parameters: + - name: body + in: body + required: true + schema: + $ref: '#/definitions/CreateOAuth2ApplicationOptions' + responses: + '201': + $ref: '#/responses/OAuth2Application' + '400': + $ref: '#/responses/error' + /user/applications/oauth2/{id}: + get: + produces: + - application/json + tags: + - user + summary: get an OAuth2 Application + operationId: userGetOAuth2Application + parameters: + - type: integer + format: int64 + description: Application ID to be found + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/OAuth2Application' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - user + summary: delete an OAuth2 Application + operationId: userDeleteOAuth2Application + parameters: + - type: integer + format: int64 + description: token to be deleted + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + patch: + produces: + - application/json + tags: + - user + summary: >- + update an OAuth2 Application, this includes regenerating the client + secret + operationId: userUpdateOAuth2Application + parameters: + - type: integer + format: int64 + description: application to be updated + name: id + in: path + required: true + - name: body + in: body + required: true + schema: + $ref: '#/definitions/CreateOAuth2ApplicationOptions' + responses: + '200': + $ref: '#/responses/OAuth2Application' + '404': + $ref: '#/responses/notFound' + /user/avatar: + post: + produces: + - application/json + tags: + - user + summary: Update Avatar + operationId: userUpdateAvatar + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/UpdateUserAvatarOption' + responses: + '204': + $ref: '#/responses/empty' + delete: + produces: + - application/json + tags: + - user + summary: Delete Avatar + operationId: userDeleteAvatar + responses: + '204': + $ref: '#/responses/empty' + /user/blocks: + get: + produces: + - application/json + tags: + - user + summary: List users blocked by the authenticated user + operationId: userListBlocks + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + /user/blocks/{username}: + get: + tags: + - user + summary: Check if a user is blocked by the authenticated user + operationId: userCheckUserBlock + parameters: + - type: string + description: username of the user to check + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + put: + tags: + - user + summary: Block a user + operationId: userBlockUser + parameters: + - type: string + description: username of the user to block + name: username + in: path + required: true + - type: string + description: optional note for the block + name: note + in: query + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + delete: + tags: + - user + summary: Unblock a user + operationId: userUnblockUser + parameters: + - type: string + description: username of the user to unblock + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /user/emails: + get: + produces: + - application/json + tags: + - user + summary: List the authenticated user's email addresses + operationId: userListEmails + responses: + '200': + $ref: '#/responses/EmailList' + post: + produces: + - application/json + tags: + - user + summary: Add email addresses + operationId: userAddEmail + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/CreateEmailOption' + responses: + '201': + $ref: '#/responses/EmailList' + '422': + $ref: '#/responses/validationError' + delete: + produces: + - application/json + tags: + - user + summary: Delete email addresses + operationId: userDeleteEmail + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/DeleteEmailOption' + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /user/followers: + get: + produces: + - application/json + tags: + - user + summary: List the authenticated user's followers + operationId: userCurrentListFollowers + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + /user/following: + get: + produces: + - application/json + tags: + - user + summary: List the users that the authenticated user is following + operationId: userCurrentListFollowing + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + /user/following/{username}: + get: + tags: + - user + summary: Check whether a user is followed by the authenticated user + operationId: userCurrentCheckFollowing + parameters: + - type: string + description: username of the user to check for authenticated followers + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + put: + tags: + - user + summary: Follow a user + operationId: userCurrentPutFollow + parameters: + - type: string + description: username of the user to follow + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - user + summary: Unfollow a user + operationId: userCurrentDeleteFollow + parameters: + - type: string + description: username of the user to unfollow + name: username + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /user/gpg_key_token: + get: + produces: + - text/plain + tags: + - user + summary: Get a Token to verify + operationId: getVerificationToken + responses: + '200': + $ref: '#/responses/string' + '404': + $ref: '#/responses/notFound' + /user/gpg_key_verify: + post: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Verify a GPG key + operationId: userVerifyGPGKey + responses: + '201': + $ref: '#/responses/GPGKey' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /user/gpg_keys: + get: + produces: + - application/json + tags: + - user + summary: List the authenticated user's GPG keys + operationId: userCurrentListGPGKeys + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/GPGKeyList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Create a GPG key + operationId: userCurrentPostGPGKey + parameters: + - name: Form + in: body + schema: + $ref: '#/definitions/CreateGPGKeyOption' + responses: + '201': + $ref: '#/responses/GPGKey' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/validationError' + /user/gpg_keys/{id}: + get: + produces: + - application/json + tags: + - user + summary: Get a GPG key + operationId: userCurrentGetGPGKey + parameters: + - type: integer + format: int64 + description: id of key to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/GPGKey' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - user + summary: Remove a GPG key + operationId: userCurrentDeleteGPGKey + parameters: + - type: integer + format: int64 + description: id of key to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /user/hooks: + get: + produces: + - application/json + tags: + - user + summary: List the authenticated user's webhooks + operationId: userListHooks + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/HookList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Create a hook + operationId: userCreateHook + parameters: + - name: body + in: body + required: true + schema: + $ref: '#/definitions/CreateHookOption' + responses: + '201': + $ref: '#/responses/Hook' + /user/hooks/{id}: + get: + produces: + - application/json + tags: + - user + summary: Get a hook + operationId: userGetHook + parameters: + - type: integer + format: int64 + description: id of the hook to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/Hook' + delete: + produces: + - application/json + tags: + - user + summary: Delete a hook + operationId: userDeleteHook + parameters: + - type: integer + format: int64 + description: id of the hook to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + patch: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Update a hook + operationId: userEditHook + parameters: + - type: integer + format: int64 + description: id of the hook to update + name: id + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/EditHookOption' + responses: + '200': + $ref: '#/responses/Hook' + /user/keys: + get: + produces: + - application/json + tags: + - user + summary: List the authenticated user's public keys + operationId: userCurrentListKeys + parameters: + - type: string + description: fingerprint of the key + name: fingerprint + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/PublicKeyList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Create a public key + operationId: userCurrentPostKey + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/CreateKeyOption' + responses: + '201': + $ref: '#/responses/PublicKey' + '422': + $ref: '#/responses/validationError' + /user/keys/{id}: + get: + produces: + - application/json + tags: + - user + summary: Get a public key + operationId: userCurrentGetKey + parameters: + - type: integer + format: int64 + description: id of key to get + name: id + in: path + required: true + responses: + '200': + $ref: '#/responses/PublicKey' + '404': + $ref: '#/responses/notFound' + delete: + produces: + - application/json + tags: + - user + summary: Delete a public key + operationId: userCurrentDeleteKey + parameters: + - type: integer + format: int64 + description: id of key to delete + name: id + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /user/orgs: + get: + produces: + - application/json + tags: + - organization + summary: List the current user's organizations + operationId: orgListCurrentUserOrgs + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/OrganizationList' + '404': + $ref: '#/responses/notFound' + /user/repos: + get: + produces: + - application/json + tags: + - user + summary: List the repos that the authenticated user owns + operationId: userCurrentListRepos + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + post: + consumes: + - application/json + produces: + - application/json + tags: + - repository + - user + summary: Create a repository + operationId: createCurrentUserRepo + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/CreateRepoOption' + responses: + '201': + $ref: '#/responses/Repository' + '400': + $ref: '#/responses/error' + '409': + description: The repository with the same name already exists. + '422': + $ref: '#/responses/validationError' + /user/settings: + get: + produces: + - application/json + tags: + - user + summary: Get user settings + operationId: getUserSettings + responses: + '200': + $ref: '#/responses/UserSettings' + patch: + produces: + - application/json + tags: + - user + summary: Update user settings + operationId: updateUserSettings + parameters: + - name: body + in: body + schema: + $ref: '#/definitions/UserSettingsOptions' + responses: + '200': + $ref: '#/responses/UserSettings' + /user/starred: + get: + produces: + - application/json + tags: + - user + summary: The repos that the authenticated user has starred + operationId: userCurrentListStarred + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + '403': + $ref: '#/responses/forbidden' + /user/starred/{owner}/{repo}: + get: + tags: + - user + summary: Whether the authenticated is starring the repo + operationId: userCurrentCheckStarring + parameters: + - type: string + description: owner of the repo + name: owner + in: path + required: true + - type: string + description: name of the repo + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + put: + tags: + - user + summary: Star the given repo + operationId: userCurrentPutStar + parameters: + - type: string + description: owner of the repo to star + name: owner + in: path + required: true + - type: string + description: name of the repo to star + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + delete: + tags: + - user + summary: Unstar the given repo + operationId: userCurrentDeleteStar + parameters: + - type: string + description: owner of the repo to unstar + name: owner + in: path + required: true + - type: string + description: name of the repo to unstar + name: repo + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /user/stopwatches: + get: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Get list of all existing stopwatches + operationId: userGetStopWatches + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/StopWatchList' + /user/subscriptions: + get: + produces: + - application/json + tags: + - user + summary: List repositories watched by the authenticated user + operationId: userCurrentListSubscriptions + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + /user/teams: + get: + produces: + - application/json + tags: + - user + summary: List all the teams a user belongs to + operationId: userListTeams + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/TeamList' + /user/times: + get: + produces: + - application/json + tags: + - user + summary: List the current user's tracked times + operationId: userCurrentTrackedTimes + parameters: + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + - type: string + format: date-time + description: >- + Only show times updated after the given time. This is a timestamp in + RFC 3339 format + name: since + in: query + - type: string + format: date-time + description: >- + Only show times updated before the given time. This is a timestamp + in RFC 3339 format + name: before + in: query + responses: + '200': + $ref: '#/responses/TrackedTimeList' + /users/search: + get: + produces: + - application/json + tags: + - user + summary: Search for users + operationId: userSearch + parameters: + - type: string + description: keyword + name: q + in: query + - type: integer + format: int64 + description: ID of the user to search for + name: uid + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + description: SearchResults of a successful search + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/definitions/User' + ok: + type: boolean + /users/{username}: + get: + produces: + - application/json + tags: + - user + summary: Get a user + operationId: userGet + parameters: + - type: string + description: username of the user whose data is to be listed + name: username + in: path + required: true + responses: + '200': + $ref: '#/responses/User' + '404': + $ref: '#/responses/notFound' + /users/{username}/activities/feeds: + get: + produces: + - application/json + tags: + - user + summary: List a user's activity feeds + operationId: userListActivityFeeds + parameters: + - type: string + description: username of the user whose activity feeds are to be listed + name: username + in: path + required: true + - type: boolean + description: if true, only show actions performed by the requested user + name: only-performed-by + in: query + - type: string + format: date + description: the date of the activities to be found + name: date + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/ActivityFeedsList' + '404': + $ref: '#/responses/notFound' + /users/{username}/followers: + get: + produces: + - application/json + tags: + - user + summary: List the given user's followers + operationId: userListFollowers + parameters: + - type: string + description: username of the user whose followers are to be listed + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /users/{username}/following: + get: + produces: + - application/json + tags: + - user + summary: List the users that the given user is following + operationId: userListFollowing + parameters: + - type: string + description: username of the user whose followed users are to be listed + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/UserList' + '404': + $ref: '#/responses/notFound' + /users/{username}/following/{target}: + get: + tags: + - user + summary: Check if one user is following another user + operationId: userCheckFollowing + parameters: + - type: string + description: username of the following user + name: username + in: path + required: true + - type: string + description: username of the followed user + name: target + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '404': + $ref: '#/responses/notFound' + /users/{username}/gpg_keys: + get: + produces: + - application/json + tags: + - user + summary: List the given user's GPG keys + operationId: userListGPGKeys + parameters: + - type: string + description: username of the user whose GPG key list is to be obtained + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/GPGKeyList' + '404': + $ref: '#/responses/notFound' + /users/{username}/heatmap: + get: + produces: + - application/json + tags: + - user + summary: Get a user's heatmap + operationId: userGetHeatmapData + parameters: + - type: string + description: username of the user whose heatmap is to be obtained + name: username + in: path + required: true + responses: + '200': + $ref: '#/responses/UserHeatmapData' + '404': + $ref: '#/responses/notFound' + /users/{username}/keys: + get: + produces: + - application/json + tags: + - user + summary: List the given user's public keys + operationId: userListKeys + parameters: + - type: string + description: username of the user whose public keys are to be listed + name: username + in: path + required: true + - type: string + description: fingerprint of the key + name: fingerprint + in: query + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/PublicKeyList' + '404': + $ref: '#/responses/notFound' + /users/{username}/orgs: + get: + produces: + - application/json + tags: + - organization + summary: List a user's organizations + operationId: orgListUserOrgs + parameters: + - type: string + description: username of the user whose organizations are to be listed + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/OrganizationList' + '404': + $ref: '#/responses/notFound' + /users/{username}/orgs/{org}/permissions: + get: + produces: + - application/json + tags: + - organization + summary: Get user permissions in organization + operationId: orgGetUserPermissions + parameters: + - type: string + description: username of the user whose permissions are to be obtained + name: username + in: path + required: true + - type: string + description: name of the organization + name: org + in: path + required: true + responses: + '200': + $ref: '#/responses/OrganizationPermissions' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /users/{username}/repos: + get: + produces: + - application/json + tags: + - user + summary: List the repos owned by the given user + operationId: userListRepos + parameters: + - type: string + description: username of the user whose owned repos are to be listed + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + '404': + $ref: '#/responses/notFound' + /users/{username}/starred: + get: + produces: + - application/json + tags: + - user + summary: The repos that the given user has starred + operationId: userListStarred + parameters: + - type: string + description: username of the user whose starred repos are to be listed + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + /users/{username}/subscriptions: + get: + produces: + - application/json + tags: + - user + summary: List the repositories watched by a user + operationId: userListSubscriptions + parameters: + - type: string + description: username of the user whose watched repos are to be listed + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/RepositoryList' + '404': + $ref: '#/responses/notFound' + /users/{username}/tokens: + get: + produces: + - application/json + tags: + - user + summary: List the authenticated user's access tokens + operationId: userGetTokens + parameters: + - type: string + description: username of to user whose access tokens are to be listed + name: username + in: path + required: true + - type: integer + description: page number of results to return (1-based) + name: page + in: query + - type: integer + description: page size of results + name: limit + in: query + responses: + '200': + $ref: '#/responses/AccessTokenList' + '403': + $ref: '#/responses/forbidden' + post: + consumes: + - application/json + produces: + - application/json + tags: + - user + summary: Create an access token + operationId: userCreateToken + parameters: + - type: string + description: username of the user whose token is to be created + name: username + in: path + required: true + - name: body + in: body + schema: + $ref: '#/definitions/CreateAccessTokenOption' + responses: + '201': + $ref: '#/responses/AccessToken' + '400': + $ref: '#/responses/error' + '403': + $ref: '#/responses/forbidden' + /users/{username}/tokens/{token}: + delete: + produces: + - application/json + tags: + - user + summary: delete an access token + operationId: userDeleteAccessToken + parameters: + - type: string + description: username of the user whose token is to be deleted + name: username + in: path + required: true + - type: string + description: token to be deleted, identified by ID and if not available by name + name: token + in: path + required: true + responses: + '204': + $ref: '#/responses/empty' + '403': + $ref: '#/responses/forbidden' + '404': + $ref: '#/responses/notFound' + '422': + $ref: '#/responses/error' + /version: + get: + produces: + - application/json + tags: + - miscellaneous + summary: Returns the version of the Gitea application + operationId: getVersion + responses: + '200': + $ref: '#/responses/ServerVersion' +definitions: + APIError: + description: APIError is an api error with a message + type: object + properties: + message: + description: Message contains the error description + type: string + x-go-name: Message + url: + description: URL contains the documentation URL for this error + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + AccessToken: + type: object + title: AccessToken represents an API access token. + properties: + created_at: + description: The timestamp when the token was created + type: string + format: date-time + x-go-name: Created + id: + description: The unique identifier of the access token + type: integer + format: int64 + x-go-name: ID + last_used_at: + description: The timestamp when the token was last used + type: string + format: date-time + x-go-name: Updated + name: + description: The name of the access token + type: string + x-go-name: Name + scopes: + description: The scopes granted to this access token + type: array + items: + type: string + x-go-name: Scopes + sha1: + description: The SHA1 hash of the access token + type: string + x-go-name: Token + token_last_eight: + description: The last eight characters of the token + type: string + x-go-name: TokenLastEight + x-go-package: code.gitea.io/gitea/modules/structs + ActionArtifact: + description: ActionArtifact represents a ActionArtifact + type: object + properties: + archive_download_url: + type: string + x-go-name: ArchiveDownloadURL + created_at: + type: string + format: date-time + x-go-name: CreatedAt + expired: + type: boolean + x-go-name: Expired + expires_at: + type: string + format: date-time + x-go-name: ExpiresAt + id: + type: integer + format: int64 + x-go-name: ID + name: + type: string + x-go-name: Name + size_in_bytes: + type: integer + format: int64 + x-go-name: SizeInBytes + updated_at: + type: string + format: date-time + x-go-name: UpdatedAt + url: + type: string + x-go-name: URL + workflow_run: + $ref: '#/definitions/ActionWorkflowRun' + x-go-package: code.gitea.io/gitea/modules/structs + ActionArtifactsResponse: + description: ActionArtifactsResponse returns ActionArtifacts + type: object + properties: + artifacts: + type: array + items: + $ref: '#/definitions/ActionArtifact' + x-go-name: Entries + total_count: + type: integer + format: int64 + x-go-name: TotalCount + x-go-package: code.gitea.io/gitea/modules/structs + ActionRunner: + description: ActionRunner represents a Runner + type: object + properties: + busy: + type: boolean + x-go-name: Busy + ephemeral: + type: boolean + x-go-name: Ephemeral + id: + type: integer + format: int64 + x-go-name: ID + labels: + type: array + items: + $ref: '#/definitions/ActionRunnerLabel' + x-go-name: Labels + name: + type: string + x-go-name: Name + status: + type: string + x-go-name: Status + x-go-package: code.gitea.io/gitea/modules/structs + ActionRunnerLabel: + description: ActionRunnerLabel represents a Runner Label + type: object + properties: + id: + type: integer + format: int64 + x-go-name: ID + name: + type: string + x-go-name: Name + type: + type: string + x-go-name: Type + x-go-package: code.gitea.io/gitea/modules/structs + ActionRunnersResponse: + description: ActionRunnersResponse returns Runners + type: object + properties: + runners: + type: array + items: + $ref: '#/definitions/ActionRunner' + x-go-name: Entries + total_count: + type: integer + format: int64 + x-go-name: TotalCount + x-go-package: code.gitea.io/gitea/modules/structs + ActionTask: + description: ActionTask represents a ActionTask + type: object + properties: + created_at: + type: string + format: date-time + x-go-name: CreatedAt + display_title: + description: DisplayTitle is the display title for the workflow run + type: string + x-go-name: DisplayTitle + event: + description: Event is the type of event that triggered the workflow + type: string + x-go-name: Event + head_branch: + description: HeadBranch is the branch that triggered the workflow + type: string + x-go-name: HeadBranch + head_sha: + description: HeadSHA is the commit SHA that triggered the workflow + type: string + x-go-name: HeadSHA + id: + description: ID is the unique identifier for the action task + type: integer + format: int64 + x-go-name: ID + name: + description: Name is the name of the workflow + type: string + x-go-name: Name + run_number: + description: RunNumber is the sequential number of the workflow run + type: integer + format: int64 + x-go-name: RunNumber + run_started_at: + type: string + format: date-time + x-go-name: RunStartedAt + status: + description: Status indicates the current status of the workflow run + type: string + x-go-name: Status + updated_at: + type: string + format: date-time + x-go-name: UpdatedAt + url: + description: URL is the API URL for this workflow run + type: string + x-go-name: URL + workflow_id: + description: WorkflowID is the identifier of the workflow + type: string + x-go-name: WorkflowID + x-go-package: code.gitea.io/gitea/modules/structs + ActionTaskResponse: + description: ActionTaskResponse returns a ActionTask + type: object + properties: + total_count: + description: TotalCount is the total number of workflow runs + type: integer + format: int64 + x-go-name: TotalCount + workflow_runs: + description: Entries contains the list of workflow runs + type: array + items: + $ref: '#/definitions/ActionTask' + x-go-name: Entries + x-go-package: code.gitea.io/gitea/modules/structs + ActionVariable: + description: ActionVariable return value of the query API + type: object + properties: + data: + description: the value of the variable + type: string + x-go-name: Data + description: + description: the description of the variable + type: string + x-go-name: Description + name: + description: the name of the variable + type: string + x-go-name: Name + owner_id: + description: the owner to which the variable belongs + type: integer + format: int64 + x-go-name: OwnerID + repo_id: + description: the repository to which the variable belongs + type: integer + format: int64 + x-go-name: RepoID + x-go-package: code.gitea.io/gitea/modules/structs + ActionWorkflow: + description: ActionWorkflow represents a ActionWorkflow + type: object + properties: + badge_url: + description: BadgeURL is the URL for the workflow badge + type: string + x-go-name: BadgeURL + created_at: + type: string + format: date-time + x-go-name: CreatedAt + deleted_at: + type: string + format: date-time + x-go-name: DeletedAt + html_url: + description: HTMLURL is the web URL for viewing the workflow + type: string + x-go-name: HTMLURL + id: + description: ID is the unique identifier for the workflow + type: string + x-go-name: ID + name: + description: Name is the name of the workflow + type: string + x-go-name: Name + path: + description: Path is the file path of the workflow + type: string + x-go-name: Path + state: + description: State indicates if the workflow is active or disabled + type: string + x-go-name: State + updated_at: + type: string + format: date-time + x-go-name: UpdatedAt + url: + description: URL is the API URL for this workflow + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + ActionWorkflowJob: + description: ActionWorkflowJob represents a WorkflowJob + type: object + properties: + completed_at: + type: string + format: date-time + x-go-name: CompletedAt + conclusion: + type: string + x-go-name: Conclusion + created_at: + type: string + format: date-time + x-go-name: CreatedAt + head_branch: + type: string + x-go-name: HeadBranch + head_sha: + type: string + x-go-name: HeadSha + html_url: + type: string + x-go-name: HTMLURL + id: + type: integer + format: int64 + x-go-name: ID + labels: + type: array + items: + type: string + x-go-name: Labels + name: + type: string + x-go-name: Name + run_attempt: + type: integer + format: int64 + x-go-name: RunAttempt + run_id: + type: integer + format: int64 + x-go-name: RunID + run_url: + type: string + x-go-name: RunURL + runner_id: + type: integer + format: int64 + x-go-name: RunnerID + runner_name: + type: string + x-go-name: RunnerName + started_at: + type: string + format: date-time + x-go-name: StartedAt + status: + type: string + x-go-name: Status + steps: + type: array + items: + $ref: '#/definitions/ActionWorkflowStep' + x-go-name: Steps + url: + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + ActionWorkflowJobsResponse: + description: ActionWorkflowJobsResponse returns ActionWorkflowJobs + type: object + properties: + jobs: + type: array + items: + $ref: '#/definitions/ActionWorkflowJob' + x-go-name: Entries + total_count: + type: integer + format: int64 + x-go-name: TotalCount + x-go-package: code.gitea.io/gitea/modules/structs + ActionWorkflowResponse: + description: ActionWorkflowResponse returns a ActionWorkflow + type: object + properties: + total_count: + type: integer + format: int64 + x-go-name: TotalCount + workflows: + type: array + items: + $ref: '#/definitions/ActionWorkflow' + x-go-name: Workflows + x-go-package: code.gitea.io/gitea/modules/structs + ActionWorkflowRun: + description: ActionWorkflowRun represents a WorkflowRun + type: object + properties: + actor: + $ref: '#/definitions/User' + completed_at: + type: string + format: date-time + x-go-name: CompletedAt + conclusion: + type: string + x-go-name: Conclusion + display_title: + type: string + x-go-name: DisplayTitle + event: + type: string + x-go-name: Event + head_branch: + type: string + x-go-name: HeadBranch + head_repository: + $ref: '#/definitions/Repository' + head_sha: + type: string + x-go-name: HeadSha + html_url: + type: string + x-go-name: HTMLURL + id: + type: integer + format: int64 + x-go-name: ID + path: + type: string + x-go-name: Path + repository: + $ref: '#/definitions/Repository' + repository_id: + type: integer + format: int64 + x-go-name: RepositoryID + run_attempt: + type: integer + format: int64 + x-go-name: RunAttempt + run_number: + type: integer + format: int64 + x-go-name: RunNumber + started_at: + type: string + format: date-time + x-go-name: StartedAt + status: + type: string + x-go-name: Status + trigger_actor: + $ref: '#/definitions/User' + url: + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + ActionWorkflowRunsResponse: + description: ActionWorkflowRunsResponse returns ActionWorkflowRuns + type: object + properties: + total_count: + type: integer + format: int64 + x-go-name: TotalCount + workflow_runs: + type: array + items: + $ref: '#/definitions/ActionWorkflowRun' + x-go-name: Entries + x-go-package: code.gitea.io/gitea/modules/structs + ActionWorkflowStep: + description: ActionWorkflowStep represents a step of a WorkflowJob + type: object + properties: + completed_at: + type: string + format: date-time + x-go-name: CompletedAt + conclusion: + type: string + x-go-name: Conclusion + name: + type: string + x-go-name: Name + number: + type: integer + format: int64 + x-go-name: Number + started_at: + type: string + format: date-time + x-go-name: StartedAt + status: + type: string + x-go-name: Status + x-go-package: code.gitea.io/gitea/modules/structs + Activity: + type: object + properties: + act_user: + $ref: '#/definitions/User' + act_user_id: + description: The ID of the user who performed the action + type: integer + format: int64 + x-go-name: ActUserID + comment: + $ref: '#/definitions/Comment' + comment_id: + description: The ID of the comment associated with the activity (if applicable) + type: integer + format: int64 + x-go-name: CommentID + content: + description: Additional content or details about the activity + type: string + x-go-name: Content + created: + description: The date and time when the activity occurred + type: string + format: date-time + x-go-name: Created + id: + description: The unique identifier of the activity + type: integer + format: int64 + x-go-name: ID + is_private: + description: Whether this activity is from a private repository + type: boolean + x-go-name: IsPrivate + op_type: + description: the type of action + type: string + enum: + - create_repo + - rename_repo + - star_repo + - watch_repo + - commit_repo + - create_issue + - create_pull_request + - transfer_repo + - push_tag + - comment_issue + - merge_pull_request + - close_issue + - reopen_issue + - close_pull_request + - reopen_pull_request + - delete_tag + - delete_branch + - mirror_sync_push + - mirror_sync_create + - mirror_sync_delete + - approve_pull_request + - reject_pull_request + - comment_pull + - publish_release + - pull_review_dismissed + - pull_request_ready_for_review + - auto_merge_pull_request + x-go-name: OpType + ref_name: + description: >- + The name of the git reference (branch/tag) associated with the + activity + type: string + x-go-name: RefName + repo: + $ref: '#/definitions/Repository' + repo_id: + description: The ID of the repository associated with the activity + type: integer + format: int64 + x-go-name: RepoID + user_id: + description: The ID of the user who receives/sees this activity + type: integer + format: int64 + x-go-name: UserID + x-go-package: code.gitea.io/gitea/modules/structs + ActivityPub: + description: ActivityPub type + type: object + properties: + '@context': + description: Context defines the JSON-LD context for ActivityPub + type: string + x-go-name: Context + x-go-package: code.gitea.io/gitea/modules/structs + AddCollaboratorOption: + description: >- + AddCollaboratorOption options when adding a user as a collaborator of a + repository + type: object + properties: + permission: + type: string + enum: + - read + - write + - admin + x-go-name: Permission + x-go-package: code.gitea.io/gitea/modules/structs + AddTimeOption: + description: AddTimeOption options for adding time to an issue + type: object + required: + - time + properties: + created: + type: string + format: date-time + x-go-name: Created + time: + description: time in seconds + type: integer + format: int64 + x-go-name: Time + user_name: + description: >- + username of the user who spent the time working on the issue + (optional) + type: string + x-go-name: User + x-go-package: code.gitea.io/gitea/modules/structs + AnnotatedTag: + description: AnnotatedTag represents an annotated tag + type: object + properties: + message: + description: The message associated with the annotated tag + type: string + x-go-name: Message + object: + $ref: '#/definitions/AnnotatedTagObject' + sha: + description: The SHA hash of the annotated tag + type: string + x-go-name: SHA + tag: + description: The name of the annotated tag + type: string + x-go-name: Tag + tagger: + $ref: '#/definitions/CommitUser' + url: + description: The URL to access the annotated tag + type: string + x-go-name: URL + verification: + $ref: '#/definitions/PayloadCommitVerification' + x-go-package: code.gitea.io/gitea/modules/structs + AnnotatedTagObject: + description: AnnotatedTagObject contains meta information of the tag object + type: object + properties: + sha: + description: The SHA hash of the tagged object + type: string + x-go-name: SHA + type: + description: The type of the tagged object (e.g., commit, tree) + type: string + x-go-name: Type + url: + description: The URL to access the tagged object + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + ApplyDiffPatchFileOptions: + description: >- + ApplyDiffPatchFileOptions options for applying a diff patch + + Note: `author` and `committer` are optional (if only one is given, it will + be used for the other, otherwise the authenticated user will be used) + type: object + required: + - content + properties: + author: + $ref: '#/definitions/Identity' + branch: + description: >- + branch (optional) to base this file from. if not given, the default + branch is used + type: string + x-go-name: BranchName + committer: + $ref: '#/definitions/Identity' + content: + type: string + x-go-name: Content + dates: + $ref: '#/definitions/CommitDateOptions' + message: + description: >- + message (optional) for the commit of this file. if not supplied, a + default message will be used + type: string + x-go-name: Message + new_branch: + description: >- + new_branch (optional) will make a new branch from `branch` before + creating the file + type: string + x-go-name: NewBranchName + signoff: + description: >- + Add a Signed-off-by trailer by the committer at the end of the commit + log message. + type: boolean + x-go-name: Signoff + x-go-package: code.gitea.io/gitea/modules/structs + Attachment: + description: Attachment a generic attachment + type: object + properties: + browser_download_url: + description: DownloadURL is the URL to download the attachment + type: string + x-go-name: DownloadURL + created_at: + type: string + format: date-time + x-go-name: Created + download_count: + description: >- + DownloadCount is the number of times the attachment has been + downloaded + type: integer + format: int64 + x-go-name: DownloadCount + id: + description: ID is the unique identifier for the attachment + type: integer + format: int64 + x-go-name: ID + name: + description: Name is the filename of the attachment + type: string + x-go-name: Name + size: + description: Size is the file size in bytes + type: integer + format: int64 + x-go-name: Size + uuid: + description: UUID is the unique identifier for the attachment file + type: string + x-go-name: UUID + x-go-package: code.gitea.io/gitea/modules/structs + Badge: + description: Badge represents a user badge + type: object + properties: + description: + type: string + x-go-name: Description + id: + type: integer + format: int64 + x-go-name: ID + image_url: + type: string + x-go-name: ImageURL + slug: + type: string + x-go-name: Slug + x-go-package: code.gitea.io/gitea/modules/structs + Branch: + description: Branch represents a repository branch + type: object + properties: + commit: + $ref: '#/definitions/PayloadCommit' + effective_branch_protection_name: + description: >- + EffectiveBranchProtectionName is the name of the effective branch + protection rule + type: string + x-go-name: EffectiveBranchProtectionName + enable_status_check: + description: EnableStatusCheck indicates if status checks are enabled + type: boolean + x-go-name: EnableStatusCheck + name: + description: Name is the branch name + type: string + x-go-name: Name + protected: + description: Protected indicates if the branch is protected + type: boolean + x-go-name: Protected + required_approvals: + description: >- + RequiredApprovals is the number of required approvals for pull + requests + type: integer + format: int64 + x-go-name: RequiredApprovals + status_check_contexts: + description: >- + StatusCheckContexts contains the list of required status check + contexts + type: array + items: + type: string + x-go-name: StatusCheckContexts + user_can_merge: + description: UserCanMerge indicates if the current user can merge to this branch + type: boolean + x-go-name: UserCanMerge + user_can_push: + description: UserCanPush indicates if the current user can push to this branch + type: boolean + x-go-name: UserCanPush + x-go-package: code.gitea.io/gitea/modules/structs + BranchProtection: + description: BranchProtection represents a branch protection for a repository + type: object + properties: + approvals_whitelist_teams: + type: array + items: + type: string + x-go-name: ApprovalsWhitelistTeams + approvals_whitelist_username: + type: array + items: + type: string + x-go-name: ApprovalsWhitelistUsernames + block_admin_merge_override: + type: boolean + x-go-name: BlockAdminMergeOverride + block_on_official_review_requests: + type: boolean + x-go-name: BlockOnOfficialReviewRequests + block_on_outdated_branch: + type: boolean + x-go-name: BlockOnOutdatedBranch + block_on_rejected_reviews: + type: boolean + x-go-name: BlockOnRejectedReviews + branch_name: + description: 'Deprecated: true' + type: string + x-go-name: BranchName + created_at: + type: string + format: date-time + x-go-name: Created + dismiss_stale_approvals: + type: boolean + x-go-name: DismissStaleApprovals + enable_approvals_whitelist: + type: boolean + x-go-name: EnableApprovalsWhitelist + enable_force_push: + type: boolean + x-go-name: EnableForcePush + enable_force_push_allowlist: + type: boolean + x-go-name: EnableForcePushAllowlist + enable_merge_whitelist: + type: boolean + x-go-name: EnableMergeWhitelist + enable_push: + type: boolean + x-go-name: EnablePush + enable_push_whitelist: + type: boolean + x-go-name: EnablePushWhitelist + enable_status_check: + type: boolean + x-go-name: EnableStatusCheck + force_push_allowlist_deploy_keys: + type: boolean + x-go-name: ForcePushAllowlistDeployKeys + force_push_allowlist_teams: + type: array + items: + type: string + x-go-name: ForcePushAllowlistTeams + force_push_allowlist_usernames: + type: array + items: + type: string + x-go-name: ForcePushAllowlistUsernames + ignore_stale_approvals: + type: boolean + x-go-name: IgnoreStaleApprovals + merge_whitelist_teams: + type: array + items: + type: string + x-go-name: MergeWhitelistTeams + merge_whitelist_usernames: + type: array + items: + type: string + x-go-name: MergeWhitelistUsernames + priority: + description: Priority is the priority of this branch protection rule + type: integer + format: int64 + x-go-name: Priority + protected_file_patterns: + type: string + x-go-name: ProtectedFilePatterns + push_whitelist_deploy_keys: + type: boolean + x-go-name: PushWhitelistDeployKeys + push_whitelist_teams: + type: array + items: + type: string + x-go-name: PushWhitelistTeams + push_whitelist_usernames: + type: array + items: + type: string + x-go-name: PushWhitelistUsernames + require_signed_commits: + type: boolean + x-go-name: RequireSignedCommits + required_approvals: + type: integer + format: int64 + x-go-name: RequiredApprovals + rule_name: + description: RuleName is the name of the branch protection rule + type: string + x-go-name: RuleName + status_check_contexts: + type: array + items: + type: string + x-go-name: StatusCheckContexts + unprotected_file_patterns: + type: string + x-go-name: UnprotectedFilePatterns + updated_at: + type: string + format: date-time + x-go-name: Updated + x-go-package: code.gitea.io/gitea/modules/structs + ChangeFileOperation: + description: ChangeFileOperation for creating, updating or deleting a file + type: object + required: + - operation + - path + properties: + content: + description: new or updated file content, it must be base64 encoded + type: string + x-go-name: ContentBase64 + from_path: + description: old path of the file to move + type: string + x-go-name: FromPath + operation: + description: >- + indicates what to do with the file: "create" for creating a new file, + "update" for updating an existing file, + + "upload" for creating or updating a file, "rename" for renaming a + file, and "delete" for deleting an existing file. + type: string + enum: + - create + - update + - upload + - rename + - delete + x-go-name: Operation + path: + description: path to the existing or new file + type: string + x-go-name: Path + sha: + description: >- + the blob ID (SHA) for the file that already exists, required for + changing existing files + type: string + x-go-name: SHA + x-go-package: code.gitea.io/gitea/modules/structs + ChangeFilesOptions: + description: >- + ChangeFilesOptions options for creating, updating or deleting multiple + files + + Note: `author` and `committer` are optional (if only one is given, it will + be used for the other, otherwise the authenticated user will be used) + type: object + required: + - files + properties: + author: + $ref: '#/definitions/Identity' + branch: + description: >- + branch (optional) to base this file from. if not given, the default + branch is used + type: string + x-go-name: BranchName + committer: + $ref: '#/definitions/Identity' + dates: + $ref: '#/definitions/CommitDateOptions' + files: + description: list of file operations + type: array + items: + $ref: '#/definitions/ChangeFileOperation' + x-go-name: Files + message: + description: >- + message (optional) for the commit of this file. if not supplied, a + default message will be used + type: string + x-go-name: Message + new_branch: + description: >- + new_branch (optional) will make a new branch from `branch` before + creating the file + type: string + x-go-name: NewBranchName + signoff: + description: >- + Add a Signed-off-by trailer by the committer at the end of the commit + log message. + type: boolean + x-go-name: Signoff + x-go-package: code.gitea.io/gitea/modules/structs + ChangedFile: + description: ChangedFile store information about files affected by the pull request + type: object + properties: + additions: + description: The number of lines added to the file + type: integer + format: int64 + x-go-name: Additions + changes: + description: The total number of changes to the file + type: integer + format: int64 + x-go-name: Changes + contents_url: + description: The API URL to get the file contents + type: string + x-go-name: ContentsURL + deletions: + description: The number of lines deleted from the file + type: integer + format: int64 + x-go-name: Deletions + filename: + description: The name of the changed file + type: string + x-go-name: Filename + html_url: + description: The HTML URL to view the file changes + type: string + x-go-name: HTMLURL + previous_filename: + description: The previous filename if the file was renamed + type: string + x-go-name: PreviousFilename + raw_url: + description: The raw URL to download the file + type: string + x-go-name: RawURL + status: + description: The status of the file change (added, modified, deleted, etc.) + type: string + x-go-name: Status + x-go-package: code.gitea.io/gitea/modules/structs + CombinedStatus: + description: >- + CombinedStatus holds the combined state of several statuses for a single + commit + type: object + properties: + commit_url: + description: CommitURL is the API URL for the commit + type: string + x-go-name: CommitURL + repository: + $ref: '#/definitions/Repository' + sha: + description: SHA is the commit SHA this status applies to + type: string + x-go-name: SHA + state: + description: >- + State is the overall combined status state + + pending CommitStatusPending CommitStatusPending is for when the + CommitStatus is Pending + + success CommitStatusSuccess CommitStatusSuccess is for when the + CommitStatus is Success + + error CommitStatusError CommitStatusError is for when the + CommitStatus is Error + + failure CommitStatusFailure CommitStatusFailure is for when the + CommitStatus is Failure + + warning CommitStatusWarning CommitStatusWarning is for when the + CommitStatus is Warning + + skipped CommitStatusSkipped CommitStatusSkipped is for when + CommitStatus is Skipped + type: string + enum: + - pending + - success + - error + - failure + - warning + - skipped + x-go-enum-desc: >- + pending CommitStatusPending CommitStatusPending is for when the + CommitStatus is Pending + + success CommitStatusSuccess CommitStatusSuccess is for when the + CommitStatus is Success + + error CommitStatusError CommitStatusError is for when the + CommitStatus is Error + + failure CommitStatusFailure CommitStatusFailure is for when the + CommitStatus is Failure + + warning CommitStatusWarning CommitStatusWarning is for when the + CommitStatus is Warning + + skipped CommitStatusSkipped CommitStatusSkipped is for when + CommitStatus is Skipped + x-go-name: State + statuses: + description: Statuses contains all individual commit statuses + type: array + items: + $ref: '#/definitions/CommitStatus' + x-go-name: Statuses + total_count: + description: TotalCount is the total number of statuses + type: integer + format: int64 + x-go-name: TotalCount + url: + description: URL is the API URL for this combined status + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + Comment: + description: Comment represents a comment on a commit or issue + type: object + properties: + assets: + description: Attachments contains files attached to the comment + type: array + items: + $ref: '#/definitions/Attachment' + x-go-name: Attachments + body: + description: Body contains the comment text content + type: string + x-go-name: Body + created_at: + type: string + format: date-time + x-go-name: Created + html_url: + description: HTMLURL is the web URL for viewing the comment + type: string + x-go-name: HTMLURL + id: + description: ID is the unique identifier for the comment + type: integer + format: int64 + x-go-name: ID + issue_url: + description: IssueURL is the API URL for the issue + type: string + x-go-name: IssueURL + original_author: + description: OriginalAuthor is the original author name (for imported comments) + type: string + x-go-name: OriginalAuthor + original_author_id: + description: OriginalAuthorID is the original author ID (for imported comments) + type: integer + format: int64 + x-go-name: OriginalAuthorID + pull_request_url: + description: PRURL is the API URL for the pull request (if applicable) + type: string + x-go-name: PRURL + updated_at: + type: string + format: date-time + x-go-name: Updated + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + Commit: + type: object + title: Commit contains information generated from a Git commit. + properties: + author: + $ref: '#/definitions/User' + commit: + $ref: '#/definitions/RepoCommit' + committer: + $ref: '#/definitions/User' + created: + type: string + format: date-time + x-go-name: Created + files: + description: Files contains information about files affected by the commit + type: array + items: + $ref: '#/definitions/CommitAffectedFiles' + x-go-name: Files + html_url: + description: HTMLURL is the web URL for viewing the commit + type: string + x-go-name: HTMLURL + parents: + description: Parents contains the parent commit information + type: array + items: + $ref: '#/definitions/CommitMeta' + x-go-name: Parents + sha: + description: SHA is the commit SHA hash + type: string + x-go-name: SHA + stats: + $ref: '#/definitions/CommitStats' + url: + description: URL is the API URL for the commit + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + CommitAffectedFiles: + description: CommitAffectedFiles store information about files affected by the commit + type: object + properties: + filename: + description: Filename is the path of the affected file + type: string + x-go-name: Filename + status: + description: Status indicates how the file was affected (added, modified, deleted) + type: string + x-go-name: Status + x-go-package: code.gitea.io/gitea/modules/structs + CommitDateOptions: + description: CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE + type: object + properties: + author: + type: string + format: date-time + x-go-name: Author + committer: + type: string + format: date-time + x-go-name: Committer + x-go-package: code.gitea.io/gitea/modules/structs + CommitMeta: + type: object + title: CommitMeta contains meta information of a commit in terms of API. + properties: + created: + type: string + format: date-time + x-go-name: Created + sha: + description: SHA is the commit SHA hash + type: string + x-go-name: SHA + url: + description: URL is the API URL for the commit + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + CommitStats: + description: CommitStats is statistics for a RepoCommit + type: object + properties: + additions: + description: Additions is the number of lines added + type: integer + format: int64 + x-go-name: Additions + deletions: + description: Deletions is the number of lines deleted + type: integer + format: int64 + x-go-name: Deletions + total: + description: Total is the total number of lines changed + type: integer + format: int64 + x-go-name: Total + x-go-package: code.gitea.io/gitea/modules/structs + CommitStatus: + description: CommitStatus holds a single status of a single Commit + type: object + properties: + context: + description: Context is the unique context identifier for the status + type: string + x-go-name: Context + created_at: + type: string + format: date-time + x-go-name: Created + creator: + $ref: '#/definitions/User' + description: + description: Description provides a brief description of the status + type: string + x-go-name: Description + id: + description: ID is the unique identifier for the commit status + type: integer + format: int64 + x-go-name: ID + status: + description: >- + State represents the status state (pending, success, error, failure) + + pending CommitStatusPending CommitStatusPending is for when the + CommitStatus is Pending + + success CommitStatusSuccess CommitStatusSuccess is for when the + CommitStatus is Success + + error CommitStatusError CommitStatusError is for when the + CommitStatus is Error + + failure CommitStatusFailure CommitStatusFailure is for when the + CommitStatus is Failure + + warning CommitStatusWarning CommitStatusWarning is for when the + CommitStatus is Warning + + skipped CommitStatusSkipped CommitStatusSkipped is for when + CommitStatus is Skipped + type: string + enum: + - pending + - success + - error + - failure + - warning + - skipped + x-go-enum-desc: >- + pending CommitStatusPending CommitStatusPending is for when the + CommitStatus is Pending + + success CommitStatusSuccess CommitStatusSuccess is for when the + CommitStatus is Success + + error CommitStatusError CommitStatusError is for when the + CommitStatus is Error + + failure CommitStatusFailure CommitStatusFailure is for when the + CommitStatus is Failure + + warning CommitStatusWarning CommitStatusWarning is for when the + CommitStatus is Warning + + skipped CommitStatusSkipped CommitStatusSkipped is for when + CommitStatus is Skipped + x-go-name: State + target_url: + description: TargetURL is the URL to link to for more details + type: string + x-go-name: TargetURL + updated_at: + type: string + format: date-time + x-go-name: Updated + url: + description: URL is the API URL for this status + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + CommitUser: + type: object + title: CommitUser contains information of a user in the context of a commit. + properties: + date: + description: Date is the commit date in string format + type: string + x-go-name: Date + email: + type: string + format: email + x-go-name: Email + name: + description: Name is the person's name + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + Compare: + type: object + title: Compare represents a comparison between two commits. + properties: + commits: + type: array + items: + $ref: '#/definitions/Commit' + x-go-name: Commits + total_commits: + type: integer + format: int64 + x-go-name: TotalCommits + x-go-package: code.gitea.io/gitea/modules/structs + ContentsExtResponse: + type: object + properties: + dir_contents: + description: >- + DirContents contains directory listing when the path represents a + directory + type: array + items: + $ref: '#/definitions/ContentsResponse' + x-go-name: DirContents + file_contents: + $ref: '#/definitions/ContentsResponse' + x-go-package: code.gitea.io/gitea/modules/structs + ContentsResponse: + description: >- + ContentsResponse contains information about a repo's entry's (dir, file, + symlink, submodule) metadata and content + type: object + properties: + _links: + $ref: '#/definitions/FileLinksResponse' + content: + description: '`content` is populated when `type` is `file`, otherwise null' + type: string + x-go-name: Content + download_url: + description: DownloadURL is the direct download URL for this file + type: string + x-go-name: DownloadURL + encoding: + description: '`encoding` is populated when `type` is `file`, otherwise null' + type: string + x-go-name: Encoding + git_url: + description: GitURL is the Git API URL for this blob or tree + type: string + x-go-name: GitURL + html_url: + description: HTMLURL is the web URL for this file or directory + type: string + x-go-name: HTMLURL + last_author_date: + type: string + format: date-time + x-go-name: LastAuthorDate + last_commit_message: + description: >- + LastCommitMessage is the message of the last commit that affected this + file + type: string + x-go-name: LastCommitMessage + last_commit_sha: + description: LastCommitSHA is the SHA of the last commit that affected this file + type: string + x-go-name: LastCommitSHA + last_committer_date: + type: string + format: date-time + x-go-name: LastCommitterDate + lfs_oid: + description: LfsOid is the Git LFS object ID if this file is stored in LFS + type: string + x-go-name: LfsOid + lfs_size: + description: LfsSize is the file size if this file is stored in LFS + type: integer + format: int64 + x-go-name: LfsSize + name: + description: Name is the file or directory name + type: string + x-go-name: Name + path: + description: Path is the full path to the file or directory + type: string + x-go-name: Path + sha: + description: SHA is the Git blob or tree SHA + type: string + x-go-name: SHA + size: + description: Size is the file size in bytes + type: integer + format: int64 + x-go-name: Size + submodule_git_url: + description: >- + `submodule_git_url` is populated when `type` is `submodule`, otherwise + null + type: string + x-go-name: SubmoduleGitURL + target: + description: '`target` is populated when `type` is `symlink`, otherwise null' + type: string + x-go-name: Target + type: + description: '`type` will be `file`, `dir`, `symlink`, or `submodule`' + type: string + x-go-name: Type + url: + description: URL is the API URL for this file or directory + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + CreateAccessTokenOption: + description: CreateAccessTokenOption options when create access token + type: object + required: + - name + properties: + name: + type: string + x-go-name: Name + scopes: + type: array + items: + type: string + x-go-name: Scopes + example: + - all + - read:activitypub + - read:issue + - write:misc + - read:notification + - read:organization + - read:package + - read:repository + - read:user + x-go-package: code.gitea.io/gitea/modules/structs + CreateActionWorkflowDispatch: + description: >- + CreateActionWorkflowDispatch represents the payload for triggering a + workflow dispatch event + type: object + required: + - ref + properties: + inputs: + type: object + additionalProperties: + type: string + x-go-name: Inputs + ref: + type: string + x-go-name: Ref + example: refs/heads/main + x-go-package: code.gitea.io/gitea/modules/structs + CreateBranchProtectionOption: + description: CreateBranchProtectionOption options for creating a branch protection + type: object + properties: + approvals_whitelist_teams: + type: array + items: + type: string + x-go-name: ApprovalsWhitelistTeams + approvals_whitelist_username: + type: array + items: + type: string + x-go-name: ApprovalsWhitelistUsernames + block_admin_merge_override: + type: boolean + x-go-name: BlockAdminMergeOverride + block_on_official_review_requests: + type: boolean + x-go-name: BlockOnOfficialReviewRequests + block_on_outdated_branch: + type: boolean + x-go-name: BlockOnOutdatedBranch + block_on_rejected_reviews: + type: boolean + x-go-name: BlockOnRejectedReviews + branch_name: + description: 'Deprecated: true' + type: string + x-go-name: BranchName + dismiss_stale_approvals: + type: boolean + x-go-name: DismissStaleApprovals + enable_approvals_whitelist: + type: boolean + x-go-name: EnableApprovalsWhitelist + enable_force_push: + type: boolean + x-go-name: EnableForcePush + enable_force_push_allowlist: + type: boolean + x-go-name: EnableForcePushAllowlist + enable_merge_whitelist: + type: boolean + x-go-name: EnableMergeWhitelist + enable_push: + type: boolean + x-go-name: EnablePush + enable_push_whitelist: + type: boolean + x-go-name: EnablePushWhitelist + enable_status_check: + type: boolean + x-go-name: EnableStatusCheck + force_push_allowlist_deploy_keys: + type: boolean + x-go-name: ForcePushAllowlistDeployKeys + force_push_allowlist_teams: + type: array + items: + type: string + x-go-name: ForcePushAllowlistTeams + force_push_allowlist_usernames: + type: array + items: + type: string + x-go-name: ForcePushAllowlistUsernames + ignore_stale_approvals: + type: boolean + x-go-name: IgnoreStaleApprovals + merge_whitelist_teams: + type: array + items: + type: string + x-go-name: MergeWhitelistTeams + merge_whitelist_usernames: + type: array + items: + type: string + x-go-name: MergeWhitelistUsernames + priority: + type: integer + format: int64 + x-go-name: Priority + protected_file_patterns: + type: string + x-go-name: ProtectedFilePatterns + push_whitelist_deploy_keys: + type: boolean + x-go-name: PushWhitelistDeployKeys + push_whitelist_teams: + type: array + items: + type: string + x-go-name: PushWhitelistTeams + push_whitelist_usernames: + type: array + items: + type: string + x-go-name: PushWhitelistUsernames + require_signed_commits: + type: boolean + x-go-name: RequireSignedCommits + required_approvals: + type: integer + format: int64 + x-go-name: RequiredApprovals + rule_name: + type: string + x-go-name: RuleName + status_check_contexts: + type: array + items: + type: string + x-go-name: StatusCheckContexts + unprotected_file_patterns: + type: string + x-go-name: UnprotectedFilePatterns + x-go-package: code.gitea.io/gitea/modules/structs + CreateBranchRepoOption: + description: CreateBranchRepoOption options when creating a branch in a repository + type: object + required: + - new_branch_name + properties: + new_branch_name: + description: Name of the branch to create + type: string + uniqueItems: true + x-go-name: BranchName + old_branch_name: + description: |- + Deprecated: true + Name of the old branch to create from + type: string + uniqueItems: true + x-go-name: OldBranchName + old_ref_name: + description: Name of the old branch/tag/commit to create from + type: string + uniqueItems: true + x-go-name: OldRefName + x-go-package: code.gitea.io/gitea/modules/structs + CreateEmailOption: + description: CreateEmailOption options when creating email addresses + type: object + properties: + emails: + description: email addresses to add + type: array + items: + type: string + x-go-name: Emails + x-go-package: code.gitea.io/gitea/modules/structs + CreateFileOptions: + description: >- + CreateFileOptions options for creating files + + Note: `author` and `committer` are optional (if only one is given, it will + be used for the other, otherwise the authenticated user will be used) + type: object + required: + - content + properties: + author: + $ref: '#/definitions/Identity' + branch: + description: >- + branch (optional) to base this file from. if not given, the default + branch is used + type: string + x-go-name: BranchName + committer: + $ref: '#/definitions/Identity' + content: + description: content must be base64 encoded + type: string + x-go-name: ContentBase64 + dates: + $ref: '#/definitions/CommitDateOptions' + message: + description: >- + message (optional) for the commit of this file. if not supplied, a + default message will be used + type: string + x-go-name: Message + new_branch: + description: >- + new_branch (optional) will make a new branch from `branch` before + creating the file + type: string + x-go-name: NewBranchName + signoff: + description: >- + Add a Signed-off-by trailer by the committer at the end of the commit + log message. + type: boolean + x-go-name: Signoff + x-go-package: code.gitea.io/gitea/modules/structs + CreateForkOption: + description: CreateForkOption options for creating a fork + type: object + properties: + name: + description: name of the forked repository + type: string + x-go-name: Name + organization: + description: organization name, if forking into an organization + type: string + x-go-name: Organization + x-go-package: code.gitea.io/gitea/modules/structs + CreateGPGKeyOption: + description: CreateGPGKeyOption options create user GPG key + type: object + required: + - armored_public_key + properties: + armored_public_key: + description: An armored GPG key to add + type: string + uniqueItems: true + x-go-name: ArmoredKey + armored_signature: + description: An optional armored signature for the GPG key + type: string + x-go-name: Signature + x-go-package: code.gitea.io/gitea/modules/structs + CreateHookOption: + description: CreateHookOption options when create a hook + type: object + required: + - type + - config + properties: + active: + type: boolean + default: false + x-go-name: Active + authorization_header: + description: Authorization header to include in webhook requests + type: string + x-go-name: AuthorizationHeader + branch_filter: + description: Branch filter pattern to determine which branches trigger the webhook + type: string + x-go-name: BranchFilter + config: + $ref: '#/definitions/CreateHookOptionConfig' + events: + description: List of events that will trigger this webhook + type: array + items: + type: string + x-go-name: Events + type: + type: string + enum: + - dingtalk + - discord + - gitea + - gogs + - msteams + - slack + - telegram + - feishu + - wechatwork + - packagist + x-go-name: Type + x-go-package: code.gitea.io/gitea/modules/structs + CreateHookOptionConfig: + description: |- + CreateHookOptionConfig has all config options in it + required are "content_type" and "url" Required + type: object + additionalProperties: + type: string + x-go-package: code.gitea.io/gitea/modules/structs + CreateIssueCommentOption: + description: CreateIssueCommentOption options for creating a comment on an issue + type: object + required: + - body + properties: + body: + type: string + x-go-name: Body + x-go-package: code.gitea.io/gitea/modules/structs + CreateIssueOption: + description: CreateIssueOption options to create one issue + type: object + required: + - title + properties: + assignee: + description: deprecated + type: string + x-go-name: Assignee + assignees: + type: array + items: + type: string + x-go-name: Assignees + body: + type: string + x-go-name: Body + closed: + type: boolean + x-go-name: Closed + due_date: + type: string + format: date-time + x-go-name: Deadline + labels: + description: list of label ids + type: array + items: + type: integer + format: int64 + x-go-name: Labels + milestone: + description: milestone id + type: integer + format: int64 + x-go-name: Milestone + ref: + type: string + x-go-name: Ref + title: + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + CreateKeyOption: + description: CreateKeyOption options when creating a key + type: object + required: + - title + - key + properties: + key: + description: An armored SSH key to add + type: string + uniqueItems: true + x-go-name: Key + read_only: + description: Describe if the key has only read access or read/write + type: boolean + x-go-name: ReadOnly + title: + description: Title of the key to add + type: string + uniqueItems: true + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + CreateLabelOption: + description: CreateLabelOption options for creating a label + type: object + required: + - name + - color + properties: + color: + type: string + x-go-name: Color + example: '#00aabb' + description: + description: Description provides additional context about the label's purpose + type: string + x-go-name: Description + exclusive: + type: boolean + x-go-name: Exclusive + example: false + is_archived: + type: boolean + x-go-name: IsArchived + example: false + name: + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + CreateMilestoneOption: + description: CreateMilestoneOption options for creating a milestone + type: object + properties: + description: + description: Description provides details about the milestone + type: string + x-go-name: Description + due_on: + type: string + format: date-time + x-go-name: Deadline + state: + type: string + enum: + - open + - closed + x-go-name: State + title: + description: Title is the title of the new milestone + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + CreateOAuth2ApplicationOptions: + description: >- + CreateOAuth2ApplicationOptions holds options to create an oauth2 + application + type: object + properties: + confidential_client: + description: Whether the client is confidential + type: boolean + x-go-name: ConfidentialClient + name: + description: The name of the OAuth2 application + type: string + x-go-name: Name + redirect_uris: + description: The list of allowed redirect URIs + type: array + items: + type: string + x-go-name: RedirectURIs + skip_secondary_authorization: + description: Whether to skip secondary authorization + type: boolean + x-go-name: SkipSecondaryAuthorization + x-go-package: code.gitea.io/gitea/modules/structs + CreateOrUpdateSecretOption: + description: CreateOrUpdateSecretOption options when creating or updating secret + type: object + required: + - data + properties: + data: + description: Data of the secret to update + type: string + x-go-name: Data + description: + description: Description of the secret to update + type: string + x-go-name: Description + x-go-package: code.gitea.io/gitea/modules/structs + CreateOrgOption: + description: CreateOrgOption options for creating an organization + type: object + required: + - username + properties: + description: + description: The description of the organization + type: string + x-go-name: Description + email: + description: The email address of the organization + type: string + x-go-name: Email + full_name: + description: The full display name of the organization + type: string + x-go-name: FullName + location: + description: The location of the organization + type: string + x-go-name: Location + repo_admin_change_team_access: + description: Whether repository administrators can change team access + type: boolean + x-go-name: RepoAdminChangeTeamAccess + username: + description: username of the organization + type: string + x-go-name: UserName + visibility: + description: possible values are `public` (default), `limited` or `private` + type: string + enum: + - public + - limited + - private + x-go-name: Visibility + website: + description: The website URL of the organization + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + CreatePullRequestOption: + description: CreatePullRequestOption options when creating a pull request + type: object + properties: + assignee: + description: The primary assignee username + type: string + x-go-name: Assignee + assignees: + description: The list of assignee usernames + type: array + items: + type: string + x-go-name: Assignees + base: + description: The base branch for the pull request + type: string + x-go-name: Base + body: + description: The description body of the pull request + type: string + x-go-name: Body + due_date: + type: string + format: date-time + x-go-name: Deadline + head: + description: >- + The head branch for the pull request, it could be a branch name on the + base repository or + + a form like `:` which refers to the user's fork + repository's branch. + type: string + x-go-name: Head + labels: + description: The list of label IDs to assign to the pull request + type: array + items: + type: integer + format: int64 + x-go-name: Labels + milestone: + description: The milestone ID to assign to the pull request + type: integer + format: int64 + x-go-name: Milestone + reviewers: + description: The list of reviewer usernames + type: array + items: + type: string + x-go-name: Reviewers + team_reviewers: + description: The list of team reviewer names + type: array + items: + type: string + x-go-name: TeamReviewers + title: + description: The title of the pull request + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + CreatePullReviewComment: + description: CreatePullReviewComment represent a review comment for creation api + type: object + properties: + body: + type: string + x-go-name: Body + new_position: + description: if comment to new file line or 0 + type: integer + format: int64 + x-go-name: NewLineNum + old_position: + description: if comment to old file line or 0 + type: integer + format: int64 + x-go-name: OldLineNum + path: + description: the tree path + type: string + x-go-name: Path + x-go-package: code.gitea.io/gitea/modules/structs + CreatePullReviewOptions: + description: CreatePullReviewOptions are options to create a pull review + type: object + properties: + body: + type: string + x-go-name: Body + comments: + type: array + items: + $ref: '#/definitions/CreatePullReviewComment' + x-go-name: Comments + commit_id: + type: string + x-go-name: CommitID + event: + $ref: '#/definitions/ReviewStateType' + x-go-package: code.gitea.io/gitea/modules/structs + CreatePushMirrorOption: + type: object + title: >- + CreatePushMirrorOption represents need information to create a push mirror + of a repository. + properties: + interval: + description: The sync interval for automatic updates + type: string + x-go-name: Interval + remote_address: + description: The remote repository URL to push to + type: string + x-go-name: RemoteAddress + remote_password: + description: The password for authentication with the remote repository + type: string + x-go-name: RemotePassword + remote_username: + description: The username for authentication with the remote repository + type: string + x-go-name: RemoteUsername + sync_on_commit: + description: Whether to sync on every commit + type: boolean + x-go-name: SyncOnCommit + x-go-package: code.gitea.io/gitea/modules/structs + CreateReleaseOption: + description: CreateReleaseOption options when creating a release + type: object + required: + - tag_name + properties: + body: + description: The release notes or description + type: string + x-go-name: Note + draft: + description: Whether to create the release as a draft + type: boolean + x-go-name: IsDraft + name: + description: The display title of the release + type: string + x-go-name: Title + prerelease: + description: Whether to mark the release as a prerelease + type: boolean + x-go-name: IsPrerelease + tag_message: + description: The message for the git tag + type: string + x-go-name: TagMessage + tag_name: + type: string + x-go-name: TagName + target_commitish: + description: The target commitish for the release + type: string + x-go-name: Target + x-go-package: code.gitea.io/gitea/modules/structs + CreateRepoOption: + description: CreateRepoOption options when creating repository + type: object + required: + - name + properties: + auto_init: + description: Whether the repository should be auto-initialized? + type: boolean + x-go-name: AutoInit + default_branch: + description: >- + DefaultBranch of the repository (used when initializes and in + template) + type: string + x-go-name: DefaultBranch + description: + description: Description of the repository to create + type: string + x-go-name: Description + gitignores: + description: Gitignores to use + type: string + x-go-name: Gitignores + issue_labels: + description: Label-Set to use + type: string + x-go-name: IssueLabels + license: + description: License to use + type: string + x-go-name: License + name: + description: Name of the repository to create + type: string + uniqueItems: true + x-go-name: Name + object_format_name: + description: ObjectFormatName of the underlying git repository + type: string + enum: + - sha1 + - sha256 + x-go-name: ObjectFormatName + private: + description: Whether the repository is private + type: boolean + x-go-name: Private + readme: + description: Readme of the repository to create + type: string + x-go-name: Readme + template: + description: Whether the repository is template + type: boolean + x-go-name: Template + trust_model: + description: TrustModel of the repository + type: string + enum: + - default + - collaborator + - committer + - collaboratorcommitter + x-go-name: TrustModel + x-go-package: code.gitea.io/gitea/modules/structs + CreateStatusOption: + description: >- + CreateStatusOption holds the information needed to create a new + CommitStatus for a Commit + type: object + properties: + context: + description: Context is the unique context identifier for the status + type: string + x-go-name: Context + description: + description: Description provides a brief description of the status + type: string + x-go-name: Description + state: + description: >- + State represents the status state to set (pending, success, error, + failure) + + pending CommitStatusPending CommitStatusPending is for when the + CommitStatus is Pending + + success CommitStatusSuccess CommitStatusSuccess is for when the + CommitStatus is Success + + error CommitStatusError CommitStatusError is for when the + CommitStatus is Error + + failure CommitStatusFailure CommitStatusFailure is for when the + CommitStatus is Failure + + warning CommitStatusWarning CommitStatusWarning is for when the + CommitStatus is Warning + + skipped CommitStatusSkipped CommitStatusSkipped is for when + CommitStatus is Skipped + type: string + enum: + - pending + - success + - error + - failure + - warning + - skipped + x-go-enum-desc: >- + pending CommitStatusPending CommitStatusPending is for when the + CommitStatus is Pending + + success CommitStatusSuccess CommitStatusSuccess is for when the + CommitStatus is Success + + error CommitStatusError CommitStatusError is for when the + CommitStatus is Error + + failure CommitStatusFailure CommitStatusFailure is for when the + CommitStatus is Failure + + warning CommitStatusWarning CommitStatusWarning is for when the + CommitStatus is Warning + + skipped CommitStatusSkipped CommitStatusSkipped is for when + CommitStatus is Skipped + x-go-name: State + target_url: + description: TargetURL is the URL to link to for more details + type: string + x-go-name: TargetURL + x-go-package: code.gitea.io/gitea/modules/structs + CreateTagOption: + description: CreateTagOption options when creating a tag + type: object + required: + - tag_name + properties: + message: + description: The message to associate with the tag + type: string + x-go-name: Message + tag_name: + type: string + x-go-name: TagName + target: + description: The target commit SHA or branch name for the tag + type: string + x-go-name: Target + x-go-package: code.gitea.io/gitea/modules/structs + CreateTagProtectionOption: + description: CreateTagProtectionOption options for creating a tag protection + type: object + properties: + name_pattern: + description: The pattern to match tag names for protection + type: string + x-go-name: NamePattern + whitelist_teams: + description: List of team names allowed to create/delete protected tags + type: array + items: + type: string + x-go-name: WhitelistTeams + whitelist_usernames: + description: List of usernames allowed to create/delete protected tags + type: array + items: + type: string + x-go-name: WhitelistUsernames + x-go-package: code.gitea.io/gitea/modules/structs + CreateTeamOption: + description: CreateTeamOption options for creating a team + type: object + required: + - name + properties: + can_create_org_repo: + description: Whether the team can create repositories in the organization + type: boolean + x-go-name: CanCreateOrgRepo + description: + description: The description of the team + type: string + x-go-name: Description + includes_all_repositories: + description: Whether the team has access to all repositories in the organization + type: boolean + x-go-name: IncludesAllRepositories + name: + type: string + x-go-name: Name + permission: + type: string + enum: + - read + - write + - admin + x-go-name: Permission + units: + type: array + items: + type: string + x-go-name: Units + example: + - repo.actions + - repo.code + - repo.issues + - repo.ext_issues + - repo.wiki + - repo.ext_wiki + - repo.pulls + - repo.releases + - repo.projects + - repo.ext_wiki + units_map: + type: object + additionalProperties: + type: string + x-go-name: UnitsMap + example: >- + {"repo.actions","repo.packages","repo.code":"read","repo.issues":"write","repo.ext_issues":"none","repo.wiki":"admin","repo.pulls":"owner","repo.releases":"none","repo.projects":"none","repo.ext_wiki":"none"} + x-go-package: code.gitea.io/gitea/modules/structs + CreateUserOption: + description: CreateUserOption create user options + type: object + required: + - username + - email + properties: + created_at: + description: >- + For explicitly setting the user creation timestamp. Useful when users + are + + migrated from other systems. When omitted, the user's creation + timestamp + + will be set to "now". + type: string + format: date-time + x-go-name: Created + email: + type: string + format: email + x-go-name: Email + full_name: + description: The full display name of the user + type: string + x-go-name: FullName + login_name: + description: >- + identifier of the user, provided by the external authenticator (if + configured) + type: string + default: empty + x-go-name: LoginName + must_change_password: + description: Whether the user must change password on first login + type: boolean + x-go-name: MustChangePassword + password: + description: The plain text password for the user + type: string + x-go-name: Password + restricted: + description: Whether the user has restricted access privileges + type: boolean + x-go-name: Restricted + send_notify: + description: Whether to send welcome notification email to the user + type: boolean + x-go-name: SendNotify + source_id: + description: The authentication source ID to associate with the user + type: integer + format: int64 + x-go-name: SourceID + username: + description: username of the user + type: string + x-go-name: Username + visibility: + description: 'User visibility level: public, limited, or private' + type: string + x-go-name: Visibility + x-go-package: code.gitea.io/gitea/modules/structs + CreateVariableOption: + description: CreateVariableOption the option when creating variable + type: object + required: + - value + properties: + description: + description: Description of the variable to create + type: string + x-go-name: Description + value: + description: Value of the variable to create + type: string + x-go-name: Value + x-go-package: code.gitea.io/gitea/modules/structs + CreateWikiPageOptions: + description: CreateWikiPageOptions form for creating wiki + type: object + properties: + content_base64: + description: content must be base64 encoded + type: string + x-go-name: ContentBase64 + message: + description: optional commit message summarizing the change + type: string + x-go-name: Message + title: + description: page title. leave empty to keep unchanged + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + Cron: + description: Cron represents a Cron task + type: object + properties: + exec_times: + description: The total number of times this cron task has been executed + type: integer + format: int64 + x-go-name: ExecTimes + name: + description: The name of the cron task + type: string + x-go-name: Name + next: + description: The next scheduled execution time + type: string + format: date-time + x-go-name: Next + prev: + description: The previous execution time + type: string + format: date-time + x-go-name: Prev + schedule: + description: The cron schedule expression (e.g., "0 0 * * *") + type: string + x-go-name: Schedule + x-go-package: code.gitea.io/gitea/modules/structs + DeleteEmailOption: + description: DeleteEmailOption options when deleting email addresses + type: object + properties: + emails: + description: email addresses to delete + type: array + items: + type: string + x-go-name: Emails + x-go-package: code.gitea.io/gitea/modules/structs + DeleteFileOptions: + description: >- + DeleteFileOptions options for deleting files (used for other File structs + below) + + Note: `author` and `committer` are optional (if only one is given, it will + be used for the other, otherwise the authenticated user will be used) + type: object + required: + - sha + properties: + author: + $ref: '#/definitions/Identity' + branch: + description: >- + branch (optional) to base this file from. if not given, the default + branch is used + type: string + x-go-name: BranchName + committer: + $ref: '#/definitions/Identity' + dates: + $ref: '#/definitions/CommitDateOptions' + message: + description: >- + message (optional) for the commit of this file. if not supplied, a + default message will be used + type: string + x-go-name: Message + new_branch: + description: >- + new_branch (optional) will make a new branch from `branch` before + creating the file + type: string + x-go-name: NewBranchName + sha: + description: >- + the blob ID (SHA) for the file that already exists, it is required for + changing existing files + type: string + x-go-name: SHA + signoff: + description: >- + Add a Signed-off-by trailer by the committer at the end of the commit + log message. + type: boolean + x-go-name: Signoff + x-go-package: code.gitea.io/gitea/modules/structs + DeployKey: + description: DeployKey a deploy key + type: object + properties: + created_at: + type: string + format: date-time + x-go-name: Created + fingerprint: + description: Fingerprint is the key's fingerprint + type: string + x-go-name: Fingerprint + id: + description: ID is the unique identifier for the deploy key + type: integer + format: int64 + x-go-name: ID + key: + description: Key contains the actual SSH key content + type: string + x-go-name: Key + key_id: + description: KeyID is the associated public key ID + type: integer + format: int64 + x-go-name: KeyID + read_only: + description: ReadOnly indicates if the key has read-only access + type: boolean + x-go-name: ReadOnly + repository: + $ref: '#/definitions/Repository' + title: + description: Title is the human-readable name for the key + type: string + x-go-name: Title + url: + description: URL is the API URL for this deploy key + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + DismissPullReviewOptions: + description: DismissPullReviewOptions are options to dismiss a pull review + type: object + properties: + message: + type: string + x-go-name: Message + priors: + type: boolean + x-go-name: Priors + x-go-package: code.gitea.io/gitea/modules/structs + EditAttachmentOptions: + description: EditAttachmentOptions options for editing attachments + type: object + properties: + name: + description: Name is the new filename for the attachment + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + EditBranchProtectionOption: + description: EditBranchProtectionOption options for editing a branch protection + type: object + properties: + approvals_whitelist_teams: + type: array + items: + type: string + x-go-name: ApprovalsWhitelistTeams + approvals_whitelist_username: + type: array + items: + type: string + x-go-name: ApprovalsWhitelistUsernames + block_admin_merge_override: + type: boolean + x-go-name: BlockAdminMergeOverride + block_on_official_review_requests: + type: boolean + x-go-name: BlockOnOfficialReviewRequests + block_on_outdated_branch: + type: boolean + x-go-name: BlockOnOutdatedBranch + block_on_rejected_reviews: + type: boolean + x-go-name: BlockOnRejectedReviews + dismiss_stale_approvals: + type: boolean + x-go-name: DismissStaleApprovals + enable_approvals_whitelist: + type: boolean + x-go-name: EnableApprovalsWhitelist + enable_force_push: + type: boolean + x-go-name: EnableForcePush + enable_force_push_allowlist: + type: boolean + x-go-name: EnableForcePushAllowlist + enable_merge_whitelist: + type: boolean + x-go-name: EnableMergeWhitelist + enable_push: + type: boolean + x-go-name: EnablePush + enable_push_whitelist: + type: boolean + x-go-name: EnablePushWhitelist + enable_status_check: + type: boolean + x-go-name: EnableStatusCheck + force_push_allowlist_deploy_keys: + type: boolean + x-go-name: ForcePushAllowlistDeployKeys + force_push_allowlist_teams: + type: array + items: + type: string + x-go-name: ForcePushAllowlistTeams + force_push_allowlist_usernames: + type: array + items: + type: string + x-go-name: ForcePushAllowlistUsernames + ignore_stale_approvals: + type: boolean + x-go-name: IgnoreStaleApprovals + merge_whitelist_teams: + type: array + items: + type: string + x-go-name: MergeWhitelistTeams + merge_whitelist_usernames: + type: array + items: + type: string + x-go-name: MergeWhitelistUsernames + priority: + type: integer + format: int64 + x-go-name: Priority + protected_file_patterns: + type: string + x-go-name: ProtectedFilePatterns + push_whitelist_deploy_keys: + type: boolean + x-go-name: PushWhitelistDeployKeys + push_whitelist_teams: + type: array + items: + type: string + x-go-name: PushWhitelistTeams + push_whitelist_usernames: + type: array + items: + type: string + x-go-name: PushWhitelistUsernames + require_signed_commits: + type: boolean + x-go-name: RequireSignedCommits + required_approvals: + type: integer + format: int64 + x-go-name: RequiredApprovals + status_check_contexts: + type: array + items: + type: string + x-go-name: StatusCheckContexts + unprotected_file_patterns: + type: string + x-go-name: UnprotectedFilePatterns + x-go-package: code.gitea.io/gitea/modules/structs + EditDeadlineOption: + description: EditDeadlineOption options for creating a deadline + type: object + required: + - due_date + properties: + due_date: + type: string + format: date-time + x-go-name: Deadline + x-go-package: code.gitea.io/gitea/modules/structs + EditGitHookOption: + description: EditGitHookOption options when modifying one Git hook + type: object + properties: + content: + description: Content is the new script content for the hook + type: string + x-go-name: Content + x-go-package: code.gitea.io/gitea/modules/structs + EditHookOption: + description: EditHookOption options when modify one hook + type: object + properties: + active: + description: Whether the webhook is active and will be triggered + type: boolean + x-go-name: Active + authorization_header: + description: Authorization header to include in webhook requests + type: string + x-go-name: AuthorizationHeader + branch_filter: + description: Branch filter pattern to determine which branches trigger the webhook + type: string + x-go-name: BranchFilter + config: + description: Configuration settings for the webhook + type: object + additionalProperties: + type: string + x-go-name: Config + events: + description: List of events that trigger this webhook + type: array + items: + type: string + x-go-name: Events + x-go-package: code.gitea.io/gitea/modules/structs + EditIssueCommentOption: + description: EditIssueCommentOption options for editing a comment + type: object + required: + - body + properties: + body: + type: string + x-go-name: Body + x-go-package: code.gitea.io/gitea/modules/structs + EditIssueOption: + description: EditIssueOption options for editing an issue + type: object + properties: + assignee: + description: deprecated + type: string + x-go-name: Assignee + assignees: + type: array + items: + type: string + x-go-name: Assignees + body: + type: string + x-go-name: Body + due_date: + type: string + format: date-time + x-go-name: Deadline + milestone: + type: integer + format: int64 + x-go-name: Milestone + ref: + type: string + x-go-name: Ref + state: + type: string + x-go-name: State + title: + type: string + x-go-name: Title + unset_due_date: + type: boolean + x-go-name: RemoveDeadline + x-go-package: code.gitea.io/gitea/modules/structs + EditLabelOption: + description: EditLabelOption options for editing a label + type: object + properties: + color: + type: string + x-go-name: Color + example: '#00aabb' + description: + description: Description provides additional context about the label's purpose + type: string + x-go-name: Description + exclusive: + type: boolean + x-go-name: Exclusive + example: false + is_archived: + type: boolean + x-go-name: IsArchived + example: false + name: + description: Name is the new display name for the label + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + EditMilestoneOption: + description: EditMilestoneOption options for editing a milestone + type: object + properties: + description: + description: Description provides updated details about the milestone + type: string + x-go-name: Description + due_on: + description: Deadline is the updated due date for the milestone + type: string + format: date-time + x-go-name: Deadline + state: + description: State indicates the updated state of the milestone + type: string + x-go-name: State + title: + description: Title is the updated title of the milestone + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + EditOrgOption: + description: EditOrgOption options for editing an organization + type: object + properties: + description: + description: The description of the organization + type: string + x-go-name: Description + email: + description: The email address of the organization + type: string + x-go-name: Email + full_name: + description: The full display name of the organization + type: string + x-go-name: FullName + location: + description: The location of the organization + type: string + x-go-name: Location + repo_admin_change_team_access: + description: Whether repository administrators can change team access + type: boolean + x-go-name: RepoAdminChangeTeamAccess + visibility: + description: possible values are `public`, `limited` or `private` + type: string + enum: + - public + - limited + - private + x-go-name: Visibility + website: + description: The website URL of the organization + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + EditPullRequestOption: + description: EditPullRequestOption options when modify pull request + type: object + properties: + allow_maintainer_edit: + description: Whether to allow maintainer edits + type: boolean + x-go-name: AllowMaintainerEdit + assignee: + description: The new primary assignee username + type: string + x-go-name: Assignee + assignees: + description: The new list of assignee usernames + type: array + items: + type: string + x-go-name: Assignees + base: + description: The new base branch for the pull request + type: string + x-go-name: Base + body: + description: The new description body for the pull request + type: string + x-go-name: Body + due_date: + type: string + format: date-time + x-go-name: Deadline + labels: + description: The new list of label IDs for the pull request + type: array + items: + type: integer + format: int64 + x-go-name: Labels + milestone: + description: The new milestone ID for the pull request + type: integer + format: int64 + x-go-name: Milestone + state: + description: The new state for the pull request + type: string + x-go-name: State + title: + description: The new title for the pull request + type: string + x-go-name: Title + unset_due_date: + description: Whether to remove the current deadline + type: boolean + x-go-name: RemoveDeadline + x-go-package: code.gitea.io/gitea/modules/structs + EditReactionOption: + description: EditReactionOption contain the reaction type + type: object + properties: + content: + description: The reaction content (e.g., emoji or reaction type) + type: string + x-go-name: Reaction + x-go-package: code.gitea.io/gitea/modules/structs + EditReleaseOption: + description: EditReleaseOption options when editing a release + type: object + properties: + body: + description: The new release notes or description + type: string + x-go-name: Note + draft: + description: Whether to change the draft status + type: boolean + x-go-name: IsDraft + name: + description: The new display title of the release + type: string + x-go-name: Title + prerelease: + description: Whether to change the prerelease status + type: boolean + x-go-name: IsPrerelease + tag_name: + description: The new name of the git tag + type: string + x-go-name: TagName + target_commitish: + description: The new target commitish for the release + type: string + x-go-name: Target + x-go-package: code.gitea.io/gitea/modules/structs + EditRepoOption: + description: EditRepoOption options when editing a repository's properties + type: object + properties: + allow_fast_forward_only_merge: + description: >- + either `true` to allow fast-forward-only merging pull requests, or + `false` to prevent fast-forward-only merging. + type: boolean + x-go-name: AllowFastForwardOnly + allow_manual_merge: + description: >- + either `true` to allow mark pr as merged manually, or `false` to + prevent it. + type: boolean + x-go-name: AllowManualMerge + allow_merge_commits: + description: >- + either `true` to allow merging pull requests with a merge commit, or + `false` to prevent merging pull requests with merge commits. + type: boolean + x-go-name: AllowMerge + allow_rebase: + description: >- + either `true` to allow rebase-merging pull requests, or `false` to + prevent rebase-merging. + type: boolean + x-go-name: AllowRebase + allow_rebase_explicit: + description: >- + either `true` to allow rebase with explicit merge commits (--no-ff), + or `false` to prevent rebase with explicit merge commits. + type: boolean + x-go-name: AllowRebaseMerge + allow_rebase_update: + description: >- + either `true` to allow updating pull request branch by rebase, or + `false` to prevent it. + type: boolean + x-go-name: AllowRebaseUpdate + allow_squash_merge: + description: >- + either `true` to allow squash-merging pull requests, or `false` to + prevent squash-merging. + type: boolean + x-go-name: AllowSquash + archived: + description: set to `true` to archive this repository. + type: boolean + x-go-name: Archived + autodetect_manual_merge: + description: >- + either `true` to enable AutodetectManualMerge, or `false` to prevent + it. Note: In some special cases, misjudgments can occur. + type: boolean + x-go-name: AutodetectManualMerge + default_allow_maintainer_edit: + description: set to `true` to allow edits from maintainers by default + type: boolean + x-go-name: DefaultAllowMaintainerEdit + default_branch: + description: sets the default branch for this repository. + type: string + x-go-name: DefaultBranch + default_delete_branch_after_merge: + description: set to `true` to delete pr branch after merge by default + type: boolean + x-go-name: DefaultDeleteBranchAfterMerge + default_merge_style: + description: >- + set to a merge style to be used by this repository: "merge", "rebase", + "rebase-merge", "squash", or "fast-forward-only". + type: string + x-go-name: DefaultMergeStyle + description: + description: a short description of the repository. + type: string + x-go-name: Description + enable_prune: + description: >- + enable prune - remove obsolete remote-tracking references when + mirroring + type: boolean + x-go-name: EnablePrune + external_tracker: + $ref: '#/definitions/ExternalTracker' + external_wiki: + $ref: '#/definitions/ExternalWiki' + has_actions: + description: either `true` to enable actions unit, or `false` to disable them. + type: boolean + x-go-name: HasActions + has_code: + description: >- + either `true` to enable code for this repository or `false` to disable + it. + type: boolean + x-go-name: HasCode + has_issues: + description: >- + either `true` to enable issues for this repository or `false` to + disable them. + type: boolean + x-go-name: HasIssues + has_packages: + description: either `true` to enable packages unit, or `false` to disable them. + type: boolean + x-go-name: HasPackages + has_projects: + description: either `true` to enable project unit, or `false` to disable them. + type: boolean + x-go-name: HasProjects + has_pull_requests: + description: >- + either `true` to allow pull requests, or `false` to prevent pull + request. + type: boolean + x-go-name: HasPullRequests + has_releases: + description: either `true` to enable releases unit, or `false` to disable them. + type: boolean + x-go-name: HasReleases + has_wiki: + description: >- + either `true` to enable the wiki for this repository or `false` to + disable it. + type: boolean + x-go-name: HasWiki + ignore_whitespace_conflicts: + description: >- + either `true` to ignore whitespace for conflicts, or `false` to not + ignore whitespace. + type: boolean + x-go-name: IgnoreWhitespaceConflicts + internal_tracker: + $ref: '#/definitions/InternalTracker' + mirror_interval: + description: set to a string like `8h30m0s` to set the mirror interval time + type: string + x-go-name: MirrorInterval + name: + description: name of the repository + type: string + uniqueItems: true + x-go-name: Name + private: + description: >- + either `true` to make the repository private or `false` to make it + public. + + Note: you will get a 422 error if the organization restricts changing + repository visibility to organization + + owners and a non-owner tries to change the value of private. + type: boolean + x-go-name: Private + projects_mode: + description: >- + `repo` to only allow repo-level projects, `owner` to only allow owner + projects, `all` to allow both. + type: string + x-go-name: ProjectsMode + template: + description: >- + either `true` to make this repository a template or `false` to make it + a normal repository + type: boolean + x-go-name: Template + website: + description: a URL with more information about the repository. + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + EditTagProtectionOption: + description: EditTagProtectionOption options for editing a tag protection + type: object + properties: + name_pattern: + description: The pattern to match tag names for protection + type: string + x-go-name: NamePattern + whitelist_teams: + description: List of team names allowed to create/delete protected tags + type: array + items: + type: string + x-go-name: WhitelistTeams + whitelist_usernames: + description: List of usernames allowed to create/delete protected tags + type: array + items: + type: string + x-go-name: WhitelistUsernames + x-go-package: code.gitea.io/gitea/modules/structs + EditTeamOption: + description: EditTeamOption options for editing a team + type: object + required: + - name + properties: + can_create_org_repo: + description: Whether the team can create repositories in the organization + type: boolean + x-go-name: CanCreateOrgRepo + description: + description: The description of the team + type: string + x-go-name: Description + includes_all_repositories: + description: Whether the team has access to all repositories in the organization + type: boolean + x-go-name: IncludesAllRepositories + name: + type: string + x-go-name: Name + permission: + type: string + enum: + - read + - write + - admin + x-go-name: Permission + units: + type: array + items: + type: string + x-go-name: Units + example: + - repo.code + - repo.issues + - repo.ext_issues + - repo.wiki + - repo.pulls + - repo.releases + - repo.projects + - repo.ext_wiki + units_map: + type: object + additionalProperties: + type: string + x-go-name: UnitsMap + example: + repo.code: read + repo.ext_issues: none + repo.ext_wiki: none + repo.issues: write + repo.projects: none + repo.pulls: owner + repo.releases: none + repo.wiki: admin + x-go-package: code.gitea.io/gitea/modules/structs + EditUserOption: + description: EditUserOption edit user options + type: object + required: + - source_id + - login_name + properties: + active: + description: Whether the user account is active + type: boolean + x-go-name: Active + admin: + description: Whether the user has administrator privileges + type: boolean + x-go-name: Admin + allow_create_organization: + description: Whether the user can create organizations + type: boolean + x-go-name: AllowCreateOrganization + allow_git_hook: + description: Whether the user can use Git hooks + type: boolean + x-go-name: AllowGitHook + allow_import_local: + description: Whether the user can import local repositories + type: boolean + x-go-name: AllowImportLocal + description: + description: The user's personal description or bio + type: string + x-go-name: Description + email: + type: string + format: email + x-go-name: Email + full_name: + description: The full display name of the user + type: string + x-go-name: FullName + location: + description: The user's location or address + type: string + x-go-name: Location + login_name: + description: >- + identifier of the user, provided by the external authenticator (if + configured) + type: string + default: empty + x-go-name: LoginName + max_repo_creation: + description: Maximum number of repositories the user can create + type: integer + format: int64 + x-go-name: MaxRepoCreation + must_change_password: + description: Whether the user must change password on next login + type: boolean + x-go-name: MustChangePassword + password: + description: The plain text password for the user + type: string + x-go-name: Password + prohibit_login: + description: Whether the user is prohibited from logging in + type: boolean + x-go-name: ProhibitLogin + restricted: + description: Whether the user has restricted access privileges + type: boolean + x-go-name: Restricted + source_id: + type: integer + format: int64 + x-go-name: SourceID + visibility: + description: 'User visibility level: public, limited, or private' + type: string + x-go-name: Visibility + website: + description: The user's personal website URL + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + Email: + description: Email an email address belonging to a user + type: object + properties: + email: + type: string + format: email + x-go-name: Email + primary: + description: Whether this is the primary email address + type: boolean + x-go-name: Primary + user_id: + description: The unique identifier of the user who owns this email + type: integer + format: int64 + x-go-name: UserID + username: + description: username of the user + type: string + x-go-name: UserName + verified: + description: Whether the email address has been verified + type: boolean + x-go-name: Verified + x-go-package: code.gitea.io/gitea/modules/structs + ExternalTracker: + description: ExternalTracker represents settings for external tracker + type: object + properties: + external_tracker_format: + description: >- + External Issue Tracker URL Format. Use the placeholders {user}, {repo} + and {index} for the username, repository name and issue index. + type: string + x-go-name: ExternalTrackerFormat + external_tracker_regexp_pattern: + description: External Issue Tracker issue regular expression + type: string + x-go-name: ExternalTrackerRegexpPattern + external_tracker_style: + description: >- + External Issue Tracker Number Format, either `numeric`, + `alphanumeric`, or `regexp` + type: string + x-go-name: ExternalTrackerStyle + external_tracker_url: + description: URL of external issue tracker. + type: string + x-go-name: ExternalTrackerURL + x-go-package: code.gitea.io/gitea/modules/structs + ExternalWiki: + description: ExternalWiki represents setting for external wiki + type: object + properties: + external_wiki_url: + description: URL of external wiki. + type: string + x-go-name: ExternalWikiURL + x-go-package: code.gitea.io/gitea/modules/structs + FileCommitResponse: + type: object + title: >- + FileCommitResponse contains information generated from a Git commit for a + repo's file. + properties: + author: + $ref: '#/definitions/CommitUser' + committer: + $ref: '#/definitions/CommitUser' + created: + type: string + format: date-time + x-go-name: Created + html_url: + description: HTMLURL is the web URL for viewing this commit + type: string + x-go-name: HTMLURL + message: + description: Message is the commit message + type: string + x-go-name: Message + parents: + description: Parents contains parent commit metadata + type: array + items: + $ref: '#/definitions/CommitMeta' + x-go-name: Parents + sha: + description: SHA is the commit SHA hash + type: string + x-go-name: SHA + tree: + $ref: '#/definitions/CommitMeta' + url: + description: URL is the API URL for the commit + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + FileDeleteResponse: + description: >- + FileDeleteResponse contains information about a repo's file that was + deleted + type: object + properties: + commit: + $ref: '#/definitions/FileCommitResponse' + content: + description: Content is always null for delete operations + x-go-name: Content + verification: + $ref: '#/definitions/PayloadCommitVerification' + x-go-package: code.gitea.io/gitea/modules/structs + FileLinksResponse: + description: FileLinksResponse contains the links for a repo's file + type: object + properties: + git: + description: GitURL is the Git API URL for this file + type: string + x-go-name: GitURL + html: + description: HTMLURL is the web URL for this file + type: string + x-go-name: HTMLURL + self: + description: Self is the API URL for this file + type: string + x-go-name: Self + x-go-package: code.gitea.io/gitea/modules/structs + FileResponse: + description: FileResponse contains information about a repo's file + type: object + properties: + commit: + $ref: '#/definitions/FileCommitResponse' + content: + $ref: '#/definitions/ContentsResponse' + verification: + $ref: '#/definitions/PayloadCommitVerification' + x-go-package: code.gitea.io/gitea/modules/structs + FilesResponse: + description: FilesResponse contains information about multiple files from a repo + type: object + properties: + commit: + $ref: '#/definitions/FileCommitResponse' + files: + description: Files contains the list of file contents and metadata + type: array + items: + $ref: '#/definitions/ContentsResponse' + x-go-name: Files + verification: + $ref: '#/definitions/PayloadCommitVerification' + x-go-package: code.gitea.io/gitea/modules/structs + GPGKey: + description: GPGKey a user GPG key to sign commit and tag in repository + type: object + properties: + can_certify: + description: Whether the key can be used for certification + type: boolean + x-go-name: CanCertify + can_encrypt_comms: + description: Whether the key can be used for encrypting communications + type: boolean + x-go-name: CanEncryptComms + can_encrypt_storage: + description: Whether the key can be used for encrypting storage + type: boolean + x-go-name: CanEncryptStorage + can_sign: + description: Whether the key can be used for signing + type: boolean + x-go-name: CanSign + created_at: + type: string + format: date-time + x-go-name: Created + emails: + description: List of email addresses associated with this GPG key + type: array + items: + $ref: '#/definitions/GPGKeyEmail' + x-go-name: Emails + expires_at: + type: string + format: date-time + x-go-name: Expires + id: + description: The unique identifier of the GPG key + type: integer + format: int64 + x-go-name: ID + key_id: + description: The key ID of the GPG key + type: string + x-go-name: KeyID + primary_key_id: + description: The primary key ID of the GPG key + type: string + x-go-name: PrimaryKeyID + public_key: + description: The public key content in armored format + type: string + x-go-name: PublicKey + subkeys: + description: List of subkeys of this GPG key + type: array + items: + $ref: '#/definitions/GPGKey' + x-go-name: SubsKey + verified: + description: Whether the GPG key has been verified + type: boolean + x-go-name: Verified + x-go-package: code.gitea.io/gitea/modules/structs + GPGKeyEmail: + description: GPGKeyEmail an email attached to a GPGKey + type: object + properties: + email: + description: The email address associated with the GPG key + type: string + x-go-name: Email + verified: + description: Whether the email address has been verified + type: boolean + x-go-name: Verified + x-go-package: code.gitea.io/gitea/modules/structs + GeneralAPISettings: + description: GeneralAPISettings contains global api settings exposed by it + type: object + properties: + default_git_trees_per_page: + description: >- + DefaultGitTreesPerPage is the default number of Git tree items per + page + type: integer + format: int64 + x-go-name: DefaultGitTreesPerPage + default_max_blob_size: + description: DefaultMaxBlobSize is the default maximum blob size for API responses + type: integer + format: int64 + x-go-name: DefaultMaxBlobSize + default_max_response_size: + description: DefaultMaxResponseSize is the default maximum response size + type: integer + format: int64 + x-go-name: DefaultMaxResponseSize + default_paging_num: + description: DefaultPagingNum is the default number of items per page + type: integer + format: int64 + x-go-name: DefaultPagingNum + max_response_items: + description: >- + MaxResponseItems is the maximum number of items returned in API + responses + type: integer + format: int64 + x-go-name: MaxResponseItems + x-go-package: code.gitea.io/gitea/modules/structs + GeneralAttachmentSettings: + description: >- + GeneralAttachmentSettings contains global Attachment settings exposed by + API + type: object + properties: + allowed_types: + description: AllowedTypes contains the allowed file types for attachments + type: string + x-go-name: AllowedTypes + enabled: + description: Enabled indicates if file attachments are enabled + type: boolean + x-go-name: Enabled + max_files: + description: MaxFiles is the maximum number of files per attachment + type: integer + format: int64 + x-go-name: MaxFiles + max_size: + description: MaxSize is the maximum size for individual attachments + type: integer + format: int64 + x-go-name: MaxSize + x-go-package: code.gitea.io/gitea/modules/structs + GeneralRepoSettings: + description: GeneralRepoSettings contains global repository settings exposed by API + type: object + properties: + http_git_disabled: + description: HTTPGitDisabled indicates if HTTP Git operations are disabled + type: boolean + x-go-name: HTTPGitDisabled + lfs_disabled: + description: LFSDisabled indicates if Git LFS support is disabled + type: boolean + x-go-name: LFSDisabled + migrations_disabled: + description: MigrationsDisabled indicates if repository migrations are disabled + type: boolean + x-go-name: MigrationsDisabled + mirrors_disabled: + description: MirrorsDisabled indicates if repository mirroring is disabled + type: boolean + x-go-name: MirrorsDisabled + stars_disabled: + description: StarsDisabled indicates if repository starring is disabled + type: boolean + x-go-name: StarsDisabled + time_tracking_disabled: + description: TimeTrackingDisabled indicates if time tracking is disabled + type: boolean + x-go-name: TimeTrackingDisabled + x-go-package: code.gitea.io/gitea/modules/structs + GeneralUISettings: + description: GeneralUISettings contains global ui settings exposed by API + type: object + properties: + allowed_reactions: + description: AllowedReactions contains the list of allowed emoji reactions + type: array + items: + type: string + x-go-name: AllowedReactions + custom_emojis: + description: CustomEmojis contains the list of custom emojis + type: array + items: + type: string + x-go-name: CustomEmojis + default_theme: + description: DefaultTheme is the default UI theme + type: string + x-go-name: DefaultTheme + x-go-package: code.gitea.io/gitea/modules/structs + GenerateRepoOption: + description: GenerateRepoOption options when creating a repository using a template + type: object + required: + - owner + - name + properties: + avatar: + description: include avatar of the template repo + type: boolean + x-go-name: Avatar + default_branch: + description: Default branch of the new repository + type: string + x-go-name: DefaultBranch + description: + description: Description of the repository to create + type: string + x-go-name: Description + git_content: + description: include git content of default branch in template repo + type: boolean + x-go-name: GitContent + git_hooks: + description: include git hooks in template repo + type: boolean + x-go-name: GitHooks + labels: + description: include labels in template repo + type: boolean + x-go-name: Labels + name: + type: string + uniqueItems: true + x-go-name: Name + owner: + description: >- + the organization's name or individual user's name who will own the new + repository + type: string + x-go-name: Owner + private: + description: Whether the repository is private + type: boolean + x-go-name: Private + protected_branch: + description: include protected branches in template repo + type: boolean + x-go-name: ProtectedBranch + topics: + description: include topics in template repo + type: boolean + x-go-name: Topics + webhooks: + description: include webhooks in template repo + type: boolean + x-go-name: Webhooks + x-go-package: code.gitea.io/gitea/modules/structs + GetFilesOptions: + description: >- + GetFilesOptions options for retrieving metadate and content of multiple + files + type: object + properties: + files: + description: Files is the list of file paths to retrieve + type: array + items: + type: string + x-go-name: Files + x-go-package: code.gitea.io/gitea/modules/structs + GitBlobResponse: + description: GitBlobResponse represents a git blob + type: object + properties: + content: + description: The content of the git blob (may be base64 encoded) + type: string + x-go-name: Content + encoding: + description: The encoding used for the content (e.g., "base64") + type: string + x-go-name: Encoding + lfs_oid: + description: The LFS object ID if this blob is stored in LFS + type: string + x-go-name: LfsOid + lfs_size: + description: The size of the LFS object if this blob is stored in LFS + type: integer + format: int64 + x-go-name: LfsSize + sha: + description: The SHA hash of the git blob + type: string + x-go-name: SHA + size: + description: The size of the git blob in bytes + type: integer + format: int64 + x-go-name: Size + url: + description: The URL to access this git blob + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + GitEntry: + description: GitEntry represents a git tree + type: object + properties: + mode: + description: Mode is the file mode (permissions) + type: string + x-go-name: Mode + path: + description: Path is the file or directory path + type: string + x-go-name: Path + sha: + description: SHA is the Git object SHA + type: string + x-go-name: SHA + size: + description: Size is the file size in bytes + type: integer + format: int64 + x-go-name: Size + type: + description: Type indicates if this is a file, directory, or symlink + type: string + x-go-name: Type + url: + description: URL is the API URL for this tree entry + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + GitHook: + description: GitHook represents a Git repository hook + type: object + properties: + content: + description: Content contains the script content of the hook + type: string + x-go-name: Content + is_active: + description: IsActive indicates if the hook is active + type: boolean + x-go-name: IsActive + name: + description: Name is the name of the Git hook + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + GitObject: + type: object + title: GitObject represents a Git object. + properties: + sha: + description: The SHA hash of the Git object + type: string + x-go-name: SHA + type: + description: The type of the Git object (e.g., commit, tag, tree, blob) + type: string + x-go-name: Type + url: + description: The URL to access this Git object + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + GitTreeResponse: + description: GitTreeResponse returns a git tree + type: object + properties: + page: + description: Page is the current page number for pagination + type: integer + format: int64 + x-go-name: Page + sha: + description: SHA is the tree object SHA + type: string + x-go-name: SHA + total_count: + description: TotalCount is the total number of entries in the tree + type: integer + format: int64 + x-go-name: TotalCount + tree: + description: Entries contains the tree entries (files and directories) + type: array + items: + $ref: '#/definitions/GitEntry' + x-go-name: Entries + truncated: + description: Truncated indicates if the response was truncated due to size + type: boolean + x-go-name: Truncated + url: + description: URL is the API URL for this tree + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + GitignoreTemplateInfo: + description: GitignoreTemplateInfo name and text of a gitignore template + type: object + properties: + name: + description: Name is the name of the gitignore template + type: string + x-go-name: Name + source: + description: Source contains the content of the gitignore template + type: string + x-go-name: Source + x-go-package: code.gitea.io/gitea/modules/structs + Hook: + description: Hook a hook is a web hook when one repository changed + type: object + properties: + active: + description: Whether the webhook is active and will be triggered + type: boolean + x-go-name: Active + authorization_header: + description: Authorization header to include in webhook requests + type: string + x-go-name: AuthorizationHeader + branch_filter: + description: Branch filter pattern to determine which branches trigger the webhook + type: string + x-go-name: BranchFilter + config: + description: Configuration settings for the webhook + type: object + additionalProperties: + type: string + x-go-name: Config + created_at: + type: string + format: date-time + x-go-name: Created + events: + description: List of events that trigger this webhook + type: array + items: + type: string + x-go-name: Events + id: + description: The unique identifier of the webhook + type: integer + format: int64 + x-go-name: ID + type: + description: The type of the webhook (e.g., gitea, slack, discord) + type: string + x-go-name: Type + updated_at: + type: string + format: date-time + x-go-name: Updated + x-go-package: code.gitea.io/gitea/modules/structs + Identity: + description: Identity for a person's identity like an author or committer + type: object + properties: + email: + type: string + format: email + x-go-name: Email + name: + description: Name is the person's name + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + InternalTracker: + description: InternalTracker represents settings for internal tracker + type: object + properties: + allow_only_contributors_to_track_time: + description: Let only contributors track time (Built-in issue tracker) + type: boolean + x-go-name: AllowOnlyContributorsToTrackTime + enable_issue_dependencies: + description: >- + Enable dependencies for issues and pull requests (Built-in issue + tracker) + type: boolean + x-go-name: EnableIssueDependencies + enable_time_tracker: + description: Enable time tracking (Built-in issue tracker) + type: boolean + x-go-name: EnableTimeTracker + x-go-package: code.gitea.io/gitea/modules/structs + Issue: + description: Issue represents an issue in a repository + type: object + properties: + assets: + type: array + items: + $ref: '#/definitions/Attachment' + x-go-name: Attachments + assignee: + $ref: '#/definitions/User' + assignees: + type: array + items: + $ref: '#/definitions/User' + x-go-name: Assignees + body: + type: string + x-go-name: Body + closed_at: + type: string + format: date-time + x-go-name: Closed + comments: + type: integer + format: int64 + x-go-name: Comments + created_at: + type: string + format: date-time + x-go-name: Created + due_date: + type: string + format: date-time + x-go-name: Deadline + html_url: + type: string + x-go-name: HTMLURL + id: + type: integer + format: int64 + x-go-name: ID + is_locked: + type: boolean + x-go-name: IsLocked + labels: + type: array + items: + $ref: '#/definitions/Label' + x-go-name: Labels + milestone: + $ref: '#/definitions/Milestone' + number: + type: integer + format: int64 + x-go-name: Index + original_author: + type: string + x-go-name: OriginalAuthor + original_author_id: + type: integer + format: int64 + x-go-name: OriginalAuthorID + pin_order: + type: integer + format: int64 + x-go-name: PinOrder + pull_request: + $ref: '#/definitions/PullRequestMeta' + ref: + type: string + x-go-name: Ref + repository: + $ref: '#/definitions/RepositoryMeta' + state: + $ref: '#/definitions/StateType' + time_estimate: + type: integer + format: int64 + x-go-name: TimeEstimate + title: + type: string + x-go-name: Title + updated_at: + type: string + format: date-time + x-go-name: Updated + url: + type: string + x-go-name: URL + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + IssueConfig: + type: object + properties: + blank_issues_enabled: + type: boolean + x-go-name: BlankIssuesEnabled + contact_links: + type: array + items: + $ref: '#/definitions/IssueConfigContactLink' + x-go-name: ContactLinks + x-go-package: code.gitea.io/gitea/modules/structs + IssueConfigContactLink: + type: object + properties: + about: + type: string + x-go-name: About + name: + type: string + x-go-name: Name + url: + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + IssueConfigValidation: + type: object + properties: + message: + type: string + x-go-name: Message + valid: + type: boolean + x-go-name: Valid + x-go-package: code.gitea.io/gitea/modules/structs + IssueDeadline: + description: IssueDeadline represents an issue deadline + type: object + properties: + due_date: + type: string + format: date-time + x-go-name: Deadline + x-go-package: code.gitea.io/gitea/modules/structs + IssueFormField: + description: IssueFormField represents a form field + type: object + properties: + attributes: + type: object + additionalProperties: {} + x-go-name: Attributes + id: + type: string + x-go-name: ID + type: + $ref: '#/definitions/IssueFormFieldType' + validations: + type: object + additionalProperties: {} + x-go-name: Validations + visible: + type: array + items: + $ref: '#/definitions/IssueFormFieldVisible' + x-go-name: Visible + x-go-package: code.gitea.io/gitea/modules/structs + IssueFormFieldType: + type: string + title: >- + IssueFormFieldType defines issue form field type, can be "markdown", + "textarea", "input", "dropdown" or "checkboxes" + x-go-package: code.gitea.io/gitea/modules/structs + IssueFormFieldVisible: + description: IssueFormFieldVisible defines issue form field visible + type: string + x-go-package: code.gitea.io/gitea/modules/structs + IssueLabelsOption: + description: IssueLabelsOption a collection of labels + type: object + properties: + labels: + description: |- + Labels can be a list of integers representing label IDs + or a list of strings representing label names + type: array + items: {} + x-go-name: Labels + x-go-package: code.gitea.io/gitea/modules/structs + IssueMeta: + description: IssueMeta basic issue information + type: object + properties: + index: + type: integer + format: int64 + x-go-name: Index + owner: + description: owner of the issue's repo + type: string + x-go-name: Owner + repo: + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + IssueTemplate: + description: IssueTemplate represents an issue template for a repository + type: object + properties: + about: + type: string + x-go-name: About + assignees: + $ref: '#/definitions/IssueTemplateStringSlice' + body: + type: array + items: + $ref: '#/definitions/IssueFormField' + x-go-name: Fields + content: + type: string + x-go-name: Content + file_name: + type: string + x-go-name: FileName + labels: + $ref: '#/definitions/IssueTemplateStringSlice' + name: + type: string + x-go-name: Name + ref: + type: string + x-go-name: Ref + title: + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + IssueTemplateStringSlice: + type: array + items: + type: string + x-go-package: code.gitea.io/gitea/modules/structs + Label: + description: Label a label to an issue or a pr + type: object + properties: + color: + type: string + x-go-name: Color + example: 00aabb + description: + description: Description provides additional context about the label's purpose + type: string + x-go-name: Description + exclusive: + type: boolean + x-go-name: Exclusive + example: false + id: + description: ID is the unique identifier for the label + type: integer + format: int64 + x-go-name: ID + is_archived: + type: boolean + x-go-name: IsArchived + example: false + name: + description: Name is the display name of the label + type: string + x-go-name: Name + url: + description: URL is the API endpoint for accessing this label + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + LabelTemplate: + description: LabelTemplate info of a Label template + type: object + properties: + color: + type: string + x-go-name: Color + example: 00aabb + description: + description: >- + Description provides additional context about the label template's + purpose + type: string + x-go-name: Description + exclusive: + type: boolean + x-go-name: Exclusive + example: false + name: + description: Name is the display name of the label template + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + LicenseTemplateInfo: + description: LicensesInfo contains information about a License + type: object + properties: + body: + description: Body contains the full text of the license + type: string + x-go-name: Body + implementation: + description: Implementation contains license implementation details + type: string + x-go-name: Implementation + key: + description: Key is the unique identifier for the license template + type: string + x-go-name: Key + name: + description: Name is the display name of the license + type: string + x-go-name: Name + url: + description: URL is the reference URL for the license + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + LicensesTemplateListEntry: + description: LicensesListEntry is used for the API + type: object + properties: + key: + description: Key is the unique identifier for the license template + type: string + x-go-name: Key + name: + description: Name is the display name of the license + type: string + x-go-name: Name + url: + description: URL is the reference URL for the license + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + LockIssueOption: + description: LockIssueOption options to lock an issue + type: object + properties: + lock_reason: + type: string + x-go-name: Reason + x-go-package: code.gitea.io/gitea/modules/structs + MarkdownOption: + description: MarkdownOption markdown options + type: object + properties: + Context: + description: >- + URL path for rendering issue, media and file links + + Expected format: /subpath/{user}/{repo}/src/{branch, commit, + tag}/{identifier/path}/{file/dir} + + + in: body + type: string + Mode: + description: |- + Mode to render (markdown, comment, wiki, file) + + in: body + type: string + Text: + description: |- + Text markdown to render + + in: body + type: string + Wiki: + description: |- + Is it a wiki page? (use mode=wiki instead) + + Deprecated: true + in: body + type: boolean + x-go-package: code.gitea.io/gitea/modules/structs + MarkupOption: + description: MarkupOption markup options + type: object + properties: + Context: + description: >- + URL path for rendering issue, media and file links + + Expected format: /subpath/{user}/{repo}/src/{branch, commit, + tag}/{identifier/path}/{file/dir} + + + in: body + type: string + FilePath: + description: |- + File path for detecting extension in file mode + + in: body + type: string + Mode: + description: |- + Mode to render (markdown, comment, wiki, file) + + in: body + type: string + Text: + description: |- + Text markup to render + + in: body + type: string + Wiki: + description: |- + Is it a wiki page? (use mode=wiki instead) + + Deprecated: true + in: body + type: boolean + x-go-package: code.gitea.io/gitea/modules/structs + MergePullRequestOption: + description: MergePullRequestForm form for merging Pull Request + type: object + required: + - Do + properties: + Do: + type: string + enum: + - merge + - rebase + - rebase-merge + - squash + - fast-forward-only + - manually-merged + MergeCommitID: + type: string + MergeMessageField: + type: string + MergeTitleField: + type: string + delete_branch_after_merge: + type: boolean + x-go-name: DeleteBranchAfterMerge + force_merge: + type: boolean + x-go-name: ForceMerge + head_commit_id: + type: string + x-go-name: HeadCommitID + merge_when_checks_succeed: + type: boolean + x-go-name: MergeWhenChecksSucceed + x-go-name: MergePullRequestForm + x-go-package: code.gitea.io/gitea/services/forms + MergeUpstreamRequest: + type: object + properties: + branch: + type: string + x-go-name: Branch + ff_only: + type: boolean + x-go-name: FfOnly + x-go-package: code.gitea.io/gitea/modules/structs + MergeUpstreamResponse: + type: object + properties: + merge_type: + type: string + x-go-name: MergeStyle + x-go-package: code.gitea.io/gitea/modules/structs + MigrateRepoOptions: + description: |- + MigrateRepoOptions options for migrating repository's + this is used to interact with api v1 + type: object + required: + - clone_addr + - repo_name + properties: + auth_password: + type: string + x-go-name: AuthPassword + auth_token: + type: string + x-go-name: AuthToken + auth_username: + type: string + x-go-name: AuthUsername + aws_access_key_id: + type: string + x-go-name: AWSAccessKeyID + aws_secret_access_key: + type: string + x-go-name: AWSSecretAccessKey + clone_addr: + type: string + x-go-name: CloneAddr + description: + type: string + x-go-name: Description + issues: + type: boolean + x-go-name: Issues + labels: + type: boolean + x-go-name: Labels + lfs: + type: boolean + x-go-name: LFS + lfs_endpoint: + type: string + x-go-name: LFSEndpoint + milestones: + type: boolean + x-go-name: Milestones + mirror: + type: boolean + x-go-name: Mirror + mirror_interval: + type: string + x-go-name: MirrorInterval + private: + type: boolean + x-go-name: Private + pull_requests: + type: boolean + x-go-name: PullRequests + releases: + type: boolean + x-go-name: Releases + repo_name: + type: string + x-go-name: RepoName + repo_owner: + description: >- + the organization's name or individual user's name who will own the + migrated repository + type: string + x-go-name: RepoOwner + service: + type: string + enum: + - git + - github + - gitea + - gitlab + - gogs + - onedev + - gitbucket + - codebase + - codecommit + x-go-name: Service + uid: + description: deprecated (only for backwards compatibility, use repo_owner instead) + type: integer + format: int64 + x-go-name: RepoOwnerID + wiki: + type: boolean + x-go-name: Wiki + x-go-package: code.gitea.io/gitea/modules/structs + Milestone: + description: Milestone milestone is a collection of issues on one repository + type: object + properties: + closed_at: + type: string + format: date-time + x-go-name: Closed + closed_issues: + description: ClosedIssues is the number of closed issues in this milestone + type: integer + format: int64 + x-go-name: ClosedIssues + created_at: + type: string + format: date-time + x-go-name: Created + description: + description: Description provides details about the milestone + type: string + x-go-name: Description + due_on: + type: string + format: date-time + x-go-name: Deadline + id: + description: ID is the unique identifier for the milestone + type: integer + format: int64 + x-go-name: ID + open_issues: + description: OpenIssues is the number of open issues in this milestone + type: integer + format: int64 + x-go-name: OpenIssues + state: + $ref: '#/definitions/StateType' + title: + description: Title is the title of the milestone + type: string + x-go-name: Title + updated_at: + type: string + format: date-time + x-go-name: Updated + x-go-package: code.gitea.io/gitea/modules/structs + NewIssuePinsAllowed: + description: >- + NewIssuePinsAllowed represents an API response that says if new Issue Pins + are allowed + type: object + properties: + issues: + type: boolean + x-go-name: Issues + pull_requests: + type: boolean + x-go-name: PullRequests + x-go-package: code.gitea.io/gitea/modules/structs + NodeInfo: + description: >- + NodeInfo contains standardized way of exposing metadata about a server + running one of the distributed social networks + type: object + properties: + metadata: + description: >- + Metadata contains free form key value pairs for software specific + values + type: object + x-go-name: Metadata + openRegistrations: + description: OpenRegistrations indicates if new user registrations are accepted + type: boolean + x-go-name: OpenRegistrations + protocols: + description: Protocols lists the protocols supported by this server + type: array + items: + type: string + x-go-name: Protocols + services: + $ref: '#/definitions/NodeInfoServices' + software: + $ref: '#/definitions/NodeInfoSoftware' + usage: + $ref: '#/definitions/NodeInfoUsage' + version: + description: Version specifies the schema version + type: string + x-go-name: Version + x-go-package: code.gitea.io/gitea/modules/structs + NodeInfoServices: + description: >- + NodeInfoServices contains the third party sites this server can connect to + via their application API + type: object + properties: + inbound: + description: Inbound lists services that can deliver content to this server + type: array + items: + type: string + x-go-name: Inbound + outbound: + description: Outbound lists services this server can deliver content to + type: array + items: + type: string + x-go-name: Outbound + x-go-package: code.gitea.io/gitea/modules/structs + NodeInfoSoftware: + description: NodeInfoSoftware contains Metadata about server software in use + type: object + properties: + homepage: + description: Homepage is the URL to the homepage of this server software + type: string + x-go-name: Homepage + name: + description: Name is the canonical name of this server software + type: string + x-go-name: Name + repository: + description: Repository is the URL to the source code repository + type: string + x-go-name: Repository + version: + description: Version is the version of this server software + type: string + x-go-name: Version + x-go-package: code.gitea.io/gitea/modules/structs + NodeInfoUsage: + description: NodeInfoUsage contains usage statistics for this server + type: object + properties: + localComments: + description: >- + LocalComments is the total amount of comments made by users local to + this server + type: integer + format: int64 + x-go-name: LocalComments + localPosts: + description: >- + LocalPosts is the total amount of posts made by users local to this + server + type: integer + format: int64 + x-go-name: LocalPosts + users: + $ref: '#/definitions/NodeInfoUsageUsers' + x-go-package: code.gitea.io/gitea/modules/structs + NodeInfoUsageUsers: + description: NodeInfoUsageUsers contains statistics about the users of this server + type: object + properties: + activeHalfyear: + description: >- + ActiveHalfyear is the amount of users that signed in at least once in + the last 180 days + type: integer + format: int64 + x-go-name: ActiveHalfyear + activeMonth: + description: >- + ActiveMonth is the amount of users that signed in at least once in the + last 30 days + type: integer + format: int64 + x-go-name: ActiveMonth + total: + description: Total is the total amount of users on this server + type: integer + format: int64 + x-go-name: Total + x-go-package: code.gitea.io/gitea/modules/structs + Note: + description: Note contains information related to a git note + type: object + properties: + commit: + $ref: '#/definitions/Commit' + message: + description: The content message of the git note + type: string + x-go-name: Message + x-go-package: code.gitea.io/gitea/modules/structs + NotificationCount: + description: NotificationCount number of unread notifications + type: object + properties: + new: + description: New is the number of unread notifications + type: integer + format: int64 + x-go-name: New + x-go-package: code.gitea.io/gitea/modules/structs + NotificationSubject: + description: NotificationSubject contains the notification subject (Issue/Pull/Commit) + type: object + properties: + html_url: + description: HTMLURL is the web URL for the notification subject + type: string + x-go-name: HTMLURL + latest_comment_html_url: + description: LatestCommentHTMLURL is the web URL for the latest comment + type: string + x-go-name: LatestCommentHTMLURL + latest_comment_url: + description: LatestCommentURL is the API URL for the latest comment + type: string + x-go-name: LatestCommentURL + state: + $ref: '#/definitions/StateType' + title: + description: Title is the title of the notification subject + type: string + x-go-name: Title + type: + $ref: '#/definitions/NotifySubjectType' + url: + description: URL is the API URL for the notification subject + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + NotificationThread: + description: NotificationThread expose Notification on API + type: object + properties: + id: + description: ID is the unique identifier for the notification thread + type: integer + format: int64 + x-go-name: ID + pinned: + description: Pinned indicates if the notification is pinned + type: boolean + x-go-name: Pinned + repository: + $ref: '#/definitions/Repository' + subject: + $ref: '#/definitions/NotificationSubject' + unread: + description: Unread indicates if the notification has been read + type: boolean + x-go-name: Unread + updated_at: + description: UpdatedAt is the time when the notification was last updated + type: string + format: date-time + x-go-name: UpdatedAt + url: + description: URL is the API URL for this notification thread + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + NotifySubjectType: + description: NotifySubjectType represent type of notification subject + type: string + x-go-package: code.gitea.io/gitea/modules/structs + OAuth2Application: + type: object + title: OAuth2Application represents an OAuth2 application. + properties: + client_id: + description: The client ID of the OAuth2 application + type: string + x-go-name: ClientID + client_secret: + description: The client secret of the OAuth2 application + type: string + x-go-name: ClientSecret + confidential_client: + description: Whether the client is confidential + type: boolean + x-go-name: ConfidentialClient + created: + description: The timestamp when the application was created + type: string + format: date-time + x-go-name: Created + id: + description: The unique identifier of the OAuth2 application + type: integer + format: int64 + x-go-name: ID + name: + description: The name of the OAuth2 application + type: string + x-go-name: Name + redirect_uris: + description: The list of allowed redirect URIs + type: array + items: + type: string + x-go-name: RedirectURIs + skip_secondary_authorization: + description: Whether to skip secondary authorization + type: boolean + x-go-name: SkipSecondaryAuthorization + x-go-package: code.gitea.io/gitea/modules/structs + Organization: + description: Organization represents an organization + type: object + properties: + avatar_url: + description: The URL of the organization's avatar + type: string + x-go-name: AvatarURL + description: + description: The description of the organization + type: string + x-go-name: Description + email: + description: The email address of the organization + type: string + x-go-name: Email + full_name: + description: The full display name of the organization + type: string + x-go-name: FullName + id: + description: The unique identifier of the organization + type: integer + format: int64 + x-go-name: ID + location: + description: The location of the organization + type: string + x-go-name: Location + name: + description: The name of the organization + type: string + x-go-name: Name + repo_admin_change_team_access: + description: Whether repository administrators can change team access + type: boolean + x-go-name: RepoAdminChangeTeamAccess + username: + description: |- + username of the organization + deprecated + type: string + x-go-name: UserName + visibility: + description: The visibility level of the organization (public, limited, private) + type: string + x-go-name: Visibility + website: + description: The website URL of the organization + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + OrganizationPermissions: + description: >- + OrganizationPermissions list different users permissions on an + organization + type: object + properties: + can_create_repository: + description: Whether the user can create repositories in the organization + type: boolean + x-go-name: CanCreateRepository + can_read: + description: Whether the user can read the organization + type: boolean + x-go-name: CanRead + can_write: + description: Whether the user can write to the organization + type: boolean + x-go-name: CanWrite + is_admin: + description: Whether the user is an admin of the organization + type: boolean + x-go-name: IsAdmin + is_owner: + description: Whether the user is an owner of the organization + type: boolean + x-go-name: IsOwner + x-go-package: code.gitea.io/gitea/modules/structs + PRBranchInfo: + description: PRBranchInfo information about a branch + type: object + properties: + label: + description: The display name of the branch + type: string + x-go-name: Name + ref: + description: The git reference of the branch + type: string + x-go-name: Ref + repo: + $ref: '#/definitions/Repository' + repo_id: + description: The unique identifier of the repository + type: integer + format: int64 + x-go-name: RepoID + sha: + description: The commit SHA of the branch head + type: string + x-go-name: Sha + x-go-package: code.gitea.io/gitea/modules/structs + Package: + description: Package represents a package + type: object + properties: + created_at: + type: string + format: date-time + x-go-name: CreatedAt + creator: + $ref: '#/definitions/User' + html_url: + description: The HTML URL to view the package + type: string + x-go-name: HTMLURL + id: + description: The unique identifier of the package + type: integer + format: int64 + x-go-name: ID + name: + description: The name of the package + type: string + x-go-name: Name + owner: + $ref: '#/definitions/User' + repository: + $ref: '#/definitions/Repository' + type: + description: The type of the package (e.g., npm, maven, docker) + type: string + x-go-name: Type + version: + description: The version of the package + type: string + x-go-name: Version + x-go-package: code.gitea.io/gitea/modules/structs + PackageFile: + description: PackageFile represents a package file + type: object + properties: + id: + description: The unique identifier of the package file + type: integer + format: int64 + x-go-name: ID + md5: + description: The MD5 hash of the package file + type: string + x-go-name: HashMD5 + name: + description: The name of the package file + type: string + x-go-name: Name + sha1: + description: The SHA1 hash of the package file + type: string + x-go-name: HashSHA1 + sha256: + description: The SHA256 hash of the package file + type: string + x-go-name: HashSHA256 + sha512: + description: The SHA512 hash of the package file + type: string + x-go-name: HashSHA512 + size: + description: The size of the package file in bytes + type: integer + format: int64 + x-go-name: Size + x-go-package: code.gitea.io/gitea/modules/structs + PayloadCommit: + description: PayloadCommit represents a commit + type: object + properties: + added: + description: List of files added in this commit + type: array + items: + type: string + x-go-name: Added + author: + $ref: '#/definitions/PayloadUser' + committer: + $ref: '#/definitions/PayloadUser' + id: + description: sha1 hash of the commit + type: string + x-go-name: ID + message: + description: The commit message + type: string + x-go-name: Message + modified: + description: List of files modified in this commit + type: array + items: + type: string + x-go-name: Modified + removed: + description: List of files removed in this commit + type: array + items: + type: string + x-go-name: Removed + timestamp: + type: string + format: date-time + x-go-name: Timestamp + url: + description: The URL to view this commit + type: string + x-go-name: URL + verification: + $ref: '#/definitions/PayloadCommitVerification' + x-go-package: code.gitea.io/gitea/modules/structs + PayloadCommitVerification: + description: PayloadCommitVerification represents the GPG verification of a commit + type: object + properties: + payload: + description: The signed payload content + type: string + x-go-name: Payload + reason: + description: The reason for the verification status + type: string + x-go-name: Reason + signature: + description: The GPG signature of the commit + type: string + x-go-name: Signature + signer: + $ref: '#/definitions/PayloadUser' + verified: + description: Whether the commit signature is verified + type: boolean + x-go-name: Verified + x-go-package: code.gitea.io/gitea/modules/structs + PayloadUser: + description: PayloadUser represents the author or committer of a commit + type: object + properties: + email: + type: string + format: email + x-go-name: Email + name: + description: Full name of the commit author + type: string + x-go-name: Name + username: + description: username of the user + type: string + x-go-name: UserName + x-go-package: code.gitea.io/gitea/modules/structs + Permission: + description: Permission represents a set of permissions + type: object + properties: + admin: + type: boolean + x-go-name: Admin + pull: + type: boolean + x-go-name: Pull + push: + type: boolean + x-go-name: Push + x-go-package: code.gitea.io/gitea/modules/structs + PublicKey: + description: PublicKey publickey is a user key to push code to repository + type: object + properties: + created_at: + type: string + format: date-time + x-go-name: Created + fingerprint: + description: Fingerprint is the key's fingerprint + type: string + x-go-name: Fingerprint + id: + description: ID is the unique identifier for the public key + type: integer + format: int64 + x-go-name: ID + key: + description: Key contains the actual SSH public key content + type: string + x-go-name: Key + key_type: + description: KeyType indicates the type of the SSH key + type: string + x-go-name: KeyType + last_used_at: + description: Updated is the time when the key was last used + type: string + format: date-time + x-go-name: Updated + read_only: + description: ReadOnly indicates if the key has read-only access + type: boolean + x-go-name: ReadOnly + title: + description: Title is the human-readable name for the key + type: string + x-go-name: Title + url: + description: URL is the API URL for this key + type: string + x-go-name: URL + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + PullRequest: + description: PullRequest represents a pull request + type: object + properties: + additions: + description: The number of lines added in the pull request + type: integer + format: int64 + x-go-name: Additions + allow_maintainer_edit: + description: Whether maintainers can edit the pull request + type: boolean + x-go-name: AllowMaintainerEdit + assignee: + $ref: '#/definitions/User' + assignees: + description: The list of users assigned to the pull request + type: array + items: + $ref: '#/definitions/User' + x-go-name: Assignees + base: + $ref: '#/definitions/PRBranchInfo' + body: + description: The description body of the pull request + type: string + x-go-name: Body + changed_files: + description: The number of files changed in the pull request + type: integer + format: int64 + x-go-name: ChangedFiles + closed_at: + type: string + format: date-time + x-go-name: Closed + comments: + description: The number of comments on the pull request + type: integer + format: int64 + x-go-name: Comments + created_at: + type: string + format: date-time + x-go-name: Created + deletions: + description: The number of lines deleted in the pull request + type: integer + format: int64 + x-go-name: Deletions + diff_url: + description: The URL to download the diff patch + type: string + x-go-name: DiffURL + draft: + description: Whether the pull request is a draft + type: boolean + x-go-name: Draft + due_date: + type: string + format: date-time + x-go-name: Deadline + head: + $ref: '#/definitions/PRBranchInfo' + html_url: + description: The HTML URL to view the pull request + type: string + x-go-name: HTMLURL + id: + description: The unique identifier of the pull request + type: integer + format: int64 + x-go-name: ID + is_locked: + description: Whether the pull request conversation is locked + type: boolean + x-go-name: IsLocked + labels: + description: The labels attached to the pull request + type: array + items: + $ref: '#/definitions/Label' + x-go-name: Labels + merge_base: + description: The merge base commit SHA + type: string + x-go-name: MergeBase + merge_commit_sha: + description: The SHA of the merge commit + type: string + x-go-name: MergedCommitID + mergeable: + description: Whether the pull request can be merged + type: boolean + x-go-name: Mergeable + merged: + description: Whether the pull request has been merged + type: boolean + x-go-name: HasMerged + merged_at: + type: string + format: date-time + x-go-name: Merged + merged_by: + $ref: '#/definitions/User' + milestone: + $ref: '#/definitions/Milestone' + number: + description: The pull request number + type: integer + format: int64 + x-go-name: Index + patch_url: + description: The URL to download the patch file + type: string + x-go-name: PatchURL + pin_order: + description: The pin order for the pull request + type: integer + format: int64 + x-go-name: PinOrder + requested_reviewers: + description: The users requested to review the pull request + type: array + items: + $ref: '#/definitions/User' + x-go-name: RequestedReviewers + requested_reviewers_teams: + description: The teams requested to review the pull request + type: array + items: + $ref: '#/definitions/Team' + x-go-name: RequestedReviewersTeams + review_comments: + description: >- + number of review comments made on the diff of a PR review (not + including comments on commits or issues in a PR) + type: integer + format: int64 + x-go-name: ReviewComments + state: + $ref: '#/definitions/StateType' + title: + description: The title of the pull request + type: string + x-go-name: Title + updated_at: + type: string + format: date-time + x-go-name: Updated + url: + description: The API URL of the pull request + type: string + x-go-name: URL + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + PullRequestMeta: + description: PullRequestMeta PR info if an issue is a PR + type: object + properties: + draft: + type: boolean + x-go-name: IsWorkInProgress + html_url: + type: string + x-go-name: HTMLURL + merged: + type: boolean + x-go-name: HasMerged + merged_at: + type: string + format: date-time + x-go-name: Merged + x-go-package: code.gitea.io/gitea/modules/structs + PullReview: + description: PullReview represents a pull request review + type: object + properties: + body: + type: string + x-go-name: Body + comments_count: + type: integer + format: int64 + x-go-name: CodeCommentsCount + commit_id: + type: string + x-go-name: CommitID + dismissed: + type: boolean + x-go-name: Dismissed + html_url: + description: HTMLURL is the web URL for viewing the review + type: string + x-go-name: HTMLURL + id: + type: integer + format: int64 + x-go-name: ID + official: + type: boolean + x-go-name: Official + pull_request_url: + description: HTMLPullURL is the web URL for the pull request + type: string + x-go-name: HTMLPullURL + stale: + type: boolean + x-go-name: Stale + state: + $ref: '#/definitions/ReviewStateType' + submitted_at: + type: string + format: date-time + x-go-name: Submitted + team: + $ref: '#/definitions/Team' + updated_at: + type: string + format: date-time + x-go-name: Updated + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + PullReviewComment: + description: PullReviewComment represents a comment on a pull request review + type: object + properties: + body: + type: string + x-go-name: Body + commit_id: + type: string + x-go-name: CommitID + created_at: + type: string + format: date-time + x-go-name: Created + diff_hunk: + type: string + x-go-name: DiffHunk + html_url: + type: string + x-go-name: HTMLURL + id: + type: integer + format: int64 + x-go-name: ID + original_commit_id: + type: string + x-go-name: OrigCommitID + original_position: + type: integer + format: uint64 + x-go-name: OldLineNum + path: + type: string + x-go-name: Path + position: + type: integer + format: uint64 + x-go-name: LineNum + pull_request_review_id: + type: integer + format: int64 + x-go-name: ReviewID + pull_request_url: + type: string + x-go-name: HTMLPullURL + resolver: + $ref: '#/definitions/User' + updated_at: + type: string + format: date-time + x-go-name: Updated + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + PullReviewRequestOptions: + description: PullReviewRequestOptions are options to add or remove pull review requests + type: object + properties: + reviewers: + type: array + items: + type: string + x-go-name: Reviewers + team_reviewers: + type: array + items: + type: string + x-go-name: TeamReviewers + x-go-package: code.gitea.io/gitea/modules/structs + PushMirror: + description: PushMirror represents information of a push mirror + type: object + properties: + created: + type: string + format: date-time + x-go-name: CreatedUnix + interval: + description: The sync interval for automatic updates + type: string + x-go-name: Interval + last_error: + description: The last error message encountered during sync + type: string + x-go-name: LastError + last_update: + type: string + format: date-time + x-go-name: LastUpdateUnix + remote_address: + description: The remote repository URL being mirrored to + type: string + x-go-name: RemoteAddress + remote_name: + description: The name of the remote in the git configuration + type: string + x-go-name: RemoteName + repo_name: + description: The name of the source repository + type: string + x-go-name: RepoName + sync_on_commit: + description: Whether to sync on every commit + type: boolean + x-go-name: SyncOnCommit + x-go-package: code.gitea.io/gitea/modules/structs + Reaction: + description: Reaction contain one reaction + type: object + properties: + content: + description: The reaction content (e.g., emoji or reaction type) + type: string + x-go-name: Reaction + created_at: + type: string + format: date-time + x-go-name: Created + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + Reference: + type: object + title: Reference represents a Git reference. + properties: + object: + $ref: '#/definitions/GitObject' + ref: + description: The name of the Git reference (e.g., refs/heads/main) + type: string + x-go-name: Ref + url: + description: The URL to access this Git reference + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + Release: + description: Release represents a repository release + type: object + properties: + assets: + description: The files attached to the release + type: array + items: + $ref: '#/definitions/Attachment' + x-go-name: Attachments + author: + $ref: '#/definitions/User' + body: + description: The release notes or description + type: string + x-go-name: Note + created_at: + type: string + format: date-time + x-go-name: CreatedAt + draft: + description: Whether the release is a draft + type: boolean + x-go-name: IsDraft + html_url: + description: The HTML URL to view the release + type: string + x-go-name: HTMLURL + id: + description: The unique identifier of the release + type: integer + format: int64 + x-go-name: ID + name: + description: The display title of the release + type: string + x-go-name: Title + prerelease: + description: Whether the release is a prerelease + type: boolean + x-go-name: IsPrerelease + published_at: + type: string + format: date-time + x-go-name: PublishedAt + tag_name: + description: The name of the git tag associated with the release + type: string + x-go-name: TagName + tarball_url: + description: The URL to download the tarball archive + type: string + x-go-name: TarURL + target_commitish: + description: The target commitish for the release + type: string + x-go-name: Target + upload_url: + description: The URL template for uploading release assets + type: string + x-go-name: UploadURL + url: + description: The API URL of the release + type: string + x-go-name: URL + zipball_url: + description: The URL to download the zip archive + type: string + x-go-name: ZipURL + x-go-package: code.gitea.io/gitea/modules/structs + RenameBranchRepoOption: + description: RenameBranchRepoOption options when renaming a branch in a repository + type: object + required: + - name + properties: + name: + description: New branch name + type: string + uniqueItems: true + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + RenameOrgOption: + description: RenameOrgOption options when renaming an organization + type: object + required: + - new_name + properties: + new_name: + description: >- + New username for this org. This name cannot be in use yet by any other + user. + type: string + uniqueItems: true + x-go-name: NewName + x-go-package: code.gitea.io/gitea/modules/structs + RenameUserOption: + description: RenameUserOption options when renaming a user + type: object + required: + - new_username + properties: + new_username: + description: >- + New username for this user. This name cannot be in use yet by any + other user. + type: string + uniqueItems: true + x-go-name: NewName + x-go-package: code.gitea.io/gitea/modules/structs + RepoCollaboratorPermission: + description: RepoCollaboratorPermission to get repository permission for a collaborator + type: object + properties: + permission: + description: Permission level of the collaborator + type: string + x-go-name: Permission + role_name: + description: RoleName is the name of the permission role + type: string + x-go-name: RoleName + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + RepoCommit: + type: object + title: >- + RepoCommit contains information of a commit in the context of a + repository. + properties: + author: + $ref: '#/definitions/CommitUser' + committer: + $ref: '#/definitions/CommitUser' + message: + description: Message is the commit message + type: string + x-go-name: Message + tree: + $ref: '#/definitions/CommitMeta' + url: + description: URL is the API URL for the commit + type: string + x-go-name: URL + verification: + $ref: '#/definitions/PayloadCommitVerification' + x-go-package: code.gitea.io/gitea/modules/structs + RepoTopicOptions: + description: RepoTopicOptions a collection of repo topic names + type: object + properties: + topics: + description: list of topic names + type: array + items: + type: string + x-go-name: Topics + x-go-package: code.gitea.io/gitea/modules/structs + RepoTransfer: + description: RepoTransfer represents a pending repo transfer + type: object + properties: + doer: + $ref: '#/definitions/User' + recipient: + $ref: '#/definitions/User' + teams: + type: array + items: + $ref: '#/definitions/Team' + x-go-name: Teams + x-go-package: code.gitea.io/gitea/modules/structs + Repository: + description: Repository represents a repository + type: object + properties: + allow_fast_forward_only_merge: + type: boolean + x-go-name: AllowFastForwardOnly + allow_manual_merge: + type: boolean + x-go-name: AllowManualMerge + allow_merge_commits: + type: boolean + x-go-name: AllowMerge + allow_rebase: + type: boolean + x-go-name: AllowRebase + allow_rebase_explicit: + type: boolean + x-go-name: AllowRebaseMerge + allow_rebase_update: + type: boolean + x-go-name: AllowRebaseUpdate + allow_squash_merge: + type: boolean + x-go-name: AllowSquash + archived: + type: boolean + x-go-name: Archived + archived_at: + type: string + format: date-time + x-go-name: ArchivedAt + autodetect_manual_merge: + type: boolean + x-go-name: AutodetectManualMerge + avatar_url: + type: string + x-go-name: AvatarURL + clone_url: + type: string + x-go-name: CloneURL + created_at: + type: string + format: date-time + x-go-name: Created + default_allow_maintainer_edit: + type: boolean + x-go-name: DefaultAllowMaintainerEdit + default_branch: + type: string + x-go-name: DefaultBranch + default_delete_branch_after_merge: + type: boolean + x-go-name: DefaultDeleteBranchAfterMerge + default_merge_style: + type: string + x-go-name: DefaultMergeStyle + description: + type: string + x-go-name: Description + empty: + type: boolean + x-go-name: Empty + external_tracker: + $ref: '#/definitions/ExternalTracker' + external_wiki: + $ref: '#/definitions/ExternalWiki' + fork: + type: boolean + x-go-name: Fork + forks_count: + type: integer + format: int64 + x-go-name: Forks + full_name: + type: string + x-go-name: FullName + has_actions: + type: boolean + x-go-name: HasActions + has_code: + type: boolean + x-go-name: HasCode + has_issues: + type: boolean + x-go-name: HasIssues + has_packages: + type: boolean + x-go-name: HasPackages + has_projects: + type: boolean + x-go-name: HasProjects + has_pull_requests: + type: boolean + x-go-name: HasPullRequests + has_releases: + type: boolean + x-go-name: HasReleases + has_wiki: + type: boolean + x-go-name: HasWiki + html_url: + type: string + x-go-name: HTMLURL + id: + type: integer + format: int64 + x-go-name: ID + ignore_whitespace_conflicts: + type: boolean + x-go-name: IgnoreWhitespaceConflicts + internal: + type: boolean + x-go-name: Internal + internal_tracker: + $ref: '#/definitions/InternalTracker' + language: + type: string + x-go-name: Language + languages_url: + type: string + x-go-name: LanguagesURL + licenses: + type: array + items: + type: string + x-go-name: Licenses + link: + type: string + x-go-name: Link + mirror: + type: boolean + x-go-name: Mirror + mirror_interval: + type: string + x-go-name: MirrorInterval + mirror_updated: + type: string + format: date-time + x-go-name: MirrorUpdated + name: + type: string + x-go-name: Name + object_format_name: + description: ObjectFormatName of the underlying git repository + type: string + enum: + - sha1 + - sha256 + x-go-name: ObjectFormatName + open_issues_count: + type: integer + format: int64 + x-go-name: OpenIssues + open_pr_counter: + type: integer + format: int64 + x-go-name: OpenPulls + original_url: + type: string + x-go-name: OriginalURL + owner: + $ref: '#/definitions/User' + parent: + $ref: '#/definitions/Repository' + permissions: + $ref: '#/definitions/Permission' + private: + type: boolean + x-go-name: Private + projects_mode: + type: string + x-go-name: ProjectsMode + release_counter: + type: integer + format: int64 + x-go-name: Releases + repo_transfer: + $ref: '#/definitions/RepoTransfer' + size: + type: integer + format: int64 + x-go-name: Size + ssh_url: + type: string + x-go-name: SSHURL + stars_count: + type: integer + format: int64 + x-go-name: Stars + template: + type: boolean + x-go-name: Template + topics: + type: array + items: + type: string + x-go-name: Topics + updated_at: + type: string + format: date-time + x-go-name: Updated + url: + type: string + x-go-name: URL + watchers_count: + type: integer + format: int64 + x-go-name: Watchers + website: + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + RepositoryMeta: + description: RepositoryMeta basic repository information + type: object + properties: + full_name: + type: string + x-go-name: FullName + id: + type: integer + format: int64 + x-go-name: ID + name: + type: string + x-go-name: Name + owner: + type: string + x-go-name: Owner + x-go-package: code.gitea.io/gitea/modules/structs + ReviewStateType: + description: ReviewStateType review state type + type: string + x-go-package: code.gitea.io/gitea/modules/structs + SearchResults: + description: SearchResults results of a successful search + type: object + properties: + data: + description: Data contains the repository search results + type: array + items: + $ref: '#/definitions/Repository' + x-go-name: Data + ok: + description: OK indicates if the search was successful + type: boolean + x-go-name: OK + x-go-package: code.gitea.io/gitea/modules/structs + Secret: + description: Secret represents a secret + type: object + properties: + created_at: + type: string + format: date-time + x-go-name: Created + description: + description: the secret's description + type: string + x-go-name: Description + name: + description: the secret's name + type: string + x-go-name: Name + x-go-package: code.gitea.io/gitea/modules/structs + ServerVersion: + description: ServerVersion wraps the version of the server + type: object + properties: + version: + description: Version is the server version string + type: string + x-go-name: Version + x-go-package: code.gitea.io/gitea/modules/structs + StateType: + description: StateType issue state type + type: string + x-go-package: code.gitea.io/gitea/modules/structs + StopWatch: + description: StopWatch represent a running stopwatch + type: object + properties: + created: + type: string + format: date-time + x-go-name: Created + duration: + description: Duration is a human-readable duration string + type: string + x-go-name: Duration + issue_index: + description: IssueIndex is the index number of the associated issue + type: integer + format: int64 + x-go-name: IssueIndex + issue_title: + description: IssueTitle is the title of the associated issue + type: string + x-go-name: IssueTitle + repo_name: + description: RepoName is the name of the repository + type: string + x-go-name: RepoName + repo_owner_name: + description: RepoOwnerName is the name of the repository owner + type: string + x-go-name: RepoOwnerName + seconds: + description: Seconds is the total elapsed time in seconds + type: integer + format: int64 + x-go-name: Seconds + x-go-package: code.gitea.io/gitea/modules/structs + SubmitPullReviewOptions: + description: SubmitPullReviewOptions are options to submit a pending pull review + type: object + properties: + body: + type: string + x-go-name: Body + event: + $ref: '#/definitions/ReviewStateType' + x-go-package: code.gitea.io/gitea/modules/structs + Tag: + description: Tag represents a repository tag + type: object + properties: + commit: + $ref: '#/definitions/CommitMeta' + id: + description: The ID (SHA) of the tag + type: string + x-go-name: ID + message: + description: The message associated with the tag + type: string + x-go-name: Message + name: + description: The name of the tag + type: string + x-go-name: Name + tarball_url: + description: The URL to download the tarball archive + type: string + x-go-name: TarballURL + zipball_url: + description: The URL to download the zipball archive + type: string + x-go-name: ZipballURL + x-go-package: code.gitea.io/gitea/modules/structs + TagProtection: + description: TagProtection represents a tag protection + type: object + properties: + created_at: + type: string + format: date-time + x-go-name: Created + id: + description: The unique identifier of the tag protection + type: integer + format: int64 + x-go-name: ID + name_pattern: + description: The pattern to match tag names for protection + type: string + x-go-name: NamePattern + updated_at: + type: string + format: date-time + x-go-name: Updated + whitelist_teams: + description: List of team names allowed to create/delete protected tags + type: array + items: + type: string + x-go-name: WhitelistTeams + whitelist_usernames: + description: List of usernames allowed to create/delete protected tags + type: array + items: + type: string + x-go-name: WhitelistUsernames + x-go-package: code.gitea.io/gitea/modules/structs + Team: + description: Team represents a team in an organization + type: object + properties: + can_create_org_repo: + description: Whether the team can create repositories in the organization + type: boolean + x-go-name: CanCreateOrgRepo + description: + description: The description of the team + type: string + x-go-name: Description + id: + description: The unique identifier of the team + type: integer + format: int64 + x-go-name: ID + includes_all_repositories: + description: Whether the team has access to all repositories in the organization + type: boolean + x-go-name: IncludesAllRepositories + name: + description: The name of the team + type: string + x-go-name: Name + organization: + $ref: '#/definitions/Organization' + permission: + type: string + enum: + - none + - read + - write + - admin + - owner + x-go-name: Permission + units: + type: array + items: + type: string + x-go-name: Units + example: + - repo.code + - repo.issues + - repo.ext_issues + - repo.wiki + - repo.pulls + - repo.releases + - repo.projects + - repo.ext_wiki + units_map: + type: object + additionalProperties: + type: string + x-go-name: UnitsMap + example: + repo.code: read + repo.ext_issues: none + repo.ext_wiki: none + repo.issues: write + repo.projects: none + repo.pulls: owner + repo.releases: none + repo.wiki: admin + x-go-package: code.gitea.io/gitea/modules/structs + TimeStamp: + description: TimeStamp defines a timestamp + type: integer + format: int64 + x-go-package: code.gitea.io/gitea/modules/timeutil + TimelineComment: + description: >- + TimelineComment represents a timeline comment (comment of any type) on a + commit or issue + type: object + properties: + assignee: + $ref: '#/definitions/User' + assignee_team: + $ref: '#/definitions/Team' + body: + description: Body contains the timeline event content + type: string + x-go-name: Body + created_at: + type: string + format: date-time + x-go-name: Created + dependent_issue: + $ref: '#/definitions/Issue' + html_url: + description: HTMLURL is the web URL for viewing the comment + type: string + x-go-name: HTMLURL + id: + description: ID is the unique identifier for the timeline comment + type: integer + format: int64 + x-go-name: ID + issue_url: + description: IssueURL is the API URL for the issue + type: string + x-go-name: IssueURL + label: + $ref: '#/definitions/Label' + milestone: + $ref: '#/definitions/Milestone' + new_ref: + type: string + x-go-name: NewRef + new_title: + type: string + x-go-name: NewTitle + old_milestone: + $ref: '#/definitions/Milestone' + old_project_id: + type: integer + format: int64 + x-go-name: OldProjectID + old_ref: + type: string + x-go-name: OldRef + old_title: + type: string + x-go-name: OldTitle + project_id: + type: integer + format: int64 + x-go-name: ProjectID + pull_request_url: + description: PRURL is the API URL for the pull request (if applicable) + type: string + x-go-name: PRURL + ref_action: + type: string + x-go-name: RefAction + ref_comment: + $ref: '#/definitions/Comment' + ref_commit_sha: + description: commit SHA where issue/PR was referenced + type: string + x-go-name: RefCommitSHA + ref_issue: + $ref: '#/definitions/Issue' + removed_assignee: + description: whether the assignees were removed or added + type: boolean + x-go-name: RemovedAssignee + resolve_doer: + $ref: '#/definitions/User' + review_id: + type: integer + format: int64 + x-go-name: ReviewID + tracked_time: + $ref: '#/definitions/TrackedTime' + type: + description: Type indicates the type of timeline event + type: string + x-go-name: Type + updated_at: + type: string + format: date-time + x-go-name: Updated + user: + $ref: '#/definitions/User' + x-go-package: code.gitea.io/gitea/modules/structs + TopicName: + description: TopicName a list of repo topic names + type: object + properties: + topics: + description: List of topic names + type: array + items: + type: string + x-go-name: TopicNames + x-go-package: code.gitea.io/gitea/modules/structs + TopicResponse: + description: TopicResponse for returning topics + type: object + properties: + created: + description: The date and time when the topic was created + type: string + format: date-time + x-go-name: Created + id: + description: The unique identifier of the topic + type: integer + format: int64 + x-go-name: ID + repo_count: + description: The number of repositories using this topic + type: integer + format: int64 + x-go-name: RepoCount + topic_name: + description: The name of the topic + type: string + x-go-name: Name + updated: + description: The date and time when the topic was last updated + type: string + format: date-time + x-go-name: Updated + x-go-package: code.gitea.io/gitea/modules/structs + TrackedTime: + description: TrackedTime worked time for an issue / pr + type: object + properties: + created: + type: string + format: date-time + x-go-name: Created + id: + description: ID is the unique identifier for the tracked time entry + type: integer + format: int64 + x-go-name: ID + issue: + $ref: '#/definitions/Issue' + issue_id: + description: deprecated (only for backwards compatibility) + type: integer + format: int64 + x-go-name: IssueID + time: + description: Time in seconds + type: integer + format: int64 + x-go-name: Time + user_id: + description: deprecated (only for backwards compatibility) + type: integer + format: int64 + x-go-name: UserID + user_name: + description: username of the user + type: string + x-go-name: UserName + x-go-package: code.gitea.io/gitea/modules/structs + TransferRepoOption: + description: TransferRepoOption options when transfer a repository's ownership + type: object + required: + - new_owner + properties: + new_owner: + type: string + x-go-name: NewOwner + team_ids: + description: >- + ID of the team or teams to add to the repository. Teams can only be + added to organization-owned repositories. + type: array + items: + type: integer + format: int64 + x-go-name: TeamIDs + x-go-package: code.gitea.io/gitea/modules/structs + UpdateBranchProtectionPriories: + description: >- + UpdateBranchProtectionPriories a list to update the branch protection rule + priorities + type: object + properties: + ids: + type: array + items: + type: integer + format: int64 + x-go-name: IDs + x-go-package: code.gitea.io/gitea/modules/structs + UpdateFileOptions: + description: >- + UpdateFileOptions options for updating files + + Note: `author` and `committer` are optional (if only one is given, it will + be used for the other, otherwise the authenticated user will be used) + type: object + required: + - sha + - content + properties: + author: + $ref: '#/definitions/Identity' + branch: + description: >- + branch (optional) to base this file from. if not given, the default + branch is used + type: string + x-go-name: BranchName + committer: + $ref: '#/definitions/Identity' + content: + description: content must be base64 encoded + type: string + x-go-name: ContentBase64 + dates: + $ref: '#/definitions/CommitDateOptions' + from_path: + description: >- + from_path (optional) is the path of the original file which will be + moved/renamed to the path in the URL + type: string + x-go-name: FromPath + message: + description: >- + message (optional) for the commit of this file. if not supplied, a + default message will be used + type: string + x-go-name: Message + new_branch: + description: >- + new_branch (optional) will make a new branch from `branch` before + creating the file + type: string + x-go-name: NewBranchName + sha: + description: >- + the blob ID (SHA) for the file that already exists, it is required for + changing existing files + type: string + x-go-name: SHA + signoff: + description: >- + Add a Signed-off-by trailer by the committer at the end of the commit + log message. + type: boolean + x-go-name: Signoff + x-go-package: code.gitea.io/gitea/modules/structs + UpdateRepoAvatarOption: + description: UpdateRepoAvatarUserOption options when updating the repo avatar + type: object + properties: + image: + description: image must be base64 encoded + type: string + x-go-name: Image + x-go-package: code.gitea.io/gitea/modules/structs + UpdateUserAvatarOption: + description: UpdateUserAvatarUserOption options when updating the user avatar + type: object + properties: + image: + description: image must be base64 encoded + type: string + x-go-name: Image + x-go-package: code.gitea.io/gitea/modules/structs + UpdateVariableOption: + description: UpdateVariableOption the option when updating variable + type: object + required: + - value + properties: + description: + description: Description of the variable to update + type: string + x-go-name: Description + name: + description: >- + New name for the variable. If the field is empty, the variable name + won't be updated. + type: string + x-go-name: Name + value: + description: Value of the variable to update + type: string + x-go-name: Value + x-go-package: code.gitea.io/gitea/modules/structs + User: + description: User represents a user + type: object + properties: + active: + description: Is user active + type: boolean + x-go-name: IsActive + avatar_url: + description: URL to the user's avatar + type: string + x-go-name: AvatarURL + created: + type: string + format: date-time + x-go-name: Created + description: + description: the user's description + type: string + x-go-name: Description + email: + type: string + format: email + x-go-name: Email + followers_count: + description: user counts + type: integer + format: int64 + x-go-name: Followers + following_count: + type: integer + format: int64 + x-go-name: Following + full_name: + description: the user's full name + type: string + x-go-name: FullName + html_url: + description: URL to the user's gitea page + type: string + x-go-name: HTMLURL + id: + description: the user's id + type: integer + format: int64 + x-go-name: ID + is_admin: + description: Is the user an administrator + type: boolean + x-go-name: IsAdmin + language: + description: User locale + type: string + x-go-name: Language + last_login: + type: string + format: date-time + x-go-name: LastLogin + location: + description: the user's location + type: string + x-go-name: Location + login: + description: login of the user, same as `username` + type: string + x-go-name: UserName + login_name: + description: >- + identifier of the user, provided by the external authenticator (if + configured) + type: string + default: empty + x-go-name: LoginName + prohibit_login: + description: Is user login prohibited + type: boolean + x-go-name: ProhibitLogin + restricted: + description: Is user restricted + type: boolean + x-go-name: Restricted + source_id: + description: The ID of the user's Authentication Source + type: integer + format: int64 + x-go-name: SourceID + starred_repos_count: + type: integer + format: int64 + x-go-name: StarredRepos + visibility: + description: 'User visibility level option: public, limited, private' + type: string + x-go-name: Visibility + website: + description: the user's website + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + UserBadgeOption: + description: UserBadgeOption options for link between users and badges + type: object + properties: + badge_slugs: + type: array + items: + type: string + x-go-name: BadgeSlugs + example: + - badge1 + - badge2 + x-go-package: code.gitea.io/gitea/modules/structs + UserHeatmapData: + description: UserHeatmapData represents the data needed to create a heatmap + type: object + properties: + contributions: + type: integer + format: int64 + x-go-name: Contributions + timestamp: + $ref: '#/definitions/TimeStamp' + x-go-package: code.gitea.io/gitea/models/activities + UserSettings: + description: UserSettings represents user settings + type: object + properties: + description: + type: string + x-go-name: Description + diff_view_style: + type: string + x-go-name: DiffViewStyle + full_name: + type: string + x-go-name: FullName + hide_activity: + type: boolean + x-go-name: HideActivity + hide_email: + description: Privacy + type: boolean + x-go-name: HideEmail + language: + type: string + x-go-name: Language + location: + type: string + x-go-name: Location + theme: + type: string + x-go-name: Theme + website: + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + UserSettingsOptions: + description: UserSettingsOptions represents options to change user settings + type: object + properties: + description: + type: string + x-go-name: Description + diff_view_style: + type: string + x-go-name: DiffViewStyle + full_name: + type: string + x-go-name: FullName + hide_activity: + type: boolean + x-go-name: HideActivity + hide_email: + description: Privacy + type: boolean + x-go-name: HideEmail + language: + type: string + x-go-name: Language + location: + type: string + x-go-name: Location + theme: + type: string + x-go-name: Theme + website: + type: string + x-go-name: Website + x-go-package: code.gitea.io/gitea/modules/structs + WatchInfo: + description: WatchInfo represents an API watch status of one repository + type: object + properties: + created_at: + description: The timestamp when the watch status was created + type: string + format: date-time + x-go-name: CreatedAt + ignored: + description: Whether notifications for the repository are ignored + type: boolean + x-go-name: Ignored + reason: + description: The reason for the current watch status + x-go-name: Reason + repository_url: + description: The URL of the repository being watched + type: string + x-go-name: RepositoryURL + subscribed: + description: Whether the repository is being watched for notifications + type: boolean + x-go-name: Subscribed + url: + description: The URL for managing the watch status + type: string + x-go-name: URL + x-go-package: code.gitea.io/gitea/modules/structs + WikiCommit: + description: WikiCommit page commit/revision + type: object + properties: + author: + $ref: '#/definitions/CommitUser' + commiter: + $ref: '#/definitions/CommitUser' + message: + description: The commit message + type: string + x-go-name: Message + sha: + description: The commit SHA hash + type: string + x-go-name: ID + x-go-package: code.gitea.io/gitea/modules/structs + WikiCommitList: + description: WikiCommitList commit/revision list + type: object + properties: + commits: + description: The list of wiki commits + type: array + items: + $ref: '#/definitions/WikiCommit' + x-go-name: WikiCommits + count: + description: The total count of commits + type: integer + format: int64 + x-go-name: Count + x-go-package: code.gitea.io/gitea/modules/structs + WikiPage: + description: WikiPage a wiki page + type: object + properties: + commit_count: + description: The number of commits that modified this page + type: integer + format: int64 + x-go-name: CommitCount + content_base64: + description: Page content, base64 encoded + type: string + x-go-name: ContentBase64 + footer: + description: The footer content for the wiki page + type: string + x-go-name: Footer + html_url: + description: The HTML URL to view the wiki page + type: string + x-go-name: HTMLURL + last_commit: + $ref: '#/definitions/WikiCommit' + sidebar: + description: The sidebar content for the wiki page + type: string + x-go-name: Sidebar + sub_url: + description: The sub URL path for the wiki page + type: string + x-go-name: SubURL + title: + description: The title of the wiki page + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs + WikiPageMetaData: + description: WikiPageMetaData wiki page meta information + type: object + properties: + html_url: + description: The HTML URL to view the wiki page + type: string + x-go-name: HTMLURL + last_commit: + $ref: '#/definitions/WikiCommit' + sub_url: + description: The sub URL path for the wiki page + type: string + x-go-name: SubURL + title: + description: The title of the wiki page + type: string + x-go-name: Title + x-go-package: code.gitea.io/gitea/modules/structs +responses: + AccessToken: + description: AccessToken represents an API access token. + schema: + $ref: '#/definitions/AccessToken' + AccessTokenList: + description: AccessTokenList represents a list of API access token. + schema: + type: array + items: + $ref: '#/definitions/AccessToken' + ActionVariable: + description: ActionVariable + schema: + $ref: '#/definitions/ActionVariable' + ActionWorkflow: + description: ActionWorkflow + schema: + $ref: '#/definitions/ActionWorkflow' + ActionWorkflowList: + description: ActionWorkflowList + schema: + $ref: '#/definitions/ActionWorkflowResponse' + ActivityFeedsList: + description: ActivityFeedsList + schema: + type: array + items: + $ref: '#/definitions/Activity' + ActivityPub: + description: ActivityPub + schema: + $ref: '#/definitions/ActivityPub' + AnnotatedTag: + description: AnnotatedTag + schema: + $ref: '#/definitions/AnnotatedTag' + Artifact: + description: Artifact + schema: + $ref: '#/definitions/ActionArtifact' + ArtifactsList: + description: ArtifactsList + schema: + $ref: '#/definitions/ActionArtifactsResponse' + Attachment: + description: Attachment + schema: + $ref: '#/definitions/Attachment' + AttachmentList: + description: AttachmentList + schema: + type: array + items: + $ref: '#/definitions/Attachment' + BadgeList: + description: BadgeList + schema: + type: array + items: + $ref: '#/definitions/Badge' + Branch: + description: Branch + schema: + $ref: '#/definitions/Branch' + BranchList: + description: BranchList + schema: + type: array + items: + $ref: '#/definitions/Branch' + BranchProtection: + description: BranchProtection + schema: + $ref: '#/definitions/BranchProtection' + BranchProtectionList: + description: BranchProtectionList + schema: + type: array + items: + $ref: '#/definitions/BranchProtection' + ChangedFileList: + description: ChangedFileList + schema: + type: array + items: + $ref: '#/definitions/ChangedFile' + headers: + X-HasMore: + type: boolean + description: True if there is another page + X-Page: + type: integer + format: int64 + description: The current page + X-PageCount: + type: integer + format: int64 + description: Total number of pages + X-PerPage: + type: integer + format: int64 + description: Commits per page + X-Total: + type: integer + format: int64 + description: Total commit count + CombinedStatus: + description: CombinedStatus + schema: + $ref: '#/definitions/CombinedStatus' + Comment: + description: Comment + schema: + $ref: '#/definitions/Comment' + CommentList: + description: CommentList + schema: + type: array + items: + $ref: '#/definitions/Comment' + Commit: + description: Commit + schema: + $ref: '#/definitions/Commit' + CommitList: + description: CommitList + schema: + type: array + items: + $ref: '#/definitions/Commit' + headers: + X-HasMore: + type: boolean + description: True if there is another page + X-Page: + type: integer + format: int64 + description: The current page + X-PageCount: + type: integer + format: int64 + description: Total number of pages + X-PerPage: + type: integer + format: int64 + description: Commits per page + X-Total: + type: integer + format: int64 + description: Total commit count + CommitStatus: + description: CommitStatus + schema: + $ref: '#/definitions/CommitStatus' + CommitStatusList: + description: CommitStatusList + schema: + type: array + items: + $ref: '#/definitions/CommitStatus' + Compare: + description: '' + schema: + $ref: '#/definitions/Compare' + ContentsExtResponse: + description: '' + schema: + $ref: '#/definitions/ContentsExtResponse' + ContentsListResponse: + description: ContentsListResponse + schema: + type: array + items: + $ref: '#/definitions/ContentsResponse' + ContentsResponse: + description: ContentsResponse + schema: + $ref: '#/definitions/ContentsResponse' + CronList: + description: CronList + schema: + type: array + items: + $ref: '#/definitions/Cron' + DeployKey: + description: DeployKey + schema: + $ref: '#/definitions/DeployKey' + DeployKeyList: + description: DeployKeyList + schema: + type: array + items: + $ref: '#/definitions/DeployKey' + EmailList: + description: EmailList + schema: + type: array + items: + $ref: '#/definitions/Email' + EmptyRepository: + description: EmptyRepository + schema: + $ref: '#/definitions/APIError' + FileDeleteResponse: + description: FileDeleteResponse + schema: + $ref: '#/definitions/FileDeleteResponse' + FileResponse: + description: FileResponse + schema: + $ref: '#/definitions/FileResponse' + FilesResponse: + description: FilesResponse + schema: + $ref: '#/definitions/FilesResponse' + GPGKey: + description: GPGKey + schema: + $ref: '#/definitions/GPGKey' + GPGKeyList: + description: GPGKeyList + schema: + type: array + items: + $ref: '#/definitions/GPGKey' + GeneralAPISettings: + description: GeneralAPISettings + schema: + $ref: '#/definitions/GeneralAPISettings' + GeneralAttachmentSettings: + description: GeneralAttachmentSettings + schema: + $ref: '#/definitions/GeneralAttachmentSettings' + GeneralRepoSettings: + description: GeneralRepoSettings + schema: + $ref: '#/definitions/GeneralRepoSettings' + GeneralUISettings: + description: GeneralUISettings + schema: + $ref: '#/definitions/GeneralUISettings' + GitBlobResponse: + description: GitBlobResponse + schema: + $ref: '#/definitions/GitBlobResponse' + GitHook: + description: GitHook + schema: + $ref: '#/definitions/GitHook' + GitHookList: + description: GitHookList + schema: + type: array + items: + $ref: '#/definitions/GitHook' + GitTreeResponse: + description: GitTreeResponse + schema: + $ref: '#/definitions/GitTreeResponse' + GitignoreTemplateInfo: + description: GitignoreTemplateInfo + schema: + $ref: '#/definitions/GitignoreTemplateInfo' + GitignoreTemplateList: + description: GitignoreTemplateList + schema: + type: array + items: + type: string + Hook: + description: Hook + schema: + $ref: '#/definitions/Hook' + HookList: + description: HookList + schema: + type: array + items: + $ref: '#/definitions/Hook' + Issue: + description: Issue + schema: + $ref: '#/definitions/Issue' + IssueDeadline: + description: IssueDeadline + schema: + $ref: '#/definitions/IssueDeadline' + IssueList: + description: IssueList + schema: + type: array + items: + $ref: '#/definitions/Issue' + IssueTemplates: + description: IssueTemplates + schema: + type: array + items: + $ref: '#/definitions/IssueTemplate' + Label: + description: Label + schema: + $ref: '#/definitions/Label' + LabelList: + description: LabelList + schema: + type: array + items: + $ref: '#/definitions/Label' + LabelTemplateInfo: + description: LabelTemplateInfo + schema: + type: array + items: + $ref: '#/definitions/LabelTemplate' + LabelTemplateList: + description: LabelTemplateList + schema: + type: array + items: + type: string + LanguageStatistics: + description: LanguageStatistics + schema: + type: object + additionalProperties: + type: integer + format: int64 + LicenseTemplateInfo: + description: LicenseTemplateInfo + schema: + $ref: '#/definitions/LicenseTemplateInfo' + LicenseTemplateList: + description: LicenseTemplateList + schema: + type: array + items: + $ref: '#/definitions/LicensesTemplateListEntry' + LicensesList: + description: LicensesList + schema: + type: array + items: + type: string + MarkdownRender: + description: MarkdownRender is a rendered markdown document + schema: + type: string + MarkupRender: + description: MarkupRender is a rendered markup document + schema: + type: string + MergeUpstreamRequest: + description: '' + schema: + $ref: '#/definitions/MergeUpstreamRequest' + MergeUpstreamResponse: + description: '' + schema: + $ref: '#/definitions/MergeUpstreamResponse' + Milestone: + description: Milestone + schema: + $ref: '#/definitions/Milestone' + MilestoneList: + description: MilestoneList + schema: + type: array + items: + $ref: '#/definitions/Milestone' + NodeInfo: + description: NodeInfo + schema: + $ref: '#/definitions/NodeInfo' + Note: + description: Note + schema: + $ref: '#/definitions/Note' + NotificationCount: + description: Number of unread notifications + schema: + $ref: '#/definitions/NotificationCount' + NotificationThread: + description: NotificationThread + schema: + $ref: '#/definitions/NotificationThread' + NotificationThreadList: + description: NotificationThreadList + schema: + type: array + items: + $ref: '#/definitions/NotificationThread' + OAuth2Application: + description: OAuth2Application + schema: + $ref: '#/definitions/OAuth2Application' + OAuth2ApplicationList: + description: OAuth2ApplicationList represents a list of OAuth2 applications. + schema: + type: array + items: + $ref: '#/definitions/OAuth2Application' + Organization: + description: Organization + schema: + $ref: '#/definitions/Organization' + OrganizationList: + description: OrganizationList + schema: + type: array + items: + $ref: '#/definitions/Organization' + OrganizationPermissions: + description: OrganizationPermissions + schema: + $ref: '#/definitions/OrganizationPermissions' + Package: + description: Package + schema: + $ref: '#/definitions/Package' + PackageFileList: + description: PackageFileList + schema: + type: array + items: + $ref: '#/definitions/PackageFile' + PackageList: + description: PackageList + schema: + type: array + items: + $ref: '#/definitions/Package' + PublicKey: + description: PublicKey + schema: + $ref: '#/definitions/PublicKey' + PublicKeyList: + description: PublicKeyList + schema: + type: array + items: + $ref: '#/definitions/PublicKey' + PullRequest: + description: PullRequest + schema: + $ref: '#/definitions/PullRequest' + PullRequestList: + description: PullRequestList + schema: + type: array + items: + $ref: '#/definitions/PullRequest' + PullReview: + description: PullReview + schema: + $ref: '#/definitions/PullReview' + PullReviewComment: + description: PullComment + schema: + $ref: '#/definitions/PullReviewComment' + PullReviewCommentList: + description: PullCommentList + schema: + type: array + items: + $ref: '#/definitions/PullReviewComment' + PullReviewList: + description: PullReviewList + schema: + type: array + items: + $ref: '#/definitions/PullReview' + PushMirror: + description: PushMirror + schema: + $ref: '#/definitions/PushMirror' + PushMirrorList: + description: PushMirrorList + schema: + type: array + items: + $ref: '#/definitions/PushMirror' + Reaction: + description: Reaction + schema: + $ref: '#/definitions/Reaction' + ReactionList: + description: ReactionList + schema: + type: array + items: + $ref: '#/definitions/Reaction' + Reference: + description: Reference + schema: + $ref: '#/definitions/Reference' + ReferenceList: + description: ReferenceList + schema: + type: array + items: + $ref: '#/definitions/Reference' + RegistrationToken: + description: RegistrationToken is response related to registration token + headers: + token: + type: string + Release: + description: Release + schema: + $ref: '#/definitions/Release' + ReleaseList: + description: ReleaseList + schema: + type: array + items: + $ref: '#/definitions/Release' + RepoCollaboratorPermission: + description: RepoCollaboratorPermission + schema: + $ref: '#/definitions/RepoCollaboratorPermission' + RepoIssueConfig: + description: RepoIssueConfig + schema: + $ref: '#/definitions/IssueConfig' + RepoIssueConfigValidation: + description: RepoIssueConfigValidation + schema: + $ref: '#/definitions/IssueConfigValidation' + RepoNewIssuePinsAllowed: + description: RepoNewIssuePinsAllowed + schema: + $ref: '#/definitions/NewIssuePinsAllowed' + Repository: + description: Repository + schema: + $ref: '#/definitions/Repository' + RepositoryList: + description: RepositoryList + schema: + type: array + items: + $ref: '#/definitions/Repository' + Runner: + description: Runner + schema: + $ref: '#/definitions/ActionRunner' + RunnerList: + description: RunnerList + schema: + $ref: '#/definitions/ActionRunnersResponse' + SearchResults: + description: SearchResults + schema: + $ref: '#/definitions/SearchResults' + Secret: + description: Secret + schema: + $ref: '#/definitions/Secret' + SecretList: + description: SecretList + schema: + type: array + items: + $ref: '#/definitions/Secret' + ServerVersion: + description: ServerVersion + schema: + $ref: '#/definitions/ServerVersion' + StopWatch: + description: StopWatch + schema: + $ref: '#/definitions/StopWatch' + StopWatchList: + description: StopWatchList + schema: + type: array + items: + $ref: '#/definitions/StopWatch' + StringSlice: + description: StringSlice + schema: + type: array + items: + type: string + Tag: + description: Tag + schema: + $ref: '#/definitions/Tag' + TagList: + description: TagList + schema: + type: array + items: + $ref: '#/definitions/Tag' + TagProtection: + description: TagProtection + schema: + $ref: '#/definitions/TagProtection' + TagProtectionList: + description: TagProtectionList + schema: + type: array + items: + $ref: '#/definitions/TagProtection' + TasksList: + description: TasksList + schema: + $ref: '#/definitions/ActionTaskResponse' + Team: + description: Team + schema: + $ref: '#/definitions/Team' + TeamList: + description: TeamList + schema: + type: array + items: + $ref: '#/definitions/Team' + TimelineList: + description: TimelineList + schema: + type: array + items: + $ref: '#/definitions/TimelineComment' + TopicListResponse: + description: TopicListResponse + schema: + type: array + items: + $ref: '#/definitions/TopicResponse' + TopicNames: + description: TopicNames + schema: + $ref: '#/definitions/TopicName' + TrackedTime: + description: TrackedTime + schema: + $ref: '#/definitions/TrackedTime' + TrackedTimeList: + description: TrackedTimeList + schema: + type: array + items: + $ref: '#/definitions/TrackedTime' + User: + description: User + schema: + $ref: '#/definitions/User' + UserHeatmapData: + description: UserHeatmapData + schema: + type: array + items: + $ref: '#/definitions/UserHeatmapData' + UserList: + description: UserList + schema: + type: array + items: + $ref: '#/definitions/User' + UserSettings: + description: UserSettings + schema: + type: array + items: + $ref: '#/definitions/UserSettings' + VariableList: + description: VariableList + schema: + type: array + items: + $ref: '#/definitions/ActionVariable' + WatchInfo: + description: WatchInfo + schema: + $ref: '#/definitions/WatchInfo' + WikiCommitList: + description: WikiCommitList + schema: + $ref: '#/definitions/WikiCommitList' + WikiPage: + description: WikiPage + schema: + $ref: '#/definitions/WikiPage' + WikiPageList: + description: WikiPageList + schema: + type: array + items: + $ref: '#/definitions/WikiPageMetaData' + WorkflowJob: + description: WorkflowJob + schema: + $ref: '#/definitions/ActionWorkflowJob' + WorkflowJobsList: + description: WorkflowJobsList + schema: + $ref: '#/definitions/ActionWorkflowJobsResponse' + WorkflowRun: + description: WorkflowRun + schema: + $ref: '#/definitions/ActionWorkflowRun' + WorkflowRunsList: + description: WorkflowRunsList + schema: + $ref: '#/definitions/ActionWorkflowRunsResponse' + conflict: + description: APIConflict is a conflict empty response + empty: + description: APIEmpty is an empty response + error: + description: APIError is error format response + headers: + message: + type: string + url: + type: string + forbidden: + description: APIForbiddenError is a forbidden error response + headers: + message: + type: string + url: + type: string + invalidTopicsError: + description: APIInvalidTopicsError is error format response to invalid topics + headers: + invalidTopics: + type: array + items: + type: string + message: + type: string + notFound: + description: APINotFound is a not found empty response + parameterBodies: + description: parameterBodies + schema: + $ref: '#/definitions/LockIssueOption' + redirect: + description: APIRedirect is a redirect response + repoArchivedError: + description: >- + APIRepoArchivedError is an error that is raised when an archived repo + should be modified + headers: + message: + type: string + url: + type: string + string: + description: APIString is a string response + schema: + type: string + validationError: + description: APIValidationError is error format response related to input validation + headers: + message: + type: string + url: + type: string +securityDefinitions: + AccessToken: + description: >- + This authentication option is deprecated for removal in Gitea 1.23. Please + use AuthorizationHeaderToken instead. + type: apiKey + name: access_token + in: query + AuthorizationHeaderToken: + description: API tokens must be prepended with "token" followed by a space. + type: apiKey + name: Authorization + in: header + BasicAuth: + type: basic + SudoHeader: + description: >- + Sudo API request as the user provided as the key. Admin privileges are + required. + type: apiKey + name: Sudo + in: header + SudoParam: + description: >- + Sudo API request as the user provided as the key. Admin privileges are + required. + type: apiKey + name: sudo + in: query + TOTPHeader: + description: >- + Must be used in combination with BasicAuth if two-factor authentication is + enabled. + type: apiKey + name: X-GITEA-OTP + in: header + Token: + description: >- + This authentication option is deprecated for removal in Gitea 1.23. Please + use AuthorizationHeaderToken instead. + type: apiKey + name: token + in: query +security: + - BasicAuth: [] + - Token: [] + - AccessToken: [] + - AuthorizationHeaderToken: [] + - SudoParam: [] + - SudoHeader: [] + - TOTPHeader: [] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..effbf2f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,27 @@ +[project] +name = "gitea-mcp" +version = "0.1.0" +description = "MCP server for Gitea API" +readme = "README.md" +requires-python = ">=3.11" +dependencies = [ + "fastmcp>=2.0", + "httpx>=0.27", + "starlette>=0.40", + "uvicorn>=0.30", + "python-dotenv>=1.0", +] + +[project.optional-dependencies] +dev = [ + "pytest>=8.0", + "pytest-asyncio>=0.24", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["."] +include = ["server.py"] diff --git a/server.py b/server.py new file mode 100644 index 0000000..3fcf506 --- /dev/null +++ b/server.py @@ -0,0 +1,374 @@ +""" +Gitea MCP Server - Hybrid MCP Light implementation for Gitea API. + +Provides 5 curated tools plus an API pass-through for complete API coverage. +""" + +import json +import os +from contextlib import asynccontextmanager +from typing import Any +from urllib.parse import urljoin + +import httpx +from dotenv import load_dotenv +from fastmcp import FastMCP +from starlette.applications import Starlette +from starlette.responses import JSONResponse +from starlette.routing import Mount, Route + +load_dotenv() + +# Configuration +GITEA_URL = os.getenv("GITEA_URL", "").rstrip("/") +GITEA_TOKEN = os.getenv("GITEA_TOKEN", "") + +# Initialize MCP server +mcp = FastMCP( + "Gitea MCP", + instructions="MCP server for Gitea API - provides repository, issue, and user management", +) + + +class GiteaClient: + """HTTP client for Gitea API with token authentication.""" + + def __init__(self, base_url: str, token: str): + self.base_url = base_url.rstrip("/") + self.api_url = f"{self.base_url}/api/v1" + self.token = token + self._client: httpx.AsyncClient | None = None + + async def _get_client(self) -> httpx.AsyncClient: + if self._client is None: + self._client = httpx.AsyncClient( + headers={ + "Authorization": f"token {self.token}", + "Accept": "application/json", + "Content-Type": "application/json", + }, + timeout=30.0, + ) + return self._client + + async def close(self): + if self._client: + await self._client.aclose() + self._client = None + + async def request( + self, + method: str, + endpoint: str, + params: dict[str, Any] | None = None, + json_body: dict[str, Any] | None = None, + ) -> dict[str, Any]: + """Execute an API request to Gitea.""" + client = await self._get_client() + url = f"{self.api_url}{endpoint}" + + try: + response = await client.request( + method=method.upper(), + url=url, + params=params, + json=json_body, + ) + response.raise_for_status() + + if response.status_code == 204: + return {"status": "success", "message": "No content"} + + return response.json() + except httpx.HTTPStatusError as e: + return { + "error": True, + "status_code": e.response.status_code, + "message": str(e), + "detail": e.response.text[:500] if e.response.text else None, + } + except Exception as e: + return {"error": True, "message": str(e)} + + async def health_check(self) -> bool: + """Check if Gitea is accessible.""" + try: + client = await self._get_client() + response = await client.get(f"{self.api_url}/version") + return response.status_code == 200 + except Exception: + return False + + +# Global client instance +client = GiteaClient(GITEA_URL, GITEA_TOKEN) + + +# ============================================================================= +# Curated API Reference +# ============================================================================= + +API_REFERENCE = """ +# Gitea API Quick Reference + +For complete API documentation, see: {base_url}/api/swagger + +## Common Endpoints for `gitea_api_call` tool + +### Repository Operations +- GET `/repos/search?q={{keyword}}&limit=10` - Search repositories +- GET `/repos/{{owner}}/{{repo}}` - Get repository details +- POST `/repos/{{owner}}/{{repo}}` - Create repository (body: name, description, private) +- PATCH `/repos/{{owner}}/{{repo}}` - Update repository +- DELETE `/repos/{{owner}}/{{repo}}` - Delete repository +- GET `/repos/{{owner}}/{{repo}}/branches` - List branches +- GET `/repos/{{owner}}/{{repo}}/commits?limit=20` - List commits + +### Issues +- GET `/repos/{{owner}}/{{repo}}/issues?state=open` - List issues +- POST `/repos/{{owner}}/{{repo}}/issues` - Create issue (body: title, body) +- GET `/repos/{{owner}}/{{repo}}/issues/{{index}}` - Get issue by number +- PATCH `/repos/{{owner}}/{{repo}}/issues/{{index}}` - Update issue +- POST `/repos/{{owner}}/{{repo}}/issues/{{index}}/comments` - Add comment (body: body) + +### Pull Requests +- GET `/repos/{{owner}}/{{repo}}/pulls?state=open` - List PRs +- POST `/repos/{{owner}}/{{repo}}/pulls` - Create PR (body: title, head, base) +- GET `/repos/{{owner}}/{{repo}}/pulls/{{index}}` - Get PR by number +- POST `/repos/{{owner}}/{{repo}}/pulls/{{index}}/merge` - Merge PR + +### File Operations +- GET `/repos/{{owner}}/{{repo}}/contents/{{filepath}}?ref={{branch}}` - Get file content +- PUT `/repos/{{owner}}/{{repo}}/contents/{{filepath}}` - Create/update file +- DELETE `/repos/{{owner}}/{{repo}}/contents/{{filepath}}` - Delete file + +### Releases & Tags +- GET `/repos/{{owner}}/{{repo}}/releases` - List releases +- GET `/repos/{{owner}}/{{repo}}/releases/latest` - Get latest release +- POST `/repos/{{owner}}/{{repo}}/releases` - Create release +- GET `/repos/{{owner}}/{{repo}}/tags` - List tags +- POST `/repos/{{owner}}/{{repo}}/tags` - Create tag + +### Actions/CI (Gitea Actions) +- GET `/repos/{{owner}}/{{repo}}/actions/runs` - List workflow runs +- GET `/repos/{{owner}}/{{repo}}/actions/jobs?status={{status}}` - List jobs + +### User & Organizations +- GET `/user` - Get authenticated user +- GET `/users/{{username}}` - Get user by username +- GET `/user/repos?limit=50` - List authenticated user's repos +- GET `/orgs/{{org}}` - Get organization +- GET `/orgs/{{org}}/repos` - List organization repos +- GET `/orgs/{{org}}/members` - List organization members + +### Pagination +Most list endpoints support `page` and `limit` query parameters. +Default limit is usually 20-50 items. +""".format(base_url=GITEA_URL) + + +@mcp.resource("gitea://api-reference") +def get_api_reference() -> str: + """Returns the Gitea API quick reference for using the gitea_api_call tool.""" + return API_REFERENCE + + +# ============================================================================= +# MCP Tools - Curated Operations +# ============================================================================= + + +@mcp.tool() +async def get_my_user_info() -> str: + """Get information about the authenticated user. + + Returns the current user's profile including username, email, and permissions. + This is useful for determining the authenticated identity before other operations. + """ + result = await client.request("GET", "/user") + return json.dumps(result) + + +@mcp.tool() +async def search_repos( + keyword: str, + limit: int = 20, + private: bool | None = None, + archived: bool | None = None, +) -> str: + """Search for repositories by keyword. + + Args: + keyword: Search term to find in repository names/descriptions + limit: Maximum number of results (default: 20, max: 50) + private: Filter by private status (optional) + archived: Filter by archived status (optional) + """ + params: dict[str, Any] = {"q": keyword, "limit": min(limit, 50)} + if private is not None: + params["private"] = private + if archived is not None: + params["archived"] = archived + + result = await client.request("GET", "/repos/search", params=params) + return json.dumps(result) + + +@mcp.tool() +async def list_my_repos( + limit: int = 50, + page: int = 1, +) -> str: + """List repositories owned by or accessible to the authenticated user. + + Args: + limit: Maximum number of results per page (default: 50) + page: Page number for pagination (default: 1) + """ + params = {"limit": limit, "page": page} + result = await client.request("GET", "/user/repos", params=params) + return json.dumps(result) + + +@mcp.tool() +async def get_repo(owner: str, repo: str) -> str: + """Get detailed information about a specific repository. + + Args: + owner: Repository owner (username or organization) + repo: Repository name + """ + result = await client.request("GET", f"/repos/{owner}/{repo}") + return json.dumps(result) + + +@mcp.tool() +async def list_repo_issues( + owner: str, + repo: str, + state: str = "open", + limit: int = 30, + page: int = 1, +) -> str: + """List issues for a repository. + + Args: + owner: Repository owner (username or organization) + repo: Repository name + state: Issue state filter: 'open', 'closed', or 'all' (default: 'open') + limit: Maximum number of results (default: 30) + page: Page number for pagination (default: 1) + """ + params = {"state": state, "limit": limit, "page": page} + result = await client.request("GET", f"/repos/{owner}/{repo}/issues", params=params) + return json.dumps(result) + + +@mcp.tool() +async def list_repo_commits( + owner: str, + repo: str, + sha: str | None = None, + limit: int = 30, + page: int = 1, +) -> str: + """List commits for a repository. + + Args: + owner: Repository owner (username or organization) + repo: Repository name + sha: SHA or branch to start listing from (default: default branch) + limit: Maximum number of results (default: 30) + page: Page number for pagination (default: 1) + """ + params: dict[str, Any] = {"limit": limit, "page": page} + if sha: + params["sha"] = sha + + result = await client.request("GET", f"/repos/{owner}/{repo}/commits", params=params) + return json.dumps(result) + + +# ============================================================================= +# API Pass-through Tool +# ============================================================================= + + +@mcp.tool() +async def gitea_api_call( + endpoint: str, + method: str = "GET", + params: str = "{}", + body: str = "{}", +) -> str: + """Execute a raw API call to Gitea. + + Use this for any operation not covered by the other tools. + Refer to the 'gitea://api-reference' resource for common endpoints, + or see the full API docs at {base_url}/api/swagger + + Args: + endpoint: API endpoint path (e.g., '/repos/owner/repo/releases') + method: HTTP method (GET, POST, PUT, PATCH, DELETE) + params: JSON string of query parameters (optional) + body: JSON string of request body for POST/PUT/PATCH (optional) + + Example: + gitea_api_call('/repos/myorg/myrepo/releases', 'POST', + body='{{"tag_name": "v1.0.0", "name": "Release 1.0"}}') + """.format(base_url=GITEA_URL) + try: + params_dict = json.loads(params) if params else {} + body_dict = json.loads(body) if body else {} + except json.JSONDecodeError as e: + return json.dumps({"error": True, "message": f"Invalid JSON: {e}"}) + + result = await client.request( + method=method, + endpoint=endpoint, + params=params_dict if params_dict else None, + json_body=body_dict if body_dict else None, + ) + return json.dumps(result) + + +# ============================================================================= +# Starlette Wrapper for Health Checks +# ============================================================================= + + +async def health_check(request): + """Health check endpoint for Docker/Kubernetes.""" + is_healthy = await client.health_check() + if is_healthy: + return JSONResponse({"status": "ok", "gitea_url": GITEA_URL}) + return JSONResponse( + {"status": "unhealthy", "message": "Cannot connect to Gitea"}, + status_code=503, + ) + + +@asynccontextmanager +async def lifespan(app): + """Manage client lifecycle.""" + yield + await client.close() + + +def create_app() -> Starlette: + """Create the Starlette application with health check and MCP.""" + mcp_app = mcp.http_app() + + # Add health check route directly to the MCP app + mcp_app.add_route("/health", health_check, methods=["GET"]) + + return mcp_app + + +app = create_app() + +if __name__ == "__main__": + import uvicorn + + port = int(os.getenv("PORT", "8000")) + uvicorn.run(app, host="0.0.0.0", port=port)