forgejo/public/swagger.v1.json

2961 lines
66 KiB
JSON
Raw Normal View History

{
"consumes": [
"application/json",
"text/plain"
],
"produces": [
"application/json",
"text/html"
],
"schemes": [
"http",
"https"
],
"swagger": "2.0",
"info": {
"description": "This provide API interface to communicate with this Gitea instance.",
"title": "Gitea API.",
"termsOfService": "there are no TOS at this moment, use at your own risk we take no responsibility",
"license": {
"name": "MIT",
"url": "http://opensource.org/licenses/MIT"
},
"version": "1.1.1"
},
"basePath": "/api/v1",
"paths": {
"/admin/users": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"operationId": "adminCreateUser",
"parameters": [
{
"x-go-name": "SourceID",
"name": "source_id",
"in": "body",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"x-go-name": "LoginName",
"name": "login_name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Username",
"name": "username",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "FullName",
"name": "full_name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Email",
"name": "email",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Password",
"name": "password",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "SendNotify",
"name": "send_notify",
"in": "body",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/User"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/admin/users/{username}": {
"delete": {
"produces": [
"application/json"
],
"tags": [
"admin"
],
"operationId": "adminDeleteUser",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"patch": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"operationId": "adminEditUser",
"parameters": [
{
"x-go-name": "SourceID",
"name": "source_id",
"in": "body",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"x-go-name": "LoginName",
"name": "login_name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "FullName",
"name": "full_name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Email",
"name": "email",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Password",
"name": "password",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Website",
"name": "website",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Location",
"name": "location",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Active",
"name": "active",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "Admin",
"name": "admin",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "AllowGitHook",
"name": "allow_git_hook",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "AllowImportLocal",
"name": "allow_import_local",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "MaxRepoCreation",
"name": "max_repo_creation",
"in": "body",
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/User"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/admin/users/{username}/keys": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"operationId": "adminCreatePublicKey",
"parameters": [
{
"uniqueItems": true,
"x-go-name": "Title",
"description": "Title of the key to add",
"name": "title",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
},
{
"uniqueItems": true,
"x-go-name": "Key",
"description": "An armored SSH key to add",
"name": "key",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/PublicKey"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/admin/users/{username}/orgs": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"operationId": "adminCreateOrg",
"parameters": [
{
"x-go-name": "UserName",
"name": "username",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "FullName",
"name": "full_name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Description",
"name": "description",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Website",
"name": "website",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Location",
"name": "location",
"in": "body",
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Organization"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/admin/users/{username}/repos": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"operationId": "adminCreateRepo",
"parameters": [
{
"uniqueItems": true,
"x-go-name": "Name",
"description": "Name of the repository to create",
"name": "name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Description",
"description": "Description of the repository to create",
"name": "description",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Private",
"description": "Is the repository to create private ?",
"name": "private",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "AutoInit",
"description": "Init the repository to create ?",
"name": "auto_init",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "Gitignores",
"description": "Gitignores to use",
"name": "gitignores",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "License",
"description": "License to use",
"name": "license",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Readme",
"description": "Readme of the repository to create",
"name": "readme",
"in": "body",
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Repository"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/markdown": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"text/html"
],
"tags": [
"miscellaneous"
],
"operationId": "renderMarkdown",
"parameters": [
{
"description": "Text markdown to render",
"name": "Text",
"in": "body",
"schema": {
"type": "string"
}
},
{
"description": "Mode to render",
"name": "Mode",
"in": "body",
"schema": {
"type": "string"
}
},
{
"description": "Context to render",
"name": "Context",
"in": "body",
"schema": {
"type": "string"
}
},
{
"description": "Is it a wiki page ?",
"name": "Wiki",
"in": "body",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/MarkdownRender"
},
"422": {
"$ref": "#/responses/validationError"
}
}
}
},
"/markdown/raw": {
"post": {
"consumes": [
"text/plain"
],
"produces": [
"text/html"
],
"tags": [
"miscellaneous"
],
"operationId": "renderMarkdownRaw",
"responses": {
"200": {
"$ref": "#/responses/MarkdownRender"
},
"422": {
"$ref": "#/responses/validationError"
}
}
}
},
"/org/{org}/repos": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "createOrgRepo",
"parameters": [
{
"uniqueItems": true,
"x-go-name": "Name",
"description": "Name of the repository to create",
"name": "name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Description",
"description": "Description of the repository to create",
"name": "description",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Private",
"description": "Is the repository to create private ?",
"name": "private",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "AutoInit",
"description": "Init the repository to create ?",
"name": "auto_init",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "Gitignores",
"description": "Gitignores to use",
"name": "gitignores",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "License",
"description": "License to use",
"name": "license",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Readme",
"description": "Readme of the repository to create",
"name": "readme",
"in": "body",
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Repository"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/hooks": {
"get": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgListHooks",
"responses": {
"200": {
"$ref": "#/responses/HookList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/hooks/": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgCreateHook",
"parameters": [
{
"x-go-name": "Type",
"name": "type",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Config",
"name": "config",
"in": "body",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
{
"x-go-name": "Events",
"name": "events",
"in": "body",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"x-go-name": "Active",
"name": "active",
"in": "body",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Hook"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/hooks/{id}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgGetHook",
"responses": {
"200": {
"$ref": "#/responses/Hook"
},
"404": {
"$ref": "#/responses/notFound"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgDeleteHook",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"404": {
"$ref": "#/responses/notFound"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"patch": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgEditHook",
"parameters": [
{
"x-go-name": "Config",
"name": "config",
"in": "body",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
{
"x-go-name": "Events",
"name": "events",
"in": "body",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"x-go-name": "Active",
"name": "active",
"in": "body",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Hook"
},
"404": {
"$ref": "#/responses/notFound"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/members": {
"get": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgListMembers",
"responses": {
"200": {
"$ref": "#/responses/UserList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/members/{username}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgIsMember",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"302": {
"$ref": "#/responses/redirect"
},
"404": {
"$ref": "#/responses/notFound"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgDeleteMember",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/public_members": {
"get": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgListPublicMembers",
"responses": {
"200": {
"$ref": "#/responses/UserList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/public_members/{username}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgIsPublicMember",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"404": {
"$ref": "#/responses/notFound"
}
}
},
"put": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgPublicizeMember",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"403": {
"$ref": "#/responses/forbidden"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgConcealMember",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"403": {
"$ref": "#/responses/forbidden"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/orgs/{orgname}/repos": {
"get": {
"produces": [
"application/json"
],
"tags": [
"organization"
],
"operationId": "orgListRepos",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repos/migrate": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoMigrate",
"parameters": [
{
"x-go-name": "CloneAddr",
"name": "clone_addr",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "AuthUsername",
"name": "auth_username",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "AuthPassword",
"name": "auth_password",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "UID",
"name": "uid",
"in": "body",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"x-go-name": "RepoName",
"name": "repo_name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Mirror",
"name": "mirror",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "Private",
"name": "private",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "Description",
"name": "description",
"in": "body",
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Repository"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repos/search": {
"get": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoSearch",
"parameters": [
{
"type": "string",
"x-go-name": "Keyword",
"description": "Keyword to search",
"name": "q",
"in": "query"
},
{
"type": "integer",
"format": "int64",
"x-go-name": "OwnerID",
"description": "Repository owner to search",
"name": "uid",
"in": "query"
},
{
"type": "integer",
"format": "int64",
"x-go-name": "PageSize",
"description": "Limit of result\n\nmaximum: setting.ExplorePagingNum",
"name": "limit",
"in": "query"
},
{
"type": "string",
"x-go-name": "SearchMode",
"description": "Type of repository to search, related to owner",
"name": "mode",
"in": "query"
},
{
"type": "boolean",
"x-go-name": "OwnerExclusive",
"description": "Search only owners repositories\nHas effect only if owner is provided and mode is not \"collaborative\"",
"name": "exclusive",
"in": "query"
}
],
"responses": {
"200": {
"$ref": "#/responses/SearchResults"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/SearchError"
}
}
}
},
"/repos/{owner}/{repo}/forks": {
"get": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "listForks",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"post": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "createFork",
"parameters": [
{
"x-go-name": "Organization",
"name": "organization",
"in": "body",
"schema": {
"type": "string"
}
}
],
"responses": {
"202": {
"$ref": "#/responses/Repository"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repos/{username}/{reponame}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoGet",
"responses": {
"200": {
"$ref": "#/responses/Repository"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoDelete",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"403": {
"$ref": "#/responses/forbidden"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repos/{username}/{reponame}/hooks": {
"get": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoListHooks",
"responses": {
"200": {
"$ref": "#/responses/HookList"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoCreateHook",
"parameters": [
{
"x-go-name": "Type",
"name": "type",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Config",
"name": "config",
"in": "body",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
{
"x-go-name": "Events",
"name": "events",
"in": "body",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"x-go-name": "Active",
"name": "active",
"in": "body",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Hook"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repos/{username}/{reponame}/hooks/{id}": {
"delete": {
2017-06-12 03:59:51 +03:00
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoDeleteHook",
2017-06-12 03:59:51 +03:00
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"404": {
"$ref": "#/responses/notFound"
2017-06-12 03:59:51 +03:00
},
"500": {
"$ref": "#/responses/error"
}
}
},
"patch": {
2017-06-12 03:59:51 +03:00
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoEditHook",
"parameters": [
{
"x-go-name": "Config",
"name": "config",
"in": "body",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
2017-06-12 03:59:51 +03:00
},
{
"x-go-name": "Events",
"name": "events",
"in": "body",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"x-go-name": "Active",
"name": "active",
"in": "body",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Hook"
2017-06-12 03:59:51 +03:00
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
2017-09-12 09:48:13 +03:00
"/repos/{username}/{reponame}/issues/{issue}/times": {
"get": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "issueTrackedTimes",
"responses": {
"200": {
"$ref": "#/responses/TrackedTimes"
},
"404": {
"$ref": "#/responses/error"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"post": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "addTime",
"parameters": [
{
"x-go-name": "Time",
"name": "time",
"in": "body",
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/TrackedTime"
},
"400": {
"$ref": "#/responses/error"
},
"403": {
"$ref": "#/responses/error"
},
"404": {
"$ref": "#/responses/error"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repos/{username}/{reponame}/mirror-sync": {
"post": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoMirrorSync",
"responses": {
"200": {
"$ref": "#/responses/empty"
},
"403": {
"$ref": "#/responses/forbidden"
}
}
}
},
"/repos/{username}/{reponame}/subscription": {
"get": {
"tags": [
"repository"
],
"operationId": "userCurrentCheckSubscription",
"responses": {
"200": {
"$ref": "#/responses/WatchInfo"
},
"404": {
"$ref": "#/responses/notFound"
}
}
},
"put": {
"tags": [
"repository"
],
"operationId": "userCurrentPutSubscription",
"responses": {
"200": {
"$ref": "#/responses/WatchInfo"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"tags": [
"repository"
],
"operationId": "userCurrentDeleteSubscription",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
2017-09-12 09:48:13 +03:00
"/repos/{username}/{reponame}/times": {
"get": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoTrackedTimes",
"responses": {
"200": {
"$ref": "#/responses/TrackedTimes"
},
"400": {
"$ref": "#/responses/error"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repos/{username}/{reponame}/times/{timetrackingusername}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userTrackedTimes",
"responses": {
"200": {
"$ref": "#/responses/TrackedTimes"
},
"400": {
"$ref": "#/responses/error"
},
"404": {
"$ref": "#/responses/error"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/repositories/{id}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"repository"
],
"operationId": "repoGetByID",
"responses": {
"200": {
"$ref": "#/responses/Repository"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userGetCurrent",
"responses": {
"200": {
"$ref": "#/responses/User"
}
}
}
},
"/user/followers": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentListFollowers",
"responses": {
"200": {
"$ref": "#/responses/UserList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/following": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentListFollowing",
"responses": {
"200": {
"$ref": "#/responses/UserList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/following/{username}": {
"get": {
"tags": [
"user"
],
"operationId": "userCurrentCheckFollowing",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"404": {
"$ref": "#/responses/notFound"
}
}
},
"put": {
"tags": [
"user"
],
"operationId": "userCurrentPutFollow",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"tags": [
"user"
],
"operationId": "userCurrentDeleteFollow",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/gpg_keys": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentListGPGKeys",
"responses": {
"200": {
"$ref": "#/responses/GPGKeyList"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentPostGPGKey",
"parameters": [
{
"uniqueItems": true,
"x-go-name": "ArmoredKey",
"description": "An armored GPG key to add",
"name": "armored_public_key",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/GPGKey"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/gpg_keys/{id}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentGetGPGKey",
"responses": {
"200": {
"$ref": "#/responses/GPGKey"
},
"404": {
"$ref": "#/responses/notFound"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentDeleteGPGKey",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"403": {
"$ref": "#/responses/forbidden"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/keys": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentListKeys",
"responses": {
"200": {
"$ref": "#/responses/PublicKeyList"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentPostKey",
"parameters": [
{
"uniqueItems": true,
"x-go-name": "Title",
"description": "Title of the key to add",
"name": "title",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
},
{
"uniqueItems": true,
"x-go-name": "Key",
"description": "An armored SSH key to add",
"name": "key",
"in": "body",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/PublicKey"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/keys/{id}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentGetKey",
"responses": {
"200": {
"$ref": "#/responses/PublicKey"
},
"404": {
"$ref": "#/responses/notFound"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentDeleteKey",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"403": {
"$ref": "#/responses/forbidden"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/repos": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentListRepos",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"repository",
"user"
],
"operationId": "createCurrentUserRepo",
"parameters": [
{
"uniqueItems": true,
"x-go-name": "Name",
"description": "Name of the repository to create",
"name": "name",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Description",
"description": "Description of the repository to create",
"name": "description",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Private",
"description": "Is the repository to create private ?",
"name": "private",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "AutoInit",
"description": "Init the repository to create ?",
"name": "auto_init",
"in": "body",
"schema": {
"type": "boolean"
}
},
{
"x-go-name": "Gitignores",
"description": "Gitignores to use",
"name": "gitignores",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "License",
"description": "License to use",
"name": "license",
"in": "body",
"schema": {
"type": "string"
}
},
{
"x-go-name": "Readme",
"description": "Readme of the repository to create",
"name": "readme",
"in": "body",
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Repository"
},
"403": {
"$ref": "#/responses/forbidden"
},
"422": {
"$ref": "#/responses/validationError"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/starred": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentListStarred",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/starred/{username}/{reponame}": {
"get": {
"tags": [
"user"
],
"operationId": "userCurrentCheckStarring",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"404": {
"$ref": "#/responses/notFound"
}
}
},
"put": {
"tags": [
"user"
],
"operationId": "userCurrentPutStar",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"500": {
"$ref": "#/responses/error"
}
}
},
"delete": {
"tags": [
"user"
],
"operationId": "userCurrentDeleteStar",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/user/subscriptions": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userCurrentListSubscriptions",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
2017-09-12 09:48:13 +03:00
"$ref": "#/responses/error"
}
}
}
},
"/user/times": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userTrackedTimes",
"responses": {
"200": {
"$ref": "#/responses/TrackedTimes"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/:username/followers": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userListFollowers",
"responses": {
"200": {
"$ref": "#/responses/UserList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/search": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userSearch",
"responses": {
"200": {
"$ref": "#/responses/UserList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userGet",
"responses": {
"200": {
"$ref": "#/responses/User"
},
"404": {
"$ref": "#/responses/notFound"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}/following": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userListFollowing",
"responses": {
"200": {
"$ref": "#/responses/UserList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}/following/:target": {
"get": {
"tags": [
"user"
],
"operationId": "userCheckFollowing",
"responses": {
"204": {
"$ref": "#/responses/empty"
},
"404": {
"$ref": "#/responses/notFound"
}
}
}
},
"/users/{username}/gpg_keys": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userListGPGKeys",
"responses": {
"200": {
"$ref": "#/responses/GPGKeyList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}/keys": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userListKeys",
"responses": {
"200": {
"$ref": "#/responses/PublicKeyList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}/repos": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userListRepos",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}/starred": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userListStarred",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}/subscriptions": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userListSubscriptions",
"responses": {
"200": {
"$ref": "#/responses/RepositoryList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/users/{username}/tokens": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"operationId": "userGetTokens",
"responses": {
"200": {
"$ref": "#/responses/AccessTokenList"
},
"500": {
"$ref": "#/responses/error"
}
}
}
},
"/version": {
"get": {
"description": "This show current running Gitea application version.",
"produces": [
"application/json"
],
"tags": [
"miscellaneous"
],
"summary": "Return Gitea running version.",
"operationId": "getVersion",
"responses": {
"200": {
"$ref": "#/responses/ServerVersion"
}
}
}
}
},
"definitions": {
"GPGKey": {
"description": "GPGKey a user GPG key to sign commit and tag in repository",
"type": "object",
"properties": {
"can_certify": {
"type": "boolean",
"x-go-name": "CanCertify"
},
"can_encrypt_comms": {
"type": "boolean",
"x-go-name": "CanEncryptComms"
},
"can_encrypt_storage": {
"type": "boolean",
"x-go-name": "CanEncryptStorage"
},
"can_sign": {
"type": "boolean",
"x-go-name": "CanSign"
},
"created_at": {
"x-go-name": "Created"
},
"emails": {
"type": "array",
"items": {
"$ref": "#/definitions/GPGKeyEmail"
},
"x-go-name": "Emails"
},
"expires_at": {
"x-go-name": "Expires"
},
"id": {
"type": "integer",
"format": "int64",
"x-go-name": "ID"
},
"key_id": {
"type": "string",
"x-go-name": "KeyID"
},
"primary_key_id": {
"type": "string",
"x-go-name": "PrimaryKeyID"
},
"public_key": {
"type": "string",
"x-go-name": "PublicKey"
},
"subkeys": {
"type": "array",
"items": {
"type": "object"
},
"x-go-name": "SubsKey"
}
},
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
},
"GPGKeyEmail": {
"description": "GPGKeyEmail an email attached to a GPGKey",
"type": "object",
"properties": {
"email": {
"type": "string",
"x-go-name": "Email"
},
"verified": {
"type": "boolean",
"x-go-name": "Verified"
}
},
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
},
"Permission": {
"type": "object",
"title": "Permission represents a API permission.",
"properties": {
"admin": {
"type": "boolean",
"x-go-name": "Admin"
},
"pull": {
"type": "boolean",
"x-go-name": "Pull"
},
"push": {
"type": "boolean",
"x-go-name": "Push"
}
},
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
},
"Repository": {
"type": "object",
"title": "Repository represents a API repository.",
"properties": {
"clone_url": {
"type": "string",
"x-go-name": "CloneURL"
},
"created_at": {
"x-go-name": "Created"
},
"default_branch": {
"type": "string",
"x-go-name": "DefaultBranch"
},
"description": {
"type": "string",
"x-go-name": "Description"
},
"empty": {
"type": "boolean",
"x-go-name": "Empty"
},
"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"
},
"html_url": {
"type": "string",
"x-go-name": "HTMLURL"
},
"id": {
"type": "integer",
"format": "int64",
"x-go-name": "ID"
},
"mirror": {
"type": "boolean",
"x-go-name": "Mirror"
},
"name": {
"type": "string",
"x-go-name": "Name"
},
"open_issues_count": {
"type": "integer",
"format": "int64",
"x-go-name": "OpenIssues"
},
"owner": {
"$ref": "#/definitions/User"
},
"parent": {
"type": "object"
},
"permissions": {
"$ref": "#/definitions/Permission"
},
"private": {
"type": "boolean",
"x-go-name": "Private"
},
"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"
},
"updated_at": {
"x-go-name": "Updated"
},
"watchers_count": {
"type": "integer",
"format": "int64",
"x-go-name": "Watchers"
},
"website": {
"type": "string",
"x-go-name": "Website"
}
},
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
},
"User": {
"type": "object",
"title": "User represents a API user.",
"properties": {
"avatar_url": {
"type": "string",
"x-go-name": "AvatarURL"
},
"email": {
"type": "string",
"x-go-name": "Email"
},
"full_name": {
"type": "string",
"x-go-name": "FullName"
},
"id": {
"type": "integer",
"format": "int64",
"x-go-name": "ID"
},
"login": {
"type": "string",
"x-go-name": "UserName"
}
},
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
}
},
"responses": {
"AccessToken": {
"description": "AccessToken represents a API access token.",
"headers": {
"name": {
"type": "string"
},
"sha1": {
"type": "string"
}
}
},
"AccessTokenList": {
"description": "AccessTokenList represents a list of API access token."
},
"GPGKey": {
"description": "GPGKey a user GPG key to sign commit and tag in repository",
"headers": {
"can_certify": {
"type": "boolean"
},
"can_encrypt_comms": {
"type": "boolean"
},
"can_encrypt_storage": {
"type": "boolean"
},
"can_sign": {
"type": "boolean"
},
"created_at": {},
"emails": {
"type": "array",
"items": {
"$ref": "#/definitions/GPGKeyEmail"
}
},
"expires_at": {},
"id": {
"type": "integer",
"format": "int64"
},
"key_id": {
"type": "string"
},
"primary_key_id": {
"type": "string"
},
"public_key": {
"type": "string"
},
"subkeys": {
"type": "array",
"items": {
"type": "object"
}
}
}
},
"GPGKeyList": {
"description": "GPGKeyList represents a list of GPGKey"
},
"Hook": {
"description": "Hook a hook is a web hook when one repository changed",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"headers": {
"active": {
"type": "boolean"
},
"config": {},
"created_at": {},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": "integer",
"format": "int64"
},
"type": {
"type": "string"
},
"updated_at": {}
}
},
"HookList": {
"description": "HookList represents a list of API hook."
},
"MarkdownRender": {
"description": "MarkdownRender is a rendered markdown document"
},
"Organization": {
"description": "Organization a group of some repositories, users and teams",
"headers": {
"avatar_url": {
"type": "string"
},
"description": {
"type": "string"
},
"full_name": {
"type": "string"
},
"id": {
"type": "integer",
"format": "int64"
},
"location": {
"type": "string"
},
"username": {
"type": "string"
},
"website": {
"type": "string"
}
}
},
"PublicKey": {
"description": "PublicKey publickey is a user key to push code to repository",
"headers": {
"created_at": {},
"id": {
"type": "integer",
"format": "int64"
},
"key": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"PublicKeyList": {
"description": "PublicKeyList represents a list of PublicKey"
},
"Repository": {
"description": "Repository represents a API repository.",
"schema": {
"$ref": "#/definitions/Permission"
},
"headers": {
"clone_url": {
"type": "string"
},
"created_at": {},
"default_branch": {
"type": "string"
},
"description": {
"type": "string"
},
"empty": {
"type": "boolean"
},
"fork": {
"type": "boolean"
},
"forks_count": {
"type": "integer",
"format": "int64"
},
"full_name": {
"type": "string"
},
"html_url": {
"type": "string"
},
"id": {
"type": "integer",
"format": "int64"
},
"mirror": {
"type": "boolean"
},
"name": {
"type": "string"
},
"open_issues_count": {
"type": "integer",
"format": "int64"
},
"owner": {},
"parent": {},
"permissions": {},
"private": {
"type": "boolean"
},
"size": {
"type": "integer",
"format": "int64"
},
"ssh_url": {
"type": "string"
},
"stars_count": {
"type": "integer",
"format": "int64"
},
"updated_at": {},
"watchers_count": {
"type": "integer",
"format": "int64"
},
"website": {
"type": "string"
}
}
},
"RepositoryList": {
"description": "RepositoryList represents a list of API repository."
},
"SearchError": {
"description": "SearchError error of failing search",
"headers": {
"error": {
"type": "string"
},
"ok": {
"type": "boolean"
}
}
},
"SearchResults": {
"description": "SearchResults results of search",
"headers": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/Repository"
}
},
"ok": {
"type": "boolean"
}
}
},
"ServerVersion": {
"description": "ServerVersion wraps the version of the server",
"headers": {
"Version": {
"type": "string"
}
}
},
"TrackedTime": {
"description": "TrackedTime worked time for an issue / pr",
"headers": {
"created": {},
"id": {
"type": "integer",
"format": "int64"
},
"issue_id": {
"type": "integer",
"format": "int64"
},
"time": {
"type": "integer",
"format": "int64",
"description": "Time in seconds"
},
"user_id": {
"type": "integer",
"format": "int64"
}
}
},
"TrackedTimes": {
"description": "TrackedTimes represent a list of tracked times"
},
"User": {
"description": "User represents a API user.",
"headers": {
"avatar_url": {
"type": "string"
},
"email": {
"type": "string"
},
"full_name": {
"type": "string"
},
"id": {
"type": "integer",
"format": "int64"
},
"login": {
"type": "string"
}
}
},
"UserList": {
"description": "UserList represents a list of API user."
},
"WatchInfo": {
"description": "WatchInfo represents a API watch status of one repository",
"schema": {
"type": "object"
},
"headers": {
"created_at": {},
"ignored": {
"type": "boolean"
},
"reason": {},
"repository_url": {
"type": "string"
},
"subscribed": {
"type": "boolean"
},
"url": {
"type": "string"
}
}
},
"empty": {
"description": "APIEmpty is an empty response"
},
"error": {
"description": "APIError is error format response",
"headers": {
"message": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"forbidden": {
"description": "APIForbiddenError is a forbidden error response",
"headers": {
"message": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"notFound": {
"description": "APINotFound is a not found empty response"
},
"redirect": {
"description": "APIRedirect is a redirect response"
},
"validationError": {
"description": "APIValidationError is error format response related to input validation",
"headers": {
"message": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"AccessToken": {
"type": "apiKey",
"name": "access_token",
"in": "query"
},
"AuthorizationHeaderToken": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
},
"BasicAuth": {
"type": "basic"
},
"Token": {
"type": "apiKey",
"name": "token",
"in": "query"
}
},
"security": [
{
"BasicAuth": [
"[]"
]
},
{
"Token": [
"[]"
]
},
{
"AccessToken": [
"[]"
]
},
{
"AuthorizationHeaderToken": [
"[]"
]
}
]
}