|  | = Gerrit Code Review - /projects/ REST API | 
|  |  | 
|  | This page describes the project related REST endpoints. | 
|  | Please also take note of the general information on the | 
|  | link:rest-api.html[REST API]. | 
|  |  | 
|  | [[project-endpoints]] | 
|  | == Project Endpoints | 
|  |  | 
|  | [[list-projects]] | 
|  | === List Projects | 
|  | -- | 
|  | 'GET /projects/' | 
|  | -- | 
|  |  | 
|  | Lists the projects accessible by the caller. This is the same as | 
|  | using the link:cmd-ls-projects.html[ls-projects] command over SSH, | 
|  | and accepts the same options as query parameters. | 
|  |  | 
|  | As result a map is returned that maps the project names to | 
|  | link:#project-info[ProjectInfo] entries. The entries in the map are sorted | 
|  | by project name. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?d HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "external/bison": { | 
|  | "id": "external%2Fbison", | 
|  | "description": "GNU parser generator" | 
|  | }, | 
|  | "external/gcc": { | 
|  | "id": "external%2Fgcc" | 
|  | }, | 
|  | "external/openssl": { | 
|  | "id": "external%2Fopenssl", | 
|  | "description": "encryption\ncrypto routines" | 
|  | }, | 
|  | "test": { | 
|  | "id": "test", | 
|  | "description": "\u003chtml\u003e is escaped" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[project-options]] | 
|  | ==== Project Options | 
|  |  | 
|  | Branch(b):: | 
|  | Limit the results to the projects having the specified branch and | 
|  | include the sha1 of the branch in the results. | 
|  | + | 
|  | Get projects that have a 'master' branch: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?b=master HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "some-project": { | 
|  | "id": "some-project", | 
|  | "branches": { | 
|  | "master": "c5ed9dfcbf002ca0e432d788dab6ca2387829ca7" | 
|  | } | 
|  | }, | 
|  | "some-other-project": { | 
|  | "id": "some-other-project", | 
|  | "branches": { | 
|  | "master": "ef1c270142f9581ecf768f4193fc8f8a81102ec2" | 
|  | } | 
|  | }, | 
|  | } | 
|  | ---- | 
|  |  | 
|  | Description(d):: | 
|  | Include project description in the results. | 
|  | + | 
|  | Get all the projects with their description: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?d HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "some-project": { | 
|  | "id": "some-project", | 
|  | "description": "Description of some project." | 
|  | }, | 
|  | "some-other-project": { | 
|  | "id": "some-other-project", | 
|  | "description": "Description of some other project." | 
|  | } | 
|  | }, | 
|  | } | 
|  | ---- | 
|  |  | 
|  | Limit(n):: | 
|  | Limit the number of projects to be included in the results. | 
|  | + | 
|  | Query the first project in the project list: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?n=1 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "some-project": { | 
|  | "id": "some-project" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  |  | 
|  | [[suggest-projects]] | 
|  | Prefix(p):: | 
|  | Limit the results to those projects that start with the specified | 
|  | prefix. | 
|  | + | 
|  | The match is case sensitive. May not be used together with `m` or `r`. | 
|  | + | 
|  | List all projects that start with `platform/`: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?p=platform%2F HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "platform/drivers": { | 
|  | "id": "platform%2Fdrivers" | 
|  | }, | 
|  | "platform/tools": { | 
|  | "id": "platform%2Ftools" | 
|  | } | 
|  | } | 
|  | ---- | 
|  | + | 
|  | E.g. this feature can be used by suggestion client UI's to limit results. | 
|  |  | 
|  | Regex(r):: | 
|  | Limit the results to those projects that match the specified regex. | 
|  | + | 
|  | Boundary matchers '^' and '$' are implicit. For example: the regex 'test.*' will | 
|  | match any projects that start with 'test' and regex '.*test' will match any | 
|  | project that end with 'test'. | 
|  | + | 
|  | The match is case sensitive. May not be used together with `m` or `p`. | 
|  | + | 
|  | List all projects that match regex `test.*project`: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?r=test.*project HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "test/some-project": { | 
|  | "id": "test%2Fsome-project" | 
|  | }, | 
|  | "test/some-other-project": { | 
|  | "id": "test%2Fsome-other-project" | 
|  | } | 
|  | } | 
|  |  | 
|  | ---- | 
|  |  | 
|  | Skip(S):: | 
|  | Skip the given number of projects from the beginning of the list. | 
|  | + | 
|  | Query the second project in the project list: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?n=1&S=1 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "some-other-project": { | 
|  | "id": "some-other-project" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | Substring(m):: | 
|  | Limit the results to those projects that match the specified substring. | 
|  | + | 
|  | The match is case insensitive. May not be used together with `r` or `p`. | 
|  | + | 
|  | List all projects that match substring `test/`: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?m=test%2F HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "test/some-project": { | 
|  | "id": "test%2Fsome-project" | 
|  | }, | 
|  | "some-path/test/some-other-project": { | 
|  | "id": "some-path%2Ftest%2Fsome-other-project" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | Tree(t):: | 
|  | Get projects inheritance in a tree-like format. This option does | 
|  | not work together with the branch option. | 
|  | + | 
|  | Get all the projects with tree option: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?t HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "All-Projects" { | 
|  | "id": "All-Projects" | 
|  | }, | 
|  | "child-project": { | 
|  | "id": "child-project", | 
|  | "parent":"parent-project" | 
|  | }, | 
|  | "parent-project": { | 
|  | "id": "parent-project", | 
|  | "parent":"All-Projects" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | Type(type):: | 
|  | Get projects with specified type: ALL, CODE, PERMISSIONS. | 
|  | + | 
|  | Get all the projects of type 'PERMISSIONS': | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?type=PERMISSIONS HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "All-Projects" { | 
|  | "id": "All-Projects" | 
|  | }, | 
|  | "some-parent-project": { | 
|  | "id": "some-parent-project" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | All:: | 
|  | Get all projects, including those whose state is "HIDDEN". May not be used | 
|  | together with the `state` option. | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?all HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "All-Projects" { | 
|  | "id": "All-Projects", | 
|  | "state": "ACTIVE" | 
|  | }, | 
|  | "some-other-project": { | 
|  | "id": "some-other-project", | 
|  | "state": "HIDDEN" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | State(s):: | 
|  | Get all projects with the given state. May not be used together with the | 
|  | `all` option. | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?state=HIDDEN HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "some-other-project": { | 
|  | "id": "some-other-project", | 
|  | "state": "HIDDEN" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[query-projects]] | 
|  | === Query Projects | 
|  | -- | 
|  | 'GET /projects/?query=<query>' | 
|  | -- | 
|  |  | 
|  | Queries projects visible to the caller. The | 
|  | link:user-search-projects.html#_search_operators[query string] must be | 
|  | provided by the `query` parameter. The `start` and `limit` parameters | 
|  | can be used to skip/limit results. | 
|  |  | 
|  | As result a list of link:#project-info[ProjectInfo] entities is returned. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/?query=name:test HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "test": { | 
|  | "id": "test", | 
|  | "description": "\u003chtml\u003e is escaped" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[project-query-limit]] | 
|  | ==== Project Limit | 
|  | The `/projects/?query=<query>` URL also accepts a limit integer in the | 
|  | `limit` parameter. This limits the results to `limit` projects. | 
|  |  | 
|  | Query the first 25 projects in project list. | 
|  | ---- | 
|  | GET /projects/?query=<query>&limit=25 HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | The `/projects/` URL also accepts a start integer in the `start` | 
|  | parameter. The results will skip `start` groups from project list. | 
|  |  | 
|  | Query 25 projects starting from index 50. | 
|  | ---- | 
|  | GET /groups/?query=<query>&limit=25&start=50 HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | [[project-query-options]] | 
|  | ==== Project Options | 
|  | Additional fields can be obtained by adding `o` parameters. Each option | 
|  | requires more lookups and slows down the query response time to the | 
|  | client so they are generally disabled by default. The supported fields | 
|  | are described in the context of the link:#project-options[List Projects] | 
|  | REST endpoint. | 
|  |  | 
|  | [[get-project]] | 
|  | === Get Project | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]' | 
|  | -- | 
|  |  | 
|  | Retrieves a project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/plugins%2Freplication HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a link:#project-info[ProjectInfo] entity is returned that | 
|  | describes the project. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "plugins%2Freplication", | 
|  | "name": "plugins/replication", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "Copies to other servers using the Git protocol", | 
|  | "state": "ACTIVE", | 
|  | "labels": { | 
|  | "Code-Review": { | 
|  | "values": { | 
|  | " 0": "No score", | 
|  | "+1": "Approved" | 
|  | }, | 
|  | "default_value": 0 | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[create-project]] | 
|  | === Create Project | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]' | 
|  | -- | 
|  |  | 
|  | Creates a new project. | 
|  |  | 
|  | In the request body additional data for the project can be provided as | 
|  | link:#project-input[ProjectInput]. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/MyProject HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "description": "This is a demo project.", | 
|  | "submit_type": "INHERIT", | 
|  | "owners": [ | 
|  | "MyProject-Owners" | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response the link:#project-info[ProjectInfo] entity is returned that | 
|  | describes the created project. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 201 Created | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "MyProject", | 
|  | "name": "MyProject", | 
|  | "parent": "All-Projects", | 
|  | "description": "This is a demo project.", | 
|  | "labels": { | 
|  | "Code-Review": { | 
|  | "values": { | 
|  | " 0": "No score", | 
|  | "+1": "Approved" | 
|  | }, | 
|  | "default_value": 0 | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[get-project-description]] | 
|  | === Get Project Description | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/description' | 
|  | -- | 
|  |  | 
|  | Retrieves the description of a project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/plugins%2Freplication/description HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | "Copies to other servers using the Git protocol" | 
|  | ---- | 
|  |  | 
|  | If the project does not have a description an empty string is returned. | 
|  |  | 
|  | [[set-project-description]] | 
|  | === Set Project Description | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/description' | 
|  | -- | 
|  |  | 
|  | Sets the description of a project. | 
|  |  | 
|  | The new project description must be provided in the request body inside | 
|  | a link:#project-description-input[ProjectDescriptionInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/plugins%2Freplication/description HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "description": "Plugin for Gerrit that handles the replication.", | 
|  | "commit_message": "Update the project description" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response the new project description is returned. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | "Plugin for Gerrit that handles the replication." | 
|  | ---- | 
|  |  | 
|  | If the description was deleted the response is "`204 No Content`". | 
|  |  | 
|  | [[delete-project-description]] | 
|  | === Delete Project Description | 
|  | -- | 
|  | 'DELETE /projects/link:#project-name[\{project-name\}]/description' | 
|  | -- | 
|  |  | 
|  | Deletes the description of a project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | DELETE /projects/plugins%2Freplication/description HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 204 No Content | 
|  | ---- | 
|  |  | 
|  | A commit message can be provided in the request body as a | 
|  | link:#project-description-input[ProjectDescriptionInput] entity. | 
|  | Historically, this method allowed a body in the DELETE, but that behavior is | 
|  | link:https://www.gerritcodereview.com/releases/2.16.md[deprecated]. | 
|  | In this case, use link:#set-project-description[PUT] instead. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/plugins%2Freplication/description HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "commit_message": "Update the project description" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 204 No Content | 
|  | ---- | 
|  |  | 
|  | [[get-project-parent]] | 
|  | === Get Project Parent | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/parent' | 
|  | -- | 
|  |  | 
|  | Retrieves the name of a project's parent project. For the | 
|  | `All-Projects` root project an empty string is returned. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/plugins%2Freplication/parent HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | "All-Projects" | 
|  | ---- | 
|  |  | 
|  | [[set-project-parent]] | 
|  | === Set Project Parent | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/parent' | 
|  | -- | 
|  |  | 
|  | Sets the parent project for a project. | 
|  |  | 
|  | The new name of the parent project must be provided in the request body | 
|  | inside a link:#project-parent-input[ProjectParentInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/plugins%2Freplication/parent HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "parent": "Public-Plugins", | 
|  | "commit_message": "Update the project parent" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response the new parent project name is returned. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | "Public-Plugins" | 
|  | ---- | 
|  |  | 
|  | [[get-head]] | 
|  | === Get HEAD | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/HEAD' | 
|  | -- | 
|  |  | 
|  | Retrieves for a project the name of the branch to which `HEAD` points. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/plugins%2Freplication/HEAD HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | "refs/heads/master" | 
|  | ---- | 
|  |  | 
|  | [[set-head]] | 
|  | === Set HEAD | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/HEAD' | 
|  | -- | 
|  |  | 
|  | Sets `HEAD` for a project. | 
|  |  | 
|  | The new ref to which `HEAD` should point must be provided in the | 
|  | request body inside a link:#head-input[HeadInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/plugins%2Freplication/HEAD HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "ref": "refs/heads/stable" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response the new ref to which `HEAD` points is returned. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | "refs/heads/stable" | 
|  | ---- | 
|  |  | 
|  | [[get-repository-statistics]] | 
|  | === Get Repository Statistics | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/statistics.git' | 
|  | -- | 
|  |  | 
|  | Return statistics for the repository of a project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/plugins%2Freplication/statistics.git HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | The repository statistics are returned as a | 
|  | link:#repository-statistics-info[RepositoryStatisticsInfo] entity. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "number_of_loose_objects": 127, | 
|  | "number_of_loose_refs": 15, | 
|  | "number_of_pack_files": 15, | 
|  | "number_of_packed_objects": 67, | 
|  | "number_of_packed_refs": 0, | 
|  | "size_of_loose_objects": 29466, | 
|  | "size_of_packed_objects": 9646 | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[get-config]] | 
|  | === Get Config | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/config' | 
|  | -- | 
|  |  | 
|  | Gets some configuration information about a project. Note that this | 
|  | config info is not simply the contents of `project.config`; it generally | 
|  | contains fields that may have been inherited from parent projects. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/myproject/config | 
|  | ---- | 
|  |  | 
|  | A link:#config-info[ConfigInfo] entity is returned that describes the | 
|  | project configuration. Some fields are only visible to users that have | 
|  | read access to `refs/meta/config`. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "description": "demo project", | 
|  | "use_contributor_agreements": { | 
|  | "value": true, | 
|  | "configured_value": "TRUE", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "use_content_merge": { | 
|  | "value": true, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": true | 
|  | }, | 
|  | "use_signed_off_by": { | 
|  | "value": false, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "create_new_change_for_all_not_in_target": { | 
|  | "value": false, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "require_change_id": { | 
|  | "value": false, | 
|  | "configured_value": "FALSE", | 
|  | "inherited_value": true | 
|  | }, | 
|  | "max_object_size_limit": { | 
|  | "value": "15m", | 
|  | "configured_value": "15m", | 
|  | "inherited_value": "20m" | 
|  | }, | 
|  | "submit_type": "INHERIT", | 
|  | "default_submit_type": { | 
|  | "value": "MERGE_IF_NECESSARY", | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": "MERGE_IF_NECESSARY" | 
|  | }, | 
|  | "state": "ACTIVE", | 
|  | "commentlinks": {}, | 
|  | "plugin_config": { | 
|  | "helloworld": { | 
|  | "language": { | 
|  | "display_name": "Preferred Language", | 
|  | "type": "STRING", | 
|  | "value": "en" | 
|  | } | 
|  | } | 
|  | }, | 
|  | "actions": { | 
|  | "cookbook~hello-project": { | 
|  | "method": "POST", | 
|  | "label": "Say hello", | 
|  | "title": "Say hello in different languages", | 
|  | "enabled": true | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[set-config]] | 
|  | === Set Config | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/config' | 
|  | -- | 
|  |  | 
|  | Sets the configuration of a project. | 
|  |  | 
|  | The new configuration must be provided in the request body as a | 
|  | link:#config-input[ConfigInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/myproject/config HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "description": "demo project", | 
|  | "use_contributor_agreements": "FALSE", | 
|  | "use_content_merge": "INHERIT", | 
|  | "use_signed_off_by": "INHERIT", | 
|  | "create_new_change_for_all_not_in_target": "INHERIT", | 
|  | "enable_signed_push": "INHERIT", | 
|  | "require_signed_push": "INHERIT", | 
|  | "reject_implicit_merges": "INHERIT", | 
|  | "require_change_id": "TRUE", | 
|  | "max_object_size_limit": "10m", | 
|  | "submit_type": "REBASE_IF_NECESSARY", | 
|  | "state": "ACTIVE" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response the new configuration is returned as a link:#config-info[ | 
|  | ConfigInfo] entity. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "use_contributor_agreements": { | 
|  | "value": false, | 
|  | "configured_value": "FALSE", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "use_content_merge": { | 
|  | "value": true, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": true | 
|  | }, | 
|  | "use_signed_off_by": { | 
|  | "value": false, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "create_new_change_for_all_not_in_target": { | 
|  | "value": true, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "require_change_id": { | 
|  | "value": true, | 
|  | "configured_value": "TRUE", | 
|  | "inherited_value": true | 
|  | }, | 
|  | "enable_signed_push": { | 
|  | "value": true, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "require_signed_push": { | 
|  | "value": false, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "reject_implicit_merges": { | 
|  | "value": false, | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": false | 
|  | }, | 
|  | "max_object_size_limit": { | 
|  | "value": "10m", | 
|  | "configured_value": "10m", | 
|  | "inherited_value": "20m" | 
|  | }, | 
|  | "submit_type": "REBASE_IF_NECESSARY", | 
|  | "default_submit_type": { | 
|  | "value": "REBASE_IF_NECESSARY", | 
|  | "configured_value": "INHERIT", | 
|  | "inherited_value": "REBASE_IF_NECESSARY" | 
|  | }, | 
|  | "state": "ACTIVE", | 
|  | "commentlinks": {} | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[run-gc]] | 
|  | === Run GC | 
|  | -- | 
|  | 'POST /projects/link:#project-name[\{project-name\}]/gc' | 
|  | -- | 
|  |  | 
|  | Run the Git garbage collection for the repository of a project. | 
|  |  | 
|  | Options for the Git garbage collection can be specified in the | 
|  | request body as a link:#gc-input[GCInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/plugins%2Freplication/gc HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "show_progress": true | 
|  | } | 
|  | ---- | 
|  |  | 
|  | The response is the streamed output of the garbage collection. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: text/plain; charset=UTF-8 | 
|  |  | 
|  | collecting garbage for "plugins/replication": | 
|  | Pack refs:              100% (21/21) | 
|  | Counting objects:       20 | 
|  | Finding sources:        100% (20/20) | 
|  | Getting sizes:          100% (13/13) | 
|  | Compressing objects:     83% (5/6) | 
|  | Writing objects:        100% (20/20) | 
|  | Selecting commits:      100% (7/7) | 
|  | Building bitmaps:       100% (7/7) | 
|  | Finding sources:        100% (41/41) | 
|  | Getting sizes:          100% (25/25) | 
|  | Compressing objects:     52% (12/23) | 
|  | Writing objects:        100% (41/41) | 
|  | Prune loose objects also found in pack files: 100% (36/36) | 
|  | Prune loose, unreferenced objects: 100% (36/36) | 
|  | done. | 
|  | ---- | 
|  |  | 
|  | ==== Asynchronous Execution | 
|  |  | 
|  | The option `async` allows to schedule a background task that asynchronously | 
|  | executes a Git garbage collection. | 
|  |  | 
|  | The `Location` header of the response refers to the link:rest-api-config.html#get-task[background task] | 
|  | which allows to inspect the progress of its execution. In case of asynchronous | 
|  | execution the `show_progress` option is ignored. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/plugins%2Freplication/gc HTTP/1.0 | 
|  | Content-Type: application/json;charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "async": true | 
|  | } | 
|  | ---- | 
|  |  | 
|  | The response is empty. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 202 Accepted | 
|  | Content-Disposition: attachment | 
|  | Location: https:<host>/a/config/server/tasks/383a0602 | 
|  | ---- | 
|  |  | 
|  | [[ban-commit]] | 
|  | === Ban Commit | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/ban' | 
|  | -- | 
|  |  | 
|  | Marks commits as banned for the project. If a commit is banned Gerrit | 
|  | rejects every push that includes this commit with | 
|  | link:error-contains-banned-commit.html[contains banned commit ...]. | 
|  |  | 
|  | [NOTE] | 
|  | This REST endpoint only marks the commits as banned, but it does not | 
|  | remove the commits from the history of any central branch. This needs | 
|  | to be done manually. | 
|  |  | 
|  | The commits to be banned must be specified in the request body as a | 
|  | link:#ban-input[BanInput] entity. | 
|  |  | 
|  | The caller must be project owner. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/plugins%2Freplication/ban HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "commits": [ | 
|  | "a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96", | 
|  | "cf5b56541f84b8b57e16810b18daca9c3adc377b" | 
|  | ], | 
|  | "reason": "Violates IP" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response a link:#ban-result-info[BanResultInfo] entity is returned. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "newly_banned": [ | 
|  | "a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96", | 
|  | "cf5b56541f84b8b57e16810b18daca9c3adc377b" | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[get-access]] | 
|  | === List Access Rights for Project | 
|  | -- | 
|  | 'GET /projects/link:rest-api-projects.html#project-name[\{project-name\}]/access' | 
|  | -- | 
|  |  | 
|  | Lists the access rights for a single project. | 
|  |  | 
|  | As result a | 
|  | link:rest-api-access.html#project-access-info[ProjectAccessInfo] | 
|  | entity is returned. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/MyProject/access HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "revision": "61157ed63e14d261b6dca40650472a9b0bd88474", | 
|  | "inherits_from": { | 
|  | "id": "All-Projects", | 
|  | "name": "All-Projects", | 
|  | "description": "Access inherited by all other projects." | 
|  | }, | 
|  | "local": { | 
|  | "refs/*": { | 
|  | "permissions": { | 
|  | "read": { | 
|  | "rules": { | 
|  | "c2ce4749a32ceb82cd6adcce65b8216e12afb41c": { | 
|  | "action": "ALLOW", | 
|  | "force": false | 
|  | }, | 
|  | "global:Anonymous-Users": { | 
|  | "action": "ALLOW", | 
|  | "force": false | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | }, | 
|  | "is_owner": true, | 
|  | "owner_of": [ | 
|  | "refs/*" | 
|  | ], | 
|  | "can_upload": true, | 
|  | "can_add": true, | 
|  | "can_add_tags": true, | 
|  | "config_visible": true, | 
|  | "groups": { | 
|  | "c2ce4749a32ceb82cd6adcce65b8216e12afb41c": { | 
|  | "url": "#/admin/groups/uuid-c2ce4749a32ceb82cd6adcce65b8216e12afb41c", | 
|  | "options": {}, | 
|  | "description": "Users who perform batch actions on Gerrit", | 
|  | "group_id": 2, | 
|  | "owner": "Administrators", | 
|  | "owner_id": "d5b7124af4de52924ed397913e2c3b37bf186948", | 
|  | "created_on": "2009-06-08 23:31:00.000000000", | 
|  | "name": "Non-Interactive Users" | 
|  | }, | 
|  | "global:Anonymous-Users": { | 
|  | "options": {}, | 
|  | "name": "Anonymous Users" | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[set-access]] | 
|  | === Add, Update and Delete Access Rights for Project | 
|  | -- | 
|  | 'POST /projects/link:rest-api-projects.html#project-name[\{project-name\}]/access' | 
|  | -- | 
|  |  | 
|  | Sets access rights for the project using the diff schema provided by | 
|  | link:#project-access-input[ProjectAccessInput]. Deductions are used to | 
|  | remove access sections, permissions or permission rules. The backend will remove | 
|  | the entity with the finest granularity in the request, meaning that if an | 
|  | access section without permissions is posted, the access section will be | 
|  | removed; if an access section with a permission but no permission rules is | 
|  | posted, the permission will be removed; if an access section with a permission | 
|  | and a permission rule is posted, the permission rule will be removed. | 
|  |  | 
|  | Additionally, access sections and permissions will be cleaned up after applying | 
|  | the deductions by removing items that have no child elements. | 
|  |  | 
|  | After removals have been applied, additions will be applied. | 
|  |  | 
|  | As result a | 
|  | link:rest-api-access.html#project-access-info[ProjectAccessInfo] | 
|  | entity is returned. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/MyProject/access HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "remove": { | 
|  | "refs/*": { | 
|  | "permissions": { | 
|  | "read": { | 
|  | "rules": { | 
|  | "c2ce4749a32ceb82cd6adcce65b8216e12afb41c": { | 
|  | "action": "ALLOW" | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "revision": "61157ed63e14d261b6dca40650472a9b0bd88474", | 
|  | "inherits_from": { | 
|  | "id": "All-Projects", | 
|  | "name": "All-Projects", | 
|  | "description": "Access inherited by all other projects." | 
|  | }, | 
|  | "local": { | 
|  | "refs/*": { | 
|  | "permissions": { | 
|  | "read": { | 
|  | "rules": { | 
|  | "global:Anonymous-Users": { | 
|  | "action": "ALLOW", | 
|  | "force": false | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | }, | 
|  | "is_owner": true, | 
|  | "owner_of": [ | 
|  | "refs/*" | 
|  | ], | 
|  | "can_upload": true, | 
|  | "can_add": true, | 
|  | "can_add_tags": true, | 
|  | "config_visible": true, | 
|  | "groups": { | 
|  | "global:Anonymous-Users": { | 
|  | "options": {}, | 
|  | "name": "Anonymous Users" | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[create-access-change]] | 
|  | === Create Access Rights Change for review. | 
|  | -- | 
|  | 'PUT /projects/link:rest-api-projects.html#project-name[\{project-name\}]/access:review | 
|  | -- | 
|  |  | 
|  | Sets access rights for the project using the diff schema provided by | 
|  | link:#project-access-input[ProjectAccessInput] | 
|  |  | 
|  | This takes the same input as link:#set-access[Update Access Rights], but creates a pending | 
|  | change for review. Like link:#create-change[Create Change], it returns | 
|  | a link:#change-info[ChangeInfo] entity describing the resulting change. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/MyProject/access:review HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "add":{ | 
|  | "refs/heads/*":{ | 
|  | "permissions":{ | 
|  | "read":{ | 
|  | "rules":{ | 
|  | "global:Anonymous-Users": { | 
|  | "action":"DENY", | 
|  | "force":false | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "testproj~refs%2Fmeta%2Fconfig~Ieaf185bf90a1fc3b58461e399385e158a20b31a2", | 
|  | "project": "testproj", | 
|  | "branch": "refs/meta/config", | 
|  | "hashtags": [], | 
|  | "change_id": "Ieaf185bf90a1fc3b58461e399385e158a20b31a2", | 
|  | "subject": "Review access change", | 
|  | "status": "NEW", | 
|  | "created": "2017-09-07 14:31:11.852000000", | 
|  | "updated": "2017-09-07 14:31:11.852000000", | 
|  | "submit_type": "CHERRY_PICK", | 
|  | "mergeable": true, | 
|  | "insertions": 2, | 
|  | "deletions": 0, | 
|  | "unresolved_comment_count": 0, | 
|  | "has_review_started": true, | 
|  | "_number": 7, | 
|  | "owner": { | 
|  | "_account_id": 1000000 | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[check-access]] | 
|  | === Check Access | 
|  | -- | 
|  | 'GET /projects/MyProject/check.access?account=1000098&ref=refs%2Fheads%2Fsecret%2Fbla' | 
|  | -- | 
|  |  | 
|  | This command runs access checks for other users. This requires the | 
|  | link:access-control.html#capability_viewAccess[View Access] global | 
|  | capability. | 
|  |  | 
|  | The result is a link:#access-check-info[AccessCheckInfo] entity | 
|  | detailing the access of the given user for the given project, | 
|  | project-ref, or project-permission-ref combination. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "message": "user Kristen Burns \u003cKristen.Burns@gerritcodereview.com\u003e (1000098) cannot see ref refs/heads/secret/bla in project MyProject", | 
|  | "status": 403 | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[check-access-options]] | 
|  | ==== Check Access Options | 
|  |  | 
|  | Account(account):: | 
|  | The account for which to check access. Mandatory. | 
|  |  | 
|  | Permission(perm):: | 
|  | The ref permission for which to check access. If not specified, read | 
|  | access to at least branch is checked. | 
|  |  | 
|  | Ref(ref):: | 
|  | The branch for which to check access. This must be given if `perm` is specified. | 
|  |  | 
|  | [[index]] | 
|  | === Index project | 
|  |  | 
|  | Adds or updates the current project (and children, if specified) in the secondary index. | 
|  | The indexing task is executed asynchronously in background and this command returns | 
|  | immediately if `async` is specified in the input. | 
|  |  | 
|  | As an input, a link:#index-project-input[IndexProjectInput] entity can be provided. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/MyProject/index HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "index_children": "true" | 
|  | "async": "true" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 202 Accepted | 
|  | Content-Disposition: attachment | 
|  | ---- | 
|  |  | 
|  | [[index.changes]] | 
|  | === Index all changes in a project | 
|  |  | 
|  | Adds or updates all the changes belonging to a project in the secondary index. | 
|  | The indexing task is executed asynchronously in background, so this command | 
|  | returns immediately. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/MyProject/index.changes HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 202 Accepted | 
|  | Content-Disposition: attachment | 
|  | ---- | 
|  |  | 
|  | [[check]] | 
|  | === Check project consistency | 
|  |  | 
|  | Performs consistency checks on the project. | 
|  |  | 
|  | Which consistency checks should be performed is controlled by the | 
|  | link:#check-project-input[CheckProjectInput] entity in the request | 
|  | body. | 
|  |  | 
|  | The following consistency checks are supported: | 
|  |  | 
|  | [[auto-closeable-changes-check]] | 
|  | -- | 
|  | * AutoCloseableChangesCheck: Searches for open changes that can be | 
|  | auto-closed because a patch set of the change is already contained in | 
|  | the destination branch or because the destination branch contains a | 
|  | commit with the same Change-Id. Normally Gerrit auto-closes such | 
|  | changes when the corresponding commits are pushed directly to the | 
|  | repository. However if a branch is updated behind Gerrit's back or if | 
|  | auto-closing changes fails (and the push is still successful) change | 
|  | states can get inconsistent (changes that are already part of the | 
|  | destination branch are still open). This consistency check is | 
|  | intended to detect and repair this situation. | 
|  | -- | 
|  |  | 
|  | To fix any problems that can be fixed automatically set the `fix` field | 
|  | in the inputs for the consistency checks  to `true`. | 
|  |  | 
|  | This REST endpoint requires the | 
|  | link:access-control.html#capability_administrateServer[Administrate Server] | 
|  | global capability. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/MyProject/check HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "auto_closeable_changes_check": { | 
|  | "fix": true, | 
|  | "branch": "refs/heads/master", | 
|  | "max_commits": 100 | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response a link:#check-project-result-info[CheckProjectResultInfo] | 
|  | entity is returned that results for the consistency checks. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "auto_closeable_changes_check_result": { | 
|  | "auto_closeable_changes": { | 
|  | "refs/heads/master": [ | 
|  | { | 
|  | "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940", | 
|  | "project": "myProject", | 
|  | "branch": "master", | 
|  | "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940", | 
|  | "subject": "Implementing Feature X", | 
|  | "status": "NEW", | 
|  | "created": "2013-02-01 09:59:32.126000000", | 
|  | "updated": "2013-02-21 11:16:36.775000000", | 
|  | "insertions": 34, | 
|  | "deletions": 101, | 
|  | "_number": 3965, | 
|  | "owner": { | 
|  | "name": "John Doe" | 
|  | }, | 
|  | "problems": [ | 
|  | { | 
|  | "message": "Patch set 1 (2f15e416237ed9b561199f24184f5f5d2708c584) is merged into destination ref refs/heads/master (2f15e416237ed9b561199f24184f5f5d2708c584), but change status is NEW", | 
|  | "status": "FIXED", | 
|  | "outcome": "Marked change as merged" | 
|  | } | 
|  | ] | 
|  | } | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[branch-endpoints]] | 
|  | == Branch Endpoints | 
|  |  | 
|  | [[list-branches]] | 
|  | === List Branches | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/branches/' | 
|  | -- | 
|  |  | 
|  | List the branches of a project. | 
|  |  | 
|  | As result a list of link:#branch-info[BranchInfo] entries is | 
|  | returned. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/branches/ HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "HEAD", | 
|  | "revision": "master" | 
|  | }, | 
|  | { | 
|  | "ref": "refs/meta/config", | 
|  | "revision": "76016386a0d8ecc7b6be212424978bb45959d668" | 
|  | }, | 
|  | { | 
|  | "ref": "refs/heads/master", | 
|  | "revision": "67ebf73496383c6777035e374d2d664009e2aa5c" | 
|  | }, | 
|  | { | 
|  | "ref": "refs/heads/stable", | 
|  | "revision": "64ca533bd0eb5252d2fee83f63da67caae9b4674", | 
|  | "can_delete": true | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | [[branch-options]] | 
|  | ==== Branch Options | 
|  |  | 
|  | Limit(n):: | 
|  | Limit the number of branches to be included in the results. | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/testproject/branches?n=1 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "HEAD", | 
|  | "revision": "master", | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | Skip(S):: | 
|  | Skip the given number of branches from the beginning of the list. | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/testproject/branches?n=1&s=0 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "HEAD", | 
|  | "revision": "master", | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | Substring(m):: | 
|  | Limit the results to those branches that match the specified substring. | 
|  | + | 
|  | The match is case insensitive. May not be used together with `r`. | 
|  | + | 
|  | List all branches that match substring `test`: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/testproject/branches?m=test HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "refs/heads/test1", | 
|  | "revision": "9c9d08a438e55e52f33b608415e6dddd9b18550d", | 
|  | "can_delete": true | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | Regex(r):: | 
|  | Limit the results to those branches that match the specified regex. | 
|  | Boundary matchers '^' and '$' are implicit. For example: the regex 't*' will | 
|  | match any branches that start with 't' and regex '*t' will match any | 
|  | branches that end with 't'. | 
|  | + | 
|  | The match is case sensitive. May not be used together with `m`. | 
|  | + | 
|  | List all branches that match regex `t.*1`: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/testproject/branches?r=t.*1 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "refs/heads/test1", | 
|  | "revision": "9c9d08a438e55e52f33b608415e6dddd9b18550d", | 
|  | "can_delete": true | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | [[get-branch]] | 
|  | === Get Branch | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]' | 
|  | -- | 
|  |  | 
|  | Retrieves a branch of a project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/branches/master HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a link:#branch-info[BranchInfo] entity is returned that | 
|  | describes the branch. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "ref": "refs/heads/master", | 
|  | "revision": "67ebf73496383c6777035e374d2d664009e2aa5c" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[create-branch]] | 
|  | === Create Branch | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]' | 
|  | -- | 
|  |  | 
|  | Creates a new branch. | 
|  |  | 
|  | In the request body additional data for the branch can be provided as | 
|  | link:#branch-input[BranchInput]. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/MyProject/branches/stable HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "revision": "76016386a0d8ecc7b6be212424978bb45959d668" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response a link:#branch-info[BranchInfo] entity is returned that | 
|  | describes the created branch. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 201 Created | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "ref": "refs/heads/stable", | 
|  | "revision": "76016386a0d8ecc7b6be212424978bb45959d668", | 
|  | "can_delete": true | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[delete-branch]] | 
|  | === Delete Branch | 
|  | -- | 
|  | 'DELETE /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]' | 
|  | -- | 
|  |  | 
|  | Deletes a branch. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | DELETE /projects/MyProject/branches/stable HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 204 No Content | 
|  | ---- | 
|  |  | 
|  | [[delete-branches]] | 
|  | === Delete Branches | 
|  | -- | 
|  | 'POST /projects/link:#project-name[\{project-name\}]/branches:delete' | 
|  | -- | 
|  |  | 
|  | Delete one or more branches. | 
|  |  | 
|  | The branches to be deleted must be provided in the request body as a | 
|  | link:#delete-branches-input[DeleteBranchesInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/MyProject/branches:delete HTTP/1.0 | 
|  | Content-Type: application/json;charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "branches": [ | 
|  | "stable-1.0", | 
|  | "stable-2.0" | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 204 No Content | 
|  | ---- | 
|  |  | 
|  | If some branches could not be deleted, the response is "`409 Conflict`" and the | 
|  | error message is contained in the response body. | 
|  |  | 
|  | [[get-content]] | 
|  | === Get Content | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]/files/link:rest-api-changes.html#file-id[\{file-id\}]/content' | 
|  | -- | 
|  |  | 
|  | Gets the content of a file from the HEAD revision of a certain branch. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/gerrit/branches/master/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/content HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | The content is returned as base64 encoded string. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: text/plain; charset=UTF-8 | 
|  |  | 
|  | Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY... | 
|  | ---- | 
|  |  | 
|  |  | 
|  | [[get-mergeable-info]] | 
|  | === Get Mergeable Information | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]/mergeable' | 
|  | -- | 
|  |  | 
|  | Gets whether the source is mergeable with the target branch. | 
|  |  | 
|  | The `source` query parameter is required, which can be anything that could be | 
|  | resolved to a commit, see examples of the `source` attribute in | 
|  | link:rest-api-changes.html#merge-input[MergeInput]. | 
|  |  | 
|  | Also takes an optional parameter `strategy`, which can be `recursive`, `resolve`, | 
|  | `simple-two-way-in-core`, `ours` or `theirs`, default will use project settings. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/test/branches/master/mergeable?source=testbranch&strategy=recursive HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a link:rest-api-changes.html#mergeable-info[MergeableInfo] entity is returned. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "submit_type": "MERGE_IF_NECESSARY", | 
|  | "strategy": "recursive", | 
|  | "mergeable": true, | 
|  | "commit_merged": false, | 
|  | "content_merged": false | 
|  | } | 
|  | ---- | 
|  |  | 
|  | or when there were conflicts. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "submit_type": "MERGE_IF_NECESSARY", | 
|  | "strategy": "recursive", | 
|  | "mergeable": false, | 
|  | "conflicts": [ | 
|  | "common.txt", | 
|  | "shared.txt" | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | or when the 'testbranch' has been already merged. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "submit_type": "MERGE_IF_NECESSARY", | 
|  | "strategy": "recursive", | 
|  | "mergeable": true, | 
|  | "commit_merged": true, | 
|  | "content_merged": true | 
|  | } | 
|  | ---- | 
|  |  | 
|  | or when only the content of 'testbranch' has been merged. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "submit_type": "MERGE_IF_NECESSARY", | 
|  | "strategy": "recursive", | 
|  | "mergeable": true, | 
|  | "commit_merged": false, | 
|  | "content_merged": true | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[get-reflog]] | 
|  | === Get Reflog | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]/reflog' | 
|  | -- | 
|  |  | 
|  | Gets the reflog of a certain branch. | 
|  |  | 
|  | The caller must be project owner. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/gerrit/branches/master/reflog HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a list of link:#reflog-entry-info[ReflogEntryInfo] entities | 
|  | is returned that describe the reflog entries. The reflog entries are | 
|  | returned in reverse order. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "old_id": "976ced8f4fc0909d7e1584d18455299545881d60", | 
|  | "new_id": "2eaa94bac536654eb592c941e33b91f925698d16", | 
|  | "who": { | 
|  | "name": "Jane Roe", | 
|  | "email": "jane.roe@example.com", | 
|  | "date": "2014-06-30 11:53:43.000000000", | 
|  | "tz": 120 | 
|  | }, | 
|  | "comment": "merged: fast forward" | 
|  | }, | 
|  | { | 
|  | "old_id": "c271c6a7161b74f85560c5899c8c73ee89ca5e29", | 
|  | "new_id": "976ced8f4fc0909d7e1584d18455299545881d60", | 
|  | "who": { | 
|  | "name": "John Doe", | 
|  | "email": "john.doe@example.com", | 
|  | "date": "2013-10-02 10:45:26.000000000", | 
|  | "tz": 120 | 
|  | }, | 
|  | "comment": "merged: fast forward" | 
|  | }, | 
|  | { | 
|  | "old_id": "0000000000000000000000000000000000000000", | 
|  | "new_id": "c271c6a7161b74f85560c5899c8c73ee89ca5e29", | 
|  | "who": { | 
|  | "name": "John Doe", | 
|  | "email": "john.doe@example.com", | 
|  | "date": "2013-09-30 19:08:44.000000000", | 
|  | "tz": 120 | 
|  | }, | 
|  | "comment": "" | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | The get reflog endpoint also accepts a limit integer in the `n` | 
|  | parameter. This limits the results to show the last `n` reflog entries. | 
|  |  | 
|  | Query the last 25 reflog entries. | 
|  | ---- | 
|  | GET /projects/gerrit/branches/master/reflog?n=25 HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | The reflog can also be filtered by timestamp by specifying the `from` | 
|  | and `to` parameters. The timestamp for `from` and `to` must be given as | 
|  | UTC in the following format: `yyyyMMdd_HHmm`. | 
|  |  | 
|  | ---- | 
|  | GET /projects/gerrit/branches/master/reflog?from=20130101_0000&to=20140101_0000=25 HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | [[child-project-endpoints]] | 
|  | == Child Project Endpoints | 
|  |  | 
|  | [[list-child-projects]] | 
|  | === List Child Projects | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/children/' | 
|  | -- | 
|  |  | 
|  | List the direct child projects of a project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/Public-Plugins/children/ HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As result a list of link:#project-info[ProjectInfo] entries is | 
|  | returned that describe the child projects. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "id": "plugins%2Freplication", | 
|  | "name": "plugins/replication", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "Copies to other servers using the Git protocol" | 
|  | }, | 
|  | { | 
|  | "id": "plugins%2Freviewnotes", | 
|  | "name": "plugins/reviewnotes", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "Annotates merged commits using notes on refs/notes/review." | 
|  | }, | 
|  | { | 
|  | "id": "plugins%2Fsingleusergroup", | 
|  | "name": "plugins/singleusergroup", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "GroupBackend enabling users to be directly added to access rules" | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | To resolve the child projects of a project recursively the parameter | 
|  | `recursive` can be set. | 
|  |  | 
|  | Child projects that are not visible to the calling user are ignored and | 
|  | are not resolved further. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/Public-Projects/children/?recursive HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "id": "gerrit", | 
|  | "name": "gerrit", | 
|  | "parent": "Public-Projects", | 
|  | "description": "Gerrit Code Review" | 
|  | }, | 
|  | { | 
|  | "id": "plugins%2Freplication", | 
|  | "name": "plugins/replication", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "Copies to other servers using the Git protocol" | 
|  | }, | 
|  | { | 
|  | "id": "plugins%2Freviewnotes", | 
|  | "name": "plugins/reviewnotes", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "Annotates merged commits using notes on refs/notes/review." | 
|  | }, | 
|  | { | 
|  | "id": "plugins%2Fsingleusergroup", | 
|  | "name": "plugins/singleusergroup", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "GroupBackend enabling users to be directly added to access rules" | 
|  | }, | 
|  | { | 
|  | "id": "Public-Plugins", | 
|  | "name": "Public-Plugins", | 
|  | "parent": "Public-Projects", | 
|  | "description": "Parent project for plugins/*" | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | [[get-child-project]] | 
|  | === Get Child Project | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/children/link:#project-name[\{project-name\}]' | 
|  | -- | 
|  |  | 
|  | Retrieves a child project. If a non-direct child project should be | 
|  | retrieved the parameter `recursive` must be set. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/Public-Plugins/children/plugins%2Freplication HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a link:#project-info[ProjectInfo] entity is returned that | 
|  | describes the child project. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "plugins%2Freplication", | 
|  | "name": "plugins/replication", | 
|  | "parent": "Public-Plugins", | 
|  | "description": "Copies to other servers using the Git protocol" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[tag-endpoints]] | 
|  | == Tag Endpoints | 
|  |  | 
|  | [[create-tag]] | 
|  | === Create Tag | 
|  |  | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/tags/link:#tag-id[\{tag-id\}]' | 
|  | -- | 
|  |  | 
|  | Create a new tag on the project. | 
|  |  | 
|  | In the request body additional data for the tag can be provided as | 
|  | link:#tag-input[TagInput]. | 
|  |  | 
|  | If a message is provided in the input, the tag is created as an | 
|  | annotated tag with the current user as tagger. Signed tags are not | 
|  | supported. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/MyProject/tags/v1.0 HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "message": "annotation", | 
|  | "revision": "c83117624b5b5d8a7f86093824e2f9c1ed309d63" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response a link:#tag-info[TagInfo] entity is returned that describes | 
|  | the created tag. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 201 Created | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  |  | 
|  | "object": "d48d304adc4b6674e11dc2c018ea05fcbdda32fd", | 
|  | "message": "annotation", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "dpursehouse@collab.net", | 
|  | "date": "2016-06-06 01:22:03.000000000", | 
|  | "tz": 540 | 
|  | }, | 
|  | "ref": "refs/tags/v1.0", | 
|  | "revision": "c83117624b5b5d8a7f86093824e2f9c1ed309d63" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[list-tags]] | 
|  | === List Tags | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/tags/' | 
|  | -- | 
|  |  | 
|  | List the tags of a project. | 
|  |  | 
|  | As result a list of link:#tag-info[TagInfo] entries is returned. | 
|  |  | 
|  | Only includes tags under the `refs/tags/` namespace. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/tags/ HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "refs/tags/v1.0", | 
|  | "revision": "49ce77fdcfd3398dc0dedbe016d1a425fd52d666", | 
|  | "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30", | 
|  | "message": "Annotated tag", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "david.pursehouse@sonymobile.com", | 
|  | "date": "2014-10-06 07:35:03.000000000", | 
|  | "tz": 540 | 
|  | } | 
|  | }, | 
|  | { | 
|  | "ref": "refs/tags/v2.0", | 
|  | "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30" | 
|  | }, | 
|  | { | 
|  | "ref": "refs/tags/v3.0", | 
|  | "revision": "c628685b3c5a3614571ecb5c8fceb85db9112313", | 
|  | "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30", | 
|  | "message": "Signed tag\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.11 (GNU/Linux)\n\niQEcBAABAgAGBQJUMlqYAAoJEPI2qVPgglptp7MH/j+KFcittFbxfSnZjUl8n5IZ\nveZo7wE+syjD9sUbMH4EGv0WYeVjphNTyViBof+stGTNkB0VQzLWI8+uWmOeiJ4a\nzj0LsbDOxodOEMI5tifo02L7r4Lzj++EbqtKv8IUq2kzYoQ2xjhKfFiGjeYOn008\n9PGnhNblEHZgCHguGR6GsfN8bfA2XNl9B5Ysl5ybX1kAVs/TuLZR4oDMZ/pW2S75\nhuyNnSgcgq7vl2gLGefuPs9lxkg5Fj3GZr7XPZk4pt/x1oiH7yXxV4UzrUwg2CC1\nfHrBlNbQ4uJNY8TFcwof52Z0cagM5Qb/ZSLglHbqEDGA68HPqbwf5z2hQyU2/U4\u003d\n\u003dZtUX\n-----END PGP SIGNATURE-----", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "david.pursehouse@sonymobile.com", | 
|  | "date": "2014-10-06 09:02:16.000000000", | 
|  | "tz": 540 | 
|  | } | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | [[tag-options]] | 
|  | ==== Tag Options | 
|  |  | 
|  | Limit(n):: | 
|  | Limit the number of tags to be included in the results. | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/tags?n=2 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "refs/tags/v1.0", | 
|  | "revision": "49ce77fdcfd3398dc0dedbe016d1a425fd52d666", | 
|  | "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30", | 
|  | "message": "Annotated tag", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "david.pursehouse@sonymobile.com", | 
|  | "date": "2014-10-06 07:35:03.000000000", | 
|  | "tz": 540 | 
|  | } | 
|  | }, | 
|  | { | 
|  | "ref": "refs/tags/v2.0", | 
|  | "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30" | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | Skip(S):: | 
|  | Skip the given number of tags from the beginning of the list. | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/tags?n=2&s=1 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "refs/tags/v2.0", | 
|  | "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30" | 
|  | }, | 
|  | { | 
|  | "ref": "refs/tags/v3.0", | 
|  | "revision": "c628685b3c5a3614571ecb5c8fceb85db9112313", | 
|  | "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30", | 
|  | "message": "Signed tag\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.11 (GNU/Linux)\n\niQEcBAABAgAGBQJUMlqYAAoJEPI2qVPgglptp7MH/j+KFcittFbxfSnZjUl8n5IZ\nveZo7wE+syjD9sUbMH4EGv0WYeVjphNTyViBof+stGTNkB0VQzLWI8+uWmOeiJ4a\nzj0LsbDOxodOEMI5tifo02L7r4Lzj++EbqtKv8IUq2kzYoQ2xjhKfFiGjeYOn008\n9PGnhNblEHZgCHguGR6GsfN8bfA2XNl9B5Ysl5ybX1kAVs/TuLZR4oDMZ/pW2S75\nhuyNnSgcgq7vl2gLGefuPs9lxkg5Fj3GZr7XPZk4pt/x1oiH7yXxV4UzrUwg2CC1\nfHrBlNbQ4uJNY8TFcwof52Z0cagM5Qb/ZSLglHbqEDGA68HPqbwf5z2hQyU2/U4\u003d\n\u003dZtUX\n-----END PGP SIGNATURE-----", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "david.pursehouse@sonymobile.com", | 
|  | "date": "2014-10-06 09:02:16.000000000", | 
|  | "tz": 540 | 
|  | } | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | Substring(m):: | 
|  | Limit the results to those tags that match the specified substring. | 
|  | + | 
|  | The match is case insensitive.  May not be used together with `r`. | 
|  | + | 
|  | List all tags that match substring `v2`: | 
|  |  | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/testproject/tags?m=v2 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "refs/tags/v2.0", | 
|  | "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30" | 
|  | }, | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | Regex(r):: | 
|  | Limit the results to those tags that match the specified regex. | 
|  | Boundary matchers '^' and '$' are implicit. For example: the regex 't*' will | 
|  | match any tags that start with 't' and regex '*t' will match any | 
|  | tags that end with 't'. | 
|  | + | 
|  | The match is case sensitive.  May not be used together with `m`. | 
|  | + | 
|  | List all tags that match regex `v.*0`: | 
|  | + | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/testproject/tags?r=v.*0 HTTP/1.0 | 
|  | ---- | 
|  | + | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "ref": "refs/tags/v1.0", | 
|  | "revision": "49ce77fdcfd3398dc0dedbe016d1a425fd52d666", | 
|  | "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30", | 
|  | "message": "Annotated tag", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "david.pursehouse@sonymobile.com", | 
|  | "date": "2014-10-06 07:35:03.000000000", | 
|  | "tz": 540 | 
|  | } | 
|  | }, | 
|  | { | 
|  | "ref": "refs/tags/v2.0", | 
|  | "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30" | 
|  | }, | 
|  | { | 
|  | "ref": "refs/tags/v3.0", | 
|  | "revision": "c628685b3c5a3614571ecb5c8fceb85db9112313", | 
|  | "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30", | 
|  | "message": "Signed tag\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.11 (GNU/Linux)\n\niQEcBAABAgAGBQJUMlqYAAoJEPI2qVPgglptp7MH/j+KFcittFbxfSnZjUl8n5IZ\nveZo7wE+syjD9sUbMH4EGv0WYeVjphNTyViBof+stGTNkB0VQzLWI8+uWmOeiJ4a\nzj0LsbDOxodOEMI5tifo02L7r4Lzj++EbqtKv8IUq2kzYoQ2xjhKfFiGjeYOn008\n9PGnhNblEHZgCHguGR6GsfN8bfA2XNl9B5Ysl5ybX1kAVs/TuLZR4oDMZ/pW2S75\nhuyNnSgcgq7vl2gLGefuPs9lxkg5Fj3GZr7XPZk4pt/x1oiH7yXxV4UzrUwg2CC1\nfHrBlNbQ4uJNY8TFcwof52Z0cagM5Qb/ZSLglHbqEDGA68HPqbwf5z2hQyU2/U4\u003d\n\u003dZtUX\n-----END PGP SIGNATURE-----", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "david.pursehouse@sonymobile.com", | 
|  | "date": "2014-10-06 09:02:16.000000000", | 
|  | "tz": 540 | 
|  | } | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | [[get-tag]] | 
|  | === Get Tag | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/tags/link:#tag-id[\{tag-id\}]' | 
|  | -- | 
|  |  | 
|  | Retrieves a tag of a project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/tags/v1.0 HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a link:#tag-info[TagInfo] entity is returned that describes the tag. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "ref": "refs/tags/v1.0", | 
|  | "revision": "49ce77fdcfd3398dc0dedbe016d1a425fd52d666", | 
|  | "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30", | 
|  | "message": "Annotated tag", | 
|  | "tagger": { | 
|  | "name": "David Pursehouse", | 
|  | "email": "david.pursehouse@sonymobile.com", | 
|  | "date": "2014-10-06 07:35:03.000000000", | 
|  | "tz": 540 | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[delete-tag]] | 
|  | === Delete Tag | 
|  | -- | 
|  | 'DELETE /projects/link:#project-name[\{project-name\}]/tags/link:#tag-id[\{tag-id\}]' | 
|  | -- | 
|  |  | 
|  | Deletes a tag. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | DELETE /projects/MyProject/tags/v1.0 HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 204 No Content | 
|  | ---- | 
|  |  | 
|  | [[delete-tags]] | 
|  | === Delete Tags | 
|  | -- | 
|  | 'POST /projects/link:#project-name[\{project-name\}]/tags:delete' | 
|  | -- | 
|  |  | 
|  | Delete one or more tags. | 
|  |  | 
|  | The tags to be deleted must be provided in the request body as a | 
|  | link:#delete-tags-input[DeleteTagsInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/MyProject/tags:delete HTTP/1.0 | 
|  | Content-Type: application/json;charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "tags": [ | 
|  | "v1.0", | 
|  | "v2.0" | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 204 No Content | 
|  | ---- | 
|  |  | 
|  | If some tags could not be deleted, the response is "`409 Conflict`" and the | 
|  | error message is contained in the response body. | 
|  |  | 
|  | [[commit-endpoints]] | 
|  | == Commit Endpoints | 
|  |  | 
|  | [[get-commit]] | 
|  | === Get Commit | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]' | 
|  | -- | 
|  |  | 
|  | Retrieves a commit of a project. | 
|  |  | 
|  | The commit must be visible to the caller. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96 HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a link:rest-api-changes.html#commit-info[CommitInfo] entity | 
|  | is returned that describes the commit. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "commit": "184ebe53805e102605d11f6b143486d15c23a09c", | 
|  | "parents": [ | 
|  | { | 
|  | "commit": "1eee2c9d8f352483781e772f35dc586a69ff5646", | 
|  | "subject": "Migrate contributor agreements to All-Projects." | 
|  | } | 
|  | ], | 
|  | "author": { | 
|  | "name": "Shawn O. Pearce", | 
|  | "email": "sop@google.com", | 
|  | "date": "2012-04-24 18:08:08.000000000", | 
|  | "tz": -420 | 
|  | }, | 
|  | "committer": { | 
|  | "name": "Shawn O. Pearce", | 
|  | "email": "sop@google.com", | 
|  | "date": "2012-04-24 18:08:08.000000000", | 
|  | "tz": -420 | 
|  | }, | 
|  | "subject": "Use an EventBus to manage star icons", | 
|  | "message": "Use an EventBus to manage star icons\n\nImage widgets that need to ..." | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[get-included-in]] | 
|  | === Get Included In | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]/in' | 
|  | -- | 
|  |  | 
|  | Retrieves the branches and tags in which a change is included. As result | 
|  | an link:rest-api-changes.html#included-in-info[IncludedInInfo] entity is returned. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96/in HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json;charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "branches": [ | 
|  | "master" | 
|  | ], | 
|  | "tags": [] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[get-content-from-commit]] | 
|  | === Get Content | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]/files/link:rest-api-changes.html#file-id[\{file-id\}]/content' | 
|  | -- | 
|  |  | 
|  | Gets the content of a file from a certain commit. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/content HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | The content is returned as base64 encoded string. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: text/plain; charset=UTF-8 | 
|  |  | 
|  | Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY... | 
|  | ---- | 
|  |  | 
|  |  | 
|  | [[cherry-pick-commit]] | 
|  | === Cherry Pick Commit | 
|  | -- | 
|  | 'POST /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]/cherrypick' | 
|  | -- | 
|  |  | 
|  | Cherry-picks a commit of a project to a destination branch. | 
|  |  | 
|  | To cherry pick a change revision, see link:rest-api-changes.html#cherry-pick[CherryPick]. | 
|  |  | 
|  | The destination branch must be provided in the request body inside a | 
|  | link:rest-api-changes.html#cherrypick-input[CherryPickInput] entity. | 
|  | If the commit message is not set, the commit message of the source | 
|  | commit will be used. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | POST /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96/cherrypick HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "message" : "Implementing Feature X", | 
|  | "destination" : "release-branch" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response a link:rest-api-changes.html#cherry-pick-change-info[ | 
|  | CherryPickChangeInfo] entity is returned that describes the resulting | 
|  | cherry-picked change. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9941", | 
|  | "project": "myProject", | 
|  | "branch": "release-branch", | 
|  | "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9941", | 
|  | "subject": "Implementing Feature X", | 
|  | "status": "NEW", | 
|  | "created": "2013-02-01 09:59:32.126000000", | 
|  | "updated": "2013-02-21 11:16:36.775000000", | 
|  | "mergeable": true, | 
|  | "insertions": 12, | 
|  | "deletions": 11, | 
|  | "_number": 3965, | 
|  | "owner": { | 
|  | "name": "John Doe" | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[list-files]] | 
|  | === List Files | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]/files/' | 
|  | -- | 
|  |  | 
|  | Lists the files that were modified, added or deleted in a commit. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96/files/ HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As result a map is returned that maps the link:rest-api-changes.html#file-id[file path] to a | 
|  | link:rest-api-changes.html#file-info[FileInfo] entry. The entries in the map are | 
|  | sorted by file path. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "/COMMIT_MSG": { | 
|  | "status": "A", | 
|  | "lines_inserted": 7, | 
|  | "size_delta": 551, | 
|  | "size": 551 | 
|  | }, | 
|  | "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": { | 
|  | "lines_inserted": 5, | 
|  | "lines_deleted": 3, | 
|  | "size_delta": 98, | 
|  | "size": 23348 | 
|  | } | 
|  | } | 
|  | ---- | 
|  |  | 
|  | The integer-valued request parameter `parent` changes the response to return a | 
|  | list of the files which are different in this commit compared to the given | 
|  | parent commit. This is useful for supporting review of merge commits. The value | 
|  | is the 1-based index of the parent's position in the commit object. | 
|  |  | 
|  | [[dashboard-endpoints]] | 
|  | == Dashboard Endpoints | 
|  |  | 
|  | [[list-dashboards]] | 
|  | === List Dashboards | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/dashboards/' | 
|  | -- | 
|  |  | 
|  | List custom dashboards for a project. | 
|  |  | 
|  | As result a list of link:#dashboard-info[DashboardInfo] entries is | 
|  | returned. | 
|  |  | 
|  | List all dashboards for the `work/my-project` project: | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/dashboards/ HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | [ | 
|  | { | 
|  | "id": "main:closed", | 
|  | "ref": "main", | 
|  | "path": "closed", | 
|  | "description": "Merged and abandoned changes in last 7 weeks", | 
|  | "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w", | 
|  | "is_default": true, | 
|  | "title": "Closed changes", | 
|  | "sections": [ | 
|  | { | 
|  | "name": "Merged", | 
|  | "query": "status:merged age:7w" | 
|  | }, | 
|  | { | 
|  | "name": "Abandoned", | 
|  | "query": "status:abandoned age:7w" | 
|  | } | 
|  | ] | 
|  | } | 
|  | ] | 
|  | ---- | 
|  |  | 
|  | .Get all dashboards of the 'All-Projects' project | 
|  | **** | 
|  | get::/projects/All-Projects/dashboards/ | 
|  | **** | 
|  |  | 
|  | [[get-dashboard]] | 
|  | === Get Dashboard | 
|  | -- | 
|  | 'GET /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]' | 
|  | -- | 
|  |  | 
|  | Retrieves a project dashboard. The dashboard can be defined on that | 
|  | project or be inherited from a parent project. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/dashboards/main:closed HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | As response a link:#dashboard-info[DashboardInfo] entity is returned | 
|  | that describes the dashboard. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "main:closed", | 
|  | "ref": "main", | 
|  | "path": "closed", | 
|  | "description": "Merged and abandoned changes in last 7 weeks", | 
|  | "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w", | 
|  | "is_default": true, | 
|  | "title": "Closed changes", | 
|  | "sections": [ | 
|  | { | 
|  | "name": "Merged", | 
|  | "query": "status:merged age:7w" | 
|  | }, | 
|  | { | 
|  | "name": "Abandoned", | 
|  | "query": "status:abandoned age:7w" | 
|  | } | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | To retrieve the default dashboard of a project use `default` as | 
|  | dashboard-id. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | GET /projects/work%2Fmy-project/dashboards/default HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "main:closed", | 
|  | "ref": "main", | 
|  | "path": "closed", | 
|  | "description": "Merged and abandoned changes in last 7 weeks", | 
|  | "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w", | 
|  | "is_default": true, | 
|  | "title": "Closed changes", | 
|  | "sections": [ | 
|  | { | 
|  | "name": "Merged", | 
|  | "query": "status:merged age:7w" | 
|  | }, | 
|  | { | 
|  | "name": "Abandoned", | 
|  | "query": "status:abandoned age:7w" | 
|  | } | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[set-dashboard]] | 
|  | === Set Dashboard | 
|  | -- | 
|  | 'PUT /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]' | 
|  | -- | 
|  |  | 
|  | Updates/Creates a project dashboard. | 
|  |  | 
|  | Currently only supported for the `default` dashboard. | 
|  |  | 
|  | The creation/update information for the dashboard must be provided in | 
|  | the request body as a link:#dashboard-input[DashboardInput] entity. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | PUT /projects/work%2Fmy-project/dashboards/default HTTP/1.0 | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | { | 
|  | "id": "main:closed", | 
|  | "commit_message": "Define the default dashboard" | 
|  | } | 
|  | ---- | 
|  |  | 
|  | As response the new/updated dashboard is returned as a | 
|  | link:#dashboard-info[DashboardInfo] entity. | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 200 OK | 
|  | Content-Disposition: attachment | 
|  | Content-Type: application/json; charset=UTF-8 | 
|  |  | 
|  | )]}' | 
|  | { | 
|  | "id": "main:closed", | 
|  | "ref": "main", | 
|  | "path": "closed", | 
|  | "description": "Merged and abandoned changes in last 7 weeks", | 
|  | "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w", | 
|  | "is_default": true, | 
|  | "title": "Closed changes", | 
|  | "sections": [ | 
|  | { | 
|  | "name": "Merged", | 
|  | "query": "status:merged age:7w" | 
|  | }, | 
|  | { | 
|  | "name": "Abandoned", | 
|  | "query": "status:abandoned age:7w" | 
|  | } | 
|  | ] | 
|  | } | 
|  | ---- | 
|  |  | 
|  | [[delete-dashboard]] | 
|  | === Delete Dashboard | 
|  | -- | 
|  | 'DELETE /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]' | 
|  | -- | 
|  |  | 
|  | Deletes a project dashboard. | 
|  |  | 
|  | Currently only supported for the `default` dashboard. | 
|  |  | 
|  | The request body does not need to include a link:#dashboard-input[ | 
|  | DashboardInput] entity if no commit message is specified. | 
|  |  | 
|  | Please note that some proxies prohibit request bodies for DELETE | 
|  | requests. | 
|  |  | 
|  | .Request | 
|  | ---- | 
|  | DELETE /projects/work%2Fmy-project/dashboards/default HTTP/1.0 | 
|  | ---- | 
|  |  | 
|  | .Response | 
|  | ---- | 
|  | HTTP/1.1 204 No Content | 
|  | ---- | 
|  |  | 
|  |  | 
|  | [[ids]] | 
|  | == IDs | 
|  |  | 
|  | [[branch-id]] | 
|  | === \{branch-id\} | 
|  | The name of a branch or `HEAD`. The prefix `refs/heads/` can be | 
|  | omitted. | 
|  |  | 
|  | [[commit-id]] | 
|  | === \{commit-id\} | 
|  | Commit ID. | 
|  |  | 
|  | [[tag-id]] | 
|  | === \{tag-id\} | 
|  | The name of a tag. The prefix `refs/tags/` can be omitted. | 
|  |  | 
|  | [[dashboard-id]] | 
|  | === \{dashboard-id\} | 
|  | The ID of a dashboard in the format '<ref>:<path>'. | 
|  |  | 
|  | A special dashboard ID is `default` which represents the default | 
|  | dashboard of a project. | 
|  |  | 
|  | [[project-name]] | 
|  | === \{project-name\} | 
|  | The name of the project. | 
|  |  | 
|  | If the name ends with `.git`, the suffix will be automatically removed. | 
|  |  | 
|  |  | 
|  | [[json-entities]] | 
|  | == JSON Entities | 
|  |  | 
|  | [[access-check-info]] | 
|  | === AccessCheckInfo | 
|  |  | 
|  | The `AccessCheckInfo` entity is the result of an access check. | 
|  |  | 
|  | [options="header",cols="1,^1,5"] | 
|  | |========================================= | 
|  | |Field Name                  ||Description | 
|  | |`status`                    ||The HTTP status code for the access. | 
|  | 200 means success and 403 means denied. | 
|  | |`message`                   |optional|A clarifying message if `status` is not 200. | 
|  | |========================================= | 
|  |  | 
|  | [[auto_closeable_changes_check_input]] | 
|  | === AutoCloseableChangesCheckInput | 
|  | The `AutoCloseableChangesCheckInput` entity contains options for running | 
|  | the link:#auto-closeable-changes-check[AutoCloseableChangesCheck]. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name      ||Description | 
|  | |`fix`           |optional| | 
|  | Whether auto-closeable changes should be closed automatically. | 
|  | |`branch`        || | 
|  | The branch for which the link:#auto-closeable-changes-check[ | 
|  | AutoCloseableChangesCheck] should be performed. The 'refs/heads/' | 
|  | prefix for the branch name can be omitted. | 
|  | |`skip_commits`  |optional| | 
|  | Number of commits that should be skipped when walking the commits of | 
|  | the branch. | 
|  | |`max_commits`   |optional| | 
|  | Maximum number of commits to walk. If not specified this defaults to | 
|  | 10,000 commits. 10,000 is also the maximum that can be set. | 
|  | Auto-closing changes is an expensive operation and the more commits | 
|  | are walked the slower it gets. This is why you should avoid walking too | 
|  | many commits. | 
|  | |============================= | 
|  |  | 
|  | [[auto_closeable_changes_check_result]] | 
|  | === AutoCloseableChangesCheckResult | 
|  | The `AutoCloseableChangesCheckResult` entity contains the results of | 
|  | running the link:#auto-closeable-changes-check[AutoCloseableChangesCheck] | 
|  | on a project. | 
|  |  | 
|  | [options="header",cols="1,6"] | 
|  | |==================================== | 
|  | |Field Name              |Description | 
|  | |`auto_closeable_changes`| | 
|  | Changes that can be auto-closed as list of | 
|  | link:rest-api-changes.html#change-info[ChangeInfo] entities. For each | 
|  | returned link:rest-api-changes.html#change-info[ChangeInfo] entity the | 
|  | `problems` field is populated that includes details about the detected | 
|  | issues. If `fix` in the link:#auto_closeable_changes_check_input[ | 
|  | AutoCloseableChangesCheckInput] was set to `true`, `status` and | 
|  | `outcome` in link:rest-api-changes.html#problem-info[ProblemInfo] are | 
|  | populated. If the status says `FIXED` Gerrit was able to auto-close the | 
|  | change now. | 
|  | |==================================== | 
|  |  | 
|  | [[ban-input]] | 
|  | === BanInput | 
|  | The `BanInput` entity contains information for banning commits in a | 
|  | project. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |======================= | 
|  | |Field Name||Description | 
|  | |`commits` ||List of commits to be banned. | 
|  | |`reason`  |optional|Reason for banning the commits. | 
|  | |======================= | 
|  |  | 
|  | [[ban-result-info]] | 
|  | === BanResultInfo | 
|  | The `BanResultInfo` entity describes the result of banning commits. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name      ||Description | 
|  | |`newly_banned`  |optional|List of newly banned commits. | 
|  | |`already_banned`|optional|List of commits that were already banned. | 
|  | |`ignored`       |optional|List of object IDs that were ignored. | 
|  | |============================= | 
|  |  | 
|  | [[branch-info]] | 
|  | === BranchInfo | 
|  | The `BranchInfo` entity contains information about a branch. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |========================= | 
|  | |Field Name  ||Description | 
|  | |`ref`       ||The ref of the branch. | 
|  | |`revision`  ||The revision to which the branch points. | 
|  | |`can_delete`|not set if `false`| | 
|  | Whether the calling user can delete this branch. | 
|  | |`web_links` |optional| | 
|  | Links to the branch in external sites as a list of | 
|  | link:rest-api-changes.html#web-link-info[WebLinkInfo] entries. | 
|  | |========================= | 
|  |  | 
|  | [[branch-input]] | 
|  | === BranchInput | 
|  | The `BranchInput` entity contains information for the creation of | 
|  | a new branch. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |======================= | 
|  | |Field Name||Description | 
|  | |`ref`     |optional| | 
|  | The name of the branch. The prefix `refs/heads/` can be | 
|  | omitted. + | 
|  | If set, must match the branch ID in the URL. | 
|  | |`revision`|optional| | 
|  | The base revision of the new branch. + | 
|  | If not set, `HEAD` will be used as base revision. | 
|  | |======================= | 
|  |  | 
|  | [[check-project-input]] | 
|  | === CheckProjectInput | 
|  | The `CheckProjectInput` entity contains information about which | 
|  | consistency checks should be run on a project. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |=========================================== | 
|  | |Field Name                    ||Description | 
|  | |`auto_closeable_changes_check`|optional| | 
|  | Parameters for the link:#auto-closeable-changes-check[ | 
|  | AutoCloseableChangesCheck] as | 
|  | link:rest-api-changes.html#auto_closeable_changes_check_input[ | 
|  | AutoCloseableChangesCheckInput] entity. | 
|  | |=========================================== | 
|  |  | 
|  | [[check-project-result-info]] | 
|  | === CheckProjectResultInfo | 
|  | The `CheckProjectResultInfo` entity contains results for consistency | 
|  | checks that have been run on a project. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |================================================== | 
|  | |Field Name                           ||Description | 
|  | |`auto_closeable_changes_check_result`|optional| | 
|  | Results for the link:#auto-closeable-changes-check[ | 
|  | AutoCloseableChangesCheck] as | 
|  | link:rest-api-changes.html#auto_closeable_changes_check_result[ | 
|  | AutoCloseableChangesCheckResult] entity. | 
|  | |================================================== | 
|  |  | 
|  | [[commentlink-info]] | 
|  | === CommentLinkInfo | 
|  | The `CommentLinkInfo` entity describes a | 
|  | link:config-gerrit.html#commentlink[commentlink]. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |================================================== | 
|  | |Field Name |        |Description | 
|  | |`match`    |        |A JavaScript regular expression to match | 
|  | positions to be replaced with a hyperlink, as documented in | 
|  | link#config-gerrit.html#commentlink.name.match[commentlink.name.match]. | 
|  | |`link`     |        |The URL to direct the user to whenever the | 
|  | regular expression is matched, as documented in | 
|  | link#config-gerrit.html#commentlink.name.link[commentlink.name.link]. | 
|  | |`enabled`  |optional|Whether the commentlink is enabled, as documented | 
|  | in link#config-gerrit.html#commentlink.name.enabled[ | 
|  | commentlink.name.enabled]. If not set the commentlink is enabled. | 
|  | |================================================== | 
|  |  | 
|  | [[config-info]] | 
|  | === ConfigInfo | 
|  | The `ConfigInfo` entity contains information about the effective project | 
|  | configuration. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |======================================================= | 
|  | |Field Name                                ||Description | 
|  | |`description`                             |optional| | 
|  | The description of the project. | 
|  | |`use_contributor_agreements`              |optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | authors must complete a contributor agreement on the site before | 
|  | pushing any commits or changes to this project. | 
|  | |`use_content_merge`                       |optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | Gerrit will try to perform a 3-way merge of text file content when a | 
|  | file has been modified by both the destination branch and the change | 
|  | being submitted. This option only takes effect if submit type is not | 
|  | FAST_FORWARD_ONLY. | 
|  | |`use_signed_off_by`                       |optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | each change must contain a Signed-off-by line from either the author or | 
|  | the uploader in the commit message. | 
|  | |`create_new_change_for_all_not_in_target` |optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | a new change is created for every commit not in target branch. | 
|  | |`require_change_id`                       |optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether a | 
|  | valid link:user-changeid.html[Change-Id] footer in any commit uploaded | 
|  | for review is required. This does not apply to commits pushed directly | 
|  | to a branch or tag. This property is deprecated and will be removed in | 
|  | a future release. | 
|  | |`enable_signed_push`|optional, not set if signed push is disabled| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | signed push validation is enabled on the project. | 
|  | |`require_signed_push`|optional, not set if signed push is disabled| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | signed push validation is required on the project. | 
|  | |`reject_implicit_merges`|optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | implicit merges should be rejected on changes pushed to the project. | 
|  | |`private_by_default`         || | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | all new changes are set as private by default. | 
|  | |`work_in_progress_by_default`|| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | all new changes are set as work-in-progress by default. | 
|  | |`max_object_size_limit`      || | 
|  | The link:config-gerrit.html#receive.maxObjectSizeLimit[max object size | 
|  | limit] of this project as a link:#max-object-size-limit-info[ | 
|  | MaxObjectSizeLimitInfo] entity. | 
|  | |`default_submit_type`     || | 
|  | link:#submit-type-info[SubmitTypeInfo] that describes the default submit type of | 
|  | the project, when not overridden at the change level. | 
|  | |`submit_type`               || | 
|  | Deprecated; equivalent to link:#submit-type-info[`value`] in | 
|  | `default_submit_type`. | 
|  | |`match_author_to_committer_date` |optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that indicates whether | 
|  | a change's author date will be changed to match its submitter date upon submit. | 
|  | |`state`                     |optional| | 
|  | The state of the project, can be `ACTIVE`, `READ_ONLY` or `HIDDEN`. + | 
|  | Not set if the project state is `ACTIVE`. | 
|  | |`commentlinks`              || | 
|  | Map with the comment link configurations of the project. The name of | 
|  | the comment link configuration is mapped to a link:#commentlink-info[ | 
|  | CommentlinkInfo] entity. | 
|  | |`theme`                                   |optional| | 
|  | The theme that is configured for the project as a link:#theme-info[ | 
|  | ThemeInfo] entity. | 
|  | |`plugin_config`                           |optional| | 
|  | Plugin configuration as map which maps the plugin name to a map of | 
|  | parameter names to link:#config-parameter-info[ConfigParameterInfo] | 
|  | entities. | 
|  | |`actions`                                 |optional| | 
|  | Actions the caller might be able to perform on this project. The | 
|  | information is a map of view names to | 
|  | |`reject_empty_commit`                     |optional| | 
|  | link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether | 
|  | empty commits should be rejected when a change is merged. | 
|  | link:rest-api-changes.html#action-info[ActionInfo] entities. | 
|  | |======================================================= | 
|  |  | 
|  | [[config-input]] | 
|  | === ConfigInput | 
|  | The `ConfigInput` entity describes a new project configuration. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |====================================================== | 
|  | |Field Name                               ||Description | 
|  | |`description`                            |optional| | 
|  | The new description of the project. + | 
|  | If not set, the description is removed. | 
|  | |`use_contributor_agreements`             |optional| | 
|  | Whether authors must complete a contributor agreement on the site | 
|  | before pushing any commits or changes to this project. + | 
|  | Can be `TRUE`, `FALSE` or `INHERIT`. + | 
|  | If not set, this setting is not updated. | 
|  | |`use_content_merge`                       |optional| | 
|  | Whether Gerrit will try to perform a 3-way merge of text file content | 
|  | when a file has been modified by both the destination branch and the | 
|  | change being submitted. This option only takes effect if submit type is | 
|  | not FAST_FORWARD_ONLY. + | 
|  | Can be `TRUE`, `FALSE` or `INHERIT`. + | 
|  | If not set, this setting is not updated. | 
|  | |`use_signed_off_by`                       |optional| | 
|  | Whether each change must contain a Signed-off-by line from either the | 
|  | author or the uploader in the commit message. + | 
|  | Can be `TRUE`, `FALSE` or `INHERIT`. + | 
|  | If not set, this setting is not updated. | 
|  | |`create_new_change_for_all_not_in_target` |optional| | 
|  | Whether a new change will be created for every commit not in target | 
|  | branch. + | 
|  | Can be `TRUE`, `FALSE` or `INHERIT`. + | 
|  | If not set, this setting is not updated. | 
|  | |`require_change_id`                       |optional| | 
|  | Whether a valid link:user-changeid.html[Change-Id] footer in any commit | 
|  | uploaded for review is required. This does not apply to commits pushed | 
|  | directly to a branch or tag. + | 
|  | Can be `TRUE`, `FALSE` or `INHERIT`. + | 
|  | If not set, this setting is not updated. | 
|  | This property is deprecated and will be removed in | 
|  | a future release. | 
|  | |`reject_implicit_merges`                  |optional| | 
|  | Whether a check for implicit merges will be performed when changes | 
|  | are pushed for review. + | 
|  | Can be `TRUE`, `FALSE` or `INHERIT`. + | 
|  | If not set, this setting is not updated. | 
|  | |`max_object_size_limit`                   |optional| | 
|  | The link:config-gerrit.html#receive.maxObjectSizeLimit[max object size | 
|  | limit] of this project as a link:#max-object-size-limit-info[ | 
|  | MaxObjectSizeLimitInfo] entity. + | 
|  | If set to `0`, the max object size limit is removed. + | 
|  | If not set, this setting is not updated. | 
|  | |`submit_type`                             |optional| | 
|  | The default submit type of the project, can be `MERGE_IF_NECESSARY`, | 
|  | `FAST_FORWARD_ONLY`, `REBASE_IF_NECESSARY`, `REBASE_ALWAYS`, `MERGE_ALWAYS` or | 
|  | `CHERRY_PICK`. + | 
|  | If not set, the submit type is not updated. | 
|  | |`state`                                   |optional| | 
|  | The state of the project, can be `ACTIVE`, `READ_ONLY` or `HIDDEN`. + | 
|  | Not set if the project state is `ACTIVE`. + | 
|  | If not set, the project state is not updated. | 
|  | |`plugin_config_values`                    |optional| | 
|  | Plugin configuration values as map which maps the plugin name to a map | 
|  | of parameter names to values. | 
|  | |`reject_empty_commit`                     |optional| | 
|  | Whether empty commits should be rejected when a change is merged. | 
|  | Can be `TRUE`, `FALSE` or `INHERIT`. + | 
|  | If not set, this setting is not updated. | 
|  | |====================================================== | 
|  |  | 
|  | [[config-parameter-info]] | 
|  | === ConfigParameterInfo | 
|  | The `ConfigParameterInfo` entity describes a project configuration | 
|  | parameter. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |=============================== | 
|  | |Field Name        ||Description | 
|  | |`display_name`    |optional| | 
|  | The display name of the configuration parameter. | 
|  | |`description`     |optional| | 
|  | The description of the configuration parameter. | 
|  | |`warning`         |optional| | 
|  | Warning message for the configuration parameter. | 
|  | |`type`            || | 
|  | The type of the configuration parameter. Can be `STRING`, `INT`, | 
|  | `LONG`, `BOOLEAN`, `LIST` or `ARRAY`. | 
|  | |`value`           |optional| | 
|  | The value of the configuration parameter as string. If the parameter | 
|  | is inheritable this is the effective value which is deduced from | 
|  | `configured_value` and `inherited_value`. | 
|  | |`values`          |optional| | 
|  | The list of values. Only set if the `type` is `ARRAY`. | 
|  | |`editable`         |`false` if not set| | 
|  | Whether the value is editable. | 
|  | |`permitted_values`|optional| | 
|  | The list of permitted values. Only set if the `type` is `LIST`. | 
|  | |`inheritable`     |`false` if not set| | 
|  | Whether the configuration parameter can be inherited. | 
|  | |`configured_value`|optional| | 
|  | The value of the configuration parameter that is configured on this | 
|  | project, only set if `inheritable` is true. | 
|  | |`inherited_value` |optional| | 
|  | The inherited value of the configuration parameter, only set if | 
|  | `inheritable` is true. | 
|  | |`permitted_values` |optional| | 
|  | The list of permitted values, only set if the `type` is `LIST`. | 
|  | |=============================== | 
|  |  | 
|  | [[dashboard-info]] | 
|  | === DashboardInfo | 
|  | The `DashboardInfo` entity contains information about a project | 
|  | dashboard. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |=============================== | 
|  | |Field Name        ||Description | 
|  | |`id`              || | 
|  | The ID of the dashboard. The ID has the format '<ref>:<path>', | 
|  | where ref and path are URL encoded. | 
|  | |`project`         || | 
|  | The name of the project for which this dashboard is returned. | 
|  | |`defining_project`|| | 
|  | The name of the project in which this dashboard is defined. | 
|  | This is different from `project` if the dashboard is inherited from a | 
|  | parent project. | 
|  | |`ref`             || | 
|  | The name of the ref in which the dashboard is defined, without the | 
|  | `refs/meta/dashboards/` prefix, which is common for all dashboard refs. | 
|  | |`path`            || | 
|  | The path of the file in which the dashboard is defined. | 
|  | |`description`     |optional|The description of the dashboard. | 
|  | |`foreach`         |optional| | 
|  | Subquery that applies to all sections in the dashboard. + | 
|  | Tokens such as `${project}` are not resolved. | 
|  | |`url`             || | 
|  | The URL under which the dashboard can be opened in the Gerrit Web UI. + | 
|  | The URL is relative to the canonical web URL. + | 
|  | Tokens in the queries such as `${project}` are resolved. | 
|  | |`is_default`      |not set if `false`| | 
|  | Whether this is the default dashboard of the project. | 
|  | |`title`           |optional|The title of the dashboard. | 
|  | |`sections`        || | 
|  | The list of link:#dashboard-section-info[sections] in the dashboard. | 
|  | |=============================== | 
|  |  | 
|  | [[dashboard-input]] | 
|  | === DashboardInput | 
|  | The `DashboardInput` entity contains information to create/update a | 
|  | project dashboard. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name      ||Description | 
|  | |`id`            |optional| | 
|  | URL encoded ID of a dashboard to which this dashboard should link to. | 
|  | |`commit_message`|optional| | 
|  | Message that should be used to commit the change of the dashboard. | 
|  | |============================= | 
|  |  | 
|  | [[dashboard-section-info]] | 
|  | === DashboardSectionInfo | 
|  | The `DashboardSectionInfo` entity contains information about a section | 
|  | in a dashboard. | 
|  |  | 
|  | [options="header",cols="1,6"] | 
|  | |=========================== | 
|  | |Field Name    |Description | 
|  | |`name`        |The title of the section. | 
|  | |`query`       |The query of the section. + | 
|  | Tokens such as `${project}` are not resolved. | 
|  | |=========================== | 
|  |  | 
|  | [[delete-branches-input]] | 
|  | === DeleteBranchesInput | 
|  | The `DeleteBranchesInput` entity contains information about branches that should | 
|  | be deleted. | 
|  |  | 
|  | [options="header",width="50%",cols="1,6"] | 
|  | |========================== | 
|  | |Field Name   |Description | 
|  | |`branches`   |A list of branch names that identify the branches that should be | 
|  | deleted. | 
|  | |========================== | 
|  |  | 
|  | [[delete-tags-input]] | 
|  | === DeleteTagsInput | 
|  | The `DeleteTagsInput` entity contains information about tags that should | 
|  | be deleted. | 
|  |  | 
|  | [options="header",width="50%",cols="1,6"] | 
|  | |========================== | 
|  | |Field Name   |Description | 
|  | |`tags`       |A list of tag names that identify the tags that should be | 
|  | deleted. | 
|  | |========================== | 
|  |  | 
|  | [[gc-input]] | 
|  | === GCInput | 
|  | The `GCInput` entity contains information to run the Git garbage | 
|  | collection. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name      ||Description | 
|  | |`show_progress` |`false` if not set| | 
|  | Whether progress information should be shown. | 
|  | |`aggressive`    |`false` if not set| | 
|  | Whether an aggressive garbage collection should be done. | 
|  | |`async`         |`false` if not set| | 
|  | Whether the garbage collection should run asynchronously. | 
|  | |============================= | 
|  |  | 
|  | [[head-input]] | 
|  | === HeadInput | 
|  | The `HeadInput` entity contains information for setting `HEAD` for a | 
|  | project. | 
|  |  | 
|  | [options="header",cols="1,6"] | 
|  | |============================ | 
|  | |Field Name      |Description | 
|  | |`ref`           | | 
|  | The ref to which `HEAD` should be set, the `refs/heads` prefix can be | 
|  | omitted. | 
|  | |============================ | 
|  |  | 
|  | [[index-project-input]] | 
|  | === IndexProjectInput | 
|  | The `IndexProjectInput` contains parameters for indexing a project. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |================================ | 
|  | |Field Name         ||Description | 
|  | |`index_children`   || | 
|  | If children should be indexed recursively. | 
|  | |`async`            || | 
|  | If projects should be indexed asynchronously. | 
|  | |================================ | 
|  |  | 
|  | [[inherited-boolean-info]] | 
|  | === InheritedBooleanInfo | 
|  | A boolean value that can also be inherited. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |================================ | 
|  | |Field Name         ||Description | 
|  | |`value`            || | 
|  | The effective boolean value. | 
|  | |`configured_value` || | 
|  | The configured value, can be `TRUE`, `FALSE` or `INHERITED`. | 
|  | |`inherited_value`  |optional| | 
|  | The boolean value inherited from the parent. + | 
|  | Not set if there is no parent. | 
|  | |================================ | 
|  |  | 
|  |  | 
|  | [[label-type-info]] | 
|  | === LabelTypeInfo | 
|  | The `LabelTypeInfo` entity contains metadata about the labels that a | 
|  | project has. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |================================ | 
|  | |Field Name         ||Description | 
|  | |`values`           ||Map of the available values to their description. | 
|  | |`default_value`    ||The default value of this label. | 
|  | |================================ | 
|  |  | 
|  | [[max-object-size-limit-info]] | 
|  | === MaxObjectSizeLimitInfo | 
|  | The `MaxObjectSizeLimitInfo` entity contains information about the | 
|  | link:config-gerrit.html#receive.maxObjectSizeLimit[max object size | 
|  | limit] of a project. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |=============================== | 
|  | |Field Name        ||Description | 
|  | |`value`           |optional| | 
|  | The effective value in bytes of the max object size limit. + | 
|  | Not set if there is no limit for the object size. | 
|  | |`configured_value`|optional| | 
|  | The max object size limit that is configured on the project as a | 
|  | formatted string. + | 
|  | Not set if there is no limit for the object size configured on project | 
|  | level. | 
|  | |`summary`         |optional| | 
|  | A string describing whether the value was inherited or overridden from | 
|  | the parent project or global config. + | 
|  | Not set if not inherited or overridden. | 
|  | |=============================== | 
|  |  | 
|  | [[project-access-input]] | 
|  | === ProjectAccessInput | 
|  | The `ProjectAccessInput` describes changes that should be applied to a project | 
|  | access config. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name          |        |Description | 
|  | |`remove`            |optional| | 
|  | A list of deductions to be applied to the project access as | 
|  | link:rest-api-access.html#project-access-info[ProjectAccessInfo] entities. | 
|  | |`add`               |optional| | 
|  | A list of additions to be applied to the project access as | 
|  | link:rest-api-access.html#project-access-info[ProjectAccessInfo] entities. | 
|  | |`message`           |optional| | 
|  | A commit message for this change. | 
|  | |`parent`            |optional| | 
|  | A new parent for the project to inherit from. Changing the parent project | 
|  | requires administrative privileges. | 
|  | |============================= | 
|  |  | 
|  | [[project-description-input]] | 
|  | === ProjectDescriptionInput | 
|  | The `ProjectDescriptionInput` entity contains information for setting a | 
|  | project description. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name      ||Description | 
|  | |`description`   |optional|The project description. + | 
|  | The project description will be deleted if not set. | 
|  | |`commit_message`|optional| | 
|  | Message that should be used to commit the change of the project | 
|  | description in the `project.config` file to the `refs/meta/config` | 
|  | branch. | 
|  | |============================= | 
|  |  | 
|  | [[project-info]] | 
|  | === ProjectInfo | 
|  | The `ProjectInfo` entity contains information about a project. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |=========================== | 
|  | |Field Name    ||Description | 
|  | |`id`          ||The URL encoded project name. | 
|  | |`name`        | | 
|  | not set if returned in a map where the project name is used as map key| | 
|  | The name of the project. | 
|  | |`parent`      |optional| | 
|  | The name of the parent project. + | 
|  | `?-<n>` if the parent project is not visible (`<n>` is a number which | 
|  | is increased for each non-visible project). | 
|  | |`description` |optional|The description of the project. | 
|  | |`state`       |optional|`ACTIVE`, `READ_ONLY` or `HIDDEN`. | 
|  | |`branches`    |optional|Map of branch names to HEAD revisions. | 
|  | |`labels`      |optional| | 
|  | Map of label names to | 
|  | link:#label-type-info[LabelTypeInfo] entries. | 
|  | This field is filled for link:#create-project[Create Project] and | 
|  | link:#get-project[Get Project] calls. | 
|  | |`web_links`   |optional| | 
|  | Links to the project in external sites as a list of | 
|  | link:rest-api-changes.html#web-link-info[WebLinkInfo] entries. | 
|  | |=========================== | 
|  |  | 
|  | [[project-input]] | 
|  | === ProjectInput | 
|  | The `ProjectInput` entity contains information for the creation of | 
|  | a new project. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |========================================= | 
|  | |Field Name                  ||Description | 
|  | |`name`                      |optional| | 
|  | The name of the project (not encoded). + | 
|  | If set, must match the project name in the URL. + | 
|  | If name ends with `.git` the suffix will be automatically removed. | 
|  | |`parent`                    |optional| | 
|  | The name of the parent project. + | 
|  | If not set, the `All-Projects` project will be the parent project. | 
|  | |`description`               |optional|The description of the project. | 
|  | |`permissions_only`          |`false` if not set| | 
|  | Whether a permission-only project should be created. | 
|  | |`create_empty_commit`       |`false` if not set| | 
|  | Whether an empty initial commit should be created. | 
|  | |`submit_type`               |optional| | 
|  | The submit type that should be set for the project | 
|  | (`MERGE_IF_NECESSARY`, `REBASE_IF_NECESSARY`, `REBASE_ALWAYS`, | 
|  | `FAST_FORWARD_ONLY`, `MERGE_ALWAYS`, `CHERRY_PICK`). + | 
|  | If not set, `MERGE_IF_NECESSARY` is set as submit type unless | 
|  | link:config-gerrit.html#repository.name.defaultSubmitType[ | 
|  | repository.<name>.defaultSubmitType] is set to a different value. | 
|  | |`branches`                  |optional| | 
|  | A list of branches that should be initially created. + | 
|  | For the branch names the `refs/heads/` prefix can be omitted. | 
|  | |`owners`                    |optional| | 
|  | A list of groups that should be assigned as project owner. + | 
|  | Each group in the list must be specified as | 
|  | link:rest-api-groups.html#group-id[group-id]. + | 
|  | If not set, the link:config-gerrit.html#repository.name.ownerGroup[ | 
|  | groups that are configured as default owners] are set as project | 
|  | owners. | 
|  | |`use_contributor_agreements`                  |`INHERIT` if not set| | 
|  | Whether contributor agreements should be used for the project  (`TRUE`, | 
|  | `FALSE`, `INHERIT`). | 
|  | |`use_signed_off_by`                           |`INHERIT` if not set| | 
|  | Whether the usage of 'Signed-Off-By' footers is required for the | 
|  | project (`TRUE`, `FALSE`, `INHERIT`). | 
|  | |`create_new_change_for_all_not_in_target`     |`INHERIT` if not set| | 
|  | Whether a new change is created for every commit not in target branch | 
|  | for the project (`TRUE`, `FALSE`, `INHERIT`). | 
|  | |`use_content_merge`                           |`INHERIT` if not set| | 
|  | Whether content merge should be enabled for the project (`TRUE`, | 
|  | `FALSE`, `INHERIT`). + | 
|  | `FALSE`, if the `submit_type` is `FAST_FORWARD_ONLY`. | 
|  | |`require_change_id`                           |`INHERIT` if not set| | 
|  | Whether the usage of Change-Ids is required for the project (`TRUE`, | 
|  | `FALSE`, `INHERIT`). | 
|  | This property is deprecated and will be removed in | 
|  | a future release. | 
|  | |`enable_signed_push`                           |`INHERIT` if not set| | 
|  | Whether signed push validation is enabled on the project  (`TRUE`, | 
|  | `FALSE`, `INHERIT`). | 
|  | |`require_signed_push`                          |`INHERIT` if not set| | 
|  | Whether signed push validation is required on the project  (`TRUE`, | 
|  | `FALSE`, `INHERIT`). | 
|  | |`max_object_size_limit`     |optional| | 
|  | Max allowed Git object size for this project. | 
|  | Common unit suffixes of 'k', 'm', or 'g' are supported. | 
|  | |`plugin_config_values`      |optional| | 
|  | Plugin configuration values as map which maps the plugin name to a map | 
|  | of parameter names to values. | 
|  | |`reject_empty_commit`       |optional| | 
|  | Whether empty commits should be rejected when a change is merged | 
|  | (`TRUE`, `FALSE`, `INHERIT`). | 
|  | |========================================= | 
|  |  | 
|  | [[project-parent-input]] | 
|  | === ProjectParentInput | 
|  | The `ProjectParentInput` entity contains information for setting a | 
|  | project parent. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name      ||Description | 
|  | |`parent`        ||The name of the parent project. | 
|  | |`commit_message`|optional| | 
|  | Message that should be used to commit the change of the project parent | 
|  | in the `project.config` file to the `refs/meta/config` branch. | 
|  | |============================= | 
|  |  | 
|  | [[reflog-entry-info]] | 
|  | === ReflogEntryInfo | 
|  | The `ReflogEntryInfo` entity describes an entry in a reflog. | 
|  |  | 
|  | [options="header",cols="1,6"] | 
|  | |============================ | 
|  | |Field Name      |Description | 
|  | |`old_id`        |The old commit ID. | 
|  | |`new_id`        |The new commit ID. | 
|  | |`who`           | | 
|  | The user performing the change as a | 
|  | link:rest-api-changes.html#git-person-info[GitPersonInfo] entity. | 
|  | |`comment`       |Comment of the reflog entry. | 
|  | |============================ | 
|  |  | 
|  | [[repository-statistics-info]] | 
|  | === RepositoryStatisticsInfo | 
|  | The `RepositoryStatisticsInfo` entity contains information about | 
|  | statistics of a Git repository. | 
|  |  | 
|  | [options="header",cols="1,6"] | 
|  | |====================================== | 
|  | |Field Name                |Description | 
|  | |`number_of_loose_objects` |Number of loose objects. | 
|  | |`number_of_loose_refs`    |Number of loose refs. | 
|  | |`number_of_pack_files`    |Number of pack files. | 
|  | |`number_of_packed_objects`|Number of packed objects. | 
|  | |`number_of_packed_refs`   |Number of packed refs. | 
|  | |`size_of_loose_objects`   |Size of loose objects in bytes. | 
|  | |`size_of_packed_objects`  |Size of packed objects in bytes. | 
|  | |====================================== | 
|  |  | 
|  | [[submit-type-info]] | 
|  | === SubmitTypeInfo | 
|  | Information about the link:project-configuration.html#submit_type[default submit | 
|  | type of a project], taking into account project inheritance. | 
|  |  | 
|  | Valid values for each field are `MERGE_IF_NECESSARY`, `FAST_FORWARD_ONLY`, | 
|  | `REBASE_IF_NECESSARY`, `REBASE_ALWAYS`, `MERGE_ALWAYS` or `CHERRY_PICK`, plus | 
|  | `INHERIT` where applicable. | 
|  |  | 
|  | [options="header",cols="1,6"] | 
|  | |=============================== | 
|  | |Field Name         |Description | 
|  | |`value`            | | 
|  | The effective submit type value. Never `INHERIT`. | 
|  | |`configured_value` | | 
|  | The configured value, can be one of the submit types, or `INHERIT` to inherit | 
|  | from the parent project. | 
|  | |`inherited_value`  | | 
|  | The effective value that would be inherited from the parent. Never `INHERIT`. | 
|  | |=============================== | 
|  |  | 
|  | [[tag-info]] | 
|  | === TagInfo | 
|  | The `TagInfo` entity contains information about a tag. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |========================= | 
|  | |Field Name  ||Description | 
|  | |`ref`       ||The ref of the tag. | 
|  | |`revision`  ||For lightweight tags, the revision of the commit to which the tag | 
|  | points. For annotated tags, the revision of the tag object. | 
|  | |`object`|Only set for annotated tags.|The revision of the object to which the | 
|  | tag points. | 
|  | |`message`|Only set for annotated tags.|The tag message. For signed tags, includes | 
|  | the signature. | 
|  | |`tagger`|Only set for annotated tags, if present in the tag.|The tagger as a | 
|  | link:rest-api-changes.html#git-person-info[GitPersonInfo] entity. | 
|  | |`created`|optional|The link:rest-api.html#timestamp[timestamp] of when the tag | 
|  | was created. For annotated and signed tags, this is the timestamp of the tag object | 
|  | and is the same as the `date` field in the `tagger`. For lightweight tags, it is | 
|  | the commit timestamp of the commit to which the tag points, when the object is a | 
|  | commit. It is not set when the object is any other type. | 
|  | |`can_delete`|not set if `false`| | 
|  | Whether the calling user can delete this tag. | 
|  | |`web_links` |optional| | 
|  | Links to the tag in external sites as a list of | 
|  | link:rest-api-changes.html#web-link-info[WebLinkInfo] entries. | 
|  | |========================= | 
|  |  | 
|  | [[tag-input]] | 
|  | === TagInput | 
|  |  | 
|  | The `TagInput` entity contains information for creating a tag. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |========================= | 
|  | |Field Name  ||Description | 
|  | |`ref`       ||The name of the tag. The leading `refs/tags/` is optional. | 
|  | |`revision`  |optional|The revision to which the tag should point. If not | 
|  | specified, the project's `HEAD` will be used. | 
|  | |`message`   |optional|The tag message. When set, the tag will be created | 
|  | as an annotated tag. | 
|  | |========================= | 
|  |  | 
|  |  | 
|  | [[theme-info]] | 
|  | === ThemeInfo | 
|  | The `ThemeInfo` entity describes a theme. | 
|  |  | 
|  | [options="header",cols="1,^2,4"] | 
|  | |============================= | 
|  | |Field Name      ||Description | 
|  | |`css`           |optional| | 
|  | The path to the `GerritSite.css` file. | 
|  | |`header`        |optional| | 
|  | The path to the `GerritSiteHeader.html` file. | 
|  | |`footer`        |optional| | 
|  | The path to the `GerritSiteFooter.html` file. | 
|  | |============================= | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |