7076f4e646
Instead of returning the literal string from Prolog, force it to uppercase the way ChangeControl does as it casts the name through the Project.SubmitType enum. Change-Id: I8caca1c92d8ff30a70270f1e1b004a4c5265ab5b
3105 lines
87 KiB
Plaintext
3105 lines
87 KiB
Plaintext
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
|
|
----------------
|
|
|
|
[[list-changes]]
|
|
Query Changes
|
|
~~~~~~~~~~~~~
|
|
[verse]
|
|
'GET /changes/'
|
|
|
|
Queries changes visible to the caller. The query string must be
|
|
provided by the `q` parameter. The `n` parameter can be used to limit
|
|
the returned results.
|
|
|
|
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
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "001e7057000006dc",
|
|
"_number": 1756,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
},
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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,
|
|
"_sortkey": "001e7056000006dd",
|
|
"_number": 1757,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"_more_changes": true
|
|
}
|
|
]
|
|
----
|
|
|
|
If the `n` query parameter is supplied and additional changes exist
|
|
that match the query beyond the end, the last change object has a
|
|
`_more_changes: true` JSON field set. Callers can resume a query with
|
|
the `N` query parameter, supplying the last change's `_sortkey` field
|
|
as the value. When going in the reverse direction with the `P` query
|
|
parameter a `_more_changes: true` is put in the first change object if
|
|
there are results *before* the first change returned.
|
|
|
|
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
|
|
|
|
)]}'
|
|
[
|
|
[
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "001e7057000006dc",
|
|
"_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
|
|
****
|
|
|
|
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, 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.
|
|
--
|
|
|
|
[[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 are 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, including
|
|
basic line counts inserted/deleted per file. Only valid when
|
|
the current revision or all revisions are selected.
|
|
--
|
|
|
|
[[all-files]]
|
|
--
|
|
* `ALL_FILES`: list files modified by the commit, including
|
|
basic line counts inserted/deleted per file. If only the
|
|
`CURRENT_REVISION` was requested the only that commit's
|
|
modified files will be output.
|
|
--
|
|
|
|
[[detailed-accounts]]
|
|
--
|
|
* `DETAILED_ACCOUNTS`: include `_account_id` and `email` fields when
|
|
referencing accounts.
|
|
--
|
|
|
|
[[messages]]
|
|
--
|
|
* `MESSAGES`: include messages associated with the change.
|
|
--
|
|
|
|
[[actions]]
|
|
--
|
|
* `CURRENT_ACTIONS`: include information on available actions
|
|
for the change and its current revision. The caller must be
|
|
authenticated to obtain the available actions.
|
|
--
|
|
|
|
.Request
|
|
----
|
|
GET /changes/?q=97&o=CURRENT_REVISION&o=CURRENT_COMMIT&o=CURRENT_FILES HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"id": "demo~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,
|
|
"_sortkey": "001c9bf400000061",
|
|
"_number": 97,
|
|
"owner": {
|
|
"name": "Shawn Pearce"
|
|
},
|
|
"current_revision": "184ebe53805e102605d11f6b143486d15c23a09c",
|
|
"revisions": {
|
|
"184ebe53805e102605d11f6b143486d15c23a09c": {
|
|
"_number": 1,
|
|
"fetch": {
|
|
"git": {
|
|
"url": "git://localhost/gerrit",
|
|
"ref": "refs/changes/97/97/1"
|
|
},
|
|
"http": {
|
|
"url": "http://127.0.0.1:8080/gerrit",
|
|
"ref": "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
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeDetailCache.java": {
|
|
"lines_inserted": 1
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java": {
|
|
"lines_inserted": 11,
|
|
"lines_deleted": 19
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java": {
|
|
"lines_inserted": 23,
|
|
"lines_deleted": 20
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StarCache.java": {
|
|
"status": "D",
|
|
"lines_deleted": 139
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StarredChanges.java": {
|
|
"status": "A",
|
|
"lines_inserted": 204
|
|
},
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java": {
|
|
"lines_deleted": 9
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
----
|
|
|
|
[[get-change]]
|
|
Get Change
|
|
~~~~~~~~~~
|
|
[verse]
|
|
'GET /changes/link:#change-id[\{change-id\}]'
|
|
|
|
Retrieves a change.
|
|
|
|
.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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[get-change-detail]]
|
|
Get Change Detail
|
|
~~~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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], 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.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_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": {
|
|
"recommended": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
},
|
|
"disliked": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
"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": "Do not submit",
|
|
"-1": "I would prefer that you didn\u0027t submit this",
|
|
" 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"
|
|
}
|
|
],
|
|
"messages": [
|
|
{
|
|
"id": "YH-egE",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
"updated": "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"
|
|
},
|
|
"updated": "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-topic]]
|
|
Get Topic
|
|
~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
~~~~~~~~~
|
|
[verse]
|
|
'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.
|
|
|
|
.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
|
|
~~~~~~~~~~~~
|
|
[verse]
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/topic'
|
|
|
|
Deletes the topic of a change.
|
|
|
|
The request body does not need to include a link:#topic-input[
|
|
TopicInput] entity if no review comment is added.
|
|
|
|
Please note that some proxies prohibit request bodies for DELETE
|
|
requests. In this case, if you want to specify a commit message, use
|
|
link:#set-topic[PUT] to delete the topic.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[abandon-change]]
|
|
Abandon Change
|
|
~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_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
|
|
----
|
|
|
|
[[restore-change]]
|
|
Restore Change
|
|
~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_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
|
|
~~~~~~~~~~~~~
|
|
[verse]
|
|
'POST /changes/link:#change-id[\{change-id\}]/rebase'
|
|
|
|
Rebases a change.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/rebase HTTP/1.0
|
|
----
|
|
|
|
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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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,
|
|
"_sortkey": "0024cf9a000012bf",
|
|
"_number": 4799,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822",
|
|
"revisions": {
|
|
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
|
|
"_number": 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.
|
|
----
|
|
|
|
[[revert-change]]
|
|
Revert Change
|
|
~~~~~~~~~~~~~
|
|
[verse]
|
|
'POST /changes/link:#change-id[\{change-id\}]/revert'
|
|
|
|
Reverts a change.
|
|
|
|
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~I8473b95934b5732ac55d26311a706c9c2bde9940/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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_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
|
|
----
|
|
|
|
[[submit-change]]
|
|
Submit Change
|
|
~~~~~~~~~~~~~
|
|
[verse]
|
|
'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 the request should wait for the merge to
|
|
complete.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/submit HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"wait_for_merge": true
|
|
}
|
|
----
|
|
|
|
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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_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
|
|
----
|
|
|
|
[[reviewer-endpoints]]
|
|
Reviewer Endpoints
|
|
------------------
|
|
|
|
[[list-reviewers]]
|
|
List Reviewers
|
|
~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"kind": "gerritcodereview#reviewer",
|
|
"approvals": {
|
|
"Verified": "+1",
|
|
"Code-Review": "+2"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"kind": "gerritcodereview#reviewer",
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": "-1"
|
|
},
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
]
|
|
----
|
|
|
|
[[get-reviewer]]
|
|
Get Reviewer
|
|
~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#reviewer",
|
|
"approvals": {
|
|
"Verified": "+1",
|
|
"Code-Review": "+2"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
----
|
|
|
|
[[add-reviewer]]
|
|
Add Reviewer
|
|
~~~~~~~~~~~~
|
|
[verse]
|
|
'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.
|
|
|
|
.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
|
|
|
|
)]}'
|
|
{
|
|
"reviewers": [
|
|
{
|
|
"kind": "gerritcodereview#reviewer",
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": " 0"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
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.
|
|
|
|
.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
|
|
|
|
)]}'
|
|
{
|
|
"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
|
|
|
|
{
|
|
"reviewer": "MyProjectVerifiers",
|
|
"confirmed": true
|
|
}
|
|
----
|
|
|
|
[[delete-reviewer]]
|
|
Delete Reviewer
|
|
~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]'
|
|
|
|
Deletes a reviewer from a change.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[revision-endpoints]]
|
|
Revision Endpoints
|
|
------------------
|
|
|
|
[[get-commit]]
|
|
Get Commit
|
|
~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#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 ..."
|
|
}
|
|
----
|
|
|
|
|
|
[[get-review]]
|
|
Get Review
|
|
~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_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": "Do not submit",
|
|
"-1": "I would prefer that you didn\u0027t submit this",
|
|
" 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"
|
|
}
|
|
],
|
|
"current_revision": "674ac754f91e64a0efb8087e59a176484bd534d1",
|
|
"revisions": {
|
|
"674ac754f91e64a0efb8087e59a176484bd534d1": {
|
|
"_number": 2,
|
|
"fetch": {
|
|
"http": {
|
|
"url": "http://gerrit/myProject",
|
|
"ref": "refs/changes/65/3965/2"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
[[set-review]]
|
|
Set Review
|
|
~~~~~~~~~~
|
|
[verse]
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/review'
|
|
|
|
Sets a review on a revision.
|
|
|
|
The review must be provided in the request body as a
|
|
link:#review-input[ReviewInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
----
|
|
|
|
As response a link:#review-info[ReviewInfo] entity is returned that
|
|
describes the applied labels.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"labels": {
|
|
"Code-Review": -1
|
|
}
|
|
}
|
|
----
|
|
|
|
[[rebase-revision]]
|
|
Rebase Revision
|
|
~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/rebase'
|
|
|
|
Rebases a revision.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/rebase HTTP/1.0
|
|
----
|
|
|
|
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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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,
|
|
"_sortkey": "0024cf9a000012bf",
|
|
"_number": 4799,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822",
|
|
"revisions": {
|
|
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
|
|
"_number": 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
|
|
~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/submit'
|
|
|
|
Submits a revision.
|
|
|
|
The request body only needs to include a link:#submit-input[
|
|
SubmitInput] entity if the request should wait for the merge to
|
|
complete.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/submit HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"wait_for_merge": true
|
|
}
|
|
----
|
|
|
|
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
|
|
~~~~~~~~~
|
|
[verse]
|
|
'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...
|
|
----
|
|
|
|
[[get-mergeable]]
|
|
Get Mergeable
|
|
~~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
submit_type: "MERGE_IF_NECESSARY",
|
|
mergeable: true,
|
|
}
|
|
----
|
|
|
|
[[get-submit-type]]
|
|
Get Submit Type
|
|
~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
~~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
~~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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_type?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 list of link:#submit-record[SubmitRecord] entries
|
|
describing the permutations that satisfy the tested submit rule.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"status": "NOT_READY",
|
|
"reject": {
|
|
"Any-Label-Name": {}
|
|
}
|
|
}
|
|
]
|
|
----
|
|
|
|
[[list-drafts]]
|
|
List Drafts
|
|
~~~~~~~~~~~
|
|
[verse]
|
|
'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.
|
|
|
|
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.
|
|
|
|
.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": [
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
},
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[create-draft]]
|
|
Create Draft
|
|
~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"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
|
|
~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"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
|
|
~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"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
|
|
~~~~~~~~~~~~
|
|
[verse]
|
|
'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 Comments
|
|
~~~~~~~~~~~~~
|
|
[verse]
|
|
'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.
|
|
|
|
.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": [
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"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
|
|
~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#comment",
|
|
"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"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[list-files]]
|
|
List Files
|
|
~~~~~~~~~~
|
|
[verse]
|
|
'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 file path to a list of
|
|
link:#file-info[FileInfo] entries. 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
|
|
},
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": {
|
|
"lines_inserted": 5,
|
|
"lines_deleted": 3
|
|
}
|
|
}
|
|
----
|
|
|
|
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.
|
|
|
|
.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
|
|
~~~~~~~~~~~
|
|
[verse]
|
|
'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.
|
|
|
|
.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.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain;charset=UTF-8
|
|
|
|
Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY...
|
|
----
|
|
|
|
[[get-diff]]
|
|
Get Diff
|
|
~~~~~~~~
|
|
[verse]
|
|
'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"
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source"
|
|
},
|
|
"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"
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source"
|
|
},
|
|
"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.
|
|
|
|
.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"
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source"
|
|
},
|
|
"change_type": "MODIFIED",
|
|
"content": [
|
|
{
|
|
"skip": 578
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
The `ignore-whitespace` parameter can be specified to control how whitespace differences are
|
|
reported in the result. Valid values are `NONE`, `TRAILING`, `CHANGED` or `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.
|
|
|
|
[[set-reviewed]]
|
|
Set Reviewed
|
|
~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'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
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/cherrypick'
|
|
|
|
Cherry picks a revision to a destination branch.
|
|
|
|
The commit message and destination branch must be provided in the request body inside a
|
|
link:#cherrypick-input[CherryPickInput] entity.
|
|
|
|
.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 picked change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"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",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[message]]
|
|
Edit Commit Message
|
|
~~~~~~~~~~~~~~~~~~~
|
|
[verse]
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/message'
|
|
|
|
Edit commit message.
|
|
|
|
The commit message must be provided in the request body inside a
|
|
link:#cherrypick-input[CherryPickInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/message HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"message" : "Reword Implementing Feature X",
|
|
}
|
|
----
|
|
|
|
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
|
|
|
|
)]}'
|
|
{
|
|
"kind": "gerritcodereview#change",
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"project": "myProject",
|
|
"branch": "release-branch",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"subject": "Reword Implementing Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"reviewed": true,
|
|
"mergeable": true,
|
|
"_sortkey": "0023412400000f7d",
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[ids]]
|
|
IDs
|
|
---
|
|
|
|
[[account-id]]
|
|
link:rest-api-accounts.html#account-id[\{account-id\}]
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
--
|
|
--
|
|
|
|
[[change-id]]
|
|
\{change-id\}
|
|
~~~~~~~~~~~~~
|
|
Identifier that uniquely identifies one change.
|
|
|
|
This can be:
|
|
|
|
* 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 legacy numeric change ID ("4247")
|
|
|
|
[[comment-id]]
|
|
\{comment-id\}
|
|
~~~~~~~~~~~~~~
|
|
UUID of a published comment.
|
|
|
|
[[draft-id]]
|
|
\{draft-id\}
|
|
~~~~~~~~~~~~
|
|
UUID of a draft comment.
|
|
|
|
[[file-id]]
|
|
\{file-id\}
|
|
~~~~~~~~~~~~
|
|
The path of the file.
|
|
|
|
[[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)
|
|
|
|
[[json-entities]]
|
|
JSON Entities
|
|
-------------
|
|
|
|
[[abandon-input]]
|
|
AbandonInput
|
|
~~~~~~~~~~~~
|
|
The `AbandonInput` entity contains information for abandoning a change.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when abandoning the
|
|
change.
|
|
|===========================
|
|
|
|
[[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",width="50%",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",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`reviewers` |optional|
|
|
The newly added reviewers as a list of link:#reviewer-info[
|
|
ReviewerInfo] entities.
|
|
|`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",width="50%",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.
|
|
|`date` |optional|
|
|
The time and date describing when the approval was made.
|
|
|===========================
|
|
|
|
[[change-info]]
|
|
ChangeInfo
|
|
~~~~~~~~~~
|
|
The `ChangeInfo` entity contains information about a change.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|==================================
|
|
|Field Name ||Description
|
|
|`kind` ||`gerritcodereview#change`
|
|
|`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.
|
|
|`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`, `SUBMITTED`, `MERGED`, `ABANDONED`,
|
|
`DRAFT`).
|
|
|`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.
|
|
|`starred` |not set if `false`|
|
|
Whether the calling user has starred this change.
|
|
|`reviewed` |not set if `false`|
|
|
Whether the change was reviewed by the calling user.
|
|
|`mergeable` |optional|
|
|
Whether the change is mergeable. +
|
|
Not set for merged changes.
|
|
|`_sortkey` ||The sortkey of the change.
|
|
|`_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.
|
|
|`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.
|
|
|`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:#all-revisions[all revisions] are requested.
|
|
|`_more_changes` |optional, not set if `false`|
|
|
Whether the query would deliver more results if not limited. +
|
|
Only set on either the last or the first change that is returned.
|
|
|==================================
|
|
|
|
[[change-message-info]]
|
|
ChangeMessageInfo
|
|
~~~~~~~~~~~~~~~~~
|
|
The `ChangeMessageInfo` entity contains information about a message
|
|
attached to a change.
|
|
|
|
[options="header",width="50%",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.
|
|
|`date` ||
|
|
The link:rest-api.html#timestamp[timestamp] this message was posted.
|
|
|`message` ||The text left by the user.
|
|
|`_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",width="50%",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`message` |Commit message for the cherry-picked change
|
|
|`destination` |Destination Branch
|
|
|===========================
|
|
|
|
[[comment-info]]
|
|
CommentInfo
|
|
~~~~~~~~~~~
|
|
The `CommentInfo` entity contains information about an inline comment.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`kind` ||`gerritcodereview#comment`
|
|
|`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`.
|
|
|`line` |optional|
|
|
The number of the line for which the comment was done. +
|
|
If not set, it's a file comment.
|
|
|`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.
|
|
|===========================
|
|
|
|
[[comment-input]]
|
|
CommentInput
|
|
~~~~~~~~~~~~
|
|
The `CommitInput` entity contains information for creating an inline
|
|
comment.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`kind` |optional|
|
|
Must be `gerritcodereview#comment` if provided.
|
|
|`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 not set, a file comment is added.
|
|
|`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.
|
|
|===========================
|
|
|
|
[[commit-info]]
|
|
CommitInfo
|
|
~~~~~~~~~~
|
|
The `CommitInfo` entity contains information about a commit.
|
|
|
|
[options="header",width="50%",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`commit` |The commit ID.
|
|
|`parent` |
|
|
The parent commits of this commit as a list of
|
|
link:#commit-info[CommitInfo] entities. In parent
|
|
only `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.
|
|
|==========================
|
|
|
|
[[diff-content]]
|
|
DiffContent
|
|
~~~~~~~~~~~
|
|
The `DiffContent` entity contains information about the content differences
|
|
in a file.
|
|
|
|
[options="header",width="50%",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 during 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 during a replace, i.e. both `a` and `b` are present|
|
|
Text sections inserted in side B as a
|
|
link:#diff-intraline-info[DiffIntralineInfo] entity.
|
|
|`skip` |optional|count of lines skipped on both sides when the file is
|
|
too large to include all common lines.
|
|
|==========================
|
|
|
|
[[diff-file-meta-info]]
|
|
DiffFileMetaInfo
|
|
~~~~~~~~~~~~~~~~
|
|
The `DiffFileMetaInfo` entity contains meta information about a file diff.
|
|
|
|
[options="header",width="50%",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`name` |The name of the file.
|
|
|`content_type`|The content type of the file.
|
|
|==========================
|
|
|
|
[[diff-info]]
|
|
DiffInfo
|
|
~~~~~~~~
|
|
The `DiffInfo` entity contains information about the diff of a file
|
|
in a revision.
|
|
|
|
[options="header",width="50%",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.
|
|
|==========================
|
|
|
|
[[diff-intraline-info]]
|
|
DiffIntralineInfo
|
|
~~~~~~~~~~~~~~~~~
|
|
The `DiffIntralineInfo` entity contains information about intraline edits in a
|
|
file.
|
|
|
|
The information consists of a list of `<skip length, mark 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 mark 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.
|
|
|
|
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.
|
|
|
|
[[fetch-info]]
|
|
FetchInfo
|
|
~~~~~~~~~
|
|
The `FetchInfo` entity contains information about how to fetch a patch
|
|
set via a certain protocol.
|
|
|
|
[options="header",width="50%",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`url` |The URL of the project.
|
|
|`ref` |The ref of the patch set.
|
|
|==========================
|
|
|
|
[[file-info]]
|
|
FileInfo
|
|
~~~~~~~~
|
|
The `FileInfo` entity contains information about a file in a patch set.
|
|
|
|
[options="header",width="50%",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.
|
|
|`lines_deleted` |optional|
|
|
Number of deleted lines. +
|
|
Not set for binary files or if no lines were deleted.
|
|
|=============================
|
|
|
|
[[git-person-info]]
|
|
GitPersonInfo
|
|
~~~~~~~~~~~~~
|
|
The `GitPersonInfo` entity contains information about the
|
|
author/committer of a commit.
|
|
|
|
[options="header",width="50%",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.
|
|
|==========================
|
|
|
|
[[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",width="50%",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",width="50%",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.
|
|
|`value` |optional|The voting value of the user who
|
|
recommended/disliked this label on the change if it is not
|
|
"`+1`"/"`-1`".
|
|
|===========================
|
|
|
|
Fields set by `DETAILED_LABELS`
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
[options="header",width="50%",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.
|
|
|`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.
|
|
|===========================
|
|
|
|
|
|
[[restore-input]]
|
|
RestoreInput
|
|
~~~~~~~~~~~~
|
|
The `RestoreInput` entity contains information for restoring a change.
|
|
|
|
[options="header",width="50%",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",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when reverting the
|
|
change.
|
|
|===========================
|
|
|
|
[[review-info]]
|
|
ReviewInfo
|
|
~~~~~~~~~~
|
|
The `ReviewInfo` entity contains information about a review.
|
|
|
|
[options="header",width="50%",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-input]]
|
|
ReviewInput
|
|
~~~~~~~~~~~
|
|
The `ReviewInput` entity contains information for adding a review to a
|
|
revision.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|============================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
The message to be added as review comment.
|
|
|`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.
|
|
|`strict_labels`|`true` if not set|
|
|
Whether all labels are required to be within the user's permitted ranges
|
|
based on access controls. +
|
|
If `true`, attempting to use a label not granted to the user will fail
|
|
the entire modify operation early. +
|
|
If `false`, the operation will execute anyway, but the proposed labels
|
|
will be modified to be the "best" value allowed by the access controls.
|
|
|`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 `DELETE`, `PUBLISH` and `KEEP`. +
|
|
If not set, the default is `DELETE`.
|
|
|`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`.
|
|
|`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.
|
|
|`wait_for_commit`|optional|
|
|
Whether the request should wait for commit to the index to finish.
|
|
If `false` (default) the request returns after the data is sent to
|
|
the index, but searches may not immediately see the update.
|
|
|============================
|
|
|
|
[[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",width="50%",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`kind` |`gerritcodereview#reviewer`
|
|
|`approvals` |
|
|
The approvals of the reviewer as a map that maps the label names to the
|
|
approval values ("`-2`", "`-1`", " `0`", "`+1`", "`+2`").
|
|
|==========================
|
|
|
|
[[reviewer-input]]
|
|
ReviewerInput
|
|
~~~~~~~~~~~~~
|
|
The `ReviewerInput` entity contains information for adding a reviewer
|
|
to a change.
|
|
|
|
[options="header",width="50%",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 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.
|
|
|`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.
|
|
|===========================
|
|
|
|
[[revision-info]]
|
|
RevisionInfo
|
|
~~~~~~~~~~~~
|
|
The `RevisionInfo` entity contains information about a patch set.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`draft` |not set if `false`|Whether the patch set is a draft.
|
|
|`_number` ||The patch set number.
|
|
|`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.
|
|
|`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.
|
|
|`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.
|
|
|===========================
|
|
|
|
[[rule-input]]
|
|
RuleInput
|
|
~~~~~~~~~
|
|
The `RuleInput` entity contains information to test a Prolog rule.
|
|
|
|
[options="header",width="50%",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",width="50%",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`status` |
|
|
The status of the change after submitting, can be `MERGED` or
|
|
`SUBMITTED`. +
|
|
If `wait_for_merge` in the link:#submit-input[SubmitInput] was set to
|
|
`false` the returned status is `SUBMITTED` and the caller can't know
|
|
whether the change could be merged successfully.
|
|
|==========================
|
|
|
|
[[submit-input]]
|
|
SubmitInput
|
|
~~~~~~~~~~~
|
|
The `SubmitInput` entity contains information for submitting a change.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`wait_for_merge`|`false` if not set|
|
|
Whether the request should wait for the merge to complete. +
|
|
If `false` the request returns immediately after the change has been
|
|
added to the merge queue and the caller can't know whether the change
|
|
could be merged successfully.
|
|
|===========================
|
|
|
|
[[submit-record]]
|
|
SubmitRecord
|
|
~~~~~~~~~~~~
|
|
The `SubmitRecord` entity describes results from a submit_rule.
|
|
|
|
[options="header",width="50%",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.
|
|
|===========================
|
|
|
|
[[topic-input]]
|
|
TopicInput
|
|
~~~~~~~~~~
|
|
The `TopicInput` entity contains information for setting a topic.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`topic` |optional|The topic. +
|
|
The topic will be deleted if not set.
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when setting the
|
|
topic.
|
|
|===========================
|
|
|
|
|
|
GERRIT
|
|
------
|
|
Part of link:index.html[Gerrit Code Review]
|