Gitea repository API

The repository API from Gitea — 133 operation(s) for repository.

Operations 197

POST /repos/migrate Migrate a remote git repository #
GET /repos/search Search for repositories #
GET /repos/{owner}/{repo} Get a repository #
DELETE /repos/{owner}/{repo} Delete a repository #
PATCH /repos/{owner}/{repo} Edit a repository's properties. Only fields that are set will be changed. #
GET /repos/{owner}/{repo}/actions/artifacts Lists all artifacts for a repository #
GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id} Gets a specific artifact for a workflow run #
DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id} Deletes a specific artifact for a workflow run #
GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip Downloads a specific artifact for a workflow run redirects to blob url #
GET /repos/{owner}/{repo}/actions/jobs Lists all jobs for a repository #
GET /repos/{owner}/{repo}/actions/jobs/{job_id} Gets a specific workflow job for a workflow run #
GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs Downloads the job logs for a workflow run #
GET /repos/{owner}/{repo}/actions/runners Get repo-level runners #
POST /repos/{owner}/{repo}/actions/runners/registration-token Get a repository's actions runner registration token #
GET /repos/{owner}/{repo}/actions/runners/{runner_id} Get a repo-level runner #
DELETE /repos/{owner}/{repo}/actions/runners/{runner_id} Delete a repo-level runner #
PATCH /repos/{owner}/{repo}/actions/runners/{runner_id} Update a repo-level runner #
GET /repos/{owner}/{repo}/actions/runs Lists all runs for a repository run #
GET /repos/{owner}/{repo}/actions/runs/{run} Gets a specific workflow run #
DELETE /repos/{owner}/{repo}/actions/runs/{run} Delete a workflow run #
GET /repos/{owner}/{repo}/actions/runs/{run}/artifacts Lists all artifacts for a repository run #
GET /repos/{owner}/{repo}/actions/runs/{run}/jobs Lists all jobs for a workflow run #
POST /repos/{owner}/{repo}/actions/runs/{run}/jobs/{job_id}/rerun Reruns a specific workflow job in a run #
POST /repos/{owner}/{repo}/actions/runs/{run}/rerun Reruns an entire workflow run #
POST /repos/{owner}/{repo}/actions/runs/{run}/rerun-failed-jobs Reruns all failed jobs in a workflow run #
GET /repos/{owner}/{repo}/actions/secrets List an repo's actions secrets #
PUT /repos/{owner}/{repo}/actions/secrets/{secretname} Create or Update a secret value in a repository #
DELETE /repos/{owner}/{repo}/actions/secrets/{secretname} Delete a secret in a repository #
GET /repos/{owner}/{repo}/actions/tasks List a repository's action tasks #
GET /repos/{owner}/{repo}/actions/variables Get repo-level variables list #
GET /repos/{owner}/{repo}/actions/variables/{variablename} Get a repo-level variable #
PUT /repos/{owner}/{repo}/actions/variables/{variablename} Update a repo-level variable #
POST /repos/{owner}/{repo}/actions/variables/{variablename} Create a repo-level variable #
DELETE /repos/{owner}/{repo}/actions/variables/{variablename} Delete a repo-level variable #
GET /repos/{owner}/{repo}/actions/workflows List repository workflows #
GET /repos/{owner}/{repo}/actions/workflows/{workflow_id} Get a workflow #
PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable Disable a workflow #
POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches Create a workflow dispatch event #
PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable Enable a workflow #
GET /repos/{owner}/{repo}/activities/feeds List a repository's activity feeds #
GET /repos/{owner}/{repo}/archive/{archive} Get an archive of a repository #
GET /repos/{owner}/{repo}/assignees Return all users that have write access and can be assigned to issues #
POST /repos/{owner}/{repo}/avatar Update avatar #
DELETE /repos/{owner}/{repo}/avatar Delete avatar #
GET /repos/{owner}/{repo}/branch_protections List branch protections for a repository #
POST /repos/{owner}/{repo}/branch_protections Create a branch protections for a repository #
POST /repos/{owner}/{repo}/branch_protections/priority Update the priorities of branch protections for a repository. #
GET /repos/{owner}/{repo}/branch_protections/{name} Get a specific branch protection for the repository #
DELETE /repos/{owner}/{repo}/branch_protections/{name} Delete a specific branch protection for the repository #
PATCH /repos/{owner}/{repo}/branch_protections/{name} Edit a branch protections for a repository. Only fields that are set will be changed #
GET /repos/{owner}/{repo}/branches List a repository's branches #
POST /repos/{owner}/{repo}/branches Create a branch #
GET /repos/{owner}/{repo}/branches/{branch} Retrieve a specific branch from a repository, including its effective branch protection #
PUT /repos/{owner}/{repo}/branches/{branch} Update a branch reference to a new commit #
DELETE /repos/{owner}/{repo}/branches/{branch} Delete a specific branch from a repository #
PATCH /repos/{owner}/{repo}/branches/{branch} Rename a branch #
GET /repos/{owner}/{repo}/collaborators List a repository's collaborators #
GET /repos/{owner}/{repo}/collaborators/{collaborator} Check if a user is a collaborator of a repository #
PUT /repos/{owner}/{repo}/collaborators/{collaborator} Add or Update a collaborator to a repository #
DELETE /repos/{owner}/{repo}/collaborators/{collaborator} Delete a collaborator from a repository #
GET /repos/{owner}/{repo}/collaborators/{collaborator}/permission Get repository permissions for a user #
GET /repos/{owner}/{repo}/commits Get a list of all commits from a repository #
GET /repos/{owner}/{repo}/commits/{ref}/status Get a commit's combined status, by branch/tag/commit reference #
GET /repos/{owner}/{repo}/commits/{ref}/statuses Get a commit's statuses, by branch/tag/commit reference #
GET /repos/{owner}/{repo}/commits/{sha}/pull Get the merged pull request of the commit #
GET /repos/{owner}/{repo}/compare/{basehead} Get commit comparison information #
GET /repos/{owner}/{repo}/contents Gets the metadata of all the entries of the root dir. #
POST /repos/{owner}/{repo}/contents Modify multiple files in a repository #
GET /repos/{owner}/{repo}/contents-ext/{filepath} The extended "contents" API, to get file metadata and/or content, or list a directory. #
GET /repos/{owner}/{repo}/contents/{filepath} Gets the metadata and contents (if a file) of an entry in a repository, or a list of entries if a dir. #
PUT /repos/{owner}/{repo}/contents/{filepath} Update a file in a repository if SHA is set, or create the file if SHA is not set #
POST /repos/{owner}/{repo}/contents/{filepath} Create a file in a repository #
DELETE /repos/{owner}/{repo}/contents/{filepath} Delete a file in a repository #
POST /repos/{owner}/{repo}/diffpatch Apply diff patch to repository #
GET /repos/{owner}/{repo}/editorconfig/{filepath} Get the EditorConfig definitions of a file in a repository #
GET /repos/{owner}/{repo}/file-contents Get the metadata and contents of requested files #
POST /repos/{owner}/{repo}/file-contents Get the metadata and contents of requested files #
GET /repos/{owner}/{repo}/forks List a repository's forks #
POST /repos/{owner}/{repo}/forks Fork a repository #
GET /repos/{owner}/{repo}/git/blobs/{sha} Gets the blob of a repository. #
GET /repos/{owner}/{repo}/git/commits/{sha} Get a single commit from a repository #
GET /repos/{owner}/{repo}/git/commits/{sha}.{diffType} Get a commit's diff or patch #
GET /repos/{owner}/{repo}/git/notes/{sha} Get a note corresponding to a single commit from a repository #
GET /repos/{owner}/{repo}/git/refs Get specified ref or filtered repository's refs #
GET /repos/{owner}/{repo}/git/refs/{ref} Get specified ref or filtered repository's refs #
GET /repos/{owner}/{repo}/git/tags/{sha} Gets the tag object of an annotated tag (not lightweight tags) #
GET /repos/{owner}/{repo}/git/trees/{sha} Gets the tree of a repository. #
GET /repos/{owner}/{repo}/hooks List the hooks in a repository #
POST /repos/{owner}/{repo}/hooks Create a hook #
GET /repos/{owner}/{repo}/hooks/git List the Git hooks in a repository #
GET /repos/{owner}/{repo}/hooks/git/{id} Get a Git hook #
DELETE /repos/{owner}/{repo}/hooks/git/{id} Delete a Git hook in a repository #
PATCH /repos/{owner}/{repo}/hooks/git/{id} Edit a Git hook in a repository #
GET /repos/{owner}/{repo}/hooks/{id} Get a hook #
DELETE /repos/{owner}/{repo}/hooks/{id} Delete a hook in a repository #
PATCH /repos/{owner}/{repo}/hooks/{id} Edit a hook in a repository #
POST /repos/{owner}/{repo}/hooks/{id}/tests Test a push webhook #
GET /repos/{owner}/{repo}/issue_config Returns the issue config for a repo #
GET /repos/{owner}/{repo}/issue_config/validate Returns the validation information for a issue config #
GET /repos/{owner}/{repo}/issue_templates Get available issue templates for a repository #
GET /repos/{owner}/{repo}/issues/pinned List a repo's pinned issues #
GET /repos/{owner}/{repo}/keys List a repository's keys #
POST /repos/{owner}/{repo}/keys Add a key to a repository #
GET /repos/{owner}/{repo}/keys/{id} Get a repository's key by id #
DELETE /repos/{owner}/{repo}/keys/{id} Delete a key from a repository #
GET /repos/{owner}/{repo}/languages Get languages and number of bytes of code written #
GET /repos/{owner}/{repo}/licenses Get repo licenses #
GET /repos/{owner}/{repo}/media/{filepath} Get a file or it's LFS object from a repository #
POST /repos/{owner}/{repo}/merge-upstream Merge a branch from upstream #
POST /repos/{owner}/{repo}/mirror-sync Sync a mirrored repository #
GET /repos/{owner}/{repo}/new_pin_allowed Returns if new Issue Pins are allowed #
GET /repos/{owner}/{repo}/pulls List a repo's pull requests #
POST /repos/{owner}/{repo}/pulls Create a pull request #
POST /repos/{owner}/{repo}/pulls/comments/{id}/resolve Resolve a pull request review comment #
POST /repos/{owner}/{repo}/pulls/comments/{id}/unresolve Unresolve a pull request review comment #
GET /repos/{owner}/{repo}/pulls/pinned List a repo's pinned pull requests #
GET /repos/{owner}/{repo}/pulls/{base}/{head} Get a pull request by base and head #
GET /repos/{owner}/{repo}/pulls/{index} Get a pull request #
PATCH /repos/{owner}/{repo}/pulls/{index} Update a pull request. If using deadline only the date will be taken into account, and time of day ignored. #
GET /repos/{owner}/{repo}/pulls/{index}.{diffType} Get a pull request diff or patch #
GET /repos/{owner}/{repo}/pulls/{index}/commits Get commits for a pull request #
GET /repos/{owner}/{repo}/pulls/{index}/files Get changed files for a pull request #
GET /repos/{owner}/{repo}/pulls/{index}/merge Check if a pull request has been merged #
POST /repos/{owner}/{repo}/pulls/{index}/merge Merge a pull request #
DELETE /repos/{owner}/{repo}/pulls/{index}/merge Cancel the scheduled auto merge for the given pull request #
POST /repos/{owner}/{repo}/pulls/{index}/requested_reviewers create review requests for a pull request #
DELETE /repos/{owner}/{repo}/pulls/{index}/requested_reviewers cancel review requests for a pull request #
GET /repos/{owner}/{repo}/pulls/{index}/reviews List all reviews for a pull request #
POST /repos/{owner}/{repo}/pulls/{index}/reviews Create a review to a pull request #
GET /repos/{owner}/{repo}/pulls/{index}/reviews/{id} Get a specific review for a pull request #
POST /repos/{owner}/{repo}/pulls/{index}/reviews/{id} Submit a pending review to a pull request #
DELETE /repos/{owner}/{repo}/pulls/{index}/reviews/{id} Delete a specific review from a pull request #
GET /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments Get a specific review for a pull request #
POST /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/dismissals Dismiss a review for a pull request #
POST /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/undismissals Cancel to dismiss a review for a pull request #
POST /repos/{owner}/{repo}/pulls/{index}/update Merge PR's baseBranch into headBranch #
GET /repos/{owner}/{repo}/push_mirrors Get all push mirrors of the repository #
POST /repos/{owner}/{repo}/push_mirrors add a push mirror to the repository #
POST /repos/{owner}/{repo}/push_mirrors-sync Sync all push mirrored repository #
GET /repos/{owner}/{repo}/push_mirrors/{name} Get push mirror of the repository by remoteName #
DELETE /repos/{owner}/{repo}/push_mirrors/{name} deletes a push mirror from a repository by remoteName #
GET /repos/{owner}/{repo}/raw/{filepath} Get a file from a repository #
GET /repos/{owner}/{repo}/releases List a repo's releases #
POST /repos/{owner}/{repo}/releases Create a release #
GET /repos/{owner}/{repo}/releases/latest Gets the most recent non-prerelease, non-draft release of a repository, sorted by created_at #
GET /repos/{owner}/{repo}/releases/tags/{tag} Get a release by tag name #
DELETE /repos/{owner}/{repo}/releases/tags/{tag} Delete a release by tag name #
GET /repos/{owner}/{repo}/releases/{id} Get a release #
DELETE /repos/{owner}/{repo}/releases/{id} Delete a release #
PATCH /repos/{owner}/{repo}/releases/{id} Update a release #
GET /repos/{owner}/{repo}/releases/{id}/assets List release's attachments #
POST /repos/{owner}/{repo}/releases/{id}/assets Create a release attachment #
GET /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} Get a release attachment #
DELETE /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} Delete a release attachment #
PATCH /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} Edit a release attachment #
GET /repos/{owner}/{repo}/reviewers Return all users that can be requested to review in this repo #
GET /repos/{owner}/{repo}/signing-key.gpg Get signing-key.gpg for given repository #
GET /repos/{owner}/{repo}/signing-key.pub Get signing-key.pub for given repository #
GET /repos/{owner}/{repo}/stargazers List a repo's stargazers #
GET /repos/{owner}/{repo}/statuses/{sha} Get a commit's statuses #
POST /repos/{owner}/{repo}/statuses/{sha} Create a commit status #
GET /repos/{owner}/{repo}/subscribers List a repo's watchers #
GET /repos/{owner}/{repo}/subscription Check if the current user is watching a repo #
PUT /repos/{owner}/{repo}/subscription Watch a repo #
DELETE /repos/{owner}/{repo}/subscription Unwatch a repo #
GET /repos/{owner}/{repo}/tag_protections List tag protections for a repository #
POST /repos/{owner}/{repo}/tag_protections Create a tag protections for a repository #
GET /repos/{owner}/{repo}/tag_protections/{id} Get a specific tag protection for the repository #
DELETE /repos/{owner}/{repo}/tag_protections/{id} Delete a specific tag protection for the repository #
PATCH /repos/{owner}/{repo}/tag_protections/{id} Edit a tag protections for a repository. Only fields that are set will be changed #
GET /repos/{owner}/{repo}/tags List a repository's tags #
POST /repos/{owner}/{repo}/tags Create a new git tag in a repository #
GET /repos/{owner}/{repo}/tags/{tag} Get the tag of a repository by tag name #
DELETE /repos/{owner}/{repo}/tags/{tag} Delete a repository's tag by name #
GET /repos/{owner}/{repo}/teams List a repository's teams #
GET /repos/{owner}/{repo}/teams/{team} Check if a team is assigned to a repository #
PUT /repos/{owner}/{repo}/teams/{team} Add a team to a repository #
DELETE /repos/{owner}/{repo}/teams/{team} Delete a team from a repository #
GET /repos/{owner}/{repo}/times List a repo's tracked times #
GET /repos/{owner}/{repo}/times/{user} List a user's tracked times in a repo #
GET /repos/{owner}/{repo}/topics Get list of topics that a repository has #
PUT /repos/{owner}/{repo}/topics Replace list of topics for a repository #
PUT /repos/{owner}/{repo}/topics/{topic} Add a topic to a repository #
DELETE /repos/{owner}/{repo}/topics/{topic} Delete a topic from a repository #
POST /repos/{owner}/{repo}/transfer Transfer a repo ownership #
POST /repos/{owner}/{repo}/transfer/accept Accept a repo transfer #
POST /repos/{owner}/{repo}/transfer/reject Reject a repo transfer #
POST /repos/{owner}/{repo}/wiki/new Create a wiki page #
GET /repos/{owner}/{repo}/wiki/page/{pageName} Get a wiki page #
DELETE /repos/{owner}/{repo}/wiki/page/{pageName} Delete a wiki page #
PATCH /repos/{owner}/{repo}/wiki/page/{pageName} Edit a wiki page #
GET /repos/{owner}/{repo}/wiki/pages Get all wiki pages #
GET /repos/{owner}/{repo}/wiki/revisions/{pageName} Get revisions of a wiki page #
POST /repos/{template_owner}/{template_repo}/generate Create a repository using a template #
GET /repositories/{id} Get a repository by id #
GET /topics/search search topics via keyword #
POST /user/repos Create a repository #

