swagger: '2.0' info: description: This documentation describes the Forgejo API. title: Forgejo activitypub admin API license: name: This file is distributed under the MIT license for the purpose of interoperability url: http://opensource.org/licenses/MIT version: 16.0.0-dev-465-4b83448b7d+gitea-1.22.0 basePath: /api/v1 schemes: - https - http consumes: - application/json - text/plain produces: - application/json - text/html security: - BasicAuth: [] - AuthorizationHeaderToken: [] - SudoParam: [] - SudoHeader: [] - TOTPHeader: [] tags: - name: admin paths: /admin/actions/runners: get: produces: - application/json tags: - admin summary: Get all runners, no matter whether they are global runners or scoped to an organization, user, or repository operationId: getAdminRunners parameters: - type: boolean description: whether to include all visible runners (true) or only those that are directly owned by the instance (false) name: visible 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/ActionRunnerList' '400': $ref: '#/responses/error' '404': $ref: '#/responses/notFound' post: consumes: - application/json produces: - application/json tags: - admin summary: Register a new global runner operationId: registerAdminRunner parameters: - name: body in: body schema: $ref: '#/definitions/RegisterRunnerOptions' responses: '201': $ref: '#/responses/RegisterRunnerResponse' '400': $ref: '#/responses/error' '401': $ref: '#/responses/unauthorized' '404': $ref: '#/responses/notFound' /admin/actions/runners/jobs: get: produces: - application/json tags: - admin summary: Get action run jobs operationId: adminGetActionRunJobs parameters: - type: string description: a comma separated list of labels to search for name: labels in: query responses: '200': $ref: '#/responses/RunJobList' '403': $ref: '#/responses/forbidden' /admin/actions/runners/registration-token: get: description: 'This operation has been deprecated in Forgejo 15. Use the web UI or [`/admin/actions/runners`](#/admin/registerAdminRunner) instead. ' produces: - application/json tags: - admin summary: Get a runner registration token for registering global runners operationId: adminGetRunnerRegistrationToken deprecated: true responses: '200': $ref: '#/responses/RegistrationToken' /admin/actions/runners/{runner_id}: get: produces: - application/json tags: - admin summary: Get a particular runner, no matter whether it is a global runner or scoped to an organization, user, or repository operationId: getAdminRunner parameters: - type: string description: ID of the runner name: runner_id in: path required: true responses: '200': $ref: '#/responses/ActionRunner' '400': $ref: '#/responses/error' '404': $ref: '#/responses/notFound' delete: produces: - application/json tags: - admin summary: Delete a particular runner, no matter whether it is a global runner or scoped to an organization, user, or repository 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/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 users' email addresses 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 users' email addresses 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 global (system) 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 responses: '200': $ref: '#/responses/HookListWithoutPagination' 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/quota/groups: get: produces: - application/json tags: - admin summary: List the available quota groups operationId: adminListQuotaGroups responses: '200': $ref: '#/responses/QuotaGroupList' '403': $ref: '#/responses/forbidden' post: produces: - application/json tags: - admin summary: Create a new quota group operationId: adminCreateQuotaGroup parameters: - description: Definition of the quota group name: group in: body required: true schema: $ref: '#/definitions/CreateQuotaGroupOptions' responses: '201': $ref: '#/responses/QuotaGroup' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '409': $ref: '#/responses/error' '422': $ref: '#/responses/validationError' /admin/quota/groups/{quotagroup}: get: produces: - application/json tags: - admin summary: Get information about the quota group operationId: adminGetQuotaGroup parameters: - type: string description: quota group to query name: quotagroup in: path required: true responses: '200': $ref: '#/responses/QuotaGroup' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' delete: produces: - application/json tags: - admin summary: Delete a quota group operationId: adminDeleteQuotaGroup parameters: - type: string description: quota group to delete name: quotagroup in: path required: true responses: '204': $ref: '#/responses/empty' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' /admin/quota/groups/{quotagroup}/rules/{quotarule}: put: produces: - application/json tags: - admin summary: Adds a rule to a quota group operationId: adminAddRuleToQuotaGroup parameters: - type: string description: quota group to add a rule to name: quotagroup in: path required: true - type: string description: the name of the quota rule to add to the group name: quotarule in: path required: true responses: '204': $ref: '#/responses/empty' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' '409': $ref: '#/responses/error' '422': $ref: '#/responses/validationError' delete: produces: - application/json tags: - admin summary: Removes a rule from a quota group operationId: adminRemoveRuleFromQuotaGroup parameters: - type: string description: quota group to remove a rule from name: quotagroup in: path required: true - type: string description: the name of the quota rule to remove from the group name: quotarule in: path required: true responses: '201': $ref: '#/responses/empty' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' /admin/quota/groups/{quotagroup}/users: get: produces: - application/json tags: - admin summary: List users in a quota group operationId: adminListUsersInQuotaGroup parameters: - type: string description: quota group to list members of name: quotagroup in: path required: true responses: '200': $ref: '#/responses/UserList' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' /admin/quota/groups/{quotagroup}/users/{username}: put: produces: - application/json tags: - admin summary: Add a user to a quota group operationId: adminAddUserToQuotaGroup parameters: - type: string description: quota group to add the user to name: quotagroup in: path required: true - type: string description: username of the user to add to the quota group name: username in: path required: true responses: '204': $ref: '#/responses/empty' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' '409': $ref: '#/responses/error' '422': $ref: '#/responses/validationError' delete: produces: - application/json tags: - admin summary: Remove a user from a quota group operationId: adminRemoveUserFromQuotaGroup parameters: - type: string description: quota group to remove a user from name: quotagroup in: path required: true - type: string description: username of the user to remove from the quota group name: username in: path required: true responses: '204': $ref: '#/responses/empty' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' /admin/quota/rules: get: produces: - application/json tags: - admin summary: List the available quota rules operationId: adminListQuotaRules responses: '200': $ref: '#/responses/QuotaRuleInfoList' '403': $ref: '#/responses/forbidden' post: produces: - application/json tags: - admin summary: Create a new quota rule operationId: adminCreateQuotaRule parameters: - description: Definition of the quota rule name: rule in: body required: true schema: $ref: '#/definitions/CreateQuotaRuleOptions' responses: '201': $ref: '#/responses/QuotaRuleInfo' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '409': $ref: '#/responses/error' '422': $ref: '#/responses/validationError' /admin/quota/rules/{quotarule}: get: produces: - application/json tags: - admin summary: Get information about a quota rule operationId: adminGetQuotaRule parameters: - type: string description: quota rule to query name: quotarule in: path required: true responses: '200': $ref: '#/responses/QuotaRuleInfo' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' delete: produces: - application/json tags: - admin summary: Deletes a quota rule operationId: adminDeleteQuotaRule parameters: - type: string description: quota rule to delete name: quotarule in: path required: true responses: '204': $ref: '#/responses/empty' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' patch: produces: - application/json tags: - admin summary: Change an existing quota rule operationId: adminEditQuotaRule parameters: - type: string description: Quota rule to change name: quotarule in: path required: true - name: rule in: body required: true schema: $ref: '#/definitions/EditQuotaRuleOptions' responses: '200': $ref: '#/responses/QuotaRuleInfo' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' '422': $ref: '#/responses/validationError' /admin/runners/jobs: get: description: 'This operation has been deprecated in Forgejo 15. Use [`/admin/actions/runners/jobs`](#/admin/adminGetActionRunJobs) instead. ' produces: - application/json tags: - admin summary: Search action jobs according to filter conditions operationId: adminSearchRunJobs deprecated: true parameters: - type: string description: a comma separated list of run job labels to search for name: labels in: query responses: '200': $ref: '#/responses/RunJobList' '403': $ref: '#/responses/forbidden' /admin/runners/registration-token: get: description: 'This operation has been deprecated in Forgejo 15. Use the web UI or [`/admin/actions/runners`](#/admin/registerAdminRunner) instead. ' produces: - application/json tags: - admin summary: Get a runner registration token for registering global runners operationId: adminGetRegistrationToken deprecated: true 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: user's login name to search for name: login_name in: query - type: boolean description: whether or not to filter users with the 2fa enabled name: is_2fa_enabled in: query - enum: - oldest - newest - alphabetically - reversealphabetically - recentupdate - leastupdate type: string description: sort order of results name: sort 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 account 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 user account operationId: adminDeleteUser parameters: - type: string description: username of 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 user to edit 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}/emails: get: produces: - application/json tags: - admin summary: List all email addresses for a user operationId: adminListUserEmails parameters: - type: string description: username of user to get email addresses of name: username in: path required: true responses: '200': $ref: '#/responses/EmailList' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' delete: produces: - application/json tags: - admin summary: Delete email addresses from a user's account operationId: adminDeleteUserEmails parameters: - type: string description: username of user to delete email addresses from name: username in: path required: true - name: body in: body schema: $ref: '#/definitions/DeleteEmailOption' 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 an SSH public key to user's account operationId: adminCreatePublicKey parameters: - type: string description: username of the user 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: Remove a public key from user's account operationId: adminDeleteUserPublicKey parameters: - type: string description: username of user 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 that 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}/quota: get: produces: - application/json tags: - admin summary: Get the user's quota info operationId: adminGetUserQuota parameters: - type: string description: username of user to query name: username in: path required: true responses: '200': $ref: '#/responses/QuotaInfo' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' '422': $ref: '#/responses/validationError' /admin/users/{username}/quota/groups: post: produces: - application/json tags: - admin summary: Set the user's quota groups to a given list. operationId: adminSetUserQuotaGroups parameters: - type: string description: username of the user to modify the quota groups from name: username in: path required: true - description: list of groups that the user should be a member of name: groups in: body required: true schema: $ref: '#/definitions/SetUserQuotaGroupsOptions' responses: '204': $ref: '#/responses/empty' '400': $ref: '#/responses/error' '403': $ref: '#/responses/forbidden' '404': $ref: '#/responses/notFound' '422': $ref: '#/responses/validationError' /admin/users/{username}/rename: post: produces: - application/json tags: - admin summary: Rename a user operationId: adminRenameUser parameters: - type: string description: existing username of 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. This user 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' /admin/users/{username}/tokens: get: produces: - application/json tags: - admin summary: List the specified user's access tokens operationId: adminListUserAccessTokens parameters: - type: string description: username of user 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' '404': $ref: '#/responses/notFound' post: consumes: - application/json produces: - application/json tags: - admin summary: Create an access token for the specified user operationId: adminCreateUserAccessToken parameters: - type: string description: username of user 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' '404': $ref: '#/responses/notFound' /admin/users/{username}/tokens/{token}: delete: produces: - application/json tags: - admin summary: Delete an access token for the specified user operationId: adminDeleteUserAccessToken parameters: - type: string description: username of user 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' definitions: Team: description: Team represents a team in an organization type: object properties: can_create_org_repo: type: boolean x-go-name: CanCreateOrgRepo description: type: string x-go-name: Description id: type: integer format: int64 x-go-name: ID includes_all_repositories: type: boolean x-go-name: IncludesAllRepositories name: 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.actions: none repo.code: read repo.ext_issues: none repo.ext_wiki: none repo.issues: write repo.packages: none repo.projects: none repo.pulls: owner repo.releases: none repo.wiki: admin x-go-package: forgejo.org/modules/structs APIUnauthorizedError: type: object properties: message: type: string x-go-name: Message url: type: string x-go-name: URL x-go-package: forgejo.org/services/context APIValidationError: type: object properties: message: type: string x-go-name: Message url: type: string x-go-name: URL x-go-package: forgejo.org/services/context 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: forgejo.org/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: forgejo.org/modules/structs Cron: description: Cron represents a Cron task type: object properties: exec_times: type: integer format: int64 x-go-name: ExecTimes name: type: string x-go-name: Name next: type: string format: date-time x-go-name: Next prev: type: string format: date-time x-go-name: Prev schedule: type: string x-go-name: Schedule x-go-package: forgejo.org/modules/structs QuotaUsedSizeGit: description: QuotaUsedSizeGit represents the size-based git (lfs) quota usage of a user type: object properties: LFS: description: Storage size of the user's Git LFS objects type: integer format: int64 x-go-package: forgejo.org/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: forgejo.org/modules/structs QuotaUsedSizeAssetsPackages: description: QuotaUsedSizeAssetsPackages represents the size-based package quota usage of a user type: object properties: all: description: Storage suze used for the user's packages type: integer format: int64 x-go-name: All x-go-package: forgejo.org/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: type: string x-go-name: AuthorizationHeader branch_filter: type: string x-go-name: BranchFilter config: $ref: '#/definitions/CreateHookOptionConfig' events: type: array items: type: string x-go-name: Events type: type: string enum: - forgejo - dingtalk - discord - gitea - gogs - msteams - slack - telegram - feishu - wechatwork - packagist x-go-name: Type x-go-package: forgejo.org/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: forgejo.org/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: forgejo.org/modules/structs Repository: description: Repository represents a repository type: object properties: allow_fast_forward_only_merge: type: boolean x-go-name: AllowFastForwardOnly 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 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 default_update_style: type: string x-go-name: DefaultUpdateStyle 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 globally_editable_wiki: type: boolean x-go-name: GloballyEditableWiki has_actions: type: boolean x-go-name: HasActions 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: description: is the wiki enabled type: boolean x-go-name: HasWiki has_wiki_contents: description: have wiki pages ever been created type: boolean x-go-name: HasWikiContents 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 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 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 wiki_branch: type: string x-go-name: WikiBranch wiki_clone_url: type: string x-go-name: WikiCloneURL wiki_ssh_url: type: string x-go-name: WikiSSHURL x-go-package: forgejo.org/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 profile 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: the user's username type: string x-go-name: UserName login_name: description: the user's authentication sign-in name. type: string default: empty x-go-name: LoginName prohibit_login: description: Is user login prohibited type: boolean x-go-name: ProhibitLogin pronouns: description: the user's pronouns type: string x-go-name: Pronouns 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: forgejo.org/modules/structs APINotFound: type: object properties: errors: type: array items: type: string x-go-name: Errors message: type: string x-go-name: Message url: type: string x-go-name: URL x-go-package: forgejo.org/services/context ActionRunner: description: ActionRunner represents a runner type: object properties: description: description: Description provides optional details about this runner. type: string x-go-name: Description ephemeral: description: Indicates if runner is ephemeral runner type: boolean x-go-name: Ephemeral id: description: ID uniquely identifies this runner. type: integer format: int64 x-go-name: ID labels: description: Labels is a list of labels attached to this runner. type: array items: type: string x-go-name: Labels name: description: Name of the runner; not unique. type: string x-go-name: Name owner_id: description: 'OwnerID is the identifier of the user or organization this runner belongs to. O if the runner is owned by a repository.' type: integer format: int64 x-go-name: OwnerID repo_id: description: 'RepoID is the identifier of the repository this runner belongs to. 0 if the runner belongs to a user or organization.' type: integer format: int64 x-go-name: RepoID status: description: Status indicates whether this runner is offline, or active, for example. type: string enum: - offline - idle - active x-go-name: Status uuid: description: UUID uniquely identifies this runner. type: string x-go-name: UUID version: description: Version is the self-reported version string of Forgejo Runner. type: string x-go-name: Version x-go-package: forgejo.org/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: type: boolean x-go-name: Primary user_id: type: integer format: int64 x-go-name: UserID username: type: string x-go-name: UserName verified: type: boolean x-go-name: Verified x-go-package: forgejo.org/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: type: string x-go-name: FullName login_name: type: string x-go-name: LoginName must_change_password: type: boolean x-go-name: MustChangePassword password: type: string x-go-name: Password restricted: type: boolean x-go-name: Restricted send_notify: type: boolean x-go-name: SendNotify source_id: type: integer format: int64 x-go-name: SourceID username: type: string x-go-name: Username visibility: type: string x-go-name: Visibility x-go-package: forgejo.org/modules/structs RepoTargetOption: type: object required: - owner - name properties: name: description: Name of repository type: string x-go-name: Name owner: description: Name of user or organisation that owns the repository type: string x-go-name: Owner x-go-package: forgejo.org/modules/structs RegisterRunnerOptions: type: object title: RegisterRunnerOptions declares the accepted options for registering runners. required: - name properties: description: description: Description of the runner to register. type: string x-go-name: Description ephemeral: description: Register as ephemeral runner https://forgejo.org/docs/latest/admin/actions/security/#ephemeral-runner type: boolean x-go-name: Ephemeral name: description: Name of the runner to register. The name of the runner does not have to be unique. type: string x-go-name: Name x-go-package: forgejo.org/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: forgejo.org/modules/structs QuotaUsedSize: description: QuotaUsedSize represents the size-based quota usage of a user type: object properties: assets: $ref: '#/definitions/QuotaUsedSizeAssets' git: $ref: '#/definitions/QuotaUsedSizeGit' repos: $ref: '#/definitions/QuotaUsedSizeRepos' x-go-package: forgejo.org/modules/structs Hook: description: Hook a hook is a web hook when one repository changed type: object properties: active: type: boolean x-go-name: Active authorization_header: type: string x-go-name: AuthorizationHeader branch_filter: type: string x-go-name: BranchFilter config: description: 'Deprecated: use Metadata instead' type: object additionalProperties: type: string x-go-name: Config content_type: type: string x-go-name: ContentType created_at: type: string format: date-time x-go-name: Created events: type: array items: type: string x-go-name: Events id: type: integer format: int64 x-go-name: ID metadata: x-go-name: Metadata type: type: string x-go-name: Type updated_at: type: string format: date-time x-go-name: Updated url: type: string x-go-name: URL x-go-package: forgejo.org/modules/structs QuotaGroup: description: QuotaGroup represents a quota group type: object properties: name: description: Name of the group type: string x-go-name: Name rules: description: Rules associated with the group type: array items: $ref: '#/definitions/QuotaRuleInfo' x-go-name: Rules x-go-package: forgejo.org/modules/structs EditHookOption: description: EditHookOption options when modify one hook type: object properties: active: type: boolean x-go-name: Active authorization_header: type: string x-go-name: AuthorizationHeader branch_filter: type: string x-go-name: BranchFilter config: type: object additionalProperties: type: string x-go-name: Config events: type: array items: type: string x-go-name: Events x-go-package: forgejo.org/modules/structs RegistrationToken: description: RegistrationToken is a string used to register a runner with a server type: object properties: token: type: string x-go-name: Token x-go-package: forgejo.org/routers/api/v1/shared Organization: description: Organization represents an organization type: object properties: avatar_url: type: string x-go-name: AvatarURL created: type: string format: date-time x-go-name: Created description: type: string x-go-name: Description email: type: string x-go-name: Email full_name: type: string x-go-name: FullName id: type: integer format: int64 x-go-name: ID location: type: string x-go-name: Location name: type: string x-go-name: Name repo_admin_change_team_access: type: boolean x-go-name: RepoAdminChangeTeamAccess username: description: deprecated type: string x-go-name: UserName visibility: type: string x-go-name: Visibility website: type: string x-go-name: Website x-go-package: forgejo.org/modules/structs QuotaRuleInfo: description: QuotaRuleInfo contains information about a quota rule type: object properties: limit: description: The limit set by the rule type: integer format: int64 x-go-name: Limit name: description: Name of the rule (only shown to admins) type: string x-go-name: Name subjects: description: Subjects the rule affects type: array items: type: string x-go-name: Subjects x-go-package: forgejo.org/modules/structs CreateQuotaGroupOptions: description: CreateQutaGroupOptions represents the options for creating a quota group type: object properties: name: description: Name of the quota group to create type: string x-go-name: Name rules: description: 'Rules to add to the newly created group. If a rule does not exist, it will be created.' type: array items: $ref: '#/definitions/CreateQuotaRuleOptions' x-go-name: Rules x-go-package: forgejo.org/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: forgejo.org/modules/structs SetUserQuotaGroupsOptions: description: SetUserQuotaGroupsOptions represents the quota groups of a user type: object required: - groups properties: groups: description: Quota groups the user shall have type: array items: type: string x-go-name: Groups x-go-package: forgejo.org/modules/structs QuotaGroupList: description: QuotaGroupList represents a list of quota groups type: array items: $ref: '#/definitions/QuotaGroup' x-go-package: forgejo.org/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: forgejo.org/modules/structs QuotaUsed: description: QuotaUsed represents the quota usage of a user type: object properties: size: $ref: '#/definitions/QuotaUsedSize' x-go-package: forgejo.org/modules/structs CreateQuotaRuleOptions: description: CreateQuotaRuleOptions represents the options for creating a quota rule type: object properties: limit: description: The limit set by the rule type: integer format: int64 x-go-name: Limit name: description: Name of the rule to create type: string x-go-name: Name subjects: description: The subjects affected by the rule type: array items: type: string x-go-name: Subjects x-go-package: forgejo.org/modules/structs EditUserOption: description: EditUserOption edit user options type: object properties: active: type: boolean x-go-name: Active admin: type: boolean x-go-name: Admin allow_create_organization: type: boolean x-go-name: AllowCreateOrganization allow_git_hook: type: boolean x-go-name: AllowGitHook allow_import_local: type: boolean x-go-name: AllowImportLocal description: type: string x-go-name: Description email: type: string format: email x-go-name: Email full_name: type: string x-go-name: FullName hide_email: type: boolean x-go-name: HideEmail location: type: string x-go-name: Location login_name: type: string x-go-name: LoginName max_repo_creation: type: integer format: int64 x-go-name: MaxRepoCreation must_change_password: type: boolean x-go-name: MustChangePassword password: type: string x-go-name: Password prohibit_login: type: boolean x-go-name: ProhibitLogin pronouns: type: string x-go-name: Pronouns restricted: type: boolean x-go-name: Restricted source_id: type: integer format: int64 x-go-name: SourceID visibility: type: string x-go-name: Visibility website: type: string x-go-name: Website x-go-package: forgejo.org/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: forgejo.org/modules/structs QuotaUsedSizeAssetsAttachments: description: QuotaUsedSizeAssetsAttachments represents the size-based attachment quota usage of a user type: object properties: issues: description: Storage size used for the user's issue & comment attachments type: integer format: int64 x-go-name: Issues releases: description: Storage size used for the user's release attachments type: integer format: int64 x-go-name: Releases x-go-package: forgejo.org/modules/structs CreateAccessTokenOption: description: CreateAccessTokenOption options when create access token type: object required: - name properties: name: type: string x-go-name: Name repositories: description: If provided and not-empty, creates an access token with access only to specified repositories. type: array items: $ref: '#/definitions/RepoTargetOption' x-go-name: Repositories 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: forgejo.org/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: forgejo.org/modules/structs APIForbiddenError: type: object properties: message: type: string x-go-name: Message url: type: string x-go-name: URL x-go-package: forgejo.org/services/context ActionRunJob: description: ActionRunJob represents a job of a run type: object properties: attempt: description: How many times the job has been attempted including the current attempt. type: integer format: int64 x-go-name: Attempt handle: description: Opaque identifier that uniquely identifies a single attempt of a job. type: string x-go-name: Handle id: description: Identifier of this job. type: integer format: int64 x-go-name: ID name: description: the action run job name type: string x-go-name: Name needs: description: the action run job needed ids type: array items: type: string x-go-name: Needs owner_id: description: the owner id type: integer format: int64 x-go-name: OwnerID repo_id: description: the repository id type: integer format: int64 x-go-name: RepoID run_id: description: Identifier of the workflow run this job belongs to. type: integer format: int64 x-go-name: RunID runs_on: description: the action run job labels to run on type: array items: type: string x-go-name: RunsOn status: description: the action run job status type: string x-go-name: Status task_id: description: the action run job latest task id type: integer format: int64 x-go-name: TaskID x-go-package: forgejo.org/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: type: string x-go-name: Fingerprint id: type: integer format: int64 x-go-name: ID key: type: string x-go-name: Key key_type: type: string x-go-name: KeyType read_only: type: boolean x-go-name: ReadOnly 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' verified: type: boolean x-go-name: Verified x-go-package: forgejo.org/modules/structs CreateOrgOption: description: CreateOrgOption options for creating an organization type: object required: - username properties: description: type: string x-go-name: Description email: type: string x-go-name: Email full_name: type: string x-go-name: FullName location: type: string x-go-name: Location repo_admin_change_team_access: type: boolean x-go-name: RepoAdminChangeTeamAccess username: 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: type: string x-go-name: Website x-go-package: forgejo.org/modules/structs RegisterRunnerResponse: type: object title: RegisterRunnerResponse contains the details of the just registered runner. properties: id: type: integer format: int64 x-go-name: ID token: type: string x-go-name: Token uuid: type: string x-go-name: UUID x-go-package: forgejo.org/modules/structs EditQuotaRuleOptions: description: EditQuotaRuleOptions represents the options for editing a quota rule type: object properties: limit: description: The limit set by the rule type: integer format: int64 x-go-name: Limit subjects: description: The subjects affected by the rule type: array items: type: string x-go-name: Subjects x-go-package: forgejo.org/modules/structs QuotaUsedSizeAssets: description: QuotaUsedSizeAssets represents the size-based asset usage of a user type: object properties: artifacts: description: Storage size used for the user's artifacts type: integer format: int64 x-go-name: Artifacts attachments: $ref: '#/definitions/QuotaUsedSizeAssetsAttachments' packages: $ref: '#/definitions/QuotaUsedSizeAssetsPackages' x-go-package: forgejo.org/modules/structs QuotaInfo: description: QuotaInfo represents information about a user's quota type: object properties: groups: $ref: '#/definitions/QuotaGroupList' used: $ref: '#/definitions/QuotaUsed' x-go-package: forgejo.org/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: forgejo.org/modules/structs QuotaUsedSizeRepos: description: QuotaUsedSizeRepos represents the size-based repository quota usage of a user type: object properties: private: description: Storage size of the user's private repositories type: integer format: int64 x-go-name: Private public: description: Storage size of the user's public repositories type: integer format: int64 x-go-name: Public x-go-package: forgejo.org/modules/structs APIError: description: APIError is an api error with a message type: object properties: message: type: string x-go-name: Message url: type: string x-go-name: URL x-go-package: forgejo.org/modules/structs AccessToken: type: object title: AccessToken represents an API access token. properties: created_at: type: string format: date-time x-go-name: Created id: type: integer format: int64 x-go-name: ID name: type: string x-go-name: Name repositories: description: 'Indicates that an access token only has access to the specified repositories. Will be null if the access token is not limited to a set of specified repositories.' type: array items: $ref: '#/definitions/RepositoryMeta' x-go-name: Repositories scopes: type: array items: type: string x-go-name: Scopes sha1: type: string x-go-name: Token token_last_eight: type: string x-go-name: TokenLastEight x-go-package: forgejo.org/modules/structs responses: OrganizationList: description: OrganizationList schema: type: array items: $ref: '#/definitions/Organization' headers: X-Total-Count: type: integer format: int64 description: The total number of organizations QuotaGroup: description: QuotaGroup schema: $ref: '#/definitions/QuotaGroup' ActionRunnerList: description: ActionRunnerList is a list of Forgejo Action runners schema: type: array items: $ref: '#/definitions/ActionRunner' headers: Link: type: string description: Links to other pages, if any X-Total-Count: type: integer format: int64 description: Total number of runners matching the search criteria (excluding page and limit) User: description: User schema: $ref: '#/definitions/User' PublicKey: description: PublicKey schema: $ref: '#/definitions/PublicKey' RegisterRunnerResponse: description: RegisterRunnerResponse contains the details of the just registered runner. schema: $ref: '#/definitions/RegisterRunnerResponse' UserList: description: UserList schema: type: array items: $ref: '#/definitions/User' CronList: description: CronList schema: type: array items: $ref: '#/definitions/Cron' headers: X-Total-Count: type: integer format: int64 description: The total number of cron jobs Hook: description: Hook schema: $ref: '#/definitions/Hook' validationError: description: APIValidationError is error format response related to input validation schema: $ref: '#/definitions/APIValidationError' AccessTokenList: description: AccessTokenList schema: type: array items: $ref: '#/definitions/AccessToken' headers: X-Total-Count: type: integer format: int64 description: The total number of access tokens QuotaRuleInfo: description: QuotaRuleInfo schema: $ref: '#/definitions/QuotaRuleInfo' empty: description: APIEmpty is an empty response RunJobList: description: RunJobList is a list of action run jobs schema: type: array items: $ref: '#/definitions/ActionRunJob' QuotaGroupList: description: QuotaGroupList schema: $ref: '#/definitions/QuotaGroupList' QuotaRuleInfoList: description: QuotaRuleInfoList schema: type: array items: $ref: '#/definitions/QuotaRuleInfo' StringSlice: description: StringSlice schema: type: array items: type: string RegistrationToken: description: RegistrationToken is a string used to register a runner with a server schema: $ref: '#/definitions/RegistrationToken' unauthorized: description: APIUnauthorizedError is a unauthorized error response schema: $ref: '#/definitions/APIUnauthorizedError' QuotaInfo: description: QuotaInfo schema: $ref: '#/definitions/QuotaInfo' notFound: description: APINotFound is a not found error response schema: $ref: '#/definitions/APINotFound' AccessToken: description: AccessToken represents an API access token. schema: $ref: '#/definitions/AccessToken' Repository: description: Repository schema: $ref: '#/definitions/Repository' Organization: description: Organization schema: $ref: '#/definitions/Organization' error: description: APIError is error format response schema: $ref: '#/definitions/APIError' forbidden: description: APIForbiddenError is a forbidden error response schema: $ref: '#/definitions/APIForbiddenError' ActionRunner: description: ActionRunner represents a runner schema: $ref: '#/definitions/ActionRunner' HookListWithoutPagination: description: HookListWithoutPagination - Hooks without pagination headers schema: type: array items: $ref: '#/definitions/Hook' EmailList: description: EmailList schema: type: array items: $ref: '#/definitions/Email' securityDefinitions: 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-FORGEJO-OTP in: header