f3abd3caf6
Currently, when creating a cherry-pick, the topic of the created change will be {source_change_topic}-{destination_branch} if there is a source change topic, otherwise, it will not be set. This change adds the ability to also set a topic when creating a cherry-pick. This is useful especially when implementing Cherry-pick topic, since when cherry-picking a topic we want to set a specific and unique topic for all created changes. Change-Id: I9eabf0b3526875711bd21da0c1f31d434dcc4059
7554 lines
224 KiB
Plaintext
7554 lines
224 KiB
Plaintext
:linkattrs:
|
|
= Gerrit Code Review - /changes/ REST API
|
|
|
|
This page describes the change related REST endpoints.
|
|
Please also take note of the general information on the
|
|
link:rest-api.html[REST API].
|
|
|
|
[[change-endpoints]]
|
|
== Change Endpoints
|
|
|
|
[[create-change]]
|
|
=== Create Change
|
|
--
|
|
'POST /changes/'
|
|
--
|
|
|
|
The change input link:#change-input[ChangeInput] entity must be provided in the
|
|
request body.
|
|
|
|
To create a change the calling user must be allowed to
|
|
link:access-control.html#category_push_review[upload to code review].
|
|
|
|
.Request
|
|
----
|
|
POST /changes/ HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"project" : "myProject",
|
|
"subject" : "Let's support 100% Gerrit workflow direct in browser",
|
|
"branch" : "master",
|
|
"topic" : "create-change-in-browser",
|
|
"status" : "NEW"
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that describes
|
|
the resulting change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 201 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"topic": "create-change-in-browser",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"subject": "Let's support 100% Gerrit workflow direct in browser",
|
|
"status": "NEW",
|
|
"created": "2014-05-05 07:15:44.639000000",
|
|
"updated": "2014-05-05 07:15:44.639000000",
|
|
"mergeable": true,
|
|
"insertions": 0,
|
|
"deletions": 0,
|
|
"_number": 4711,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[list-changes]]
|
|
=== Query Changes
|
|
--
|
|
'GET /changes/'
|
|
--
|
|
|
|
Queries changes visible to the caller. The
|
|
link:user-search.html#_search_operators[query string] must be provided
|
|
by the `q` parameter. The `n` parameter can be used to limit the
|
|
returned results. The `no-limit` parameter can be used remove the default
|
|
limit on queries and return all results. This might not be supported by
|
|
all index backends.
|
|
|
|
As result a list of link:#change-info[ChangeInfo] entries is returned.
|
|
The change output is sorted by the last update time, most recently
|
|
updated to oldest updated.
|
|
|
|
Query for open changes of watched projects:
|
|
|
|
.Request
|
|
----
|
|
GET /changes/?q=status:open+is:watched&n=2 HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"id": "demo~master~Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"project": "demo",
|
|
"branch": "master",
|
|
"change_id": "Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"subject": "One change",
|
|
"status": "NEW",
|
|
"created": "2012-07-17 07:18:30.854000000",
|
|
"updated": "2012-07-17 07:19:27.766000000",
|
|
"mergeable": true,
|
|
"insertions": 26,
|
|
"deletions": 10,
|
|
"_number": 1756,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
},
|
|
{
|
|
"id": "demo~master~I09c8041b5867d5b33170316e2abc34b79bbb8501",
|
|
"project": "demo",
|
|
"branch": "master",
|
|
"change_id": "I09c8041b5867d5b33170316e2abc34b79bbb8501",
|
|
"subject": "Another change",
|
|
"status": "NEW",
|
|
"created": "2012-07-17 07:18:30.884000000",
|
|
"updated": "2012-07-17 07:18:30.885000000",
|
|
"mergeable": true,
|
|
"insertions": 12,
|
|
"deletions": 18,
|
|
"_number": 1757,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"_more_changes": true
|
|
}
|
|
]
|
|
----
|
|
|
|
If the number of changes matching the query exceeds either the internal
|
|
limit or a supplied `n` query parameter, the last change object has a
|
|
`_more_changes: true` JSON field set.
|
|
|
|
The `S` or `start` query parameter can be supplied to skip a number
|
|
of changes from the list.
|
|
|
|
Clients are allowed to specify more than one query by setting the `q`
|
|
parameter multiple times. In this case the result is an array of
|
|
arrays, one per query in the same order the queries were given in.
|
|
|
|
.Query for the 25 most recent open changes of the projects that you watch
|
|
****
|
|
get::/changes/?q=status:open+is:watched&n=25
|
|
****
|
|
|
|
Query that retrieves changes for a user's dashboard:
|
|
|
|
.Request
|
|
----
|
|
GET /changes/?q=is:open+owner:self&q=is:open+reviewer:self+-owner:self&q=is:closed+owner:self+limit:5&o=LABELS HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
[
|
|
{
|
|
"id": "demo~master~Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"project": "demo",
|
|
"branch": "master",
|
|
"change_id": "Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"subject": "One change",
|
|
"status": "NEW",
|
|
"created": "2012-07-17 07:18:30.854000000",
|
|
"updated": "2012-07-17 07:19:27.766000000",
|
|
"mergeable": true,
|
|
"insertions": 4,
|
|
"deletions": 7,
|
|
"_number": 1756,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"labels": {
|
|
"Verified": {},
|
|
"Code-Review": {}
|
|
}
|
|
}
|
|
],
|
|
[],
|
|
[]
|
|
]
|
|
----
|
|
|
|
.Query the changes for your user dashboard
|
|
****
|
|
get::/changes/?q=is:open+owner:self&q=is:open+reviewer:self+-owner:self&q=is:closed+owner:self+limit:5&o=LABELS
|
|
****
|
|
|
|
[[query-options]]
|
|
Additional fields can be obtained by adding `o` parameters, each
|
|
option requires more database lookups and slows down the query
|
|
response time to the client so they are generally disabled by
|
|
default. Optional fields are:
|
|
|
|
[[labels]]
|
|
--
|
|
* `LABELS`: a summary of each label required for submit, and
|
|
approvers that have granted (or rejected) with that label.
|
|
--
|
|
|
|
[[detailed-labels]]
|
|
--
|
|
* `DETAILED_LABELS`: detailed label information, including numeric
|
|
values of all existing approvals, recognized label values, values
|
|
permitted to be set by the current user, all reviewers by state, and
|
|
reviewers that may be removed by the current user.
|
|
--
|
|
|
|
[[current-revision]]
|
|
--
|
|
* `CURRENT_REVISION`: describe the current revision (patch set)
|
|
of the change, including the commit SHA-1 and URLs to fetch from.
|
|
--
|
|
|
|
[[all-revisions]]
|
|
--
|
|
* `ALL_REVISIONS`: describe all revisions, not just current.
|
|
--
|
|
|
|
[[download-commands]]
|
|
--
|
|
* `DOWNLOAD_COMMANDS`: include the `commands` field in the
|
|
link:#fetch-info[FetchInfo] for revisions. Only valid when the
|
|
`CURRENT_REVISION` or `ALL_REVISIONS` option is selected.
|
|
--
|
|
|
|
[[current-commit]]
|
|
--
|
|
* `CURRENT_COMMIT`: parse and output all header fields from the
|
|
commit object, including message. Only valid when the
|
|
`CURRENT_REVISION` or `ALL_REVISIONS` option is selected.
|
|
--
|
|
|
|
[[all-commits]]
|
|
--
|
|
* `ALL_COMMITS`: parse and output all header fields from the
|
|
output revisions. If only `CURRENT_REVISION` was requested
|
|
then only the current revision's commit data will be output.
|
|
--
|
|
|
|
[[current-files]]
|
|
--
|
|
* `CURRENT_FILES`: list files modified by the commit and magic files,
|
|
including basic line counts inserted/deleted per file. Only valid
|
|
when the `CURRENT_REVISION` or `ALL_REVISIONS` option is selected.
|
|
--
|
|
|
|
[[all-files]]
|
|
--
|
|
* `ALL_FILES`: list files modified by the commit and magic files,
|
|
including basic line counts inserted/deleted per file. If only the
|
|
`CURRENT_REVISION` was requested then only that commit's modified
|
|
files will be output.
|
|
--
|
|
|
|
[[detailed-accounts]]
|
|
--
|
|
* `DETAILED_ACCOUNTS`: include `_account_id`, `email` and `username`
|
|
fields when referencing accounts.
|
|
--
|
|
|
|
[[reviewer-updates]]
|
|
--
|
|
* `REVIEWER_UPDATES`: include updates to reviewers set as
|
|
link:#review-update-info[ReviewerUpdateInfo] entities.
|
|
--
|
|
|
|
[[messages]]
|
|
--
|
|
* `MESSAGES`: include messages associated with the change.
|
|
--
|
|
|
|
[[actions]]
|
|
--
|
|
* `CURRENT_ACTIONS`: include information on available actions
|
|
for the change and its current revision. Ignored if the caller
|
|
is not authenticated.
|
|
--
|
|
|
|
[[change-actions]]
|
|
--
|
|
* `CHANGE_ACTIONS`: include information on available
|
|
change actions for the change. Ignored if the caller
|
|
is not authenticated.
|
|
--
|
|
|
|
[[reviewed]]
|
|
--
|
|
* `REVIEWED`: include the `reviewed` field if all of the following are
|
|
true:
|
|
- the change is open
|
|
- the caller is authenticated
|
|
- the caller has commented on the change more recently than the last update
|
|
from the change owner, i.e. this change would show up in the results of
|
|
link:user-search.html#reviewedby[reviewedby:self].
|
|
--
|
|
[[skip_diffstat]]
|
|
--
|
|
* `SKIP_DIFFSTAT`: skip the 'insertions' and 'deletions' field in link:#change-info[ChangeInfo].
|
|
For large trees, their computation may be expensive.
|
|
--
|
|
|
|
[[submittable]]
|
|
--
|
|
* `SUBMITTABLE`: include the `submittable` field in link:#change-info[ChangeInfo],
|
|
which can be used to tell if the change is reviewed and ready for submit.
|
|
--
|
|
|
|
[[web-links]]
|
|
--
|
|
* `WEB_LINKS`: include the `web_links` field in link:#commit-info[CommitInfo],
|
|
therefore only valid in combination with `CURRENT_COMMIT` or
|
|
`ALL_COMMITS`.
|
|
--
|
|
|
|
[[check]]
|
|
--
|
|
* `CHECK`: include potential problems with the change.
|
|
--
|
|
|
|
[[commit-footers]]
|
|
--
|
|
* `COMMIT_FOOTERS`: include the full commit message with
|
|
Gerrit-specific commit footers in the
|
|
link:#revision-info[RevisionInfo].
|
|
--
|
|
|
|
[[push-certificates]]
|
|
--
|
|
* `PUSH_CERTIFICATES`: include push certificate information in the
|
|
link:#revision-info[RevisionInfo]. Ignored if signed push is not
|
|
link:config-gerrit.html#receive.enableSignedPush[enabled] on the
|
|
server.
|
|
--
|
|
|
|
[[tracking-ids]]
|
|
--
|
|
* `TRACKING_IDS`: include references to external tracking systems
|
|
as link:#tracking-id-info[TrackingIdInfo].
|
|
--
|
|
|
|
.Request
|
|
----
|
|
GET /changes/?q=97&o=CURRENT_REVISION&o=CURRENT_COMMIT&o=CURRENT_FILES&o=DOWNLOAD_COMMANDS HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"id": "gerrit~master~I7ea46d2e2ee5c64c0d807677859cfb7d90b8966a",
|
|
"project": "gerrit",
|
|
"branch": "master",
|
|
"change_id": "I7ea46d2e2ee5c64c0d807677859cfb7d90b8966a",
|
|
"subject": "Use an EventBus to manage star icons",
|
|
"status": "NEW",
|
|
"created": "2012-04-25 00:52:25.580000000",
|
|
"updated": "2012-04-25 00:52:25.586000000",
|
|
"mergeable": true,
|
|
"insertions": 16,
|
|
"deletions": 7,
|
|
"_number": 97,
|
|
"owner": {
|
|
"name": "Shawn Pearce"
|
|
},
|
|
"current_revision": "184ebe53805e102605d11f6b143486d15c23a09c",
|
|
"revisions": {
|
|
"184ebe53805e102605d11f6b143486d15c23a09c": {
|
|
"kind": "REWORK",
|
|
"_number": 1,
|
|
"ref": "refs/changes/97/97/1",
|
|
"fetch": {
|
|
"git": {
|
|
"url": "git://localhost/gerrit",
|
|
"ref": "refs/changes/97/97/1",
|
|
"commands": {
|
|
"Checkout": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD",
|
|
"Cherry-Pick": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD",
|
|
"Format-Patch": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD",
|
|
"Pull": "git pull git://localhost/gerrit refs/changes/97/97/1"
|
|
}
|
|
},
|
|
"http": {
|
|
"url": "http://myuser@127.0.0.1:8080/gerrit",
|
|
"ref": "refs/changes/97/97/1",
|
|
"commands": {
|
|
"Checkout": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD",
|
|
"Cherry-Pick": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD",
|
|
"Format-Patch": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD",
|
|
"Pull": "git pull http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1"
|
|
}
|
|
},
|
|
"ssh": {
|
|
"url": "ssh://myuser@*:29418/gerrit",
|
|
"ref": "refs/changes/97/97/1",
|
|
"commands": {
|
|
"Checkout": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD",
|
|
"Cherry-Pick": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD",
|
|
"Format-Patch": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD",
|
|
"Pull": "git pull ssh://myuser@*:29418/gerrit refs/changes/97/97/1"
|
|
}
|
|
}
|
|
},
|
|
"commit": {
|
|
"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 ..."
|
|
},
|
|
"files": {
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeCache.java": {
|
|
"lines_deleted": 8,
|
|
"size_delta": -412,
|
|
"size": 7782
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeDetailCache.java": {
|
|
"lines_inserted": 1,
|
|
"size_delta": 23,
|
|
"size": 6762
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java": {
|
|
"lines_inserted": 11,
|
|
"lines_deleted": 19,
|
|
"size_delta": -298,
|
|
"size": 47023
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java": {
|
|
"lines_inserted": 23,
|
|
"lines_deleted": 20,
|
|
"size_delta": 132,
|
|
"size": 17727
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StarCache.java": {
|
|
"status": "D",
|
|
"lines_deleted": 139,
|
|
"size_delta": -5512,
|
|
"size": 13098
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StarredChanges.java": {
|
|
"status": "A",
|
|
"lines_inserted": 204,
|
|
"size_delta": 8345,
|
|
"size": 8345
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java": {
|
|
"lines_deleted": 9,
|
|
"size_delta": -343,
|
|
"size": 5385
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
----
|
|
|
|
[[get-change]]
|
|
=== Get Change
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]'
|
|
--
|
|
|
|
Retrieves a change.
|
|
|
|
Additional fields can be obtained by adding `o` parameters, each
|
|
option requires more database lookups and slows down the query
|
|
response time to the client so they are generally disabled by
|
|
default. Fields are described in link:#list-changes[Query Changes].
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"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",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 101,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[get-change-detail]]
|
|
=== Get Change Detail
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/detail'
|
|
--
|
|
|
|
Retrieves a change with link:#labels[labels], link:#detailed-labels[
|
|
detailed labels], link:#detailed-accounts[detailed accounts],
|
|
link:#reviewer-updates[reviewer updates], and link:#messages[messages].
|
|
|
|
Additional fields can be obtained by adding `o` parameters, each
|
|
option requires more database lookups and slows down the query
|
|
response time to the client so they are generally disabled by
|
|
default. Fields are described in link:#list-changes[Query Changes].
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/detail HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the change. This response will contain all votes for each
|
|
label and include one combined vote. The combined label vote is
|
|
calculated in the following order (from highest to lowest):
|
|
REJECTED > APPROVED > DISLIKED > RECOMMENDED.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"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",
|
|
"mergeable": true,
|
|
"insertions": 126,
|
|
"deletions": 11,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"labels": {
|
|
"Verified": {
|
|
"all": [
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
}
|
|
],
|
|
"values": {
|
|
"-1": "Fails",
|
|
" 0": "No score",
|
|
"+1": "Verified"
|
|
}
|
|
},
|
|
"Code-Review": {
|
|
"disliked": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"all": [
|
|
{
|
|
"value": -1,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
{
|
|
"value": 1,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
}
|
|
]
|
|
"values": {
|
|
"-2": "This shall not be merged",
|
|
"-1": "I would prefer this is not merged as is",
|
|
" 0": "No score",
|
|
"+1": "Looks good to me, but someone else must approve",
|
|
"+2": "Looks good to me, approved"
|
|
}
|
|
}
|
|
},
|
|
"permitted_labels": {
|
|
"Verified": [
|
|
"-1",
|
|
" 0",
|
|
"+1"
|
|
],
|
|
"Code-Review": [
|
|
"-2",
|
|
"-1",
|
|
" 0",
|
|
"+1",
|
|
"+2"
|
|
]
|
|
},
|
|
"removable_reviewers": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
{
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
}
|
|
],
|
|
"reviewers": {
|
|
"REVIEWER": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
{
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
}
|
|
]
|
|
},
|
|
"reviewer_updates": [
|
|
{
|
|
"state": "REVIEWER",
|
|
"reviewer": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"updated_by": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"updated": "2016-07-21 20:12:39.000000000"
|
|
},
|
|
{
|
|
"state": "REMOVED",
|
|
"reviewer": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"updated_by": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"updated": "2016-07-21 20:12:33.000000000"
|
|
},
|
|
{
|
|
"state": "CC",
|
|
"reviewer": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"updated_by": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"updated": "2016-03-23 21:34:02.419000000",
|
|
},
|
|
],
|
|
"messages": [
|
|
{
|
|
"id": "YH-egE",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"date": "2013-03-23 21:34:02.419000000",
|
|
"message": "Patch Set 1:\n\nThis is the first message.",
|
|
"_revision_number": 1
|
|
},
|
|
{
|
|
"id": "WEEdhU",
|
|
"author": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
},
|
|
"date": "2013-03-23 21:36:52.332000000",
|
|
"message": "Patch Set 1:\n\nThis is the second message.\n\nWith a line break.",
|
|
"_revision_number": 1
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[create-merge-patch-set-for-change]]
|
|
=== Create Merge Patch Set For Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/merge'
|
|
--
|
|
|
|
Update an existing change by using a
|
|
link:#merge-patch-set-input[MergePatchSetInput] entity.
|
|
|
|
Gerrit will create a merge commit based on the information of
|
|
MergePatchSetInput and add a new patch set to the change corresponding
|
|
to the new merge commit.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/test~master~Ic5466d107c5294414710935a8ef3b0180fb848dc/merge HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"subject": "Merge dev_branch into master",
|
|
"merge": {
|
|
"source": "refs/changes/34/1234/1"
|
|
}
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity with current revision is
|
|
returned that describes the resulting change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "test~master~Ic5466d107c5294414710935a8ef3b0180fb848dc",
|
|
"project": "test",
|
|
"branch": "master",
|
|
"hashtags": [],
|
|
"change_id": "Ic5466d107c5294414710935a8ef3b0180fb848dc",
|
|
"subject": "Merge dev_branch into master",
|
|
"status": "NEW",
|
|
"created": "2016-09-23 18:08:53.238000000",
|
|
"updated": "2016-09-23 18:09:25.934000000",
|
|
"submit_type": "MERGE_IF_NECESSARY",
|
|
"mergeable": true,
|
|
"insertions": 5,
|
|
"deletions": 0,
|
|
"_number": 72,
|
|
"owner": {
|
|
"_account_id": 1000000
|
|
},
|
|
"current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822"
|
|
}
|
|
----
|
|
|
|
[[set-message]]
|
|
=== Set Commit Message
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/message'
|
|
--
|
|
|
|
Creates a new patch set with a new commit message.
|
|
|
|
The new commit message must be provided in the request body inside a
|
|
link:#commit-message-input[CommitMessageInput] entity. If a Change-Id
|
|
footer is specified, it must match the current Change-Id footer. If
|
|
the Change-Id footer is absent, the current Change-Id is added to the
|
|
message.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/message HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message": "New Commit message \n\nChange-Id: I10394472cbd17dd12454f229e4f6de00b143a444\n"
|
|
}
|
|
----
|
|
|
|
.Notifications
|
|
|
|
An email will be sent using the "newpatchset" template.
|
|
|
|
[options="header",cols="1,1"]
|
|
|=============================
|
|
|WIP State |Default
|
|
|Ready for review|owner, reviewers, CCs, stars, NEW_PATCHSETS watchers
|
|
|Work in progress|owner
|
|
|=============================
|
|
|
|
[[get-topic]]
|
|
=== Get Topic
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/topic'
|
|
--
|
|
|
|
Retrieves the topic of a change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"Documentation"
|
|
----
|
|
|
|
If the change does not have a topic an empty string is returned.
|
|
|
|
[[set-topic]]
|
|
=== Set Topic
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/topic'
|
|
--
|
|
|
|
Sets the topic of a change.
|
|
|
|
The new topic must be provided in the request body inside a
|
|
link:#topic-input[TopicInput] entity. Any leading or trailing whitespace
|
|
in the topic name will be removed.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"topic": "Documentation"
|
|
}
|
|
----
|
|
|
|
As response the new topic is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"Documentation"
|
|
----
|
|
|
|
If the topic was deleted the response is "`204 No Content`".
|
|
|
|
[[delete-topic]]
|
|
=== Delete Topic
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/topic'
|
|
--
|
|
|
|
Deletes the topic of a change.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[get-assignee]]
|
|
=== Get Assignee
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/assignee'
|
|
--
|
|
|
|
Retrieves the account of the user assigned to a change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/assignee HTTP/1.0
|
|
----
|
|
|
|
As a response an link:rest-api-accounts.html#account-info[AccountInfo] entity
|
|
describing the assigned account is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
}
|
|
----
|
|
|
|
If the change has no assignee the response is "`204 No Content`".
|
|
|
|
[[get-past-assignees]]
|
|
=== Get Past Assignees
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/past_assignees'
|
|
--
|
|
|
|
Returns a list of every user ever assigned to a change, in the order in which
|
|
they were first assigned.
|
|
|
|
[NOTE] Past assignees are only available when NoteDb is enabled.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/past_assignees HTTP/1.0
|
|
----
|
|
|
|
As a response a list of link:rest-api-accounts.html#account-info[AccountInfo]
|
|
entities is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"_account_id": 1000051,
|
|
"name": "Jane Doe",
|
|
"email": "jane.doe@example.com",
|
|
"username": "janed"
|
|
},
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
}
|
|
]
|
|
|
|
----
|
|
|
|
|
|
[[set-assignee]]
|
|
=== Set Assignee
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/assignee'
|
|
--
|
|
|
|
Sets the assignee of a change.
|
|
|
|
The new assignee must be provided in the request body inside a
|
|
link:#assignee-input[AssigneeInput] entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/assignee HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"assignee": "jdoe"
|
|
}
|
|
----
|
|
|
|
As a response an link:rest-api-accounts.html#account-info[AccountInfo] entity
|
|
describing the assigned account is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
}
|
|
----
|
|
|
|
[[delete-assignee]]
|
|
=== Delete Assignee
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/assignee'
|
|
--
|
|
|
|
Deletes the assignee of a change.
|
|
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/assignee HTTP/1.0
|
|
----
|
|
|
|
As a response an link:rest-api-accounts.html#account-info[AccountInfo] entity
|
|
describing the account of the deleted assignee is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
}
|
|
----
|
|
|
|
If the change had no assignee the response is "`204 No Content`".
|
|
|
|
[[get-pure-revert]]
|
|
=== Get Pure Revert
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/pure_revert'
|
|
--
|
|
|
|
Check if the given change is a pure revert of the change it references in `revertOf`.
|
|
Optionally, the query parameter `o` can be passed in to specify a commit (SHA1 in
|
|
40 digit hex representation) to check against. It takes precedence over `revertOf`.
|
|
If the change has no reference in `revertOf`, the parameter is mandatory.
|
|
|
|
As response a link:#pure-revert-info[PureRevertInfo] entity is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/pure_revert?o=247bccf56ae47634650bcc08b8aa784c3580ccas HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"is_pure_revert" : false
|
|
}
|
|
----
|
|
|
|
[[abandon-change]]
|
|
=== Abandon Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/abandon'
|
|
--
|
|
|
|
Abandons a change.
|
|
|
|
The request body does not need to include a link:#abandon-input[
|
|
AbandonInput] entity if no review comment is added.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/abandon HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the abandoned change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "ABANDONED",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 3,
|
|
"deletions": 310,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be abandoned because the change state doesn't
|
|
allow abandoning of the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is merged
|
|
----
|
|
|
|
.Notifications
|
|
|
|
An email will be sent using the "abandon" template. The notify handling is ALL.
|
|
Notifications are suppressed on WIP changes that have never started review.
|
|
|
|
[options="header",cols="1,2"]
|
|
|=============================
|
|
|WIP State |notify=ALL
|
|
|Ready for review|owner, reviewers, CCs, stars, ABANDONED_CHANGES watchers
|
|
|Work in progress|not sent
|
|
|Reviewable WIP |owner, reviewers, CCs, stars, ABANDONED_CHANGES watchers
|
|
|=============================
|
|
|
|
[[restore-change]]
|
|
=== Restore Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/restore'
|
|
--
|
|
|
|
Restores a change.
|
|
|
|
The request body does not need to include a link:#restore-input[
|
|
RestoreInput] entity if no review comment is added.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/restore HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the restored change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"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",
|
|
"mergeable": true,
|
|
"insertions": 2,
|
|
"deletions": 13,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be restored because the change state doesn't
|
|
allow restoring the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is new
|
|
----
|
|
|
|
[[rebase-change]]
|
|
=== Rebase Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/rebase'
|
|
--
|
|
|
|
Rebases a change.
|
|
|
|
Optionally, the parent revision can be changed to another patch set through the
|
|
link:#rebase-input[RebaseInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/rebase HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"base" : "1234",
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the rebased change. Information about the current patch set
|
|
is included.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"subject": "Implement Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": false,
|
|
"insertions": 33,
|
|
"deletions": 9,
|
|
"_number": 4799,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822",
|
|
"revisions": {
|
|
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
|
|
"kind": "REWORK",
|
|
"_number": 2,
|
|
"ref": "refs/changes/99/4799/2",
|
|
"fetch": {
|
|
"http": {
|
|
"url": "http://gerrit:8080/myProject",
|
|
"ref": "refs/changes/99/4799/2"
|
|
}
|
|
},
|
|
"commit": {
|
|
"parents": [
|
|
{
|
|
"commit": "b4003890dadd406d80222bf1ad8aca09a4876b70",
|
|
"subject": "Implement Feature A"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"date": "2013-05-07 15:21:27.000000000",
|
|
"tz": 120
|
|
},
|
|
"committer": {
|
|
"name": "Gerrit Code Review",
|
|
"email": "gerrit-server@example.com",
|
|
"date": "2013-05-07 15:35:43.000000000",
|
|
"tz": 120
|
|
},
|
|
"subject": "Implement Feature X",
|
|
"message": "Implement Feature X\n\nAdded feature X."
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be rebased, e.g. due to conflicts, the response is
|
|
"`409 Conflict`" and the error message is contained in the response
|
|
body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
The change could not be rebased due to a path conflict during merge.
|
|
----
|
|
|
|
[[move-change]]
|
|
=== Move Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/move'
|
|
--
|
|
|
|
Move a change.
|
|
|
|
The destination branch must be provided in the request body inside a
|
|
link:#move-input[MoveInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/move HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"destination_branch" : "release-branch"
|
|
}
|
|
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the moved change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~release-branch~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "release-branch",
|
|
"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",
|
|
"mergeable": true,
|
|
"insertions": 2,
|
|
"deletions": 13,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
Note that this endpoint will not update the change's parents, which is
|
|
different from the link:#cherry-pick[cherry-pick] endpoint.
|
|
|
|
If the change cannot be moved because the change state doesn't
|
|
allow moving the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is merged
|
|
----
|
|
|
|
If the change cannot be moved because the user doesn't have
|
|
abandon permission on the change or upload permission on the destination,
|
|
the response is "`409 Conflict`" and the error message is contained in the
|
|
response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
move not permitted
|
|
----
|
|
|
|
[[revert-change]]
|
|
=== Revert Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revert'
|
|
--
|
|
|
|
Reverts a change.
|
|
|
|
The subject of the newly created change will be
|
|
'Revert "<subject-of-reverted-change>"'. If the subject of the change reverted is
|
|
above 63 characters, it will be cut down to 59 characters with "..." in the end.
|
|
|
|
The request body does not need to include a link:#revert-input[
|
|
RevertInput] entity if no review comment is added.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I1ffe09a505e25f15ce1521bcfb222e51e62c2a14/revert HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the reverting change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Revert \"Implementing Feature X\"",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 6,
|
|
"deletions": 4,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be reverted because the change state doesn't
|
|
allow reverting the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is new
|
|
----
|
|
|
|
[[revert-submission]]
|
|
=== Revert Submission
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revert_submission'
|
|
--
|
|
|
|
Creates open revert changes for all of the changes of a certain submission.
|
|
|
|
The subject of each revert change will be 'Revert "<subject-of-reverted-change"'.
|
|
If the subject is above 60 characters, the subject will be cut to 56 characters
|
|
with "..." in the end. However, whenever reverting the submission of a revert
|
|
submission, the subject will be shortened from
|
|
'Revert "Revert "<subject-of-reverted-change""' to
|
|
'Revert^2 "<subject-of-reverted-change"'. Also, for every future revert submission,
|
|
the only difference in the subject will be the number of the revert (instead of
|
|
Revert^2 the subject will change to Revert^3 and so on).
|
|
There are no guarantees about the subjects if the users change the default subjects.
|
|
|
|
Details for the revert can be specified in the request body inside a link:#revert-input[
|
|
RevertInput] The topic of all created revert changes will be
|
|
`revert-{submission_id}-{random_string_of_size_10}`.
|
|
|
|
The changes will not be rebased on onto the destination branch so the users may still
|
|
have to manually rebase them to resolve conflicts and make them submittable.
|
|
|
|
However, the changes that have the same project and branch will be rebased on top
|
|
of each other. E.g, the first revert change will have the original change as a
|
|
parent, and the second revert change will have the first revert change as a
|
|
parent.
|
|
|
|
There is one special case that involves merge commits; if a user has multiple
|
|
changes in the same project and branch, but not in the same change series, those
|
|
changes can still get submitted together if they have the same topic and
|
|
link:config-gerrit.html#change.submitWholeTopic[`change.submitWholeTopic`] in
|
|
gerrit.config is set to true. In the case, Gerrit may create merge commits on
|
|
submit (depending on the link:config-project-config.html#submit-type[submit types]
|
|
of the project).
|
|
The first parent for the reverts will be the most recent merge commit that was
|
|
created by Gerrit to merge the different change series into the target branch.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I1ffe09a505e25f15ce1521bcfb222e51e62c2a14/revert_submission HTTP/1.0
|
|
----
|
|
|
|
As response link:#revert-submission-info[RevertSubmissionInfo] entity
|
|
is returned. That entity describes the revert changes.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"revert_changes":
|
|
[
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"topic": "revert--1571043962462-3640749-ABCEEZGHIJ",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Revert \"Implementing Feature X\"",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 6,
|
|
"deletions": 4,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
},
|
|
{
|
|
"id": "anyProject~master~1eee2c9d8f352483781e772f35dc586a69ff5646",
|
|
"project": "anyProject",
|
|
"branch": "master",
|
|
"topic": "revert--1571043962462-3640749-ABCEEZGHIJ",
|
|
"change_id": "I1eee2c9d8f352483781e772f35dc586a69ff5646",
|
|
"subject": "Revert \"Implementing Feature Y\"",
|
|
"status": "NEW",
|
|
"created": "2013-02-04 09:59:33.126000000",
|
|
"updated": "2013-02-21 11:16:37.775000000",
|
|
"mergeable": true,
|
|
"insertions": 62,
|
|
"deletions": 11,
|
|
"_number": 3966,
|
|
"owner": {
|
|
"name": "Jane Doe"
|
|
}
|
|
}
|
|
]
|
|
----
|
|
|
|
If any of the changes cannot be reverted because the change state doesn't
|
|
allow reverting the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is new
|
|
----
|
|
|
|
[[submit-change]]
|
|
=== Submit Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/submit'
|
|
--
|
|
|
|
Submits a change.
|
|
|
|
The request body only needs to include a link:#submit-input[
|
|
SubmitInput] entity if submitting on behalf of another user.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/submit HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"on_behalf_of": 1001439
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the submitted/merged change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "MERGED",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"submitted": "2013-02-21 11:16:36.615000000",
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be submitted because the submit rule doesn't allow
|
|
submitting the change, the response is "`409 Conflict`" and the error
|
|
message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
blocked by Verified
|
|
----
|
|
|
|
[[submitted-together]]
|
|
=== Changes Submitted Together
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/submitted_together?o=NON_VISIBLE_CHANGES'
|
|
--
|
|
|
|
Computes list of all changes which are submitted when
|
|
link:#submit-change[Submit] is called for this change,
|
|
including the current change itself.
|
|
|
|
The list consists of:
|
|
|
|
* The given change.
|
|
* If link:config-gerrit.html#change.submitWholeTopic[`change.submitWholeTopic`]
|
|
is enabled, include all open changes with the same topic.
|
|
* For each change whose submit type is not CHERRY_PICK, include unmerged
|
|
ancestors targeting the same branch.
|
|
|
|
As a special case, the list is empty if this change would be
|
|
submitted by itself (without other changes).
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/submitted_together?o=NON_VISIBLE_CHANGES HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
----
|
|
|
|
As a response a link:#submitted-together-info[SubmittedTogetherInfo]
|
|
entity is returned that describes what would happen if the change were
|
|
submitted. This response contains a list of changes and a count of
|
|
changes that are not visible to the caller that are part of the set of
|
|
changes to be merged.
|
|
|
|
The listed changes use the same format as in
|
|
link:#list-changes[Query Changes] with the
|
|
link:#labels[`LABELS`], link:#detailed-labels[`DETAILED_LABELS`],
|
|
link:#current-revision[`CURRENT_REVISION`],and
|
|
link:#submittable[`SUBMITTABLE`] options set.
|
|
|
|
Standard link:#query-options[formatting options] can be specified
|
|
with the `o` parameter, as well as the `submitted_together` specific
|
|
option `NON_VISIBLE_CHANGES`.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"changes": [
|
|
{
|
|
"id": "gerrit~master~I1ffe09a505e25f15ce1521bcfb222e51e62c2a14",
|
|
"project": "gerrit",
|
|
"branch": "master",
|
|
"hashtags": [],
|
|
"change_id": "I1ffe09a505e25f15ce1521bcfb222e51e62c2a14",
|
|
"subject": "ChangeMergeQueue: Rewrite such that it works on set of changes",
|
|
"status": "NEW",
|
|
"created": "2015-05-01 15:39:57.979000000",
|
|
"updated": "2015-05-20 19:25:21.592000000",
|
|
"mergeable": true,
|
|
"insertions": 303,
|
|
"deletions": 210,
|
|
"_number": 1779,
|
|
"owner": {
|
|
"_account_id": 1000000
|
|
},
|
|
"labels": {
|
|
"Code-Review": {
|
|
"approved": {
|
|
"_account_id": 1000000
|
|
},
|
|
"all": [
|
|
{
|
|
"value": 2,
|
|
"date": "2015-05-20 19:25:21.592000000",
|
|
"_account_id": 1000000
|
|
}
|
|
],
|
|
"values": {
|
|
"-2": "This shall not be merged",
|
|
"-1": "I would prefer this is not merged as is",
|
|
" 0": "No score",
|
|
"+1": "Looks good to me, but someone else must approve",
|
|
"+2": "Looks good to me, approved"
|
|
},
|
|
"default_value": 0
|
|
},
|
|
"Verified": {
|
|
"approved": {
|
|
"_account_id": 1000000
|
|
},
|
|
"all": [
|
|
{
|
|
"value": 1,
|
|
"date": "2015-05-20 19:25:21.592000000",
|
|
"_account_id": 1000000
|
|
}
|
|
],
|
|
"values": {
|
|
"-1": "Fails",
|
|
" 0": "No score",
|
|
"+1": "Verified"
|
|
},
|
|
"default_value": 0
|
|
}
|
|
},
|
|
"permitted_labels": {
|
|
"Code-Review": [
|
|
"-2",
|
|
"-1",
|
|
" 0",
|
|
"+1",
|
|
"+2"
|
|
],
|
|
"Verified": [
|
|
"-1",
|
|
" 0",
|
|
"+1"
|
|
]
|
|
},
|
|
"removable_reviewers": [
|
|
{
|
|
"_account_id": 1000000
|
|
}
|
|
],
|
|
"reviewers": {
|
|
"REVIEWER": [
|
|
{
|
|
"_account_id": 1000000
|
|
}
|
|
]
|
|
},
|
|
"current_revision": "9adb9f4c7b40eeee0646e235de818d09164d7379",
|
|
"revisions": {
|
|
"9adb9f4c7b40eeee0646e235de818d09164d7379": {
|
|
"kind": "REWORK",
|
|
"_number": 1,
|
|
"created": "2015-05-01 15:39:57.979000000",
|
|
"uploader": {
|
|
"_account_id": 1000000
|
|
},
|
|
"ref": "refs/changes/79/1779/1",
|
|
"fetch": {},
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "gerrit~master~I7fe807e63792b3d26776fd1422e5e790a5697e22",
|
|
"project": "gerrit",
|
|
"branch": "master",
|
|
"hashtags": [],
|
|
"change_id": "I7fe807e63792b3d26776fd1422e5e790a5697e22",
|
|
"subject": "AbstractSubmoduleSubscription: Split up createSubscription",
|
|
"status": "NEW",
|
|
"created": "2015-05-01 15:39:57.979000000",
|
|
"updated": "2015-05-20 19:25:21.546000000",
|
|
"mergeable": true,
|
|
"insertions": 15,
|
|
"deletions": 6,
|
|
"_number": 1780,
|
|
"owner": {
|
|
"_account_id": 1000000
|
|
},
|
|
"labels": {
|
|
"Code-Review": {
|
|
"approved": {
|
|
"_account_id": 1000000
|
|
},
|
|
"all": [
|
|
{
|
|
"value": 2,
|
|
"date": "2015-05-20 19:25:21.546000000",
|
|
"_account_id": 1000000
|
|
}
|
|
],
|
|
"values": {
|
|
"-2": "This shall not be merged",
|
|
"-1": "I would prefer this is not merged as is",
|
|
" 0": "No score",
|
|
"+1": "Looks good to me, but someone else must approve",
|
|
"+2": "Looks good to me, approved"
|
|
},
|
|
"default_value": 0
|
|
},
|
|
"Verified": {
|
|
"approved": {
|
|
"_account_id": 1000000
|
|
},
|
|
"all": [
|
|
{
|
|
"value": 1,
|
|
"date": "2015-05-20 19:25:21.546000000",
|
|
"_account_id": 1000000
|
|
}
|
|
],
|
|
"values": {
|
|
"-1": "Fails",
|
|
" 0": "No score",
|
|
"+1": "Verified"
|
|
},
|
|
"default_value": 0
|
|
}
|
|
},
|
|
"permitted_labels": {
|
|
"Code-Review": [
|
|
"-2",
|
|
"-1",
|
|
" 0",
|
|
"+1",
|
|
"+2"
|
|
],
|
|
"Verified": [
|
|
"-1",
|
|
" 0",
|
|
"+1"
|
|
]
|
|
},
|
|
"removable_reviewers": [
|
|
{
|
|
"_account_id": 1000000
|
|
}
|
|
],
|
|
"reviewers": {
|
|
"REVIEWER": [
|
|
{
|
|
"_account_id": 1000000
|
|
}
|
|
]
|
|
},
|
|
"current_revision": "1bd7c12a38854a2c6de426feec28800623f492c4",
|
|
"revisions": {
|
|
"1bd7c12a38854a2c6de426feec28800623f492c4": {
|
|
"kind": "REWORK",
|
|
"_number": 1,
|
|
"created": "2015-05-01 15:39:57.979000000",
|
|
"uploader": {
|
|
"_account_id": 1000000
|
|
},
|
|
"ref": "refs/changes/80/1780/1",
|
|
"fetch": {},
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"non_visible_changes": 0
|
|
}
|
|
----
|
|
|
|
If the `o=NON_VISIBLE_CHANGES` query parameter is not passed, then
|
|
instead of a link:#submitted-together-info[SubmittedTogetherInfo]
|
|
entity, the response is a list of changes, or a 403 response with a
|
|
message if the set of changes to be submitted with this change
|
|
includes changes the caller cannot read.
|
|
|
|
|
|
[[delete-change]]
|
|
=== Delete Change
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]'
|
|
--
|
|
|
|
Deletes a change.
|
|
|
|
New or abandoned changes can be deleted by their owner if the user is granted
|
|
the link:access-control.html#category_delete_own_changes[Delete Own Changes] permission,
|
|
otherwise only by administrators.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[get-included-in]]
|
|
=== Get Included In
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/in'
|
|
--
|
|
|
|
Retrieves the branches and tags in which a change is included. As result
|
|
an link:#included-in-info[IncludedInInfo] entity is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/in HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"branches": [
|
|
"master"
|
|
],
|
|
"tags": []
|
|
}
|
|
----
|
|
|
|
[[index-change]]
|
|
=== Index Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/index'
|
|
--
|
|
|
|
Adds or updates the change in the secondary index.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/index HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[list-change-comments]]
|
|
=== List Change Comments
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/comments'
|
|
--
|
|
|
|
Lists the published comments of all revisions of the change.
|
|
|
|
Returns a map of file paths to lists of link:#comment-info[CommentInfo]
|
|
entries. The entries in the map are sorted by file path, and the
|
|
comments for each path are sorted by patch set number. Each comment has
|
|
the `patch_set` and `author` fields set.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/comments HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"patch_set": 1,
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
},
|
|
{
|
|
"patch_set": 2,
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000"
|
|
"author": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[list-change-robot-comments]]
|
|
=== List Change Robot Comments
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/robotcomments'
|
|
--
|
|
|
|
Lists the robot comments of all revisions of the change.
|
|
|
|
Return a map that maps the file path to a list of
|
|
link:#robot-comment-info[RobotCommentInfo] entries. The entries in the
|
|
map are sorted by file path.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/robotcomments/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "unused import",
|
|
"updated": "2016-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000110,
|
|
"name": "Code Analyzer",
|
|
"email": "code.analyzer@example.com"
|
|
},
|
|
"robot_id": "importChecker",
|
|
"robot_run_id": "76b1375aa8626ea7149792831fe2ed85e80d9e04"
|
|
},
|
|
{
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"message": "wrong indention",
|
|
"updated": "2016-02-26 15:40:45.328000000",
|
|
"author": {
|
|
"_account_id": 1000110,
|
|
"name": "Code Analyzer",
|
|
"email": "code.analyzer@example.com"
|
|
},
|
|
"robot_id": "styleChecker",
|
|
"robot_run_id": "5c606c425dd45184484f9d0a2ffd725a7607839b"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[list-change-drafts]]
|
|
=== List Change Drafts
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/drafts'
|
|
--
|
|
|
|
Lists the draft comments of all revisions of the change that belong to
|
|
the calling user.
|
|
|
|
Returns a map of file paths to lists of link:#comment-info[CommentInfo]
|
|
entries. The entries in the map are sorted by file path, and the
|
|
comments for each path are sorted by patch set number. Each comment has
|
|
the `patch_set` field set, and no `author`.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/drafts HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"patch_set": 1,
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
},
|
|
{
|
|
"patch_set": 2,
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[check-change]]
|
|
=== Check Change
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/check'
|
|
--
|
|
|
|
Performs consistency checks on the change, and returns a
|
|
link:#change-info[ChangeInfo] entity with the `problems` field set to a
|
|
list of link:#problem-info[ProblemInfo] entities.
|
|
|
|
Depending on the type of problem, some fields not marked optional may be
|
|
missing from the result. At least `id`, `project`, `branch`, and
|
|
`_number` will be present.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/check HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"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",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 101,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"problems": [
|
|
{
|
|
"message": "Current patch set 1 not found"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[fix-change]]
|
|
=== Fix Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/check'
|
|
--
|
|
|
|
Performs consistency checks on the change as with link:#check-change[GET
|
|
/check], and additionally fixes any problems that can be fixed
|
|
automatically. The returned field values reflect any fixes.
|
|
|
|
Some fixes have options controlling their behavior, which can be set in the
|
|
link:#fix-input[FixInput] entity body.
|
|
|
|
Only the change owner, a project owner, or an administrator may fix changes.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/check HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "MERGED",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"submitted": "2013-02-21 11:16:36.615000000",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 101,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"problems": [
|
|
{
|
|
"message": "Current patch set 2 not found"
|
|
},
|
|
{
|
|
"message": "Patch set 1 (1eee2c9d8f352483781e772f35dc586a69ff5646) is merged into destination ref master (1eee2c9d8f352483781e772f35dc586a69ff5646), but change status is NEW",
|
|
"status": FIXED,
|
|
"outcome": "Marked change as merged"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[set-work-in-pogress]]
|
|
=== Set Work-In-Progress
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/wip'
|
|
--
|
|
|
|
Marks the change as not ready for review yet. Changes may only be marked not
|
|
ready by the owner, project owners or site administrators.
|
|
|
|
The request body does not need to include a
|
|
link:#work-in-progress-input[WorkInProgressInput] entity if no review comment
|
|
is added. Actions that create a new patch set in a WIP change default to
|
|
notifying *OWNER* instead of *ALL*.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/wip HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message": "Refactoring needs to be done before we can proceed here."
|
|
}
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
----
|
|
|
|
[[set-ready-for-review]]
|
|
=== Set Ready-For-Review
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/ready'
|
|
--
|
|
|
|
Marks the change as ready for review (set WIP property to false). Changes may
|
|
only be marked ready by the owner, project owners or site administrators.
|
|
|
|
Activates notifications of reviewer. The request body does not need
|
|
to include a link:#work-in-progress-input[WorkInProgressInput] entity
|
|
if no review comment is added.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/ready HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"message": "Refactoring is done."
|
|
}
|
|
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
----
|
|
|
|
[[mark-private]]
|
|
=== Mark Private
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/private'
|
|
--
|
|
|
|
Marks the change to be private. Only open changes can be marked private.
|
|
Changes may only be marked private by the owner or site administrators.
|
|
|
|
A message can be specified in the request body inside a
|
|
link:#private-input[PrivateInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/private HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message": "After this security fix has been released we can make it public now."
|
|
}
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 201 Created
|
|
----
|
|
|
|
If the change was already private the response is "`200 OK`".
|
|
|
|
[[unmark-private]]
|
|
=== Unmark Private
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/private'
|
|
--
|
|
|
|
Marks the change to be non-private. Note users can only unmark own private
|
|
changes.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/private HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
If the change was already not private, the response is "`409 Conflict`".
|
|
|
|
A message can be specified in the request body inside a
|
|
link:#private-input[PrivateInput] entity. Historically, this method allowed
|
|
a body in the DELETE, but that behavior is
|
|
link:https://www.gerritcodereview.com/releases/2.16.md[deprecated,role=external,window=_blank].
|
|
In this case, use a POST request instead:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/private.delete HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message": "This is a security fix that must not be public."
|
|
}
|
|
----
|
|
|
|
[[ignore]]
|
|
=== Ignore
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/ignore'
|
|
--
|
|
|
|
Marks a change as ignored. The change will not be shown in the incoming
|
|
reviews dashboard, and email notifications will be suppressed. Ignoring
|
|
a change does not cause the change's "updated" timestamp to be modified,
|
|
and the owner is not notified.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/ignore HTTP/1.0
|
|
----
|
|
|
|
[[unignore]]
|
|
=== Unignore
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/unignore'
|
|
--
|
|
|
|
Un-marks a change as ignored.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/unignore HTTP/1.0
|
|
----
|
|
|
|
[[mark-as-reviewed]]
|
|
=== Mark as Reviewed
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/reviewed'
|
|
--
|
|
|
|
Marks a change as reviewed.
|
|
|
|
This allows users to "de-highlight" changes in their dashboard until a new
|
|
patch set is uploaded.
|
|
|
|
This differs from the link:#ignore[ignore] endpoint, which will mute
|
|
emails and hide the change from dashboard completely until it is
|
|
link:#unignore[unignored] again.
|
|
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewed HTTP/1.0
|
|
----
|
|
|
|
[[mark-as-unreviewed]]
|
|
=== Mark as Unreviewed
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/unreviewed'
|
|
--
|
|
|
|
Marks a change as unreviewed.
|
|
|
|
This allows users to "highlight" changes in their dashboard
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/unreviewed HTTP/1.0
|
|
----
|
|
|
|
[[get-hashtags]]
|
|
=== Get Hashtags
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/hashtags'
|
|
--
|
|
|
|
Gets the hashtags associated with a change.
|
|
|
|
[NOTE] Hashtags are only available when NoteDb is enabled.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/hashtags HTTP/1.0
|
|
----
|
|
|
|
As response the change's hashtags are returned as a list of strings.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
"hashtag1",
|
|
"hashtag2"
|
|
]
|
|
----
|
|
|
|
[[set-hashtags]]
|
|
=== Set Hashtags
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/hashtags'
|
|
--
|
|
|
|
Adds and/or removes hashtags from a change.
|
|
|
|
[NOTE] Hashtags are only available when NoteDb is enabled.
|
|
|
|
The hashtags to add or remove must be provided in the request body inside a
|
|
link:#hashtags-input[HashtagsInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/hashtags HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"add" : [
|
|
"hashtag3"
|
|
],
|
|
"remove" : [
|
|
"hashtag2"
|
|
]
|
|
}
|
|
----
|
|
|
|
As response the change's hashtags are returned as a list of strings.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
"hashtag1",
|
|
"hashtag3"
|
|
]
|
|
----
|
|
|
|
[[list-change-messages]]
|
|
=== List Change Messages
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/messages'
|
|
--
|
|
|
|
Lists all the messages of a change including link:#detailed-accounts[detailed account information].
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/messages
|
|
----
|
|
|
|
As response a list of link:#change-message-info[ChangeMessageInfo] entities is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"id": "YH-egE",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"date": "2013-03-23 21:34:02.419000000",
|
|
"message": "Patch Set 1:\n\nThis is the first message.",
|
|
"_revision_number": 1
|
|
},
|
|
{
|
|
"id": "WEEdhU",
|
|
"author": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
},
|
|
"date": "2013-03-23 21:36:52.332000000",
|
|
"message": "Patch Set 1:\n\nThis is the second message.\n\nWith a line break.",
|
|
"_revision_number": 1
|
|
}
|
|
]
|
|
----
|
|
|
|
[[get-change-message]]
|
|
=== Get Change Message
|
|
|
|
Retrieves a change message including link:#detailed-accounts[detailed account information].
|
|
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/messages/link:#change-message-id[\{change-message-id\}]'
|
|
--
|
|
|
|
As response a link:#change-message-info[ChangeMessageInfo] entity is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "aaee04dcb46bafc8be24d8aa70b3b1beb7df5780",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"date": "2013-03-23 21:34:02.419000000",
|
|
"message": "a change message",
|
|
"_revision_number": 1
|
|
}
|
|
----
|
|
|
|
[[delete-change-message]]
|
|
=== Delete Change Message
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/messages/link:#change-message-id[\{change-message-id\}]' +
|
|
'POST /changes/link:#change-id[\{change-id\}]/messages/link:#change-message-id[\{change-message-id\}]/delete'
|
|
--
|
|
|
|
Deletes a change message by replacing the change message with a new message,
|
|
which contains the name of the user who deleted the change message and the
|
|
reason why it was deleted. The reason can be provided in the request body as a
|
|
link:#delete-change-message-input[DeleteChangeMessageInput] entity.
|
|
|
|
Note that only users with the
|
|
link:access-control.html#capability_administrateServer[Administrate Server]
|
|
global capability are permitted to delete a change message.
|
|
|
|
To delete a change message, send a DELETE request:
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/messages/aaee04dcb46bafc8be24d8aa70b3b1beb7df5780 HTTP/1.0
|
|
----
|
|
|
|
To provide a reason for the deletion, use a POST request:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/messages/aaee04dcb46bafc8be24d8aa70b3b1beb7df5780/delete HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"reason": "spam"
|
|
}
|
|
----
|
|
|
|
As response a link:#change-message-info[ChangeMessageInfo] entity is returned that
|
|
describes the updated change message.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "aaee04dcb46bafc8be24d8aa70b3b1beb7df5780",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"date": "2013-03-23 21:34:02.419000000",
|
|
"message": "Change message removed by: Administrator\nReason: spam",
|
|
"_revision_number": 1
|
|
}
|
|
----
|
|
|
|
[[edit-endpoints]]
|
|
== Change Edit Endpoints
|
|
|
|
[[get-edit-detail]]
|
|
=== Get Change Edit Details
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit
|
|
--
|
|
|
|
Retrieves a change edit details.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
----
|
|
|
|
As response an link:#edit-info[EditInfo] entity is returned that
|
|
describes the change edit, or "`204 No Content`" when change edit doesn't
|
|
exist for this change. Change edits are stored on special branches and there
|
|
can be max one edit per user per change. Edits aren't tracked in the database.
|
|
When request parameter `list` is provided the response also includes the file
|
|
list. When `base` request parameter is provided the file list is computed
|
|
against this base revision. When request parameter `download-commands` is
|
|
provided fetch info map is also included.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"commit": {
|
|
"parents": [
|
|
{
|
|
"commit": "1eee2c9d8f352483781e772f35dc586a69ff5646",
|
|
}
|
|
],
|
|
"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 ..."
|
|
},
|
|
"base_patch_set_number": 1,
|
|
"base_revision": "c35558e0925e6985c91f3a16921537d5e572b7a3",
|
|
"ref": "refs/users/01/1000001/edit-76482/1"
|
|
}
|
|
----
|
|
|
|
[[put-edit-file]]
|
|
=== Change file content in Change Edit
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile
|
|
--
|
|
|
|
Put content of a file to a change edit.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
|
|
----
|
|
|
|
When change edit doesn't exist for this change yet it is created. When file
|
|
content isn't provided, it is wiped out for that file. As response
|
|
"`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
When the change edit is a no-op, for example when providing the same file
|
|
content that the file already has, '409 no changes were made' is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 no changes were made
|
|
----
|
|
|
|
[[post-edit]]
|
|
=== Restore file content or rename files in Change Edit
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/edit
|
|
--
|
|
|
|
Creates empty change edit, restores file content or renames files in change
|
|
edit. The request body needs to include a
|
|
link:#change-edit-input[ChangeEditInput] entity when a file within change
|
|
edit should be restored or old and new file names to rename a file.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"restore_path": "foo"
|
|
}
|
|
----
|
|
|
|
or for rename:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"old_path": "foo",
|
|
"new_path": "bar"
|
|
}
|
|
----
|
|
|
|
When change edit doesn't exist for this change yet it is created. When path
|
|
and restore flag are provided in request body, this file is restored. When
|
|
old and new file names are provided, the file is renamed. As response
|
|
"`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[put-change-edit-message]]
|
|
=== Change commit message in Change Edit
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/edit:message
|
|
--
|
|
|
|
Modify commit message. The request body needs to include a
|
|
link:#change-edit-message-input[ChangeEditMessageInput]
|
|
entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:message HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message": "New commit message\n\nChange-Id: I10394472cbd17dd12454f229e4f6de00b143a444"
|
|
}
|
|
----
|
|
|
|
If a change edit doesn't exist for this change yet, it is created. As
|
|
response "`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[delete-edit-file]]
|
|
=== Delete file in Change Edit
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile'
|
|
--
|
|
|
|
Deletes a file from a change edit. This deletes the file from the repository
|
|
completely. This is not the same as reverting or restoring a file to its
|
|
previous contents.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
|
|
----
|
|
|
|
When change edit doesn't exist for this change yet it is created.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[get-edit-file]]
|
|
=== Retrieve file content from Change Edit
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile
|
|
--
|
|
|
|
Retrieves content of a file from a change edit.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
|
|
----
|
|
|
|
The content of the file is returned as text encoded inside base64.
|
|
The Content-Type header will always be `text/plain` reflecting the
|
|
outer base64 encoding. A Gerrit-specific `X-FYI-Content-Type` header
|
|
can be examined to find the server detected content type of the file.
|
|
|
|
When the specified file was deleted in the change edit
|
|
"`204 No Content`" is returned.
|
|
|
|
If only the content type is required, callers should use HEAD to
|
|
avoid downloading the encoded file contents.
|
|
|
|
If the `base` parameter is set to true, the returned content is from the
|
|
revision that the edit is based on.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
X-FYI-Content-Encoding: base64
|
|
X-FYI-Content-Type: text/xml
|
|
|
|
RnJvbSA3ZGFkY2MxNTNmZGVhMTdhYTg0ZmYzMmE2ZTI0NWRiYjY...
|
|
----
|
|
|
|
Alternatively, if the only value of the Accept request header is
|
|
`application/json` the content is returned as JSON string and
|
|
`X-FYI-Content-Encoding` is set to `json`.
|
|
|
|
[[get-edit-meta-data]]
|
|
=== Retrieve meta data of a file from Change Edit
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile/meta
|
|
--
|
|
|
|
Retrieves meta data of a file from a change edit. Currently only
|
|
web links are returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo/meta HTTP/1.0
|
|
----
|
|
|
|
This REST endpoint retrieves additional information for a file in a
|
|
change edit. As result an link:#edit-file-info[EditFileInfo] entity is
|
|
returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"web_links": [
|
|
{
|
|
"show_on_side_by_side_diff_view": true,
|
|
"name": "side-by-side preview diff",
|
|
"image_url": "plugins/xdocs/static/sideBySideDiffPreview.png",
|
|
"url": "#/x/xdocs/c/42/1..0/README.md",
|
|
"target": "_self"
|
|
},
|
|
{
|
|
"show_on_unified_diff_view": true,
|
|
"name": "unified preview diff",
|
|
"image_url": "plugins/xdocs/static/unifiedDiffPreview.png",
|
|
"url": "#/x/xdocs/c/42/1..0/README.md,unified",
|
|
"target": "_self"
|
|
}
|
|
]}
|
|
----
|
|
|
|
[[get-edit-message]]
|
|
=== Retrieve commit message from Change Edit or current patch set of the change
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit:message
|
|
--
|
|
|
|
Retrieves commit message from change edit.
|
|
|
|
If the `base` parameter is set to true, the returned message is from the
|
|
revision that the edit is based on.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:message HTTP/1.0
|
|
----
|
|
|
|
The commit message is returned as base64 encoded string.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
|
|
VGhpcyBpcyBhIGNvbW1pdCBtZXNzYWdlCgpDaGFuZ2UtSWQ6IElhYzhmZGM1MGRlZjFiYWUzYjAz
|
|
M2JhNjcxZTk0OTBmNzUxNDU5ZGUzCg==
|
|
----
|
|
|
|
Alternatively, if the only value of the Accept request header is
|
|
`application/json` the commit message is returned as JSON string:
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
|
|
)]}'
|
|
"Subject of the commit message\n\nThis is the body of the commit message.\n\nChange-Id: Iaf1ba916bf843c175673d675bf7f52862f452db9\n"
|
|
----
|
|
|
|
|
|
[[publish-edit]]
|
|
=== Publish Change Edit
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/edit:publish
|
|
--
|
|
|
|
Promotes change edit to a regular patch set.
|
|
|
|
Options can be provided in the request body as a
|
|
link:#publish-change-edit-input[PublishChangeEditInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:publish HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"notify": "NONE"
|
|
}
|
|
----
|
|
|
|
As response "`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[rebase-edit]]
|
|
=== Rebase Change Edit
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/edit:rebase
|
|
--
|
|
|
|
Rebases change edit on top of latest patch set.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:rebase HTTP/1.0
|
|
----
|
|
|
|
When change was rebased on top of latest patch set, response
|
|
"`204 No Content`" is returned. When change edit is already
|
|
based on top of the latest patch set, the response
|
|
"`409 Conflict`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[delete-edit]]
|
|
=== Delete Change Edit
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/edit'
|
|
--
|
|
|
|
Deletes change edit.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
----
|
|
|
|
As response "`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
|
|
[[reviewer-endpoints]]
|
|
== Reviewer Endpoints
|
|
|
|
[[list-reviewers]]
|
|
=== List Reviewers
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/reviewers/'
|
|
--
|
|
|
|
Lists the reviewers of a change.
|
|
|
|
As result a list of link:#reviewer-info[ReviewerInfo] entries is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"approvals": {
|
|
"Verified": "+1",
|
|
"Code-Review": "+2"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": "-1"
|
|
},
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
]
|
|
----
|
|
|
|
[[suggest-reviewers]]
|
|
=== Suggest Reviewers
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/suggest_reviewers?q=J&n=5'
|
|
--
|
|
|
|
Suggest the reviewers for a given query `q` and result limit `n`. If result
|
|
limit is not passed, then the default 10 is used.
|
|
|
|
This REST endpoint only suggests accounts that
|
|
|
|
* are active
|
|
* can see the change
|
|
* are visible to the calling user
|
|
* are not already reviewer on the change
|
|
* don't own the change
|
|
|
|
Groups can be excluded from the results by specifying the 'exclude-groups'
|
|
request parameter:
|
|
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/suggest_reviewers?q=J&n=5&exclude-groups'
|
|
--
|
|
|
|
As result a list of link:#suggested-reviewer-info[SuggestedReviewerInfo] entries is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/suggest_reviewers?q=J HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"account": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
},
|
|
"count": 1
|
|
},
|
|
{
|
|
"group": {
|
|
"id": "4fd581c0657268f2bdcc26699fbf9ddb76e3a279",
|
|
"name": "Joiner"
|
|
},
|
|
"count": 5
|
|
}
|
|
]
|
|
----
|
|
|
|
To suggest CCs `reviewer-state=CC` can be specified as additional URL
|
|
parameter. This includes existing reviewers in the result, but excludes
|
|
existing CCs.
|
|
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/suggest_reviewers?q=J&reviewer-state=CC'
|
|
--
|
|
|
|
[[get-reviewer]]
|
|
=== Get Reviewer
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]'
|
|
--
|
|
|
|
Retrieves a reviewer of a change.
|
|
|
|
As response a link:#reviewer-info[ReviewerInfo] entity is returned that
|
|
describes the reviewer.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/john.doe@example.com HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"approvals": {
|
|
"Verified": "+1",
|
|
"Code-Review": "+2"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
----
|
|
|
|
[[add-reviewer]]
|
|
=== Add Reviewer
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/reviewers'
|
|
--
|
|
|
|
Adds one user or all members of one group as reviewer to the change.
|
|
|
|
The reviewer to be added to the change must be provided in the request
|
|
body as a link:#reviewer-input[ReviewerInput] entity.
|
|
|
|
Users can be moved from reviewer to CC and vice versa. This means if a
|
|
user is added as CC that is already a reviewer on the change, the
|
|
reviewer state of that user is updated to CC. If a user that is already
|
|
a CC on the change is added as reviewer, the reviewer state of that
|
|
user is updated to reviewer.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"reviewer": "john.doe@example.com"
|
|
}
|
|
----
|
|
|
|
As response an link:#add-reviewer-result[AddReviewerResult] entity is
|
|
returned that describes the newly added reviewers.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"input": "john.doe@example.com",
|
|
"reviewers": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": " 0"
|
|
},
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
If a group is specified, adding the group members as reviewers is an
|
|
atomic operation. This means if an error is returned, none of the
|
|
members are added as reviewer.
|
|
|
|
If a group with many members is added as reviewer a confirmation may be
|
|
required.
|
|
|
|
If a group is added as CC and members of this group are already
|
|
reviewers on the change, these members stay reviewers on the change
|
|
(they are not downgraded to CC). However if a group is added as
|
|
reviewer, all group members become reviewer of the change, even if they
|
|
have been added as CC before.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"reviewer": "MyProjectVerifiers"
|
|
}
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"input": "MyProjectVerifiers",
|
|
"error": "The group My Group has 15 members. Do you want to add them all as reviewers?",
|
|
"confirm": true
|
|
}
|
|
----
|
|
|
|
To confirm the addition of the reviewers, resend the request with the
|
|
`confirmed` flag being set.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"input": "MyProjectVerifiers",
|
|
"confirmed": true
|
|
}
|
|
----
|
|
|
|
If link:config-project-config.html#reviewer.enableByEmail[reviewer.enableByEmail] is set
|
|
for the project, reviewers and CCs are not required to have a Gerrit account. If you POST
|
|
an email address of a reviewer or CC then, they will be added to the change even if they
|
|
don't have a Gerrit account.
|
|
|
|
If this option is disabled, the request would fail with `400 Bad Request` if the email
|
|
address can't be resolved to an active Gerrit account.
|
|
|
|
Note that the name is optional so both "un.registered@reviewer.com" and
|
|
"John Doe <un.registered@reviewer.com>" are valid inputs.
|
|
|
|
Reviewers without Gerrit accounts can only be added on changes visible to anonymous users.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"reviewer": "John Doe <un.registered@reviewer.com>"
|
|
}
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"input": "John Doe <un.registered@reviewer.com>"
|
|
}
|
|
----
|
|
|
|
.Notifications
|
|
|
|
An email will be sent using the "newchange" template.
|
|
|
|
[options="header",cols="1,1,1"]
|
|
|=============================
|
|
|WIP State |Default|notify=ALL
|
|
|Ready for review|owner, reviewers, CCs|owner, reviewers, CCs
|
|
|Work in progress|not sent|owner, reviewers, CCs
|
|
|=============================
|
|
|
|
[[delete-reviewer]]
|
|
=== Delete Reviewer
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]' +
|
|
'POST /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]/delete'
|
|
--
|
|
|
|
Deletes a reviewer from a change.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe HTTP/1.0
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/delete HTTP/1.0
|
|
----
|
|
|
|
Options can be provided in the request body as a
|
|
link:#delete-reviewer-input[DeleteReviewerInput] entity.
|
|
Historically, this method allowed a body in the DELETE, but that behavior is
|
|
link:https://www.gerritcodereview.com/releases/2.16.md[deprecated,role=external,window=_blank].
|
|
In this case, use a POST request instead:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/delete HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"notify": "NONE"
|
|
}
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
.Notifications
|
|
|
|
An email will be sent using the "deleteReviewer" template. If deleting the
|
|
reviewer resulted in one or more approvals being removed, then the deleted
|
|
reviewer will also receive a notification (unless notify=NONE).
|
|
|
|
[options="header",cols="1,5"]
|
|
|=============================
|
|
|WIP State |Default Recipients
|
|
|Ready for review|notify=ALL: deleted reviewer (if voted), owner, reviewers, CCs, stars, ALL_COMMENTS watchers
|
|
|Work in progress|notify=NONE: deleted reviewer (if voted)
|
|
|=============================
|
|
|
|
[[list-votes]]
|
|
=== List Votes
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]/votes/'
|
|
--
|
|
|
|
Lists the votes for a specific reviewer of the change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/ HTTP/1.0
|
|
----
|
|
|
|
As result a map is returned that maps the label name to the label value.
|
|
The entries in the map are sorted by label name.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"Code-Review": -1,
|
|
"Verified": 1
|
|
"Work-In-Progress": 1,
|
|
}
|
|
----
|
|
|
|
[[delete-vote]]
|
|
=== Delete Vote
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]/votes/link:#label-id[\{label-id\}]' +
|
|
'POST /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]/votes/link:#label-id[\{label-id\}]/delete'
|
|
--
|
|
|
|
Deletes a single vote from a change. Note, that even when the last vote of
|
|
a reviewer is removed the reviewer itself is still listed on the change.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/Code-Review HTTP/1.0
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0
|
|
----
|
|
|
|
Options can be provided in the request body as a
|
|
link:#delete-vote-input[DeleteVoteInput] entity.
|
|
Historically, this method allowed a body in the DELETE, but that behavior is
|
|
link:https://www.gerritcodereview.com/releases/2.16.md[deprecated,role=external,window=_blank].
|
|
In this case, use a POST request instead:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"notify": "NONE"
|
|
}
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
|
|
[[revision-endpoints]]
|
|
== Revision Endpoints
|
|
|
|
[[get-commit]]
|
|
=== Get Commit
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/commit'
|
|
--
|
|
|
|
Retrieves a parsed commit of a revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/commit HTTP/1.0
|
|
----
|
|
|
|
As response a link:#commit-info[CommitInfo] entity is returned that
|
|
describes the revision.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"commit": "674ac754f91e64a0efb8087e59a176484bd534d1",
|
|
"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 ..."
|
|
}
|
|
----
|
|
|
|
Adding query parameter `links` (for example `/changes/.../commit?links`)
|
|
returns a link:#commit-info[CommitInfo] with the additional field `web_links`.
|
|
|
|
[[get-description]]
|
|
=== Get Description
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/description'
|
|
--
|
|
|
|
Retrieves the description of a patch set.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/description HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"Added Documentation"
|
|
----
|
|
|
|
If the patch set does not have a description an empty string is returned.
|
|
|
|
[[set-description]]
|
|
=== Set Description
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/description'
|
|
--
|
|
|
|
Sets the description of a patch set.
|
|
|
|
The new description must be provided in the request body inside a
|
|
link:#description-input[DescriptionInput] entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/description HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"description": "Added Documentation"
|
|
}
|
|
----
|
|
|
|
As response the new description is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"Added Documentation"
|
|
----
|
|
|
|
[[get-merge-list]]
|
|
=== Get Merge List
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/mergelist'
|
|
--
|
|
|
|
Returns the list of commits that are being integrated into a target
|
|
branch by a merge commit. By default the first parent is assumed to be
|
|
uninteresting. By using the `parent` option another parent can be set
|
|
as uninteresting (parents are 1-based).
|
|
|
|
The list of commits is returned as a list of
|
|
link:#commit-info[CommitInfo] entities. Web links are only included if
|
|
the `links` option was set.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/7e30d802b890ec8d0be45b1cc2a8ef092bcfc858/mergelist HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"commit": "674ac754f91e64a0efb8087e59a176484bd534d1",
|
|
"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-revision-actions]]
|
|
=== Get Revision Actions
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/actions'
|
|
--
|
|
|
|
Retrieves revision link:#action-info[actions] of the revision of a change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/actions' HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
|
|
{
|
|
"submit": {
|
|
"method": "POST",
|
|
"label": "Submit",
|
|
"title": "Submit patch set 1 into master",
|
|
"enabled": true
|
|
},
|
|
"cherrypick": {
|
|
"method": "POST",
|
|
"label": "Cherry Pick",
|
|
"title": "Cherry pick change to a different branch",
|
|
"enabled": true
|
|
}
|
|
}
|
|
----
|
|
|
|
The response is a flat map of possible revision actions mapped to their
|
|
link:#action-info[ActionInfo].
|
|
|
|
[[get-review]]
|
|
=== Get Review
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/review'
|
|
--
|
|
|
|
Retrieves a review of a revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity with
|
|
link:#detailed-labels[detailed labels] and link:#detailed-accounts[
|
|
detailed accounts] is returned that describes the review of the
|
|
revision. The revision for which the review is retrieved is contained
|
|
in the `revisions` field. In addition the `current_revision` field is
|
|
set if the revision for which the review is retrieved is the current
|
|
revision of the change. Please note that the returned labels are always
|
|
for the current patch set.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"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",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 45,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
"labels": {
|
|
"Verified": {
|
|
"all": [
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
],
|
|
"values": {
|
|
"-1": "Fails",
|
|
" 0": "No score",
|
|
"+1": "Verified"
|
|
}
|
|
},
|
|
"Code-Review": {
|
|
"all": [
|
|
{
|
|
"value": -1,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"value": 1,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
]
|
|
"values": {
|
|
"-2": "This shall not be merged",
|
|
"-1": "I would prefer this is not merged as is",
|
|
" 0": "No score",
|
|
"+1": "Looks good to me, but someone else must approve",
|
|
"+2": "Looks good to me, approved"
|
|
}
|
|
}
|
|
},
|
|
"permitted_labels": {
|
|
"Verified": [
|
|
"-1",
|
|
" 0",
|
|
"+1"
|
|
],
|
|
"Code-Review": [
|
|
"-2",
|
|
"-1",
|
|
" 0",
|
|
"+1",
|
|
"+2"
|
|
]
|
|
},
|
|
"removable_reviewers": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
],
|
|
"reviewers": {
|
|
"REVIEWER": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
]
|
|
},
|
|
"current_revision": "674ac754f91e64a0efb8087e59a176484bd534d1",
|
|
"revisions": {
|
|
"674ac754f91e64a0efb8087e59a176484bd534d1": {
|
|
"kind": "REWORK",
|
|
"_number": 2,
|
|
"ref": "refs/changes/65/3965/2",
|
|
"fetch": {
|
|
"http": {
|
|
"url": "http://gerrit/myProject",
|
|
"ref": "refs/changes/65/3965/2"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
[[get-related-changes]]
|
|
=== Get Related Changes
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/related'
|
|
--
|
|
|
|
Retrieves related changes of a revision. Related changes are changes that either
|
|
depend on, or are dependencies of the revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/gerrit~master~I5e4fc08ce34d33c090c9e0bf320de1b17309f774/revisions/b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe/related HTTP/1.0
|
|
----
|
|
|
|
As result a link:#related-changes-info[RelatedChangesInfo] entity is returned
|
|
describing the related changes.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"changes": [
|
|
{
|
|
"project": "gerrit",
|
|
"change_id": "Ic62ae3103fca2214904dbf2faf4c861b5f0ae9b5",
|
|
"commit": {
|
|
"commit": "78847477532e386f5a2185a4e8c90b2509e354e3",
|
|
"parents": [
|
|
{
|
|
"commit": "bb499510bbcdbc9164d96b0dbabb4aa45f59a87e"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "David Ostrovsky",
|
|
"email": "david@ostrovsky.org",
|
|
"date": "2014-07-12 15:04:24.000000000",
|
|
"tz": 120
|
|
},
|
|
"subject": "Remove Solr"
|
|
},
|
|
"_change_number": 58478,
|
|
"_revision_number": 2,
|
|
"_current_revision_number": 2
|
|
"status": "NEW"
|
|
},
|
|
{
|
|
"project": "gerrit",
|
|
"change_id": "I5e4fc08ce34d33c090c9e0bf320de1b17309f774",
|
|
"commit": {
|
|
"commit": "b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe",
|
|
"parents": [
|
|
{
|
|
"commit": "d898f12a9b7a92eb37e7a80636195a1b06417aad"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "David Pursehouse",
|
|
"email": "david.pursehouse@sonymobile.com",
|
|
"date": "2014-06-24 02:01:28.000000000",
|
|
"tz": 540
|
|
},
|
|
"subject": "Add support for secondary index with Elasticsearch"
|
|
},
|
|
"_change_number": 58081,
|
|
"_revision_number": 10,
|
|
"_current_revision_number": 10
|
|
"status": "NEW"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
|
|
[[set-review]]
|
|
=== Set Review
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/review'
|
|
--
|
|
|
|
Sets a review on a revision, optionally also publishing draft comments, setting
|
|
labels, adding reviewers or CCs, and modifying the work in progress property.
|
|
|
|
The review must be provided in the request body as a
|
|
link:#review-input[ReviewInput] entity.
|
|
|
|
If the labels are set, the user sending the request will automatically be
|
|
added as a reviewer, otherwise (if they only commented) they are added to
|
|
the CC list.
|
|
|
|
A review cannot be set on a change edit. Trying to post a review for a
|
|
change edit fails with `409 Conflict`.
|
|
|
|
Here is an example of using this method to set labels:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"tag": "jenkins",
|
|
"message": "Some nits need to be fixed.",
|
|
"labels": {
|
|
"Code-Review": -1
|
|
},
|
|
"comments": {
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace"
|
|
},
|
|
{
|
|
"line": 49,
|
|
"message": "[nit] s/conrtol/control"
|
|
},
|
|
{
|
|
"range": {
|
|
"start_line": 50,
|
|
"start_character": 0,
|
|
"end_line": 55,
|
|
"end_character": 20
|
|
},
|
|
"message": "Incorrect indentation"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
----
|
|
|
|
As response a link:#review-result[ReviewResult] entity is returned that
|
|
describes the applied labels and any added reviewers (e.g. yourself,
|
|
if you set a label but weren't previously a reviewer on this CL).
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"labels": {
|
|
"Code-Review": -1
|
|
}
|
|
}
|
|
----
|
|
|
|
It is also possible to add one or more reviewers or CCs
|
|
to a change simultaneously with a review:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message": "I don't have context here. Jane and maybe John and the project leads should take a look.",
|
|
"reviewers": [
|
|
{
|
|
"reviewer": "jane.roe@example.com"
|
|
},
|
|
{
|
|
"reviewer": "john.doe@example.com",
|
|
"state": "CC"
|
|
}
|
|
{
|
|
"reviewer": "MyProjectVerifiers",
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
Each element of the `reviewers` list is an instance of
|
|
link:#reviewer-input[ReviewerInput]. The corresponding result of
|
|
adding each reviewer will be returned in a map of inputs to
|
|
link:#add-reviewer-result[AddReviewerResult]s.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"reviewers": {
|
|
"jane.roe@example.com": {
|
|
"input": "jane.roe@example.com",
|
|
"reviewers": [
|
|
{
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": " 0"
|
|
},
|
|
},
|
|
]
|
|
},
|
|
"john.doe@example.com": {
|
|
"input": "john.doe@example.com",
|
|
"ccs": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": " 0"
|
|
},
|
|
}
|
|
]
|
|
},
|
|
"MyProjectVerifiers": {
|
|
"input": "MyProjectVerifiers",
|
|
"reviewers": [
|
|
{
|
|
"_account_id": 1000098,
|
|
"name": "Alice Ansel",
|
|
"email": "alice.ansel@example.com"
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": " 0"
|
|
},
|
|
},
|
|
{
|
|
"_account_id": 1000099,
|
|
"name": "Bob Bollard",
|
|
"email": "bob.bollard@example.com"
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": " 0"
|
|
},
|
|
},
|
|
]
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
If there are any errors returned for reviewers, the entire review request will
|
|
be rejected with `400 Bad Request`. None of the entries will have the
|
|
`reviewers` or `ccs` field set, and those which specifically failed will have
|
|
the `errors` field set containing details of why they failed.
|
|
|
|
.Error Response
|
|
----
|
|
HTTP/1.1 400 Bad Request
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"reviewers": {
|
|
"jane.roe@example.com": {
|
|
"input": "jane.roe@example.com",
|
|
"error": "Account of jane.roe@example.com is inactive."
|
|
},
|
|
"john.doe@example.com": {
|
|
"input": "john.doe@example.com"
|
|
},
|
|
"MyProjectVerifiers": {
|
|
"input": "MyProjectVerifiers",
|
|
"error": "The group My Group has 15 members. Do you want to add them all as reviewers?",
|
|
"confirm": true
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
[[set-review-notifications]]
|
|
.Notifications
|
|
|
|
An email will be sent using the "comment" template.
|
|
|
|
If the top-level notify property is null or not set, then notification behavior
|
|
depends on whether the change is WIP, whether it has started review, and whether
|
|
the tag property is null.
|
|
|
|
NOTE: If adding reviewers, the notify property of each ReviewerInput is *ignored*.
|
|
Use the notify property of the top-level link:#review-input[ReviewInput] instead.
|
|
|
|
For the purposes of this table, *everyone* means *owner, reviewers, CCs, stars, and ALL_COMMENTS
|
|
watchers*.
|
|
|
|
[options="header",cols="2,1,1,2,2"]
|
|
|=============================
|
|
|WIP State |Review Started|Tag Given|Default |notify=ALL
|
|
|Ready for review|N/A |N/A |everyone|everyone
|
|
|Work in progress|no |no |not sent|everyone
|
|
|Work in progress|no |yes |owner |everyone
|
|
|Work in progress|yes |no |everyone|everyone
|
|
|Work in progress|yes |yes |owner |everyone
|
|
|
|
|=============================
|
|
|
|
If reviewers are added, then a second email will be sent using the "newchange"
|
|
template. The notification logic for this email is the same as for
|
|
link:#add-reviewer[Add Reviewer].
|
|
|
|
[options="header",cols="1,1,1"]
|
|
|=============================
|
|
|WIP State |Default |notify=ALL
|
|
|Ready for review|owner, reviewers, CCs|owner, reviewers, CCs
|
|
|Work in progress|not sent |owner, reviewers, CCs
|
|
|=============================
|
|
|
|
|
|
[[rebase-revision]]
|
|
=== Rebase Revision
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/rebase'
|
|
--
|
|
|
|
Rebases a revision.
|
|
|
|
Optionally, the parent revision can be changed to another patch set through the
|
|
link:#rebase-input[RebaseInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/rebase HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"base" : "1234",
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the rebased change. Information about the current patch set
|
|
is included.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"subject": "Implement Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": false,
|
|
"insertions": 21,
|
|
"deletions": 21,
|
|
"_number": 4799,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822",
|
|
"revisions": {
|
|
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
|
|
"kind": "REWORK",
|
|
"_number": 2,
|
|
"ref": "refs/changes/99/4799/2",
|
|
"fetch": {
|
|
"http": {
|
|
"url": "http://gerrit:8080/myProject",
|
|
"ref": "refs/changes/99/4799/2"
|
|
}
|
|
},
|
|
"commit": {
|
|
"parents": [
|
|
{
|
|
"commit": "b4003890dadd406d80222bf1ad8aca09a4876b70",
|
|
"subject": "Implement Feature A"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"date": "2013-05-07 15:21:27.000000000",
|
|
"tz": 120
|
|
},
|
|
"committer": {
|
|
"name": "Gerrit Code Review",
|
|
"email": "gerrit-server@example.com",
|
|
"date": "2013-05-07 15:35:43.000000000",
|
|
"tz": 120
|
|
},
|
|
"subject": "Implement Feature X",
|
|
"message": "Implement Feature X\n\nAdded feature X."
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
If the revision cannot be rebased, e.g. due to conflicts, the response is
|
|
"`409 Conflict`" and the error message is contained in the response
|
|
body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
The change could not be rebased due to a path conflict during merge.
|
|
----
|
|
|
|
[[submit-revision]]
|
|
=== Submit Revision
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/submit'
|
|
--
|
|
|
|
Submits a revision.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/submit HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
----
|
|
|
|
As response a link:#submit-info[SubmitInfo] entity is returned that
|
|
describes the status of the submitted change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"status": "MERGED"
|
|
}
|
|
----
|
|
|
|
If the revision cannot be submitted, e.g. because the submit rule
|
|
doesn't allow submitting the revision or the revision is not the
|
|
current revision, the response is "`409 Conflict`" and the error
|
|
message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
"revision 674ac754f91e64a0efb8087e59a176484bd534d1 is not current revision"
|
|
----
|
|
|
|
[[get-patch]]
|
|
=== Get Patch
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/patch'
|
|
--
|
|
|
|
Gets the formatted patch for one revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/patch HTTP/1.0
|
|
----
|
|
|
|
The formatted patch is returned as text encoded inside base64:
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
X-FYI-Content-Encoding: base64
|
|
X-FYI-Content-Type: application/mbox
|
|
|
|
RnJvbSA3ZGFkY2MxNTNmZGVhMTdhYTg0ZmYzMmE2ZTI0NWRiYjY...
|
|
----
|
|
|
|
Adding query parameter `zip` (for example `/changes/.../patch?zip`)
|
|
returns the patch as a single file inside of a ZIP archive. Clients
|
|
can expand the ZIP to obtain the plain text patch, avoiding the
|
|
need for a base64 decoding step. This option implies `download`.
|
|
|
|
Query parameter `download` (e.g. `/changes/.../patch?download`)
|
|
will suggest the browser save the patch as `commitsha1.diff.base64`,
|
|
for later processing by command line tools.
|
|
|
|
If the `path` parameter is set, the returned content is a diff of the single
|
|
file that the path refers to.
|
|
|
|
[[submit-preview]]
|
|
=== Submit Preview
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/preview_submit'
|
|
--
|
|
Gets a file containing thin bundles of all modified projects if this
|
|
change was submitted. The bundles are named `${ProjectName}.git`.
|
|
Each thin bundle contains enough to construct the state in which a project would
|
|
be in if this change were submitted. The base of the thin bundles are the
|
|
current target branches, so to make use of this call in a non-racy way, first
|
|
get the bundles and then fetch all projects contained in the bundle.
|
|
(This assumes no non-fastforward pushes).
|
|
|
|
You need to give a parameter '?format=zip' or '?format=tar' to specify the
|
|
format for the outer container. It is always possible to use tgz, even if
|
|
tgz is not in the list of allowed archive formats.
|
|
|
|
To make good use of this call, you would roughly need code as found at:
|
|
----
|
|
$ curl -Lo preview_submit_test.sh http://review.example.com:8080/tools/scripts/preview_submit_test.sh
|
|
----
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/preview_submit?zip HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Date: Tue, 13 Sep 2016 19:13:46 GMT
|
|
Content-Disposition: attachment; filename="submit-preview-147.zip"
|
|
X-Content-Type-Options: nosniff
|
|
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
|
|
Pragma: no-cache
|
|
Expires: Mon, 01 Jan 1990 00:00:00 GMT
|
|
Content-Type: application/x-zip
|
|
Transfer-Encoding: chunked
|
|
|
|
[binary stuff]
|
|
----
|
|
|
|
In case of an error, the response is not a zip file but a regular json response,
|
|
containing only the error message:
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"Anonymous users cannot submit"
|
|
----
|
|
|
|
[[get-mergeable]]
|
|
=== Get Mergeable
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/mergeable'
|
|
--
|
|
|
|
Gets the method the server will use to submit (merge) the change and
|
|
an indicator if the change is currently mergeable.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/mergeable HTTP/1.0
|
|
----
|
|
|
|
As response a link:#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
|
|
}
|
|
----
|
|
|
|
If the `other-branches` parameter is specified, the mergeability will also be
|
|
checked for all other branches which are listed in the
|
|
link:config-project-config.html#branchOrder-section[branchOrder] section in the
|
|
project.config file.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/mergeable?other-branches HTTP/1.0
|
|
----
|
|
|
|
The response will then contain a list of all other branches where this changes
|
|
could merge cleanly.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
submit_type: "MERGE_IF_NECESSARY",
|
|
mergeable: true,
|
|
mergeable_into: [
|
|
"refs/heads/stable-2.7",
|
|
"refs/heads/stable-2.8",
|
|
]
|
|
}
|
|
----
|
|
|
|
[[get-submit-type]]
|
|
=== Get Submit Type
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/submit_type'
|
|
--
|
|
|
|
Gets the method the server will use to submit (merge) the change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/submit_type HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"MERGE_IF_NECESSARY"
|
|
----
|
|
|
|
[[test-submit-type]]
|
|
=== Test Submit Type
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/test.submit_type'
|
|
--
|
|
|
|
Tests the submit_type Prolog rule in the project, or the one given.
|
|
|
|
Request body may be either the Prolog code as `text/plain` or a
|
|
link:#rule-input[RuleInput] object. The query parameter `filters`
|
|
may be set to `SKIP` to bypass parent project filters while testing
|
|
a project-specific rule.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/test.submit_type HTTP/1.0
|
|
Content-Type: text/plain; charset-UTF-8
|
|
|
|
submit_type(cherry_pick).
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"CHERRY_PICK"
|
|
----
|
|
|
|
[[test-submit-rule]]
|
|
=== Test Submit Rule
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/test.submit_rule'
|
|
--
|
|
|
|
Tests the submit_rule Prolog rule in the project, or the one given.
|
|
|
|
Request body may be either the Prolog code as `text/plain` or a
|
|
link:#rule-input[RuleInput] object. The query parameter `filters`
|
|
may be set to `SKIP` to bypass parent project filters while testing
|
|
a project-specific rule.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/test.submit_rule?filters=SKIP HTTP/1.0
|
|
Content-Type: text/plain; charset-UTF-8
|
|
|
|
submit_rule(submit(R)) :-
|
|
R = label('Any-Label-Name', reject(_)).
|
|
----
|
|
|
|
The response is a link:#submit-record[SubmitRecord] describing the
|
|
permutations that satisfy the tested submit rule.
|
|
|
|
If the submit rule was a no-op, the response is "`204 No Content`".
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"status": "NOT_READY",
|
|
"reject": {
|
|
"Any-Label-Name": {}
|
|
}
|
|
}
|
|
----
|
|
|
|
When testing with the `curl` command line client the
|
|
`--data-binary @rules.pl` flag should be used to ensure
|
|
all LFs are included in the Prolog code:
|
|
|
|
----
|
|
curl -X POST \
|
|
-H 'Content-Type: text/plain; charset=UTF-8' \
|
|
--data-binary @rules.pl \
|
|
http://.../test.submit_rule
|
|
----
|
|
|
|
[[list-drafts]]
|
|
=== List Revision Drafts
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/'
|
|
--
|
|
|
|
Lists the draft comments of a revision that belong to the calling
|
|
user.
|
|
|
|
Returns a map of file paths to lists of link:#comment-info[CommentInfo]
|
|
entries. The entries in the map are sorted by file path.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
},
|
|
{
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[create-draft]]
|
|
=== Create Draft
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts'
|
|
--
|
|
|
|
Creates a draft comment on a revision.
|
|
|
|
The new draft comment must be provided in the request body inside a
|
|
link:#comment-input[CommentInput] entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace"
|
|
}
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the draft comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
}
|
|
----
|
|
|
|
[[get-draft]]
|
|
=== Get Draft
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/link:#draft-id[\{draft-id\}]'
|
|
--
|
|
|
|
Retrieves a draft comment of a revision that belongs to the calling
|
|
user.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the draft comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
}
|
|
----
|
|
|
|
[[update-draft]]
|
|
=== Update Draft
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/link:#draft-id[\{draft-id\}]'
|
|
--
|
|
|
|
Updates a draft comment on a revision.
|
|
|
|
The new draft comment must be provided in the request body inside a
|
|
link:#comment-input[CommentInput] entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace"
|
|
}
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the draft comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
}
|
|
----
|
|
|
|
[[delete-draft]]
|
|
=== Delete Draft
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/link:#draft-id[\{draft-id\}]'
|
|
--
|
|
|
|
Deletes a draft comment from a revision.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[list-comments]]
|
|
=== List Revision Comments
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/comments/'
|
|
--
|
|
|
|
Lists the published comments of a revision.
|
|
|
|
As result a map is returned that maps the file path to a list of
|
|
link:#comment-info[CommentInfo] entries. The entries in the map are
|
|
sorted by file path and only include file (or inline) comments. Use
|
|
the link:#get-change-detail[Get Change Detail] endpoint to retrieve
|
|
the general change message (or comment).
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
},
|
|
{
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000",
|
|
"author": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[get-comment]]
|
|
=== Get Comment
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/comments/link:#comment-id[\{comment-id\}]'
|
|
--
|
|
|
|
Retrieves a published comment of a revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/TvcXrmjM HTTP/1.0
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the published comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[delete-comment]]
|
|
=== Delete Comment
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/comments/link:#comment-id[\{comment-id\}]' +
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/comments/link:#comment-id[\{comment-id\}]/delete'
|
|
--
|
|
|
|
Deletes a published comment of a revision. Instead of deleting the
|
|
whole comment, this endpoint just replaces the comment's message
|
|
with a new message, which contains the name of the user who deletes
|
|
the comment and the reason why it's deleted.
|
|
|
|
Note that only users with the
|
|
link:access-control.html#capability_administrateServer[Administrate Server]
|
|
global capability are permitted to delete a comment.
|
|
|
|
Deletion reason can be provided in the request body as a
|
|
link:#delete-comment-input[DeleteCommentInput] entity.
|
|
Historically, this method allowed a body in the DELETE, but that behavior is
|
|
link:https://www.gerritcodereview.com/releases/2.16.md[deprecated,role=external,window=_blank].
|
|
In this case, use a POST request instead:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/TvcXrmjM/delete HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"reason": "contains confidential information"
|
|
}
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the updated comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "Comment removed by: Administrator; Reason: contains confidential information",
|
|
"updated": "2013-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[list-robot-comments]]
|
|
=== List Robot Comments
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/robotcomments/'
|
|
--
|
|
|
|
Lists the link:config-robot-comments.html[robot comments] of a
|
|
revision.
|
|
|
|
As result a map is returned that maps the file path to a list of
|
|
link:#robot-comment-info[RobotCommentInfo] entries. The entries in the
|
|
map are sorted by file path.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/robotcomments/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "unused import",
|
|
"updated": "2016-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000110,
|
|
"name": "Code Analyzer",
|
|
"email": "code.analyzer@example.com"
|
|
},
|
|
"robot_id": "importChecker",
|
|
"robot_run_id": "76b1375aa8626ea7149792831fe2ed85e80d9e04"
|
|
},
|
|
{
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"message": "wrong indention",
|
|
"updated": "2016-02-26 15:40:45.328000000",
|
|
"author": {
|
|
"_account_id": 1000110,
|
|
"name": "Code Analyzer",
|
|
"email": "code.analyzer@example.com"
|
|
},
|
|
"robot_id": "styleChecker",
|
|
"robot_run_id": "5c606c425dd45184484f9d0a2ffd725a7607839b"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[get-robot-comment]]
|
|
=== Get Robot Comment
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/robotcomments/link:#comment-id[\{comment-id\}]'
|
|
--
|
|
|
|
Retrieves a link:config-robot-comments.html[robot comment] of a
|
|
revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/robotcomments/TvcXrmjM HTTP/1.0
|
|
----
|
|
|
|
As response a link:#robot-comment-info[RobotCommentInfo] entity is
|
|
returned that describes the robot comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "unused import",
|
|
"updated": "2016-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000110,
|
|
"name": "Code Analyzer",
|
|
"email": "code.analyzer@example.com"
|
|
},
|
|
"robot_id": "importChecker",
|
|
"robot_run_id": "76b1375aa8626ea7149792831fe2ed85e80d9e04"
|
|
}
|
|
----
|
|
|
|
[[apply-fix]]
|
|
=== Apply Fix
|
|
--
|
|
'POST /changes/<<change-id,\{change-id\}>>/revisions/<<revision-id,\{revision-id\}>>/fixes/<<fix-id,\{fix-id\}>>/apply'
|
|
--
|
|
|
|
Applies a suggested fix by creating a change edit which includes the
|
|
modifications indicated by the fix suggestion. If a change edit already exists,
|
|
it will be updated accordingly. A fix can only be applied if no change edit
|
|
exists and the fix refers to the current patch set, or the fix refers to the
|
|
patch set on which the change edit is based.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/fixes/8f605a55_f6aa4ecc/apply HTTP/1.0
|
|
----
|
|
|
|
If the fix was successfully applied, an <<edit-info,EditInfo>> describing the
|
|
resulting change edit is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"commit": {
|
|
"parents": [
|
|
{
|
|
"commit": "1eee2c9d8f352483781e772f35dc586a69ff5646",
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"date": "2013-05-07 15:21:27.000000000",
|
|
"tz": 120
|
|
},
|
|
"committer": {
|
|
"name": "Jane Doe",
|
|
"email": "jane.doe@example.com",
|
|
"date": "2013-05-07 15:35:43.000000000",
|
|
"tz": 120
|
|
},
|
|
"subject": "Implement feature X",
|
|
"message": "Implement feature X\n\nWith this feature ..."
|
|
},
|
|
"base_patch_set_number": 1,
|
|
"base_revision": "674ac754f91e64a0efb8087e59a176484bd534d1"
|
|
"ref": "refs/users/01/1000001/edit-42622/1"
|
|
}
|
|
----
|
|
|
|
If the application failed e.g. due to conflicts with an existing change edit,
|
|
the response "`409 Conflict`" including an error message in the response body
|
|
is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
The existing change edit could not be merged with another tree.
|
|
----
|
|
|
|
[[list-files]]
|
|
=== List Files
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/'
|
|
--
|
|
|
|
Lists the files that were modified, added or deleted in a revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/ HTTP/1.0
|
|
----
|
|
|
|
As result a map is returned that maps the link:#file-id[file path] to a
|
|
link:#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 request parameter `reviewed` changes the response to return a list
|
|
of the paths the caller has marked as reviewed. Clients that also
|
|
need the FileInfo should make two requests.
|
|
|
|
The request parameter `q` changes the response to return a list
|
|
of all files (modified or unmodified) that contain that substring
|
|
in the path name. This is useful to implement suggestion services
|
|
finding a file by partial name. Clients that also need the FileInfo
|
|
should make two requests.
|
|
|
|
For merge commits only, the integer-valued request parameter `parent`
|
|
changes the response to return a map of the files which are different
|
|
in this commit compared to the given parent commit. The value is the
|
|
1-based index of the parent's position in the commit object,
|
|
with the first parent always belonging to the target branch. If not
|
|
specified, the response contains a map of the files different in the
|
|
auto merge result.
|
|
|
|
The request parameter `base` changes the response to return a map of the
|
|
files which are different in this commit compared to the given revision. The
|
|
revision must correspond to a patch set in the change.
|
|
|
|
The `reviewed`, `q`, `parent`, and `base` options are mutually exclusive.
|
|
That is, only one of them may be used at a time.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/?reviewed HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
"/COMMIT_MSG",
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
]
|
|
----
|
|
|
|
[[get-content]]
|
|
=== Get Content
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/content'
|
|
--
|
|
|
|
Gets the content of a file from a certain revision.
|
|
|
|
The optional, integer-valued `parent` parameter can be specified to request
|
|
the named file from a parent commit of the specified revision. The value is
|
|
the 1-based index of the parent's position in the commit object. If the
|
|
parameter is omitted or the value is non-positive, the patch set is referenced.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/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. The HTTP response
|
|
Content-Type is always `text/plain`, reflecting the base64 wrapping.
|
|
A Gerrit-specific `X-FYI-Content-Type` header is returned describing
|
|
the server detected content type of the file.
|
|
|
|
If only the content type is required, callers should use HEAD to
|
|
avoid downloading the encoded file contents.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
X-FYI-Content-Encoding: base64
|
|
X-FYI-Content-Type: text/xml
|
|
|
|
Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY...
|
|
----
|
|
|
|
Alternatively, if the only value of the Accept request header is
|
|
`application/json` the content is returned as JSON string and
|
|
`X-FYI-Content-Encoding` is set to `json`.
|
|
|
|
[[get-safe-content]]
|
|
=== Download Content
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/download'
|
|
--
|
|
|
|
Downloads the content of a file from a certain revision, in a safe format
|
|
that poses no risk for inadvertent execution of untrusted code.
|
|
|
|
If the content type is defined as safe, the binary file content is returned
|
|
verbatim. If the content type is not safe, the file is stored inside a ZIP
|
|
file, containing a single entry with a random, unpredictable name having the
|
|
same base and suffix as the true filename. The ZIP file is returned in
|
|
verbatim binary form.
|
|
|
|
See link:config-gerrit.html#mimetype.name.safe[Gerrit config documentation]
|
|
for information about safe file type configuration.
|
|
|
|
The HTTP resource Content-Type is dependent on the file type: the
|
|
applicable type for safe files, or "application/zip" for unsafe files.
|
|
|
|
The optional, integer-valued `parent` parameter can be specified to request
|
|
the named file from a parent commit of the specified revision. The value is
|
|
the 1-based index of the parent's position in the commit object. If the
|
|
parameter is omitted or the value non-positive, the patch set is referenced.
|
|
|
|
Filenames are decorated with a suffix of `_new` for the current patch,
|
|
`_old` for the only parent, or `_oldN` for the Nth parent of many.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/website%2Freleases%2Flogo.png/download HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment; filename="logo.png"
|
|
Content-Type: image/png
|
|
|
|
`[binary data for logo.png]`
|
|
----
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/download?suffix=new HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: Content-Disposition:attachment; filename="RefControl_new-931cdb73ae9d97eb500a3533455b055d90b99944.java.zip"
|
|
Content-Type:application/zip
|
|
|
|
`[binary ZIP archive containing a single file, "RefControl_new-cb218df1337df48a0e7ab30a49a8067ac7321881.java"]`
|
|
----
|
|
|
|
[[get-diff]]
|
|
=== Get Diff
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/diff'
|
|
--
|
|
|
|
Gets the diff of a file from a certain revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/diff HTTP/1.0
|
|
----
|
|
|
|
As response a link:#diff-info[DiffInfo] entity is returned that describes the diff.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]
|
|
{
|
|
"meta_a": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 372
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"change_type": "MODIFIED",
|
|
"diff_header": [
|
|
"diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"index 59b7670..9faf81c 100644",
|
|
"--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java"
|
|
],
|
|
"content": [
|
|
{
|
|
"ab": [
|
|
"// Copyright (C) 2010 The Android Open Source Project",
|
|
"//",
|
|
"// Licensed under the Apache License, Version 2.0 (the \"License\");",
|
|
"// you may not use this file except in compliance with the License.",
|
|
"// You may obtain a copy of the License at",
|
|
"//",
|
|
"// http://www.apache.org/licenses/LICENSE-2.0",
|
|
"//",
|
|
"// Unless required by applicable law or agreed to in writing, software",
|
|
"// distributed under the License is distributed on an \"AS IS\" BASIS,",
|
|
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
|
|
"// See the License for the specific language governing permissions and",
|
|
"// limitations under the License."
|
|
]
|
|
},
|
|
{
|
|
"b": [
|
|
"//",
|
|
"// Add some more lines in the header."
|
|
]
|
|
},
|
|
{
|
|
"ab": [
|
|
"",
|
|
"package com.google.gerrit.server.project;",
|
|
"",
|
|
"import com.google.common.collect.Maps;",
|
|
...
|
|
]
|
|
}
|
|
...
|
|
]
|
|
}
|
|
----
|
|
|
|
If the `intraline` parameter is specified, intraline differences are included in the diff.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/b6b9c10649b9041884046119ab794374470a1b45/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/diff?intraline HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]
|
|
{
|
|
"meta_a": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 372
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"change_type": "MODIFIED",
|
|
"diff_header": [
|
|
"diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"index 59b7670..9faf81c 100644",
|
|
"--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java"
|
|
],
|
|
"content": [
|
|
...
|
|
{
|
|
"a": [
|
|
"/** Manages access control for Git references (aka branches, tags). */"
|
|
],
|
|
"b": [
|
|
"/** Manages access control for the Git references (aka branches, tags). */"
|
|
],
|
|
"edit_a": [],
|
|
"edit_b": [
|
|
[
|
|
31,
|
|
4
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
The `base` parameter can be specified to control the base patch set from which the diff should
|
|
be generated.
|
|
|
|
The integer-valued request parameter `parent` can be specified to control the
|
|
parent commit number against which the diff should be generated. 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.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/b6b9c10649b9041884046119ab794374470a1b45/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/diff?base=2 HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]
|
|
{
|
|
"meta_a": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"change_type": "MODIFIED",
|
|
"content": [
|
|
{
|
|
"skip": 578
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
The `whitespace` parameter can be specified to control how whitespace
|
|
differences are reported in the result. Valid values are `IGNORE_NONE`,
|
|
`IGNORE_TRAILING`, `IGNORE_LEADING_AND_TRAILING` or `IGNORE_ALL`.
|
|
|
|
The `context` parameter can be specified to control the number of lines of surrounding context
|
|
in the diff. Valid values are `ALL` or number of lines.
|
|
|
|
[[preview-fix]]
|
|
=== Preview fix
|
|
--
|
|
'GET /changes/<<change-id,\{change-id\}>>/revisions/<<revision-id,\{revision-id\}>>/fixes/<<fix-id,\{fix-id\}>>/preview'
|
|
--
|
|
|
|
Gets the diffs of all files for a certain <<fix-id,\{fix-id\}>>.
|
|
As response, a map of link:#diff-info[DiffInfo] entities is returned that describes the diffs.
|
|
|
|
Each link:#diff-info[DiffInfo] is the differences between the patch set indicated by revision-id and a virtual patch set with the applied fix.
|
|
|
|
[[get-blame]]
|
|
=== Get Blame
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/blame'
|
|
--
|
|
|
|
Gets the blame of a file from a certain revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/blame HTTP/1.0
|
|
----
|
|
|
|
As response a link:#blame-info[BlameInfo] entity is returned that describes the
|
|
blame.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]
|
|
{
|
|
[
|
|
{
|
|
"author": "Joe Daw",
|
|
"id": "64e140b4de5883a4dd74d06c2b62ccd7ffd224a7",
|
|
"time": 1421441349,
|
|
"commit_msg": "RST test\n\nChange-Id: I11e9e24bd122253f4bb10c36dce825ac2410d646\n",
|
|
"ranges": [
|
|
{
|
|
"start": 1,
|
|
"end": 10
|
|
},
|
|
{
|
|
"start": 16,
|
|
"end": 296
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"author": "Jane Daw",
|
|
"id": "8d52621a0e2ac6adec73bd3a49f2371cd53137a7",
|
|
"time": 1421825421,
|
|
"commit_msg": "add banner\n\nChange-Id: I2eced9b2691015ae3c5138f4d0c4ca2b8fb15be9\n",
|
|
"ranges": [
|
|
{
|
|
"start": 13,
|
|
"end": 13
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
The `base` parameter can be specified to control the base patch set from which
|
|
the blame should be generated.
|
|
|
|
[[set-reviewed]]
|
|
=== Set Reviewed
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/reviewed'
|
|
--
|
|
|
|
Marks a file of a revision as reviewed by the calling user.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/reviewed HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 201 Created
|
|
----
|
|
|
|
If the file was already marked as reviewed by the calling user the
|
|
response is "`200 OK`".
|
|
|
|
[[delete-reviewed]]
|
|
=== Delete Reviewed
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/reviewed'
|
|
--
|
|
|
|
Deletes the reviewed flag of the calling user from a file of a revision.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/reviewed HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[cherry-pick]]
|
|
=== Cherry Pick Revision
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/cherrypick'
|
|
--
|
|
|
|
Cherry picks a revision to a destination branch.
|
|
|
|
To cherry pick a commit with no change-id associated with it, see
|
|
link:rest-api-projects.html#cherry-pick-commit[CherryPickCommit].
|
|
|
|
The commit message and destination branch must be provided in the request body inside a
|
|
link:#cherrypick-input[CherryPickInput] entity. If the commit message
|
|
does not specify a Change-Id, a new one is picked for the destination change.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/cherrypick HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message" : "Implementing Feature X",
|
|
"destination" : "release-branch"
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the resulting cherry-pick 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"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[revision-reviewer-endpoints]]
|
|
== Revision Reviewer Endpoints
|
|
|
|
[[list-revision-reviewers]]
|
|
=== List Revision Reviewers
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/reviewers/'
|
|
--
|
|
|
|
Lists the reviewers of a revision.
|
|
|
|
Please note that only the current revision is supported.
|
|
|
|
As result a list of link:#reviewer-info[ReviewerInfo] entries is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"approvals": {
|
|
"Verified": "+1",
|
|
"Code-Review": "+2"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": "-1"
|
|
},
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
]
|
|
----
|
|
|
|
[[list-revision-votes]]
|
|
=== List Revision Votes
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]/votes/'
|
|
--
|
|
|
|
Lists the votes for a specific reviewer of the revision.
|
|
|
|
Please note that only the current revision is supported.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/ HTTP/1.0
|
|
----
|
|
|
|
As result a map is returned that maps the label name to the label value.
|
|
The entries in the map are sorted by label name.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"Code-Review": -1,
|
|
"Verified": 1,
|
|
"Work-In-Progress": 1
|
|
}
|
|
----
|
|
|
|
[[delete-revision-vote]]
|
|
=== Delete Revision Vote
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]
|
|
/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]/votes/link:#label-id[\{label-id\}]' +
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]
|
|
/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]/votes/link:#label-id[\{label-id\}]/delete'
|
|
--
|
|
|
|
Deletes a single vote from a revision. The deletion will be possible only
|
|
if the revision is the current revision. By using this endpoint you can prevent
|
|
deleting the vote (with same label) from a newer patch set by mistake.
|
|
|
|
Note, that even when the last vote of a reviewer is removed the reviewer itself
|
|
is still listed on the change.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/Code-Review HTTP/1.0
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0
|
|
----
|
|
|
|
Options can be provided in the request body as a
|
|
link:#delete-vote-input[DeleteVoteInput] entity.
|
|
Historically, this method allowed a body in the DELETE, but that behavior is
|
|
link:https://www.gerritcodereview.com/releases/2.16.md[deprecated,role=external,window=_blank].
|
|
In this case, use a POST request instead:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"notify": "NONE"
|
|
}
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[ids]]
|
|
== IDs
|
|
|
|
[[account-id]]
|
|
=== link:rest-api-accounts.html#account-id[\{account-id\}]
|
|
--
|
|
--
|
|
|
|
[[change-id]]
|
|
=== \{change-id\}
|
|
Identifier that uniquely identifies one change. It contains the URL-encoded
|
|
project name as well as the change number: "'$$<project>~<numericId>$$'"
|
|
|
|
Gerrit also supports the following identifiers:
|
|
|
|
* an ID of the change in the format "'$$<project>~<branch>~<Change-Id>$$'",
|
|
where for the branch the `refs/heads/` prefix can be omitted
|
|
("$$myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940$$")
|
|
* a Change-Id if it uniquely identifies one change
|
|
("I8473b95934b5732ac55d26311a706c9c2bde9940")
|
|
* a numeric change ID ("4247")
|
|
|
|
[[change-message-id]]
|
|
=== \{change-message-id\}
|
|
ID of a change message returned in a link:#change-message-info[ChangeMessageInfo].
|
|
|
|
[[comment-id]]
|
|
=== \{comment-id\}
|
|
UUID of a published comment.
|
|
|
|
[[draft-id]]
|
|
=== \{draft-id\}
|
|
UUID of a draft comment.
|
|
|
|
[[label-id]]
|
|
=== \{label-id\}
|
|
The name of the label.
|
|
|
|
[[file-id]]
|
|
=== \{file-id\}
|
|
The path of the file.
|
|
|
|
The following magic paths are supported:
|
|
|
|
* `/COMMIT_MSG`:
|
|
+
|
|
The commit message and headers with the parent commit(s), the author
|
|
information and the committer information.
|
|
|
|
* `/MERGE_LIST` (for merge commits only):
|
|
+
|
|
The list of commits that are being integrated into the destination
|
|
branch by submitting the merge commit.
|
|
|
|
[[fix-id]]
|
|
=== \{fix-id\}
|
|
UUID of a suggested fix.
|
|
|
|
[[revision-id]]
|
|
=== \{revision-id\}
|
|
Identifier that uniquely identifies one revision of a change.
|
|
|
|
This can be:
|
|
|
|
* the literal `current` to name the current patch set/revision
|
|
* a commit ID ("674ac754f91e64a0efb8087e59a176484bd534d1")
|
|
* an abbreviated commit ID that uniquely identifies one revision of the
|
|
change ("674ac754"), at least 4 digits are required
|
|
* a legacy numeric patch number ("1" for first patch set of the change)
|
|
* "0" or the literal `edit` for a change edit
|
|
|
|
[[json-entities]]
|
|
== JSON Entities
|
|
|
|
[[abandon-input]]
|
|
=== AbandonInput
|
|
The `AbandonInput` entity contains information for abandoning a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when abandoning the
|
|
change.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent after
|
|
the change is abandoned. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|=============================
|
|
|
|
[[action-info]]
|
|
=== ActionInfo
|
|
The `ActionInfo` entity describes a REST API call the client can
|
|
make to manipulate a resource. These are frequently implemented by
|
|
plugins and may be discovered at runtime.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|====================================
|
|
|Field Name ||Description
|
|
|`method` |optional|
|
|
HTTP method to use with the action. Most actions use `POST`, `PUT`
|
|
or `DELETE` to cause state changes.
|
|
|`label` |optional|
|
|
Short title to display to a user describing the action. In the
|
|
Gerrit web interface the label is used as the text on the button
|
|
presented in the UI.
|
|
|`title` |optional|
|
|
Longer text to display describing the action. In a web UI this
|
|
should be the title attribute of the element, displaying when
|
|
the user hovers the mouse.
|
|
|`enabled` |optional|
|
|
If true the action is permitted at this time and the caller is
|
|
likely allowed to execute it. This may change if state is updated
|
|
at the server or permissions are modified. Not present if false.
|
|
|====================================
|
|
|
|
[[add-reviewer-result]]
|
|
=== AddReviewerResult
|
|
The `AddReviewerResult` entity describes the result of adding a
|
|
reviewer to a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`input` ||
|
|
Value of the `reviewer` field from link:#reviewer-input[ReviewerInput]
|
|
set while adding the reviewer.
|
|
|`reviewers` |optional|
|
|
The newly added reviewers as a list of link:#reviewer-info[
|
|
ReviewerInfo] entities.
|
|
|`ccs` |optional|
|
|
The newly CCed accounts as a list of link:#reviewer-info[
|
|
ReviewerInfo] entities. This field will only appear if the requested
|
|
`state` for the reviewer was `CC` *and* NoteDb is enabled on the
|
|
server.
|
|
|`error` |optional|
|
|
Error message explaining why the reviewer could not be added. +
|
|
If a group was specified in the input and an error is returned, it
|
|
means that none of the members were added as reviewer.
|
|
|`confirm` |`false` if not set|
|
|
Whether adding the reviewer requires confirmation.
|
|
|===========================
|
|
|
|
[[approval-info]]
|
|
=== ApprovalInfo
|
|
The `ApprovalInfo` entity contains information about an approval from a
|
|
user for a label on a change.
|
|
|
|
`ApprovalInfo` has the same fields as
|
|
link:rest-api-accounts.html#account-info[AccountInfo].
|
|
In addition `ApprovalInfo` has the following fields:
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`value` |optional|
|
|
The vote that the user has given for the label. If present and zero, the
|
|
user is permitted to vote on the label. If absent, the user is not
|
|
permitted to vote on that label.
|
|
|`permitted_voting_range` |optional|
|
|
The link:#voting-range-info[VotingRangeInfo] the user is authorized to vote
|
|
on that label. If present, the user is permitted to vote on the label
|
|
regarding the range values. If absent, the user is not permitted to vote
|
|
on that label.
|
|
|`date` |optional|
|
|
The time and date describing when the approval was made.
|
|
|`tag` |optional|
|
|
Value of the `tag` field from link:#review-input[ReviewInput] set
|
|
while posting the review. Votes/comments that contain `tag` with
|
|
'autogenerated:' prefix can be filtered out in the web UI.
|
|
NOTE: To apply different tags on different votes/comments multiple
|
|
invocations of the REST call are required.
|
|
|`post_submit` |not set if `false`|
|
|
If true, this vote was made after the change was submitted.
|
|
|===========================
|
|
|
|
[[assignee-input]]
|
|
=== AssigneeInput
|
|
The `AssigneeInput` entity contains the identity of the user to be set as assignee.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`assignee` ||
|
|
The link:rest-api-accounts.html#account-id[ID] of one account that
|
|
should be added as assignee.
|
|
|===========================
|
|
|
|
[[blame-info]]
|
|
=== BlameInfo
|
|
The `BlameInfo` entity stores the commit metadata with the row coordinates where
|
|
it applies.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name | Description
|
|
|`author` | The author of the commit.
|
|
|`id` | The id of the commit.
|
|
|`time` | Commit time.
|
|
|`commit_msg` | The commit message.
|
|
|`ranges` |
|
|
The blame row coordinates as link:#range-info[RangeInfo] entities.
|
|
|===========================
|
|
|
|
[[change-edit-input]]
|
|
=== ChangeEditInput
|
|
The `ChangeEditInput` entity contains information for restoring a
|
|
path within change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`restore_path`|optional|Path to file to restore.
|
|
|`old_path` |optional|Old path to file to rename.
|
|
|`new_path` |optional|New path to file to rename.
|
|
|===========================
|
|
|
|
[[change-edit-message-input]]
|
|
=== ChangeEditMessageInput
|
|
The `ChangeEditMessageInput` entity contains information for changing
|
|
the commit message within a change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` ||New commit message.
|
|
|===========================
|
|
|
|
[[change-info]]
|
|
=== ChangeInfo
|
|
The `ChangeInfo` entity contains information about a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==================================
|
|
|Field Name ||Description
|
|
|`id` ||
|
|
The ID of the change in the format "'<project>\~<branch>~<Change-Id>'",
|
|
where 'project', 'branch' and 'Change-Id' are URL encoded. For 'branch' the
|
|
`refs/heads/` prefix is omitted.
|
|
|`project` ||The name of the project.
|
|
|`branch` ||
|
|
The name of the target branch. +
|
|
The `refs/heads/` prefix is omitted.
|
|
|`topic` |optional|The topic to which this change belongs.
|
|
|`assignee` |optional|
|
|
The assignee of the change as an link:rest-api-accounts.html#account-info[
|
|
AccountInfo] entity.
|
|
|`hashtags` |optional|
|
|
List of hashtags that are set on the change (only populated when NoteDb
|
|
is enabled).
|
|
|`change_id` ||The Change-Id of the change.
|
|
|`subject` ||
|
|
The subject of the change (header line of the commit message).
|
|
|`status` ||
|
|
The status of the change (`NEW`, `MERGED`, `ABANDONED`).
|
|
|`created` ||
|
|
The link:rest-api.html#timestamp[timestamp] of when the change was
|
|
created.
|
|
|`updated` ||
|
|
The link:rest-api.html#timestamp[timestamp] of when the change was last
|
|
updated.
|
|
|`submitted` |only set for merged changes|
|
|
The link:rest-api.html#timestamp[timestamp] of when the change was
|
|
submitted.
|
|
|`submitter` |only set for merged changes|
|
|
The user who submitted the change, as an
|
|
link:rest-api-accounts.html#account-info[ AccountInfo] entity.
|
|
|`starred` |not set if `false`|
|
|
Whether the calling user has starred this change with the default label.
|
|
|`stars` |optional|
|
|
A list of star labels that are applied by the calling user to this
|
|
change. The labels are lexicographically sorted.
|
|
|`reviewed` |not set if `false`|
|
|
Whether the change was reviewed by the calling user.
|
|
Only set if link:#reviewed[reviewed] is requested.
|
|
|`submit_type` |optional|
|
|
The link:config-project-config.html#submit-type[submit type] of the change. +
|
|
Not set for merged changes.
|
|
|`mergeable` |optional|
|
|
Whether the change is mergeable. +
|
|
Only set for open changes if
|
|
link:config-gerrit.html#change.mergeabilityComputationBehavior[change.mergeabilityComputationBehavior]
|
|
is `API_REF_UPDATED_AND_CHANGE_REINDEX`.
|
|
|`submittable` |optional|
|
|
Whether the change has been approved by the project submit rules. +
|
|
Only set if link:#submittable[requested].
|
|
|`insertions` ||
|
|
Number of inserted lines.
|
|
|`deletions` ||
|
|
Number of deleted lines.
|
|
|`total_comment_count` |optional|
|
|
Total number of inline comments across all patch sets. Not set if the current
|
|
change index doesn't have the data.
|
|
|`unresolved_comment_count` |optional|
|
|
Number of unresolved inline comment threads across all patch sets. Not set if
|
|
the current change index doesn't have the data.
|
|
|`_number` ||The legacy numeric ID of the change.
|
|
|`owner` ||
|
|
The owner of the change as an link:rest-api-accounts.html#account-info[
|
|
AccountInfo] entity.
|
|
|`actions` |optional|
|
|
Actions the caller might be able to perform on this revision. The
|
|
information is a map of view name to link:#action-info[ActionInfo]
|
|
entities.
|
|
|`requirements` |optional|
|
|
List of the link:rest-api-changes.html#requirement[requirements] to be met before this change
|
|
can be submitted.
|
|
|`labels` |optional|
|
|
The labels of the change as a map that maps the label names to
|
|
link:#label-info[LabelInfo] entries. +
|
|
Only set if link:#labels[labels] or link:#detailed-labels[detailed
|
|
labels] are requested.
|
|
|`permitted_labels` |optional|
|
|
A map of the permitted labels that maps a label name to the list of
|
|
values that are allowed for that label. +
|
|
Only set if link:#detailed-labels[detailed labels] are requested.
|
|
|`removable_reviewers`|optional|
|
|
The reviewers that can be removed by the calling user as a list of
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entities. +
|
|
Only set if link:#detailed-labels[detailed labels] are requested.
|
|
|`reviewers` |optional|
|
|
The reviewers as a map that maps a reviewer state to a list of
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entities.
|
|
Possible reviewer states are `REVIEWER`, `CC` and `REMOVED`. +
|
|
`REVIEWER`: Users with at least one non-zero vote on the change. +
|
|
`CC`: Users that were added to the change, but have not voted. +
|
|
`REMOVED`: Users that were previously reviewers on the change, but have
|
|
been removed. +
|
|
Only set if link:#detailed-labels[detailed labels] are requested.
|
|
|`pending_reviewers` |optional|
|
|
Updates to `reviewers` that have been made while the change was in the
|
|
WIP state. Only present on WIP changes and only if there are pending
|
|
reviewer updates to report. These are reviewers who have not yet been
|
|
notified about being added to or removed from the change. +
|
|
Only set if link:#detailed-labels[detailed labels] are requested.
|
|
|`reviewer_updates`|optional|
|
|
Updates to reviewers set for the change as
|
|
link:#review-update-info[ReviewerUpdateInfo] entities.
|
|
Only set if link:#reviewer-updates[reviewer updates] are requested and
|
|
if NoteDb is enabled.
|
|
|`messages`|optional|
|
|
Messages associated with the change as a list of
|
|
link:#change-message-info[ChangeMessageInfo] entities. +
|
|
Only set if link:#messages[messages] are requested.
|
|
|`current_revision` |optional|
|
|
The commit ID of the current patch set of this change. +
|
|
Only set if link:#current-revision[the current revision] is requested
|
|
or if link:#all-revisions[all revisions] are requested.
|
|
|`revisions` |optional|
|
|
All patch sets of this change as a map that maps the commit ID of the
|
|
patch set to a link:#revision-info[RevisionInfo] entity. +
|
|
Only set if link:#current-revision[the current revision] is requested
|
|
(in which case it will only contain a key for the current revision) or
|
|
if link:#all-revisions[all revisions] are requested.
|
|
|`tracking_ids` |optional|
|
|
A list of link:#tracking-id-info[TrackingIdInfo] entities describing
|
|
references to external tracking systems. Only set if
|
|
link:#tracking-ids[tracking ids] are requested.
|
|
|`_more_changes` |optional, not set if `false`|
|
|
Whether the query would deliver more results if not limited. +
|
|
Only set on the last change that is returned.
|
|
|`problems` |optional|
|
|
A list of link:#problem-info[ProblemInfo] entities describing potential
|
|
problems with this change. Only set if link:#check[CHECK] is set.
|
|
|`is_private` |optional, not set if `false`|
|
|
When present, change is marked as private.
|
|
|`work_in_progress` |optional, not set if `false`|
|
|
When present, change is marked as Work In Progress.
|
|
|`has_review_started` |optional, not set if `false`|
|
|
When present, change has been marked Ready at some point in time.
|
|
|`revert_of` |optional|
|
|
The numeric Change-Id of the change that this change reverts.
|
|
|`submission_id` |optional|
|
|
ID of the submission of this change. Only set if the status is `MERGED`.
|
|
This ID is equal to the numeric ID of the change that triggered the submission.
|
|
If the change that triggered the submission also has a topic, it will be
|
|
"<id>-<topic>" of the change that triggered the submission.
|
|
The callers must not rely on the format of the submission ID.
|
|
|`cherry_pick_of_change` |optional|
|
|
The numeric Change-Id of the change that this change was cherry-picked from.
|
|
|`cherry_pick_of_patch_set`|optional|
|
|
The patchset number of the change that this change was cherry-picked from.
|
|
|`contains_git_conflicts` |optional, not set if `false`|
|
|
Whether the change contains conflicts. +
|
|
If `true`, some of the file contents of the change contain git conflict
|
|
markers to indicate the conflicts. +
|
|
Only set if this change info is returned in response to a request that
|
|
creates a new change or patch set and conflicts are allowed. In
|
|
particular this field is only populated if the change info is returned
|
|
by one of the following REST endpoints: link:#create-change[Create
|
|
Change], link:#create-merge-patch-set-for-change[Create Merge Patch Set
|
|
For Change], link:#cherry-pick[Cherry Pick Revision],
|
|
link:rest-api-project.html#cherry-pick-commit[Cherry Pick Commit]
|
|
|==================================
|
|
|
|
[[change-input]]
|
|
=== ChangeInput
|
|
The `ChangeInput` entity contains information about creating a new change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==================================
|
|
|Field Name ||Description
|
|
|`project` ||The name of the project.
|
|
|`branch` ||
|
|
The name of the target branch. +
|
|
The `refs/heads/` prefix is omitted.
|
|
|`subject` ||
|
|
The commit message of the change. Comment lines (beginning with `#`)
|
|
will be removed. If the commit message contains a Change-Id (as a
|
|
"Change-Id: I..." footer) that Change-Id will be used for the newly
|
|
created changed. If a change with this Change-Id already exists for
|
|
same repository and branch, the request is rejected since Change-Ids
|
|
must be unique per repository and branch. If the commit message doesn't
|
|
contain a Change-Id, a newly generated Change-Id is automatically
|
|
inserted into the commit message.
|
|
|`topic` |optional|The topic to which this change belongs.
|
|
|`status` |optional, default to `NEW`|
|
|
The status of the change (only `NEW` accepted here).
|
|
|`is_private` |optional, default to `false`|
|
|
Whether the new change should be marked as private.
|
|
|`work_in_progress` |optional, default to `false`|
|
|
Whether the new change should be set to work in progress.
|
|
|`base_change` |optional|
|
|
A link:#change-id[\{change-id\}] that identifies the base change for a create
|
|
change operation. Mutually exclusive with `base_commit`.
|
|
|`base_commit` |optional|
|
|
A 40-digit hex SHA-1 of the commit which will be the parent commit of the newly
|
|
created change. If set, it must be a merged commit on the destination branch.
|
|
Mutually exclusive with `base_change`.
|
|
|`new_branch` |optional, default to `false`|
|
|
Allow creating a new branch when set to `true`. Using this option is
|
|
only possible for non-merge commits (if the `merge` field is not set).
|
|
|`merge` |optional|
|
|
The detail of a merge commit as a link:#merge-input[MergeInput] entity.
|
|
If set, the target branch (see `branch` field) must exist (it is not
|
|
possible to create it automatically by setting the `new_branch` field
|
|
to `true`.
|
|
|`author` |optional|
|
|
An link:rest-api-accounts.html#account-input[AccountInput] entity
|
|
that will set the author of the commit to create. The author must be
|
|
specified as name/email combination.
|
|
The caller needs "Forge Author" permission when using this field.
|
|
This field does not affect the owner of the change, which will
|
|
continue to use the identity of the caller.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the change is created. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details` |optional|
|
|
Additional information about whom to notify about the change creation
|
|
as a map of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|==================================
|
|
|
|
[[change-message-info]]
|
|
=== ChangeMessageInfo
|
|
The `ChangeMessageInfo` entity contains information about a message
|
|
attached to a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==================================
|
|
|Field Name ||Description
|
|
|`id` ||The ID of the message.
|
|
|`author` |optional|
|
|
Author of the message as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity. +
|
|
Unset if written by the Gerrit system.
|
|
|`real_author` |optional|
|
|
Real author of the message as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity. +
|
|
Set if the message was posted on behalf of another user.
|
|
|`date` ||
|
|
The link:rest-api.html#timestamp[timestamp] this message was posted.
|
|
|`message` ||The text left by the user.
|
|
|`tag` |optional|
|
|
Value of the `tag` field from link:#review-input[ReviewInput] set
|
|
while posting the review. Votes/comments that contain `tag` with
|
|
'autogenerated:' prefix can be filtered out in the web UI.
|
|
NOTE: To apply different tags on different votes/comments multiple
|
|
invocations of the REST call are required.
|
|
|`_revision_number` |optional|
|
|
Which patchset (if any) generated this message.
|
|
|==================================
|
|
|
|
[[cherrypick-input]]
|
|
=== CherryPickInput
|
|
The `CherryPickInput` entity contains information for cherry-picking a change to a new branch.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Commit message for the cherry-pick change. If not set, the commit message of
|
|
the cherry-picked commit is used.
|
|
|`destination` ||Destination branch
|
|
|`base` |optional|
|
|
40-hex digit SHA-1 of the commit which will be the parent commit of the newly created change.
|
|
If set, it must be a merged commit or a change revision on the destination branch.
|
|
|`parent` |optional, defaults to 1|
|
|
Number of the parent relative to which the cherry-pick should be considered.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the cherry-pick. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `NONE`.
|
|
|`notify_details` |optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|`keep_reviewers` |optional, defaults to false|
|
|
If `true`, carries reviewers and ccs over from original change to newly created one.
|
|
|`allow_conflicts` |optional, defaults to false|
|
|
If `true`, the cherry-pick uses content merge and succeeds also if
|
|
there are conflicts. If there are conflicts the file contents of the
|
|
created change contain git conflict markers to indicate the conflicts.
|
|
Callers can find out if there were conflicts by checking the
|
|
`contains_git_conflicts` field in the link:#change-info[ChangeInfo]. If
|
|
there are conflicts the cherry-pick change is marked as
|
|
work-in-progress.
|
|
|`topic` |optional|
|
|
The topic of the created cherry-picked change. If not set, the default depends
|
|
on the source. If the source is a change with a topic, the resulting topic
|
|
of the cherry-picked change will be {source_change_topic}-{destination_branch}.
|
|
Otherwise, if the source change has no topic, or the source is a commit,
|
|
the created change will have no topic.
|
|
|===========================
|
|
|
|
[[comment-info]]
|
|
=== CommentInfo
|
|
The `CommentInfo` entity contains information about an inline comment.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`patch_set` |optional|
|
|
The patch set number for the comment; only set in contexts where +
|
|
comments may be returned for multiple patch sets.
|
|
|`id` ||The URL encoded UUID of the comment.
|
|
|`path` |optional|
|
|
The path of the file for which the inline comment was done. +
|
|
Not set if returned in a map where the key is the file path.
|
|
|`side` |optional|
|
|
The side on which the comment was added. +
|
|
Allowed values are `REVISION` and `PARENT`. +
|
|
If not set, the default is `REVISION`.
|
|
|`parent` |optional|
|
|
The 1-based parent number. Used only for merge commits when `side == PARENT`.
|
|
When not set the comment is for the auto-merge tree.
|
|
|`line` |optional|
|
|
The number of the line for which the comment was done. +
|
|
If range is set, this equals the end line of the range. +
|
|
If neither line nor range is set, it's a file comment.
|
|
|`range` |optional|
|
|
The range of the comment as a link:#comment-range[CommentRange]
|
|
entity.
|
|
|`in_reply_to` |optional|
|
|
The URL encoded UUID of the comment to which this comment is a reply.
|
|
|`message` |optional|The comment message.
|
|
|`updated` ||
|
|
The link:rest-api.html#timestamp[timestamp] of when this comment was
|
|
written.
|
|
|`author` |optional|
|
|
The author of the message as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity. +
|
|
Unset for draft comments, assumed to be the calling user.
|
|
|`tag` |optional|
|
|
Value of the `tag` field from link:#review-input[ReviewInput] set
|
|
while posting the review.
|
|
NOTE: To apply different tags on different votes/comments multiple
|
|
invocations of the REST call are required.
|
|
|`unresolved` |optional|
|
|
Whether or not the comment must be addressed by the user. The state of
|
|
resolution of a comment thread is stored in the last comment in that thread
|
|
chronologically.
|
|
|===========================
|
|
|
|
[[comment-input]]
|
|
=== CommentInput
|
|
The `CommentInput` entity contains information for creating an inline
|
|
comment.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`id` |optional|
|
|
The URL encoded UUID of the comment if an existing draft comment should
|
|
be updated.
|
|
|`path` |optional|
|
|
The path of the file for which the inline comment should be added. +
|
|
Doesn't need to be set if contained in a map where the key is the file
|
|
path.
|
|
|`side` |optional|
|
|
The side on which the comment should be added. +
|
|
Allowed values are `REVISION` and `PARENT`. +
|
|
If not set, the default is `REVISION`.
|
|
|`line` |optional|
|
|
The number of the line for which the comment should be added. +
|
|
`0` if it is a file comment. +
|
|
If neither line nor range is set, a file comment is added. +
|
|
If range is set, this value is ignored in favor of the `end_line` of the range.
|
|
|`range` |optional|
|
|
The range of the comment as a link:#comment-range[CommentRange]
|
|
entity.
|
|
|`in_reply_to` |optional|
|
|
The URL encoded UUID of the comment to which this comment is a reply.
|
|
|`updated` |optional|
|
|
The link:rest-api.html#timestamp[timestamp] of this comment. +
|
|
Accepted but ignored.
|
|
|`message` |optional|
|
|
The comment message. +
|
|
If not set and an existing draft comment is updated, the existing draft
|
|
comment is deleted.
|
|
|`tag` |optional, drafts only|
|
|
Value of the `tag` field. Only allowed on link:#create-draft[draft comment] +
|
|
inputs; for published comments, use the `tag` field in +
|
|
link:#review-input[ReviewInput]. Votes/comments that contain `tag` with
|
|
'autogenerated:' prefix can be filtered out in the web UI.
|
|
|`unresolved` |optional|
|
|
Whether or not the comment must be addressed by the user. This value will
|
|
default to false if the comment is an orphan, or the value of the `in_reply_to`
|
|
comment if it is supplied.
|
|
|===========================
|
|
|
|
[[comment-range]]
|
|
=== CommentRange
|
|
The `CommentRange` entity describes the range of an inline comment.
|
|
|
|
The comment range is a range from the start position, specified by `start_line`
|
|
and `start_character`, to the end position, specified by `end_line` and
|
|
`end_character`. The start position is *inclusive* and the end position is
|
|
*exclusive*.
|
|
|
|
So, a range over part of a line will have `start_line` equal to
|
|
`end_line`; however a range with `end_line` set to 5 and `end_character` equal
|
|
to 0 will not include any characters on line 5,
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`start_line` ||The start line number of the range. (1-based)
|
|
|`start_character` ||The character position in the start line. (0-based)
|
|
|`end_line` ||The end line number of the range. (1-based)
|
|
|`end_character` ||The character position in the end line. (0-based)
|
|
|===========================
|
|
|
|
[[commit-info]]
|
|
=== CommitInfo
|
|
The `CommitInfo` entity contains information about a commit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`commit` |Optional|
|
|
The commit ID. Not set if included in a link:#revision-info[
|
|
RevisionInfo] entity that is contained in a map which has the commit ID
|
|
as key.
|
|
|`parents` ||
|
|
The parent commits of this commit as a list of
|
|
link:#commit-info[CommitInfo] entities. In each parent
|
|
only the `commit` and `subject` fields are populated.
|
|
|`author` ||The author of the commit as a
|
|
link:#git-person-info[GitPersonInfo] entity.
|
|
|`committer` ||The committer of the commit as a
|
|
link:#git-person-info[GitPersonInfo] entity.
|
|
|`subject` ||
|
|
The subject of the commit (header line of the commit message).
|
|
|`message` ||The commit message.
|
|
|`web_links` |optional|
|
|
Links to the commit in external sites as a list of
|
|
link:#web-link-info[WebLinkInfo] entities.
|
|
|===========================
|
|
|
|
[[commit-message-input]]
|
|
=== CommitMessageInput
|
|
The `CommitMessageInput` entity contains information for changing
|
|
the commit message of a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`message` ||New commit message.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the commit message was updated. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `OWNER` for WIP changes and `ALL` otherwise.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|=============================
|
|
|
|
[[delete-change-message-input]]
|
|
=== DeleteChangeMessageInput
|
|
The `DeleteChangeMessageInput` entity contains the options for deleting a change message.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`reason` |optional|
|
|
The reason why the change message should be deleted. +
|
|
If set, the change message will be replaced with
|
|
"Change message removed by: `name`\nReason: `reason`",
|
|
or just "Change message removed by: `name`." if not set.
|
|
|=============================
|
|
|
|
[[delete-comment-input]]
|
|
=== DeleteCommentInput
|
|
The `DeleteCommentInput` entity contains the option for deleting a comment.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`reason` |optional|
|
|
The reason why the comment should be deleted. +
|
|
If set, the comment's message will be replaced with
|
|
"Comment removed by: `name`; Reason: `reason`",
|
|
or just "Comment removed by: `name`." if not set.
|
|
|=============================
|
|
|
|
[[delete-reviewer-input]]
|
|
=== DeleteReviewerInput
|
|
The `DeleteReviewerInput` entity contains options for the deletion of a
|
|
reviewer.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the reviewer is deleted. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|=============================
|
|
|
|
[[delete-vote-input]]
|
|
=== DeleteVoteInput
|
|
The `DeleteVoteInput` entity contains options for the deletion of a
|
|
vote.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`label` |optional|
|
|
The label for which the vote should be deleted. +
|
|
If set, must match the label in the URL.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the vote is deleted. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|=============================
|
|
|
|
[[description-input]]
|
|
=== DescriptionInput
|
|
The `DescriptionInput` entity contains information for setting a description.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`description` |The description text.
|
|
|===========================
|
|
|
|
[[diff-content]]
|
|
=== DiffContent
|
|
The `DiffContent` entity contains information about the content differences
|
|
in a file.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`a` |optional|Content only in the file on side A (deleted in B).
|
|
|`b` |optional|Content only in the file on side B (added in B).
|
|
|`ab` |optional|Content in the file on both sides (unchanged).
|
|
|`edit_a` |only present when the `intraline` parameter is set and the
|
|
DiffContent is a replace, i.e. both `a` and `b` are present|
|
|
Text sections deleted from side A as a
|
|
link:#diff-intraline-info[DiffIntralineInfo] entity.
|
|
|`edit_b` |only present when the `intraline` parameter is set and the
|
|
DiffContent is a replace, i.e. both `a` and `b` are present|
|
|
Text sections inserted in side B as a
|
|
link:#diff-intraline-info[DiffIntralineInfo] entity.
|
|
|`due_to_rebase`|not set if `false`|Indicates whether this entry was introduced by a
|
|
rebase.
|
|
|`skip` |optional|count of lines skipped on both sides when the file is
|
|
too large to include all common lines.
|
|
|`common` |optional|Set to `true` if the region is common according
|
|
to the requested ignore-whitespace parameter, but a and b contain
|
|
differing amounts of whitespace. When present and true a and b are
|
|
used instead of ab.
|
|
|==========================
|
|
|
|
[[diff-file-meta-info]]
|
|
=== DiffFileMetaInfo
|
|
The `DiffFileMetaInfo` entity contains meta information about a file diff.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`name` ||The name of the file.
|
|
|`content_type`||The content type of the file.
|
|
|`lines` ||The total number of lines in the file.
|
|
|`web_links` |optional|
|
|
Links to the file in external sites as a list of
|
|
link:rest-api-changes.html#web-link-info[WebLinkInfo] entries.
|
|
|==========================
|
|
|
|
[[diff-info]]
|
|
=== DiffInfo
|
|
The `DiffInfo` entity contains information about the diff of a file
|
|
in a revision.
|
|
|
|
If the link:#weblinks-only[weblinks-only] parameter is specified, only
|
|
the `web_links` field is set.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`meta_a` |not present when the file is added|
|
|
Meta information about the file on side A as a
|
|
link:#diff-file-meta-info[DiffFileMetaInfo] entity.
|
|
|`meta_b` |not present when the file is deleted|
|
|
Meta information about the file on side B as a
|
|
link:#diff-file-meta-info[DiffFileMetaInfo] entity.
|
|
|`change_type` ||The type of change (`ADDED`, `MODIFIED`, `DELETED`, `RENAMED`
|
|
`COPIED`, `REWRITE`).
|
|
|`intraline_status`|only set when the `intraline` parameter was specified in the request|
|
|
Intraline status (`OK`, `ERROR`, `TIMEOUT`).
|
|
|`diff_header` ||A list of strings representing the patch set diff header.
|
|
|`content` ||The content differences in the file as a list of
|
|
link:#diff-content[DiffContent] entities.
|
|
|`web_links` |optional|
|
|
Links to the file diff in external sites as a list of
|
|
link:rest-api-changes.html#diff-web-link-info[DiffWebLinkInfo] entries.
|
|
|`binary` |not set if `false`|Whether the file is binary.
|
|
|==========================
|
|
|
|
[[diff-intraline-info]]
|
|
=== DiffIntralineInfo
|
|
The `DiffIntralineInfo` entity contains information about intraline edits in a
|
|
file.
|
|
|
|
The information consists of a list of `<skip length, edit length>` pairs, where
|
|
the skip length is the number of characters between the end of the previous edit
|
|
and the start of this edit, and the edit length is the number of edited characters
|
|
following the skip. The start of the edits is from the beginning of the related
|
|
diff content lines. If the list is empty, the entire DiffContent should be considered
|
|
as unedited.
|
|
|
|
Note that the implied newline character at the end of each line is included in
|
|
the length calculation, and thus it is possible for the edits to span newlines.
|
|
|
|
[[diff-web-link-info]]
|
|
=== DiffWebLinkInfo
|
|
The `DiffWebLinkInfo` entity describes a link on a diff screen to an
|
|
external site.
|
|
|
|
[options="header",cols="1,6"]
|
|
|=======================
|
|
|Field Name|Description
|
|
|`name` |The link name.
|
|
|`url` |The link URL.
|
|
|`image_url`|URL to the icon of the link.
|
|
|show_on_side_by_side_diff_view|
|
|
Whether the web link should be shown on the side-by-side diff screen.
|
|
|show_on_unified_diff_view|
|
|
Whether the web link should be shown on the unified diff screen.
|
|
|=======================
|
|
|
|
[[edit-file-info]]
|
|
=== EditFileInfo
|
|
The `EditFileInfo` entity contains additional information
|
|
of a file within a change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`web_links` |optional|
|
|
Links to the diff info in external sites as a list of
|
|
link:#web-link-info[WebLinkInfo] entities.
|
|
|===========================
|
|
|
|
[[edit-info]]
|
|
=== EditInfo
|
|
The `EditInfo` entity contains information about a change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`commit` ||The commit of change edit as
|
|
link:#commit-info[CommitInfo] entity.
|
|
|`base_patch_set_number`||The patch set number of the patch set the change edit is based on.
|
|
|`base_revision` ||The revision of the patch set the change edit is based on.
|
|
|`ref` ||The ref of the change edit.
|
|
|`fetch` |optional|
|
|
Information about how to fetch this patch set. The fetch information is
|
|
provided as a map that maps the protocol name ("`git`", "`http`",
|
|
"`ssh`") to link:#fetch-info[FetchInfo] entities.
|
|
|`files` |optional|
|
|
The files of the change edit as a map that maps the file names to
|
|
link:#file-info[FileInfo] entities.
|
|
|===========================
|
|
|
|
[[fetch-info]]
|
|
=== FetchInfo
|
|
The `FetchInfo` entity contains information about how to fetch a patch
|
|
set via a certain protocol.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`url` ||The URL of the project.
|
|
|`ref` ||The ref of the patch set.
|
|
|`commands` |optional|
|
|
The download commands for this patch set as a map that maps the command
|
|
names to the commands. +
|
|
Only set if link:#download-commands[download commands] are requested.
|
|
|==========================
|
|
|
|
[[file-info]]
|
|
=== FileInfo
|
|
The `FileInfo` entity contains information about a file in a patch set.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`status` |optional|
|
|
The status of the file ("`A`"=Added, "`D`"=Deleted, "`R`"=Renamed,
|
|
"`C`"=Copied, "`W`"=Rewritten). +
|
|
Not set if the file was Modified ("`M`").
|
|
|`binary` |not set if `false`|Whether the file is binary.
|
|
|`old_path` |optional|
|
|
The old file path. +
|
|
Only set if the file was renamed or copied.
|
|
|`lines_inserted`|optional|
|
|
Number of inserted lines. +
|
|
Not set for binary files or if no lines were inserted. +
|
|
An empty last line is not included in the count and hence this number can
|
|
differ by one from details provided in <<#diff-info,DiffInfo>>.
|
|
|`lines_deleted` |optional|
|
|
Number of deleted lines. +
|
|
Not set for binary files or if no lines were deleted. +
|
|
An empty last line is not included in the count and hence this number can
|
|
differ by one from details provided in <<#diff-info,DiffInfo>>.
|
|
|`size_delta` ||
|
|
Number of bytes by which the file size increased/decreased.
|
|
|`size` ||
|
|
File size in bytes.
|
|
|=============================
|
|
|
|
[[fix-input]]
|
|
=== FixInput
|
|
The `FixInput` entity contains options for fixing commits using the
|
|
link:#fix-change[fix change] endpoint.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`delete_patch_set_if_commit_missing`|If true, delete patch sets from the
|
|
database if they refer to missing commit options.
|
|
|`expect_merged_as` |If set, check that the change is
|
|
merged into the destination branch as this exact SHA-1. If not, insert
|
|
a new patch set referring to this commit.
|
|
|==========================
|
|
|
|
[[fix-suggestion-info]]
|
|
=== FixSuggestionInfo
|
|
The `FixSuggestionInfo` entity represents a suggested fix.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`fix_id` |generated, don't set|The <<fix-id,UUID>> of the suggested
|
|
fix. It will be generated automatically and hence will be ignored if it's set
|
|
for input objects.
|
|
|`description` ||A description of the suggested fix.
|
|
|`replacements` ||A list of <<fix-replacement-info,FixReplacementInfo>>
|
|
entities indicating how the content of one or several files should be modified.
|
|
Within a file, they should refer to non-overlapping regions.
|
|
|==========================
|
|
|
|
[[fix-replacement-info]]
|
|
=== FixReplacementInfo
|
|
The `FixReplacementInfo` entity describes how the content of a file should be
|
|
replaced by another content.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`path` |The path of the file which should be modified. Any file in
|
|
the repository may be modified.
|
|
|`range` |A <<comment-range,CommentRange>> indicating which content
|
|
of the file should be replaced. Lines in the file are assumed to be separated
|
|
by the line feed character, the carriage return character, the carriage return
|
|
followed by the line feed character, or one of the other Unicode linebreak
|
|
sequences supported by Java.
|
|
|`replacement` |The content which should be used instead of the current one.
|
|
|==========================
|
|
|
|
[[git-person-info]]
|
|
=== GitPersonInfo
|
|
The `GitPersonInfo` entity contains information about the
|
|
author/committer of a commit.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`name` |The name of the author/committer.
|
|
|`email` |The email address of the author/committer.
|
|
|`date` |The link:rest-api.html#timestamp[timestamp] of when
|
|
this identity was constructed.
|
|
|`tz` |The timezone offset from UTC of when this identity was
|
|
constructed.
|
|
|==========================
|
|
|
|
[[group-base-info]]
|
|
=== GroupBaseInfo
|
|
The `GroupBaseInfo` entity contains base information about the group.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`id` |The UUID of the group.
|
|
|`name` |The name of the group.
|
|
|==========================
|
|
|
|
[[hashtags-input]]
|
|
=== HashtagsInput
|
|
|
|
The `HashtagsInput` entity contains information about hashtags to add to,
|
|
and/or remove from, a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=======================
|
|
|Field Name||Description
|
|
|`add` |optional|The list of hashtags to be added to the change.
|
|
|`remove |optional|The list of hashtags to be removed from the change.
|
|
|=======================
|
|
|
|
[[included-in-info]]
|
|
=== IncludedInInfo
|
|
The `IncludedInInfo` entity contains information about the branches a
|
|
change was merged into and tags it was tagged with.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=======================
|
|
|Field Name||Description
|
|
|`branches`||The list of branches this change was merged into.
|
|
Each branch is listed without the 'refs/head/' prefix.
|
|
|`tags` ||The list of tags this change was tagged with.
|
|
Each tag is listed without the 'refs/tags/' prefix.
|
|
|`external`|optional|A map that maps a name to a list of external
|
|
systems that include this change, e.g. a list of servers on which this
|
|
change is deployed.
|
|
|=======================
|
|
|
|
[[label-info]]
|
|
=== LabelInfo
|
|
The `LabelInfo` entity contains information about a label on a change, always
|
|
corresponding to the current patch set.
|
|
|
|
There are two options that control the contents of `LabelInfo`:
|
|
link:#labels[`LABELS`] and link:#detailed-labels[`DETAILED_LABELS`].
|
|
|
|
* For a quick summary of the state of labels, use `LABELS`.
|
|
* For detailed information about labels, including exact numeric votes for all
|
|
users and the allowed range of votes for the current user, use `DETAILED_LABELS`.
|
|
|
|
==== Common fields
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`optional` |not set if `false`|
|
|
Whether the label is optional. Optional means the label may be set, but
|
|
it's neither necessary for submission nor does it block submission if
|
|
set.
|
|
|===========================
|
|
|
|
==== Fields set by `LABELS`
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`approved` |optional|One user who approved this label on the change
|
|
(voted the maximum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`rejected` |optional|One user who rejected this label on the change
|
|
(voted the minimum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`recommended` |optional|One user who recommended this label on the
|
|
change (voted positively, but not the maximum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`disliked` |optional|One user who disliked this label on the change
|
|
(voted negatively, but not the minimum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`blocking` |optional|If `true`, the label blocks submit operation.
|
|
If not set, the default is false.
|
|
|`value` |optional|The voting value of the user who
|
|
recommended/disliked this label on the change if it is not
|
|
"`+1`"/"`-1`".
|
|
|`default_value`|optional|The default voting value for the label.
|
|
This value may be outside the range specified in permitted_labels.
|
|
|===========================
|
|
|
|
==== Fields set by `DETAILED_LABELS`
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`all` |optional|List of all approvals for this label as a list
|
|
of link:#approval-info[ApprovalInfo] entities. Items in this list may
|
|
not represent actual votes cast by users; if a user votes on any label,
|
|
a corresponding ApprovalInfo will appear in this list for all labels.
|
|
|`values` |optional|A map of all values that are allowed for this
|
|
label. The map maps the values ("`-2`", "`-1`", " `0`", "`+1`", "`+2`")
|
|
to the value descriptions.
|
|
|===========================
|
|
|
|
[[mergeable-info]]
|
|
=== MergeableInfo
|
|
The `MergeableInfo` entity contains information about the mergeability of a
|
|
change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|============================
|
|
|Field Name ||Description
|
|
|`submit_type` ||
|
|
Submit type used for this change, can be `MERGE_IF_NECESSARY`,
|
|
`FAST_FORWARD_ONLY`, `REBASE_IF_NECESSARY`, `REBASE_ALWAYS`, `MERGE_ALWAYS` or
|
|
`CHERRY_PICK`.
|
|
|`strategy` |optional|
|
|
The strategy of the merge, can be `recursive`, `resolve`,
|
|
`simple-two-way-in-core`, `ours` or `theirs`.
|
|
|`mergeable` ||
|
|
`true` if this change is cleanly mergeable, `false` otherwise
|
|
|`commit_merged` |optional|
|
|
`true` if this change is already merged, `false` otherwise
|
|
|`content_merged`|optional|
|
|
`true` if the content of this change is already merged, `false` otherwise
|
|
|`conflicts` |optional|
|
|
A list of paths with conflicts
|
|
|`mergeable_into`|optional|
|
|
A list of other branch names where this change could merge cleanly
|
|
|============================
|
|
|
|
[[merge-input]]
|
|
=== MergeInput
|
|
The `MergeInput` entity contains information about the merge
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==============================
|
|
|Field Name ||Description
|
|
|`source` ||
|
|
The source to merge from, e.g. a complete or abbreviated commit SHA-1,
|
|
a complete reference name, a short reference name under `refs/heads`, `refs/tags`,
|
|
or `refs/remotes` namespace, etc.
|
|
|`source_branch` |optional|
|
|
A branch from which `source` is reachable. If specified,
|
|
`source` is checked for visibility and reachability against only this
|
|
branch. This speeds up the operation, especially for large repos with
|
|
many branches.
|
|
|`strategy` |optional|
|
|
The strategy of the merge, can be `recursive`, `resolve`,
|
|
`simple-two-way-in-core`, `ours` or `theirs`, default will use project settings.
|
|
|`allow_conflicts`|optional, defaults to false|
|
|
If `true`, creating the merge succeeds also if there are conflicts. +
|
|
If there are conflicts the file contents of the created change contain
|
|
git conflict markers to indicate the conflicts. +
|
|
Callers can find out whether there were conflicts by checking the
|
|
`contains_git_conflicts` field in the link:#change-info[ChangeInfo]. +
|
|
If there are conflicts the change is marked as work-in-progress. +
|
|
This option is not supported for all merge strategies (e.g. it's
|
|
supported for `recursive` and `resolve`, but not for
|
|
`simple-two-way-in-core`).
|
|
|==============================
|
|
|
|
[[merge-patch-set-input]]
|
|
=== MergePatchSetInput
|
|
The `MergePatchSetInput` entity contains information about updating a new
|
|
change by creating a new merge commit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==================================
|
|
|Field Name ||Description
|
|
|`subject` |optional|
|
|
The new subject for the change, if not specified, will reuse the current patch
|
|
set's subject
|
|
|`inherit_parent` |optional, default to `false`|
|
|
Use the current patch set's first parent as the merge tip when set to `true`.
|
|
|`base_change` |optional|
|
|
A link:#change-id[\{change-id\}] that identifies a change. When `inherit_parent`
|
|
is `false`, the merge tip will be the current patch set of the `base_change` if
|
|
it's set. Otherwise, the current branch tip of the destination branch will be used.
|
|
|`merge` ||
|
|
The detail of the source commit for merge as a link:#merge-input[MergeInput]
|
|
entity.
|
|
|==================================
|
|
|
|
[[move-input]]
|
|
=== MoveInput
|
|
The `MoveInput` entity contains information for moving a change to a new branch.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`destination_branch`||Destination branch
|
|
|`message` |optional|
|
|
A message to be posted in this change's comments
|
|
|===========================
|
|
|
|
[[notify-info]]
|
|
=== NotifyInfo
|
|
The `NotifyInfo` entity contains detailed information about who should
|
|
be notified about an update. These notifications are sent out even if a
|
|
`notify` option in the request input disables normal notifications.
|
|
`NotifyInfo` entities are normally contained in a `notify_details` map
|
|
in the request input where the key is the recipient type. The recipient
|
|
type can be `TO`, `CC` and `BCC`.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=======================
|
|
|Field Name||Description
|
|
|`accounts`|optional|
|
|
A list of link:rest-api-accounts.html#account-id[account IDs] that
|
|
identify the accounts that should be should be notified.
|
|
|=======================
|
|
|
|
[[private-input]]
|
|
=== PrivateInput
|
|
The `PrivateInput` entity contains information for changing the private
|
|
flag on a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=======================
|
|
|Field Name||Description
|
|
|`message` |optional|Message describing why the private flag was changed.
|
|
|=======================
|
|
|
|
[[problem-info]]
|
|
=== ProblemInfo
|
|
The `ProblemInfo` entity contains a description of a potential consistency problem
|
|
with a change. These are not related to the code review process, but rather
|
|
indicate some inconsistency in Gerrit's database or repository metadata related
|
|
to the enclosing change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name||Description
|
|
|`message` ||Plaintext message describing the problem with the change.
|
|
|`status` |optional|
|
|
The status of fixing the problem (`FIXED`, `FIX_FAILED`). Only set if a
|
|
fix was attempted.
|
|
|`outcome` |optional|
|
|
If `status` is set, an additional plaintext message describing the
|
|
outcome of the fix.
|
|
|===========================
|
|
|
|
[[publish-change-edit-input]]
|
|
=== PublishChangeEditInput
|
|
The `PublishChangeEditInput` entity contains options for the publishing of
|
|
change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the change edit is published. +
|
|
Allowed values are `NONE` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|=============================
|
|
|
|
[[pure-revert-info]]
|
|
=== PureRevertInfo
|
|
The `PureRevertInfo` entity describes the result of a pure revert check.
|
|
|
|
[options="header",cols="1,6"]
|
|
|======================
|
|
|Field Name |Description
|
|
|`is_pure_revert` |Outcome of the check as boolean.
|
|
|======================
|
|
|
|
[[push-certificate-info]]
|
|
=== PushCertificateInfo
|
|
The `PushCertificateInfo` entity contains information about a push
|
|
certificate provided when the user pushed for review with `git push
|
|
--signed HEAD:refs/for/<branch>`. Only used when signed push is
|
|
link:config-gerrit.html#receive.enableSignedPush[enabled] on the server.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name|Description
|
|
|`certificate`|Signed certificate payload and GPG signature block.
|
|
|`key` |
|
|
Information about the key that signed the push, along with any problems
|
|
found while checking the signature or the key itself, as a
|
|
link:rest-api-accounts.html#gpg-key-info[GpgKeyInfo] entity.
|
|
|===========================
|
|
|
|
[[range-info]]
|
|
=== RangeInfo
|
|
The `RangeInfo` entity stores the coordinates of a range.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name | Description
|
|
|`start` | First index.
|
|
|`end` | Last index.
|
|
|===========================
|
|
|
|
[[rebase-input]]
|
|
=== RebaseInput
|
|
The `RebaseInput` entity contains information for changing parent when rebasing.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`base` |optional|
|
|
The new parent revision. This can be a ref or a SHA1 to a concrete patchset. +
|
|
Alternatively, a change number can be specified, in which case the current
|
|
patch set is inferred. +
|
|
Empty string is used for rebasing directly on top of the target branch,
|
|
which effectively breaks dependency towards a parent change.
|
|
|===========================
|
|
|
|
[[related-change-and-commit-info]]
|
|
=== RelatedChangeAndCommitInfo
|
|
|
|
The `RelatedChangeAndCommitInfo` entity contains information about
|
|
a related change and commit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`project` ||The project of the change or commit.
|
|
|`change_id` |optional|The Change-Id of the change.
|
|
|`commit` ||The commit as a
|
|
link:#commit-info[CommitInfo] entity.
|
|
|`_change_number` |optional|The change number.
|
|
|`_revision_number` |optional|The revision number.
|
|
|`_current_revision_number`|optional|The current revision number.
|
|
|`status` |optional|The status of the change. The status of
|
|
the change is one of (`NEW`, `MERGED`, `ABANDONED`).
|
|
|===========================
|
|
|
|
[[related-changes-info]]
|
|
=== RelatedChangesInfo
|
|
The `RelatedChangesInfo` entity contains information about related
|
|
changes.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`changes` |A list of
|
|
link:#related-change-and-commit-info[RelatedChangeAndCommitInfo] entities
|
|
describing the related changes. Sorted by git commit order, newest to
|
|
oldest. Empty if there are no related changes.
|
|
|===========================
|
|
|
|
|
|
[[requirement]]
|
|
=== Requirement
|
|
The `Requirement` entity contains information about a requirement relative to a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name | |Description
|
|
|`status` | | Status of the requirement. Can be either `OK`, `NOT_READY` or `RULE_ERROR`.
|
|
|`fallbackText` | | A human readable reason
|
|
|`type` | |
|
|
Alphanumerical (plus hyphens or underscores) string to identify what the requirement is and why it
|
|
was triggered. Can be seen as a class: requirements sharing the same type were created for a similar
|
|
reason, and the data structure will follow one set of rules.
|
|
|===========================
|
|
|
|
|
|
[[restore-input]]
|
|
=== RestoreInput
|
|
The `RestoreInput` entity contains information for restoring a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when restoring the
|
|
change.
|
|
|===========================
|
|
|
|
[[revert-input]]
|
|
=== RevertInput
|
|
The `RevertInput` entity contains information for reverting a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when reverting the
|
|
change.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
for reverting the change. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the revert as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|`topic` |optional|
|
|
Name of the topic for the revert change. If not set, the default for Revert
|
|
endpoint is the topic of the change being reverted, and the default for the
|
|
RevertSubmission endpoint is `revert-{submission_id}-{timestamp.now}`.
|
|
|=============================
|
|
|
|
[[revert-submission-info]]
|
|
=== RevertSubmissionInfo
|
|
The `RevertSubmissionInfo` entity describes the revert changes.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==============================
|
|
|Field Name | Description
|
|
|`revert_changes` |
|
|
A list of link:#change-info[ChangeInfo] that describes the revert changes. Each
|
|
entity in that list is a revert change that was created in that revert
|
|
submission.
|
|
|==============================
|
|
|
|
[[review-info]]
|
|
=== ReviewInfo
|
|
The `ReviewInfo` entity contains information about a review.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`labels` |
|
|
The labels of the review as a map that maps the label names to the
|
|
voting values.
|
|
|===========================
|
|
|
|
[[review-update-info]]
|
|
=== ReviewerUpdateInfo
|
|
The `ReviewerUpdateInfo` entity contains information about updates to
|
|
change's reviewers set.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`updated`|
|
|
Timestamp of the update.
|
|
|`updated_by`|
|
|
The account which modified state of the reviewer in question as
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`reviewer`|
|
|
The reviewer account added or removed from the change as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`state`|
|
|
The reviewer state, one of `REVIEWER`, `CC` or `REMOVED`.
|
|
|===========================
|
|
|
|
[[review-input]]
|
|
=== ReviewInput
|
|
The `ReviewInput` entity contains information for adding a review to a
|
|
revision.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|============================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
The message to be added as review comment.
|
|
|`tag` |optional|
|
|
Apply this tag to the review comment message, votes, and inline
|
|
comments. Tags may be used by CI or other automated systems to
|
|
distinguish them from human reviews. Votes/comments that contain `tag` with
|
|
'autogenerated:' prefix can be filtered out in the web UI.
|
|
|`labels` |optional|
|
|
The votes that should be added to the revision as a map that maps the
|
|
label names to the voting values.
|
|
|`comments` |optional|
|
|
The comments that should be added as a map that maps a file path to a
|
|
list of link:#comment-input[CommentInput] entities.
|
|
|`robot_comments` |optional|
|
|
The robot comments that should be added as a map that maps a file path
|
|
to a list of link:#robot-comment-input[RobotCommentInput] entities.
|
|
|`drafts` |optional|
|
|
Draft handling that defines how draft comments are handled that are
|
|
already in the database but that were not also described in this
|
|
input. +
|
|
Allowed values are `PUBLISH`, `PUBLISH_ALL_REVISIONS` and `KEEP`. All values
|
|
except `PUBLISH_ALL_REVISIONS` operate only on drafts for a single revision. +
|
|
Only `KEEP` is allowed when used in conjunction with `on_behalf_of`. +
|
|
If not set, the default is `KEEP`. If `on_behalf_of` is set, then no other value
|
|
besides `KEEP` is allowed.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the review is stored. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details` |optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|`omit_duplicate_comments`|optional|
|
|
If `true`, comments with the same content at the same place will be omitted.
|
|
|`on_behalf_of` |optional|
|
|
link:rest-api-accounts.html#account-id[\{account-id\}] the review
|
|
should be posted on behalf of. To use this option the caller must
|
|
have been granted `labelAs-NAME` permission for all keys of labels.
|
|
|`reviewers` |optional|
|
|
A list of link:rest-api-changes.html#reviewer-input[ReviewerInput]
|
|
representing reviewers that should be added to the change.
|
|
|`ready` |optional|
|
|
If true, and if the change is work in progress, then start review.
|
|
It is an error for both `ready` and `work_in_progress` to be true.
|
|
|`work_in_progress` |optional|
|
|
If true, mark the change as work in progress. It is an error for both
|
|
`ready` and `work_in_progress` to be true.
|
|
|============================
|
|
|
|
[[review-result]]
|
|
=== ReviewResult
|
|
The `ReviewResult` entity contains information regarding the updates
|
|
that were made to a review.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|============================
|
|
|Field Name ||Description
|
|
|`labels` |optional|
|
|
Map of labels to values after the review was posted. Null if any reviewer
|
|
additions were rejected.
|
|
|`reviewers` |optional|
|
|
Map of account or group identifier to
|
|
link:rest-api-changes.html#add-reviewer-result[AddReviewerResult]
|
|
representing the outcome of adding as a reviewer.
|
|
Absent if no reviewer additions were requested.
|
|
|`ready` |optional|
|
|
If true, the change was moved from WIP to ready for review as a result of this
|
|
action. Not set if false.
|
|
|============================
|
|
|
|
[[reviewer-info]]
|
|
=== ReviewerInfo
|
|
The `ReviewerInfo` entity contains information about a reviewer and its
|
|
votes on a change.
|
|
|
|
`ReviewerInfo` has the same fields as
|
|
link:rest-api-accounts.html#account-info[AccountInfo] and includes
|
|
link:#detailed-accounts[detailed account information].
|
|
In addition `ReviewerInfo` has the following fields:
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`approvals` |
|
|
The approvals of the reviewer as a map that maps the label names to the
|
|
approval values ("`-2`", "`-1`", "`0`", "`+1`", "`+2`").
|
|
|`_account_id` |
|
|
This field is inherited from `AccountInfo` but is optional here if an
|
|
unregistered reviewer was added by email. See
|
|
link:rest-api-changes.html#add-reviewer[add-reviewer] for details.
|
|
|==========================
|
|
|
|
[[reviewer-input]]
|
|
=== ReviewerInput
|
|
The `ReviewerInput` entity contains information for adding a reviewer
|
|
to a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`reviewer` ||
|
|
The link:rest-api-accounts.html#account-id[ID] of one account that
|
|
should be added as reviewer or the link:rest-api-groups.html#group-id[
|
|
ID] of one internal group for which all members should be added as reviewers. +
|
|
If an ID identifies both an account and a group, only the account is
|
|
added as reviewer to the change.
|
|
External groups, such as LDAP groups, will be silently omitted from a
|
|
link:#set-review[set-review] or
|
|
link:rest-api-changes.html#add-reviewer[add-reviewer] call.
|
|
|`state` |optional|
|
|
Add reviewer in this state. Possible reviewer states are `REVIEWER`
|
|
and `CC`. If not given, defaults to `REVIEWER`.
|
|
|`confirmed` |optional|
|
|
Whether adding the reviewer is confirmed. +
|
|
The Gerrit server may be configured to
|
|
link:config-gerrit.html#addreviewer.maxWithoutConfirmation[require a
|
|
confirmation] when adding a group as reviewer that has many members.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent
|
|
after the reviewer is added. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|=============================
|
|
|
|
[[revision-info]]
|
|
=== RevisionInfo
|
|
The `RevisionInfo` entity contains information about a patch set.
|
|
Not all fields are returned by default. Additional fields can
|
|
be obtained by adding `o` parameters as described in
|
|
link:#list-changes[Query Changes].
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`kind` ||The change kind. Valid values are `REWORK`, `TRIVIAL_REBASE`,
|
|
`MERGE_FIRST_PARENT_UPDATE`, `NO_CODE_CHANGE`, and `NO_CHANGE`.
|
|
|`_number` ||The patch set number, or `edit` if the patch set is an edit.
|
|
|`created` ||
|
|
The link:rest-api.html#timestamp[timestamp] of when the patch set was
|
|
created.
|
|
|`uploader` ||
|
|
The uploader of the patch set as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`ref` ||The Git reference for the patch set.
|
|
|`fetch` ||
|
|
Information about how to fetch this patch set. The fetch information is
|
|
provided as a map that maps the protocol name ("`git`", "`http`",
|
|
"`ssh`") to link:#fetch-info[FetchInfo] entities. This information is
|
|
only included if a plugin implementing the
|
|
link:intro-project-owner.html#download-commands[download commands]
|
|
interface is installed.
|
|
|`commit` |optional|The commit of the patch set as
|
|
link:#commit-info[CommitInfo] entity.
|
|
|`files` |optional|
|
|
The files of the patch set as a map that maps the file names to
|
|
link:#file-info[FileInfo] entities. Only set if
|
|
link:#current-files[CURRENT_FILES] or link:#all-files[ALL_FILES]
|
|
option is requested.
|
|
|`actions` |optional|
|
|
Actions the caller might be able to perform on this revision. The
|
|
information is a map of view name to link:#action-info[ActionInfo]
|
|
entities.
|
|
|`reviewed` |optional|
|
|
Indicates whether the caller is authenticated and has commented on the
|
|
current revision. Only set if link:#reviewed[REVIEWED] option is requested.
|
|
|`commit_with_footers` |optional|
|
|
If the link:#commit-footers[COMMIT_FOOTERS] option is requested and
|
|
this is the current patch set, contains the full commit message with
|
|
Gerrit-specific commit footers, as if this revision were submitted
|
|
using the link:project-configuration.html#cherry_pick[Cherry Pick]
|
|
submit type.
|
|
|`push_certificate` |optional|
|
|
If the link:#push-certificates[PUSH_CERTIFICATES] option is requested,
|
|
contains the push certificate provided by the user when uploading this
|
|
patch set as a link:#push-certificate-info[PushCertificateInfo] entity.
|
|
This field is always set if the option is requested; if no push
|
|
certificate was provided, it is set to an empty object.
|
|
|`description` |optional|
|
|
The description of this patchset, as displayed in the patchset
|
|
selector menu. May be null if no description is set.
|
|
|===========================
|
|
|
|
[[robot-comment-info]]
|
|
=== RobotCommentInfo
|
|
The `RobotCommentInfo` entity contains information about a robot inline
|
|
comment.
|
|
|
|
`RobotCommentInfo` has the same fields as <<comment-info,CommentInfo>>.
|
|
In addition `RobotCommentInfo` has the following fields:
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`robot_id` ||The ID of the robot that generated this comment.
|
|
|`robot_run_id` ||An ID of the run of the robot.
|
|
|`url` |optional|URL to more information.
|
|
|`properties` |optional|Robot specific properties as map that maps arbitrary
|
|
keys to values.
|
|
|`fix_suggestions`|optional|Suggested fixes for this robot comment as a list of
|
|
<<fix-suggestion-info,FixSuggestionInfo>> entities.
|
|
|===========================
|
|
|
|
[[robot-comment-input]]
|
|
=== RobotCommentInput
|
|
The `RobotCommentInput` entity contains information for creating an inline
|
|
robot comment.
|
|
|
|
`RobotCommentInput` has the same fields as
|
|
<<robot-comment-info,RobotCommentInfo>>.
|
|
|
|
[[rule-input]]
|
|
=== RuleInput
|
|
The `RuleInput` entity contains information to test a Prolog rule.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`rule`||
|
|
Prolog code to execute instead of the code in `refs/meta/config`.
|
|
|`filters`|`RUN` if not set|
|
|
When `RUN` filter rules in the parent projects are called to
|
|
post-process the results of the project specific rule. This
|
|
behavior matches how the rule will execute if installed. +
|
|
If `SKIP` the parent filters are not called, allowing the test
|
|
to return results from the input rule.
|
|
|===========================
|
|
|
|
[[submit-info]]
|
|
=== SubmitInfo
|
|
The `SubmitInfo` entity contains information about the change status
|
|
after submitting.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`status` ||
|
|
The status of the change after submitting is `MERGED`.
|
|
|`on_behalf_of`|optional|
|
|
The link:rest-api-accounts.html#account-id[\{account-id\}] of the user on
|
|
whose behalf the action should be done. To use this option the caller must
|
|
have been granted both `Submit` and `Submit (On Behalf Of)` permissions.
|
|
The user named by `on_behalf_of` does not need to be granted the `Submit`
|
|
permission. This feature is aimed for CI solutions: the CI account can be
|
|
granted both permissions, so individual users don't need `Submit` permission
|
|
themselves. Still the changes can be submitted on behalf of real users and
|
|
not with the identity of the CI account.
|
|
|==========================
|
|
|
|
[[submit-input]]
|
|
=== SubmitInput
|
|
The `SubmitInput` entity contains information for submitting a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`on_behalf_of` |optional|
|
|
If set, submit the change on behalf of the given user. The value may take any
|
|
format link:rest-api-accounts.html#account-id[accepted by the accounts REST
|
|
API]. Using this option requires
|
|
link:access-control.html#category_submit_on_behalf_of[Submit (On Behalf Of)]
|
|
permission on the branch.
|
|
|`notify` |optional|
|
|
Notify handling that defines to whom email notifications should be sent after
|
|
the change is submitted. +
|
|
Allowed values are `NONE`, `OWNER`, `OWNER_REVIEWERS` and `ALL`. +
|
|
If not set, the default is `ALL`.
|
|
|`notify_details`|optional|
|
|
Additional information about whom to notify about the update as a map
|
|
of recipient type to link:#notify-info[NotifyInfo] entity.
|
|
|=============================
|
|
|
|
[[submit-record]]
|
|
=== SubmitRecord
|
|
The `SubmitRecord` entity describes results from a submit_rule.
|
|
Fields in this entity roughly correspond to the fields set by `LABELS`
|
|
in link:#label-info[LabelInfo].
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`status`||
|
|
`OK`, the change can be submitted. +
|
|
`NOT_READY`, additional labels are required before submit. +
|
|
`CLOSED`, closed changes cannot be submitted. +
|
|
`RULE_ERROR`, rule code failed with an error.
|
|
|`ok`|optional|
|
|
Map of labels that are approved; an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] identifies the
|
|
voter chosen by the rule.
|
|
|`reject`|optional|
|
|
Map of labels that are preventing submit;
|
|
link:rest-api-accounts.html#account-info[AccountInfo] identifies voter.
|
|
|`need`|optional|
|
|
Map of labels that need to be given to submit. The value is
|
|
currently an empty object.
|
|
|`may`|optional|
|
|
Map of labels that can be used, but do not affect submit.
|
|
link:rest-api-accounts.html#account-info[AccountInfo] identifies voter,
|
|
if the label has been applied.
|
|
|`impossible`|optional|
|
|
Map of labels that should have been in `need` but cannot be
|
|
used by any user because of access restrictions. The value
|
|
is currently an empty object.
|
|
|`error_message`|optional|
|
|
When status is RULE_ERROR this message provides some text describing
|
|
the failure of the rule predicate.
|
|
|===========================
|
|
|
|
[[submitted-together-info]]
|
|
=== SubmittedTogetherInfo
|
|
The `SubmittedTogetherInfo` entity contains information about a
|
|
collection of changes that would be submitted together.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`changes` |
|
|
A list of ChangeInfo entities representing the changes to be submitted together.
|
|
|`non_visible_changes`|
|
|
The number of changes to be submitted together that the current user
|
|
cannot see. (This count includes changes that are visible to the
|
|
current user when their reason for being submitted together involves
|
|
changes the user cannot see.)
|
|
|===========================
|
|
|
|
[[suggested-reviewer-info]]
|
|
=== SuggestedReviewerInfo
|
|
The `SuggestedReviewerInfo` entity contains information about a reviewer
|
|
that can be added to a change (an account or a group).
|
|
|
|
`SuggestedReviewerInfo` has either the `account` field that contains
|
|
the link:rest-api-accounts.html#account-info[AccountInfo] entity, or
|
|
the `group` field that contains the
|
|
link:rest-api-changes.html#group-base-info[GroupBaseInfo] entity.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`account` |optional|
|
|
An link:rest-api-accounts.html#account-info[AccountInfo] entity, if the
|
|
suggestion is an account.
|
|
|`group` |optional|
|
|
A link:rest-api-changes.html#group-base-info[GroupBaseInfo] entity, if the
|
|
suggestion is a group.
|
|
|`count` ||
|
|
The total number of accounts in the suggestion. This is `1` if `account` is
|
|
present. If `group` is present, the total number of accounts that are
|
|
members of the group is returned (this count includes members of nested
|
|
groups).
|
|
|`confirm` |optional|
|
|
True if `group` is present and `count` is above the threshold where the
|
|
`confirmed` flag must be passed to add the group as a reviewer.
|
|
|===========================
|
|
|
|
[[topic-input]]
|
|
=== TopicInput
|
|
The `TopicInput` entity contains information for setting a topic.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`topic` |optional|The topic. +
|
|
The topic will be deleted if not set.
|
|
|===========================
|
|
|
|
[[tracking-id-info]]
|
|
=== TrackingIdInfo
|
|
The `TrackingIdInfo` entity describes a reference to an external tracking system.
|
|
|
|
[options="header",cols="1,6"]
|
|
|======================
|
|
|Field Name|Description
|
|
|`system` |The name of the external tracking system.
|
|
|`id` |The tracking id.
|
|
|======================
|
|
|
|
[[voting-range-info]]
|
|
=== VotingRangeInfo
|
|
The `VotingRangeInfo` entity describes the continuous voting range from min
|
|
to max values.
|
|
|
|
[options="header",cols="1,6"]
|
|
|======================
|
|
|Field Name|Description
|
|
|`min` |The minimum voting value.
|
|
|`max` |The maximum voting value.
|
|
|======================
|
|
|
|
[[web-link-info]]
|
|
=== WebLinkInfo
|
|
The `WebLinkInfo` entity describes a link to an external site.
|
|
|
|
[options="header",cols="1,6"]
|
|
|======================
|
|
|Field Name|Description
|
|
|`name` |The link name.
|
|
|`url` |The link URL.
|
|
|`image_url`|URL to the icon of the link.
|
|
|======================
|
|
|
|
[[work-in-progress-input]]
|
|
=== WorkInProgressInput
|
|
The `WorkInProgressInput` entity contains additional information for a change
|
|
set to WorkInProgress/ReadyForReview.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as a review comment to the change being set WorkInProgress/ReadyForReview.
|
|
|=============================
|
|
|
|
GERRIT
|
|
------
|
|
Part of link:index.html[Gerrit Code Review]
|
|
|
|
SEARCHBOX
|
|
---------
|