Documentation

Specifications

Code Examples

💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-repo-get-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-repo-update-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-issues-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-issue-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-pulls-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-pull-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-branches-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-commits-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-release-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-webhook-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-org-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-org-repos-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-user-get-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-user-repo-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-admin-user-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-notifications-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-packages-list-owner-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-repository-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-issue-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-pullrequest-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-release-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-hook-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-package-example.json

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-repository-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-issue-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-pullrequest-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-branch-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-commit-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-release-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-hook-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-organization-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-team-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-user-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-notificationthread-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-package-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-label-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-milestone-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-tag-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-comment-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-repository-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-issue-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-pullrequest-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-branch-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-commit-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-release-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-hook-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-organization-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-team-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-user-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-notificationthread-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-package-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-label-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-milestone-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-tag-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-comment-structure.json

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gitea-repository-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gitea-repository-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This documentation describes the Gitea API.
  title: Gitea admin Repository API
  license:
    name: MIT
    url: http://opensource.org/licenses/MIT
  version: 1.27.0+dev-89-gf52b6f3315
servers:
- url: /api/v1
security:
- BasicAuth: []
- Token: []
- AccessToken: []
- AuthorizationHeaderToken: []
- SudoParam: []
- SudoHeader: []
- TOTPHeader: []
tags:
- name: repository
paths:
  /repos/migrate:
    post:
      tags:
      - repository
      summary: Migrate a remote git repository
      operationId: repoMigrate
      responses:
        '201':
          $ref: '#/components/responses/Repository'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          description: The repository with the same name already exists.
        '422':
          $ref: '#/components/responses/validationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrateRepoOptions'
  /repos/search:
    get:
      tags:
      - repository
      summary: Search for repositories
      operationId: repoSearch
      parameters:
      - description: keyword
        name: q
        in: query
        schema:
          type: string
      - description: Limit search to repositories with keyword as topic
        name: topic
        in: query
        schema:
          type: boolean
      - description: include search of keyword within repository description
        name: includeDesc
        in: query
        schema:
          type: boolean
      - description: search only for repos that the user with the given id owns or contributes to
        name: uid
        in: query
        schema:
          type: integer
          format: int64
      - description: repo owner to prioritize in the results
        name: priority_owner_id
        in: query
        schema:
          type: integer
          format: int64
      - description: search only for repos that belong to the given team id
        name: team_id
        in: query
        schema:
          type: integer
          format: int64
      - description: search only for repos that the user with the given id has starred
        name: starredBy
        in: query
        schema:
          type: integer
          format: int64
      - description: include private repositories this user has access to (defaults to true)
        name: private
        in: query
        schema:
          type: boolean
      - description: show only pubic, private or all repositories (defaults to all)
        name: is_private
        in: query
        schema:
          type: boolean
      - description: include template repositories this user has access to (defaults to true)
        name: template
        in: query
        schema:
          type: boolean
      - description: show only archived, non-archived or all repositories (defaults to all)
        name: archived
        in: query
        schema:
          type: boolean
      - description: type of repository to search for. Supported values are "fork", "source", "mirror" and "collaborative"
        name: mode
        in: query
        schema:
          type: string
      - description: if `uid` is given, search only for repos that the user owns
        name: exclusive
        in: query
        schema:
          type: boolean
      - 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
        schema:
          type: string
      - description: sort order, either "asc" (ascending) or "desc" (descending). Default is "asc", ignored if "sort" is not specified.
        name: order
        in: query
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
        '422':
          $ref: '#/components/responses/validationError'
  /repos/{owner}/{repo}:
    get:
      tags:
      - repository
      summary: Get a repository
      operationId: repoGet
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Repository'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - repository
      summary: Delete a repository
      operationId: repoDelete
      parameters:
      - description: owner of the repo to delete
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo to delete
        name: repo
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
    patch:
      tags:
      - repository
      summary: Edit a repository's properties. Only fields that are set will be changed.
      operationId: repoEdit
      parameters:
      - description: owner of the repo to edit
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo to edit
        name: repo
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Repository'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditRepoOption'
        description: Properties of a repo that you can edit
  /repos/{owner}/{repo}/actions/artifacts:
    get:
      tags:
      - repository
      summary: Lists all artifacts for a repository
      operationId: getArtifacts
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: name of the artifact
        name: name
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/ArtifactsList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/artifacts/{artifact_id}:
    get:
      tags:
      - repository
      summary: Gets a specific artifact for a workflow run
      operationId: getArtifact
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the artifact
        name: artifact_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Artifact'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - repository
      summary: Deletes a specific artifact for a workflow run
      operationId: deleteArtifact
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the artifact
        name: artifact_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip:
    get:
      tags:
      - repository
      summary: Downloads a specific artifact for a workflow run redirects to blob url
      operationId: downloadArtifact
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the artifact
        name: artifact_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '302':
          description: redirect to the blob download
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/jobs:
    get:
      tags:
      - repository
      summary: Lists all jobs for a repository
      operationId: listWorkflowJobs
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: workflow status (pending, queued, in_progress, failure, success, skipped)
        name: status
        in: query
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/WorkflowJobsList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/jobs/{job_id}:
    get:
      tags:
      - repository
      summary: Gets a specific workflow job for a workflow run
      operationId: getWorkflowJob
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the job
        name: job_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/WorkflowJob'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/jobs/{job_id}/logs:
    get:
      tags:
      - repository
      summary: Downloads the job logs for a workflow run
      operationId: downloadActionsRunJobLogs
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the job
        name: job_id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: output blob content
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/runners:
    get:
      tags:
      - repository
      summary: Get repo-level runners
      operationId: getRepoRunners
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: filter by disabled status (true or false)
        name: disabled
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/RunnerList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/runners/registration-token:
    post:
      tags:
      - repository
      summary: Get a repository's actions runner registration token
      operationId: repoCreateRunnerRegistrationToken
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/RegistrationToken'
  /repos/{owner}/{repo}/actions/runners/{runner_id}:
    get:
      tags:
      - repository
      summary: Get a repo-level runner
      operationId: getRepoRunner
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the runner
        name: runner_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Runner'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - repository
      summary: Delete a repo-level runner
      operationId: deleteRepoRunner
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the runner
        name: runner_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: runner has been deleted
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    patch:
      tags:
      - repository
      summary: Update a repo-level runner
      operationId: updateRepoRunner
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the runner
        name: runner_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Runner'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditActionRunnerOption'
  /repos/{owner}/{repo}/actions/runs:
    get:
      tags:
      - repository
      summary: Lists all runs for a repository run
      operationId: getWorkflowRuns
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: workflow event name
        name: event
        in: query
        schema:
          type: string
      - description: workflow branch
        name: branch
        in: query
        schema:
          type: string
      - description: workflow status (pending, queued, in_progress, failure, success, skipped)
        name: status
        in: query
        schema:
          type: string
      - description: triggered by user
        name: actor
        in: query
        schema:
          type: string
      - description: triggering sha of the workflow run
        name: head_sha
        in: query
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/WorkflowRunsList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}:
    get:
      tags:
      - repository
      summary: Gets a specific workflow run
      operationId: GetWorkflowRun
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the run
        name: run
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/WorkflowRun'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - repository
      summary: Delete a workflow run
      operationId: deleteActionRun
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: runid of the workflow run
        name: run
        in: path
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}/artifacts:
    get:
      tags:
      - repository
      summary: Lists all artifacts for a repository run
      operationId: getArtifactsOfRun
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: runid of the workflow run
        name: run
        in: path
        required: true
        schema:
          type: integer
      - description: name of the artifact
        name: name
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/ArtifactsList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}/jobs:
    get:
      tags:
      - repository
      summary: Lists all jobs for a workflow run
      operationId: listWorkflowRunJobs
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: runid of the workflow run
        name: run
        in: path
        required: true
        schema:
          type: integer
      - description: workflow status (pending, queued, in_progress, failure, success, skipped)
        name: status
        in: query
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/WorkflowJobsList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}/jobs/{job_id}/rerun:
    post:
      tags:
      - repository
      summary: Reruns a specific workflow job in a run
      operationId: rerunWorkflowJob
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the run
        name: run
        in: path
        required: true
        schema:
          type: integer
      - description: id of the job
        name: job_id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '201':
          $ref: '#/components/responses/WorkflowJob'
        '400':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
  /repos/{owner}/{repo}/actions/runs/{run}/rerun:
    post:
      tags:
      - repository
      summary: Reruns an entire workflow run
      operationId: rerunWorkflowRun
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the run
        name: run
        in: path
        required: true
        schema:
          type: integer
      responses:
        '201':
          $ref: '#/components/responses/WorkflowRun'
        '400':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
  /repos/{owner}/{repo}/actions/runs/{run}/rerun-failed-jobs:
    post:
      tags:
      - repository
      summary: Reruns all failed jobs in a workflow run
      operationId: rerunFailedWorkflowRun
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the run
        name: run
        in: path
        required: true
        schema:
          type: integer
      responses:
        '201':
          $ref: '#/components/responses/empty'
        '400':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '422':
          $ref: '#/components/responses/validationError'
  /repos/{owner}/{repo}/actions/secrets:
    get:
      tags:
      - repository
      summary: List an repo's actions secrets
      operationId: repoListActionsSecrets
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/SecretList'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/secrets/{secretname}:
    put:
      tags:
      - repository
      summary: Create or Update a secret value in a repository
      operationId: updateRepoSecret
      parameters:
      - description: owner of the repository
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: name of the secret
        name: secretname
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: response when creating a secret
        '204':
          description: response when updating a secret
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrUpdateSecretOption'
    delete:
      tags:
      - repository
      summary: Delete a secret in a repository
      operationId: deleteRepoSecret
      parameters:
      - description: owner of the repository
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: name of the secret
        name: secretname
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: delete one secret of the repository
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/tasks:
    get:
      tags:
      - repository
      summary: List a repository's action tasks
      operationId: ListActionTasks
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results, default maximum page size is 50
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/TasksList'
        '400':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '409':
          $ref: '#/components/responses/conflict'
        '422':
          $ref: '#/components/responses/validationError'
  /repos/{owner}/{repo}/actions/variables:
    get:
      tags:
      - repository
      summary: Get repo-level variables list
      operationId: getRepoVariablesList
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/VariableList'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/actions/variables/{variablename}:
    get:
      tags:
      - repository
      summary: Get a repo-level variable
      operationId: getRepoVariable
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: name of the variable
        name: variablename
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/ActionVariable'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
    put:
      tags:
      - repository
      summary: Update a repo-level variable
      operationId: updateRepoVariable
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: name of the variable
        name: variablename
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: response when updating a repo-level variable
        '204':
          description: response when updating a repo-level variable
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVariableOption'
    post:
      tags:
      - repository
      summary: Create a repo-level variable
      operationId: createRepoVariable
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repository
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: name of the variable
        name: variablename
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: response when creating a repo-level variable
        '400':
          $ref: '#/components/responses/error'
        '409':
          description: variable name already exists.
        '500':
          $ref: '#/components/responses/error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVariableOption'
    delete:
      tags:
      - repository
      summary: Delete a repo-level variable
      operationId: deleteRepoVariable
      parameters:
      - description: owner of the repo
        name: owner
        in:

# --- truncated at 32 KB (357 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/openapi/gitea-repository-api-openapi.yml