0d06b081bb
* stable-2.14: Fix http_archive rule in WORKSPACE ConfigInfoImpl: Return raw byte value for effective value TransferConfig: Move getEffectiveMaxObjectSizeLimit to ProjectState Change-Id: Ib58995f7f6db32e2585c285b3d3dceb6b358848f
3304 lines
84 KiB
Plaintext
3304 lines
84 KiB
Plaintext
= 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".
|
|
+
|
|
.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"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[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": "CHERRY_PICK",
|
|
"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.
|
|
|
|
The request body does not need to include a
|
|
link:#project-description-input[ProjectDescriptionInput] entity if no
|
|
commit message is specified.
|
|
|
|
Please note that some proxies prohibit request bodies for DELETE
|
|
requests. In this case, if you want to specify a commit message, use
|
|
link:#set-project-description[PUT] to delete the description.
|
|
|
|
.Request
|
|
----
|
|
DELETE /projects/plugins%2Freplication/description HTTP/1.0
|
|
----
|
|
|
|
.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": "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",
|
|
"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,
|
|
"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,
|
|
"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
|
|
--
|
|
'POST /projects/MyProject/check.access'
|
|
--
|
|
|
|
Runs access checks for other users. This requires the
|
|
link:access-control.html#capability_administrateServer[Administrate Server]
|
|
global capability.
|
|
|
|
Input for the access checks that should be run must be provided in
|
|
the request body inside a
|
|
link:#access-check-input[AccessCheckInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /projects/MyProject/check.access HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"account": "Kristen.Burns@gerritcodereview.com",
|
|
"ref": "refs/heads/secret/bla"
|
|
}
|
|
----
|
|
|
|
The result is a link:#access-check-info[AccessCheckInfo] entity
|
|
detailing the read access of the given user for the given project (or
|
|
project-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
|
|
}
|
|
----
|
|
|
|
[[index]]
|
|
=== 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 HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 202 Accepted
|
|
Content-Disposition: attachment
|
|
----
|
|
|
|
[[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.
|
|
|
|
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#change-info[ChangeInfo] 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"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[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, 403 means denied and 404 means the project does not exist.
|
|
|`message` |optional|A clarifying message if `status` is not 200.
|
|
|=========================================
|
|
|
|
[[access-check-input]]
|
|
=== AccessCheckInput
|
|
The `AccessCheckInput` entity is either an account or
|
|
(account, ref) tuple for which we want to check access.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=========================================
|
|
|Field Name ||Description
|
|
|`account` ||The account for which to check access
|
|
|`ref` |optional|The refname for which to check access
|
|
|=========================================
|
|
|
|
[[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.
|
|
|=======================
|
|
|
|
[[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.
|
|
|`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.
|
|
|`submit_type` ||
|
|
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`.
|
|
|`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 the comment link
|
|
configuration, which has the same format as the
|
|
link:config-gerrit.html#_a_id_commentlink_a_section_commentlink[
|
|
commentlink section] of `gerrit.config`.
|
|
|`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
|
|
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.
|
|
|`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.
|
|
|======================================================
|
|
|
|
[[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.
|
|
|============================
|
|
|
|
[[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.
|
|
|`inherited_value` |optional|
|
|
The max object size limit that is inherited from the global config as a
|
|
formatted string. +
|
|
Not set if there is no global limit for the object size.
|
|
|===============================
|
|
|
|
[[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`).
|
|
|`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.
|
|
|=========================================
|
|
|
|
[[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.
|
|
|======================================
|
|
|
|
[[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.
|
|
|`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
|
|
---------
|