829c429dd6
* changes: ChangeJson: Add option to include review footers ChangeJson: Refactor revision codepath
4362 lines
122 KiB
Plaintext
4362 lines
122 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
|
|
|
|
[[create-change]]
|
|
=== Create Change
|
|
--
|
|
'POST /changes'
|
|
--
|
|
|
|
The change info link:#change-info[ChangeInfo] entity must be provided in the
|
|
request body. Only the following attributes are honored: `project`,
|
|
`branch`, `subject`, `status` and `topic`. The first three attributes are
|
|
mandatory. Valid values for status are: `DRAFT` and `NEW`.
|
|
|
|
.Request
|
|
----
|
|
POST /changes HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"project" : "myProject",
|
|
"subject" : "Let's support 100% Gerrit workflow direct in browser",
|
|
"branch" : "master",
|
|
"topic" : "create-change-in-browser",
|
|
"status" : "DRAFT"
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that describes
|
|
the resulting change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"topic": "create-change-in-browser",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"subject": "Let's support 100% Gerrit workflow direct in browser",
|
|
"status": "DRAFT",
|
|
"created": "2014-05-05 07:15:44.639000000",
|
|
"updated": "2014-05-05 07:15:44.639000000",
|
|
"mergeable": true,
|
|
"insertions": 0,
|
|
"deletions": 0,
|
|
"_number": 4711,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[list-changes]]
|
|
=== Query Changes
|
|
--
|
|
'GET /changes/'
|
|
--
|
|
|
|
Queries changes visible to the caller. The
|
|
link:user-search.html#_search_operators[query string] must be provided
|
|
by the `q` parameter. The `n` parameter can be used to limit the
|
|
returned results.
|
|
|
|
As result a list of link:#change-info[ChangeInfo] entries is returned.
|
|
The change output is sorted by the last update time, most recently
|
|
updated to oldest updated.
|
|
|
|
Query for open changes of watched projects:
|
|
|
|
.Request
|
|
----
|
|
GET /changes/?q=status:open+is:watched&n=2 HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"id": "demo~master~Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"project": "demo",
|
|
"branch": "master",
|
|
"change_id": "Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"subject": "One change",
|
|
"status": "NEW",
|
|
"created": "2012-07-17 07:18:30.854000000",
|
|
"updated": "2012-07-17 07:19:27.766000000",
|
|
"mergeable": true,
|
|
"insertions": 26,
|
|
"deletions": 10,
|
|
"_number": 1756,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
},
|
|
{
|
|
"id": "demo~master~I09c8041b5867d5b33170316e2abc34b79bbb8501",
|
|
"project": "demo",
|
|
"branch": "master",
|
|
"change_id": "I09c8041b5867d5b33170316e2abc34b79bbb8501",
|
|
"subject": "Another change",
|
|
"status": "NEW",
|
|
"created": "2012-07-17 07:18:30.884000000",
|
|
"updated": "2012-07-17 07:18:30.885000000",
|
|
"mergeable": true,
|
|
"insertions": 12,
|
|
"deletions": 18,
|
|
"_number": 1757,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"_more_changes": true
|
|
}
|
|
]
|
|
----
|
|
|
|
If the `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.
|
|
|
|
The `S` or `start` query parameter can be supplied to skip a number
|
|
of changes from the list.
|
|
|
|
Clients are allowed to specify more than one query by setting the `q`
|
|
parameter multiple times. In this case the result is an array of
|
|
arrays, one per query in the same order the queries were given in.
|
|
|
|
.Query for the 25 most recent open changes of the projects that you watch
|
|
****
|
|
get::/changes/?q=status:open+is:watched&n=25
|
|
****
|
|
|
|
Query that retrieves changes for a user's dashboard:
|
|
|
|
.Request
|
|
----
|
|
GET /changes/?q=is:open+owner:self&q=is:open+reviewer:self+-owner:self&q=is:closed+owner:self+limit:5&o=LABELS HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
[
|
|
{
|
|
"id": "demo~master~Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"project": "demo",
|
|
"branch": "master",
|
|
"change_id": "Idaf5e098d70898b7119f6f4af5a6c13343d64b57",
|
|
"subject": "One change",
|
|
"status": "NEW",
|
|
"created": "2012-07-17 07:18:30.854000000",
|
|
"updated": "2012-07-17 07:19:27.766000000",
|
|
"mergeable": true,
|
|
"insertions": 4,
|
|
"deletions": 7,
|
|
"_number": 1756,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"labels": {
|
|
"Verified": {},
|
|
"Code-Review": {}
|
|
}
|
|
}
|
|
],
|
|
[],
|
|
[]
|
|
]
|
|
----
|
|
|
|
.Query the changes for your user dashboard
|
|
****
|
|
get::/changes/?q=is:open+owner:self&q=is:open+reviewer:self+-owner:self&q=is:closed+owner:self+limit:5&o=LABELS
|
|
****
|
|
|
|
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.
|
|
--
|
|
|
|
[[download_commands]]
|
|
--
|
|
* `DOWNLOAD_COMMANDS`: include the `commands` field in the
|
|
link:#fetch-info[FetchInfo] for revisions. Only valid when the
|
|
`CURRENT_REVISION` or `ALL_REVISIONS` option is selected.
|
|
--
|
|
|
|
[[draft_comments]]
|
|
--
|
|
* `DRAFT_COMMENTS`: include the `has_draft_comments` field for
|
|
revisions. Only valid when the `CURRENT_REVISION` or `ALL_REVISIONS`
|
|
option is selected.
|
|
--
|
|
|
|
[[current-commit]]
|
|
--
|
|
* `CURRENT_COMMIT`: parse and output all header fields from the
|
|
commit object, including message. Only valid when the
|
|
`CURRENT_REVISION` or `ALL_REVISIONS` option is selected.
|
|
--
|
|
|
|
[[all-commits]]
|
|
--
|
|
* `ALL_COMMITS`: parse and output all header fields from the
|
|
output revisions. If only `CURRENT_REVISION` was requested
|
|
then only the current revision's commit data will be output.
|
|
--
|
|
|
|
[[current-files]]
|
|
--
|
|
* `CURRENT_FILES`: list files modified by the commit, including
|
|
basic line counts inserted/deleted per file. Only valid when
|
|
the `CURRENT_REVISION` or `ALL_REVISIONS` option is selected.
|
|
--
|
|
|
|
[[all-files]]
|
|
--
|
|
* `ALL_FILES`: list files modified by the commit, including
|
|
basic line counts inserted/deleted per file. If only the
|
|
`CURRENT_REVISION` was requested then only that commit's
|
|
modified files will be output.
|
|
--
|
|
|
|
[[detailed-accounts]]
|
|
--
|
|
* `DETAILED_ACCOUNTS`: include `_account_id`, `email` and `username`
|
|
fields when referencing accounts.
|
|
--
|
|
|
|
[[messages]]
|
|
--
|
|
* `MESSAGES`: include messages associated with the change.
|
|
--
|
|
|
|
[[actions]]
|
|
--
|
|
* `CURRENT_ACTIONS`: include information on available actions
|
|
for the change and its current revision. Ignored if the caller
|
|
is not authenticated.
|
|
--
|
|
|
|
[[change-actions]]
|
|
--
|
|
* `CHANGE_ACTIONS`: include information on available
|
|
change actions for the change. Ignored if the caller
|
|
is not authenticated.
|
|
--
|
|
|
|
[[reviewed]]
|
|
--
|
|
* `REVIEWED`: include the `reviewed` field if the caller is
|
|
authenticated and has commented on the current revision.
|
|
--
|
|
|
|
[[web-links]]
|
|
--
|
|
* `WEB_LINKS`: include the `web_links` field in link:#commit-info[CommitInfo],
|
|
therefore only valid in combination with `CURRENT_COMMIT` or
|
|
`ALL_COMMITS`.
|
|
--
|
|
|
|
[[check]]
|
|
--
|
|
* `CHECK`: include potential problems with the change.
|
|
--
|
|
|
|
[[commit-footers]]
|
|
--
|
|
* `COMMIT_FOOTERS`: include the full commit message with
|
|
Gerrit-specific commit footers in the
|
|
link:#revision-info[RevisionInfo].
|
|
|
|
.Request
|
|
----
|
|
GET /changes/?q=97&o=CURRENT_REVISION&o=CURRENT_COMMIT&o=CURRENT_FILES&o=DOWNLOAD_COMMANDS HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"id": "gerrit~master~I7ea46d2e2ee5c64c0d807677859cfb7d90b8966a",
|
|
"project": "gerrit",
|
|
"branch": "master",
|
|
"change_id": "I7ea46d2e2ee5c64c0d807677859cfb7d90b8966a",
|
|
"subject": "Use an EventBus to manage star icons",
|
|
"status": "NEW",
|
|
"created": "2012-04-25 00:52:25.580000000",
|
|
"updated": "2012-04-25 00:52:25.586000000",
|
|
"mergeable": true,
|
|
"insertions": 16,
|
|
"deletions": 7,
|
|
"_number": 97,
|
|
"owner": {
|
|
"name": "Shawn Pearce"
|
|
},
|
|
"current_revision": "184ebe53805e102605d11f6b143486d15c23a09c",
|
|
"revisions": {
|
|
"184ebe53805e102605d11f6b143486d15c23a09c": {
|
|
"_number": 1,
|
|
"ref": "refs/changes/97/97/1",
|
|
"fetch": {
|
|
"git": {
|
|
"url": "git://localhost/gerrit",
|
|
"ref": "refs/changes/97/97/1",
|
|
"commands": {
|
|
"Checkout": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD",
|
|
"Cherry-Pick": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD",
|
|
"Format-Patch": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD",
|
|
"Pull": "git pull git://localhost/gerrit refs/changes/97/97/1"
|
|
}
|
|
},
|
|
"http": {
|
|
"url": "http://myuser@127.0.0.1:8080/gerrit",
|
|
"ref": "refs/changes/97/97/1",
|
|
"commands": {
|
|
"Checkout": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD",
|
|
"Cherry-Pick": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD",
|
|
"Format-Patch": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD",
|
|
"Pull": "git pull http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1"
|
|
}
|
|
},
|
|
"ssh": {
|
|
"url": "ssh://myuser@*:29418/gerrit",
|
|
"ref": "refs/changes/97/97/1",
|
|
"commands": {
|
|
"Checkout": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD",
|
|
"Cherry-Pick": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD",
|
|
"Format-Patch": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD",
|
|
"Pull": "git pull ssh://myuser@*:29418/gerrit refs/changes/97/97/1"
|
|
}
|
|
}
|
|
},
|
|
"commit": {
|
|
"parents": [
|
|
{
|
|
"commit": "1eee2c9d8f352483781e772f35dc586a69ff5646",
|
|
"subject": "Migrate contributor agreements to All-Projects."
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "Shawn O. Pearce",
|
|
"email": "sop@google.com",
|
|
"date": "2012-04-24 18:08:08.000000000",
|
|
"tz": -420
|
|
},
|
|
"committer": {
|
|
"name": "Shawn O. Pearce",
|
|
"email": "sop@google.com",
|
|
"date": "2012-04-24 18:08:08.000000000",
|
|
"tz": -420
|
|
},
|
|
"subject": "Use an EventBus to manage star icons",
|
|
"message": "Use an EventBus to manage star icons\n\nImage widgets that need to ..."
|
|
},
|
|
"files": {
|
|
"gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeCache.java": {
|
|
"lines_deleted": 8
|
|
},
|
|
"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
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]'
|
|
--
|
|
|
|
Retrieves a change.
|
|
|
|
Additional fields can be obtained by adding `o` parameters, each
|
|
option requires more database lookups and slows down the query
|
|
response time to the client so they are generally disabled by
|
|
default. Fields are described in link:#list-changes[Query Changes].
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 101,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[get-change-detail]]
|
|
=== Get Change Detail
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/detail'
|
|
--
|
|
|
|
Retrieves a change with link:#labels[labels], link:#detailed-labels[
|
|
detailed labels], link:#detailed-accounts[detailed accounts], and
|
|
link:#messages[messages].
|
|
|
|
Additional fields can be obtained by adding `o` parameters, each
|
|
option requires more database lookups and slows down the query
|
|
response time to the client so they are generally disabled by
|
|
default. Fields are described in link:#list-changes[Query Changes].
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/detail HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the change. This response will contain all votes for each
|
|
label and include one combined vote. The combined label vote is
|
|
calculated in the following order (from highest to lowest):
|
|
REJECTED > APPROVED > DISLIKED > RECOMMENDED.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 126,
|
|
"deletions": 11,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"labels": {
|
|
"Verified": {
|
|
"all": [
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
}
|
|
],
|
|
"values": {
|
|
"-1": "Fails",
|
|
" 0": "No score",
|
|
"+1": "Verified"
|
|
}
|
|
},
|
|
"Code-Review": {
|
|
"disliked": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"all": [
|
|
{
|
|
"value": -1,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
{
|
|
"value": 1,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
}
|
|
]
|
|
"values": {
|
|
"-2": "This shall not be merged",
|
|
"-1": "I would prefer this is not merged as is",
|
|
" 0": "No score",
|
|
"+1": "Looks good to me, but someone else must approve",
|
|
"+2": "Looks good to me, approved"
|
|
}
|
|
}
|
|
},
|
|
"permitted_labels": {
|
|
"Verified": [
|
|
"-1",
|
|
" 0",
|
|
"+1"
|
|
],
|
|
"Code-Review": [
|
|
"-2",
|
|
"-1",
|
|
" 0",
|
|
"+1",
|
|
"+2"
|
|
]
|
|
},
|
|
"removable_reviewers": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
{
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com",
|
|
"username": "jroe"
|
|
}
|
|
],
|
|
"messages": [
|
|
{
|
|
"id": "YH-egE",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"username": "jdoe"
|
|
},
|
|
"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",
|
|
"username": "jroe"
|
|
},
|
|
"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
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/topic'
|
|
--
|
|
|
|
Retrieves the topic of a change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"Documentation"
|
|
----
|
|
|
|
If the change does not have a topic an empty string is returned.
|
|
|
|
[[set-topic]]
|
|
=== Set Topic
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/topic'
|
|
--
|
|
|
|
Sets the topic of a change.
|
|
|
|
The new topic must be provided in the request body inside a
|
|
link:#topic-input[TopicInput] entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"topic": "Documentation"
|
|
}
|
|
----
|
|
|
|
As response the new topic is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"Documentation"
|
|
----
|
|
|
|
If the topic was deleted the response is "`204 No Content`".
|
|
|
|
[[delete-topic]]
|
|
=== Delete Topic
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/topic'
|
|
--
|
|
|
|
Deletes the topic of a change.
|
|
|
|
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
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/abandon'
|
|
--
|
|
|
|
Abandons a change.
|
|
|
|
The request body does not need to include a link:#abandon-input[
|
|
AbandonInput] entity if no review comment is added.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/abandon HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the abandoned change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "ABANDONED",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 3,
|
|
"deletions": 310,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be abandoned because the change state doesn't
|
|
allow abandoning of the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is merged
|
|
----
|
|
|
|
[[restore-change]]
|
|
=== Restore Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/restore'
|
|
--
|
|
|
|
Restores a change.
|
|
|
|
The request body does not need to include a link:#restore-input[
|
|
RestoreInput] entity if no review comment is added.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/restore HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the restored change.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 2,
|
|
"deletions": 13,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be restored because the change state doesn't
|
|
allow restoring the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is new
|
|
----
|
|
|
|
[[rebase-change]]
|
|
=== Rebase Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/rebase'
|
|
--
|
|
|
|
Rebases a change.
|
|
|
|
Optionally, the parent revision can be changed to another patch set through the
|
|
link:#rebase-input[RebaseInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/rebase HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"base" : "1234",
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the rebased change. Information about the current patch set
|
|
is included.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"subject": "Implement Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": false,
|
|
"insertions": 33,
|
|
"deletions": 9,
|
|
"_number": 4799,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822",
|
|
"revisions": {
|
|
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
|
|
"_number": 2,
|
|
"ref": "refs/changes/99/4799/2",
|
|
"fetch": {
|
|
"http": {
|
|
"url": "http://gerrit:8080/myProject",
|
|
"ref": "refs/changes/99/4799/2"
|
|
}
|
|
},
|
|
"commit": {
|
|
"parents": [
|
|
{
|
|
"commit": "b4003890dadd406d80222bf1ad8aca09a4876b70",
|
|
"subject": "Implement Feature A"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"date": "2013-05-07 15:21:27.000000000",
|
|
"tz": 120
|
|
},
|
|
"committer": {
|
|
"name": "Gerrit Code Review",
|
|
"email": "gerrit-server@example.com",
|
|
"date": "2013-05-07 15:35:43.000000000",
|
|
"tz": 120
|
|
},
|
|
"subject": "Implement Feature X",
|
|
"message": "Implement Feature X\n\nAdded feature X."
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be rebased, e.g. due to conflicts, the response is
|
|
"`409 Conflict`" and the error message is contained in the response
|
|
body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
The change could not be rebased due to a path conflict during merge.
|
|
----
|
|
|
|
[[revert-change]]
|
|
=== Revert Change
|
|
--
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Revert \"Implementing Feature X\"",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 6,
|
|
"deletions": 4,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
If the change cannot be reverted because the change state doesn't
|
|
allow reverting the change, the response is "`409 Conflict`" and
|
|
the error message is contained in the response body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
change is new
|
|
----
|
|
|
|
[[submit-change]]
|
|
=== Submit Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/submit'
|
|
--
|
|
|
|
Submits a change.
|
|
|
|
The request body only needs to include a link:#submit-input[
|
|
SubmitInput] entity if 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
|
|
|
|
)]}'
|
|
{
|
|
"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",
|
|
"_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
|
|
----
|
|
|
|
[[publish-draft-change]]
|
|
=== Publish Draft Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/publish'
|
|
--
|
|
|
|
Publishes a draft change.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/publish HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[delete-draft-change]]
|
|
=== Delete Draft Change
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]'
|
|
--
|
|
|
|
Deletes a draft change.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[get-included-in]]
|
|
=== Get Included In
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/in'
|
|
--
|
|
|
|
Retrieves the branches and tags in which a change is included. As result
|
|
an link:#included-in-info[IncludedInInfo] entity is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/in HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"branches": [
|
|
"master"
|
|
],
|
|
"tags": []
|
|
}
|
|
----
|
|
|
|
[[index-change]]
|
|
=== Index Change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/index'
|
|
--
|
|
|
|
Adds or updates the change in the secondary index.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/index HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[list-change-comments]]
|
|
=== List Change Comments
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/comments'
|
|
--
|
|
|
|
Lists the published comments of all revisions of the change.
|
|
|
|
Returns a map of file paths to lists of link:#comment-info[CommentInfo]
|
|
entries. The entries in the map are sorted by file path, and the
|
|
comments for each path are sorted by patch set number. Each comment has
|
|
the `patch_set` and `author` fields set.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/comments HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"patch_set": 1,
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
},
|
|
{
|
|
"patch_set": 2,
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000"
|
|
"author": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[list-change-drafts]]
|
|
=== List Change Drafts
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/drafts'
|
|
--
|
|
|
|
Lists the draft comments of all revisions of the change that belong to
|
|
the calling user.
|
|
|
|
Returns a map of file paths to lists of link:#comment-info[CommentInfo]
|
|
entries. The entries in the map are sorted by file path, and the
|
|
comments for each path are sorted by patch set number. Each comment has
|
|
the `patch_set` field set, and no `author`.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/drafts HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"patch_set": 1,
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
},
|
|
{
|
|
"patch_set": 2,
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[check-change]]
|
|
=== Check change
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/check'
|
|
--
|
|
|
|
Performs consistency checks on the change, and returns a
|
|
link:#change-info[ChangeInfo] entity with the `problems` field set to a
|
|
list of link:#problem-info[ProblemInfo] entities.
|
|
|
|
Depending on the type of problem, some fields not marked optional may be
|
|
missing from the result. At least `id`, `project`, `branch`, and
|
|
`_number` will be present.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/check HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 101,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"problems": [
|
|
{
|
|
"message": "Current patch set 1 not found"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[fix-change]]
|
|
=== Fix change
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/check'
|
|
--
|
|
|
|
Performs consistency checks on the change as with link:#check-change[GET
|
|
/check], and additionally fixes any problems that can be fixed
|
|
automatically. The returned field values reflect any fixes.
|
|
|
|
Only the change owner, a project owner, or an administrator may fix changes.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/check HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "MERGED",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 101,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"problems": [
|
|
{
|
|
"message": "Current patch set 2 not found"
|
|
},
|
|
{
|
|
"message": "Patch set 1 (1eee2c9d8f352483781e772f35dc586a69ff5646) is merged into destination ref master (1eee2c9d8f352483781e772f35dc586a69ff5646), but change status is NEW",
|
|
"status": FIXED,
|
|
"outcome": "Marked change as merged"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[edit-endpoints]]
|
|
== Change Edit Endpoints
|
|
|
|
These endpoints are considered to be unstable and can be changed in
|
|
backwards incompatible way any time without notice.
|
|
|
|
[[get-edit-detail]]
|
|
=== Get Change Edit Details
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit
|
|
--
|
|
|
|
Retrieves a change edit details.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
----
|
|
|
|
As response an link:#edit-info[EditInfo] entity is returned that
|
|
describes the change edit, or "`204 No Content`" when change edit doesn't
|
|
exist for this change. Change edits are stored on special branches and there
|
|
can be max one edit per user per change. Edits aren't tracked in the database.
|
|
When request parameter `list` is provided the response also includes the file
|
|
list. When `base` request parameter is provided the file list is computed
|
|
against this base revision. When request parameter `download-commands` is
|
|
provided fetch info map is also included.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"commit":{
|
|
"parents":[
|
|
{
|
|
"commit":"1eee2c9d8f352483781e772f35dc586a69ff5646",
|
|
}
|
|
],
|
|
"author":{
|
|
"name":"Shawn O. Pearce",
|
|
"email":"sop@google.com",
|
|
"date":"2012-04-24 18:08:08.000000000",
|
|
"tz":-420
|
|
},
|
|
"committer":{
|
|
"name":"Shawn O. Pearce",
|
|
"email":"sop@google.com",
|
|
"date":"2012-04-24 18:08:08.000000000",
|
|
"tz":-420
|
|
},
|
|
"subject":"Use an EventBus to manage star icons",
|
|
"message":"Use an EventBus to manage star icons\n\nImage widgets that need to ..."
|
|
},
|
|
}
|
|
----
|
|
|
|
[[put-edit-file]]
|
|
=== Change file content in Change Edit
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile
|
|
--
|
|
|
|
Put content of a file to a change edit.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
|
|
----
|
|
|
|
When change edit doesn't exist for this change yet it is created. When file
|
|
content isn't provided, it is wiped out for that file. As response
|
|
"`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[post-edit]]
|
|
=== Restore file content or rename files in Change Edit
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/edit
|
|
--
|
|
|
|
Creates empty change edit, restores file content or renames files in change
|
|
edit. The request body needs to include a
|
|
link:#change-edit-input[ChangeEditInput] entity when a file within change
|
|
edit should be restored or old and new file names to rename a file.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"restore_path": "foo"
|
|
}
|
|
----
|
|
|
|
or for rename:
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"old_path": "foo",
|
|
"new_path": "bar"
|
|
}
|
|
----
|
|
|
|
When change edit doesn't exist for this change yet it is created. When path
|
|
and restore flag are provided in request body, this file is restored. When
|
|
old and new file names are provided, the file is renamed. As response
|
|
"`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[put-change-edit-message]]
|
|
=== Change commit message in Change Edit
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/edit:message
|
|
--
|
|
|
|
Modify commit message. The request body needs to include a
|
|
link:#change-edit-message-input[ChangeEditMessageInput]
|
|
entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:message HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"message": "New commit message\n\nChange-Id: I10394472cbd17dd12454f229e4f6de00b143a444"
|
|
}
|
|
----
|
|
|
|
If a change edit doesn't exist for this change yet, it is created. As
|
|
response "`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[delete-edit-file]]
|
|
=== Delete file in Change Edit
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile'
|
|
--
|
|
|
|
Deletes a file from a change edit. This deletes the file from the repository
|
|
completely. This is not the same as reverting or restoring a file to its
|
|
previous contents.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
|
|
----
|
|
|
|
When change edit doesn't exist for this change yet it is created.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[get-edit-file]]
|
|
=== Retrieve file content from Change Edit
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile
|
|
--
|
|
|
|
Retrieves content of a file from a change edit.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
|
|
----
|
|
|
|
The content of the file is returned as text encoded inside base64.
|
|
The Content-Type header will always be `text/plain` reflecting the
|
|
outer base64 encoding. A Gerrit-specific `X-FYI-Content-Type` header
|
|
can be examined to find the server detected content type of the file.
|
|
|
|
When the specified file was deleted in the change edit
|
|
"`204 No Content`" is returned.
|
|
|
|
If only the content type is required, callers should use HEAD to
|
|
avoid downloading the encoded file contents.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
X-FYI-Content-Encoding: base64
|
|
X-FYI-Content-Type: text/xml
|
|
|
|
RnJvbSA3ZGFkY2MxNTNmZGVhMTdhYTg0ZmYzMmE2ZTI0NWRiYjY...
|
|
----
|
|
|
|
Alternatively, if the only value of the Accept request header is
|
|
`application/json` the content is returned as JSON string and
|
|
`X-FYI-Content-Encoding` is set to `json`.
|
|
|
|
[[get-edit-meta-data]]
|
|
=== Retrieve meta data of a file from Change Edit
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit/path%2fto%2ffile/meta
|
|
--
|
|
|
|
Retrieves meta data of a file from a change edit. Currently only
|
|
web links are returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo/meta HTTP/1.0
|
|
----
|
|
|
|
This REST endpoint retrieves additional information for a file in a
|
|
change edit. As result an link:#edit-file-info[EditFileInfo] entity is
|
|
returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"web_links":[
|
|
{
|
|
"show_on_side_by_side_diff_view": true,
|
|
"name": "side-by-side preview diff",
|
|
"image_url": "plugins/xdocs/static/sideBySideDiffPreview.png",
|
|
"url": "#/x/xdocs/c/42/1..0/README.md",
|
|
"target": "_self"
|
|
},
|
|
{
|
|
"show_on_unified_diff_view": true,
|
|
"name": "unified preview diff",
|
|
"image_url": "plugins/xdocs/static/unifiedDiffPreview.png",
|
|
"url": "#/x/xdocs/c/42/1..0/README.md,unified",
|
|
"target": "_self"
|
|
}
|
|
]}
|
|
----
|
|
|
|
[[get-edit-message]]
|
|
=== Retrieve commit message from Change Edit or current patch set of the change
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/edit:message
|
|
--
|
|
|
|
Retrieves commit message from change edit.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:message HTTP/1.0
|
|
----
|
|
|
|
The commit message is returned as base64 encoded string.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
|
|
VGhpcyBpcyBhIGNvbW1pdCBtZXNzYWdlCgpDaGFuZ2UtSWQ6IElhYzhmZGM1MGRlZjFiYWUzYjAz
|
|
M2JhNjcxZTk0OTBmNzUxNDU5ZGUzCg==
|
|
----
|
|
|
|
Alternatively, if the only value of the Accept request header is
|
|
`application/json` the commit message is returned as JSON string:
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
|
|
)]}'
|
|
"Subject of the commit message\n\nThis is the body of the commit message.\n\nChange-Id: Iaf1ba916bf843c175673d675bf7f52862f452db9\n"
|
|
----
|
|
|
|
|
|
[[publish-edit]]
|
|
=== Publish Change Edit
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/edit:publish
|
|
--
|
|
|
|
Promotes change edit to a regular patch set.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:publish HTTP/1.0
|
|
----
|
|
|
|
As response "`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[rebase-edit]]
|
|
=== Rebase Change Edit
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/edit:rebase
|
|
--
|
|
|
|
Rebases change edit on top of latest patch set.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:rebase HTTP/1.0
|
|
----
|
|
|
|
When change was rebased on top of latest patch set, response
|
|
"`204 No Content`" is returned. When change edit is aready
|
|
based on top of the latest patch set, the response
|
|
"`409 Conflict`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[delete-edit]]
|
|
=== Delete Change Edit
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/edit'
|
|
--
|
|
|
|
Deletes change edit.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
|
|
----
|
|
|
|
As response "`204 No Content`" is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[reviewer-endpoints]]
|
|
== Reviewer Endpoints
|
|
|
|
[[list-reviewers]]
|
|
=== List Reviewers
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/reviewers/'
|
|
--
|
|
|
|
Lists the reviewers of a change.
|
|
|
|
As result a list of link:#reviewer-info[ReviewerInfo] entries is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"approvals": {
|
|
"Verified": "+1",
|
|
"Code-Review": "+2"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"approvals": {
|
|
"Verified": " 0",
|
|
"Code-Review": "-1"
|
|
},
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
]
|
|
----
|
|
|
|
[[suggest-reviewers]]
|
|
=== Suggest Reviewers
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/suggest_reviewers?q=J&n=5'
|
|
--
|
|
|
|
Suggest the reviewers for a given query `q` and result limit `n`. If result
|
|
limit is not passed, then the default 10 is used.
|
|
|
|
As result a list of link:#suggested-reviewer-info[SuggestedReviewerInfo] entries is returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/suggest_reviewers?q=J HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
{
|
|
"account": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
},
|
|
{
|
|
"group": {
|
|
"id": "4fd581c0657268f2bdcc26699fbf9ddb76e3a279",
|
|
"name": "Joiner"
|
|
}
|
|
}
|
|
]
|
|
----
|
|
|
|
[[get-reviewer]]
|
|
=== Get Reviewer
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/reviewers/link:rest-api-accounts.html#account-id[\{account-id\}]'
|
|
--
|
|
|
|
Retrieves a reviewer of a change.
|
|
|
|
As response a link:#reviewer-info[ReviewerInfo] entity is returned that
|
|
describes the reviewer.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/john.doe@example.com HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"approvals": {
|
|
"Verified": "+1",
|
|
"Code-Review": "+2"
|
|
},
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
----
|
|
|
|
[[add-reviewer]]
|
|
=== Add Reviewer
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/reviewers'
|
|
--
|
|
|
|
Adds one user or all members of one group as reviewer to the change.
|
|
|
|
The reviewer to be added to the change must be provided in the request
|
|
body as a link:#reviewer-input[ReviewerInput] entity.
|
|
|
|
.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": [
|
|
{
|
|
"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
|
|
--
|
|
'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
|
|
--
|
|
'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
|
|
|
|
)]}'
|
|
{
|
|
"parents": [
|
|
{
|
|
"commit": "1eee2c9d8f352483781e772f35dc586a69ff5646",
|
|
"subject": "Migrate contributor agreements to All-Projects."
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "Shawn O. Pearce",
|
|
"email": "sop@google.com",
|
|
"date": "2012-04-24 18:08:08.000000000",
|
|
"tz": -420
|
|
},
|
|
"committer": {
|
|
"name": "Shawn O. Pearce",
|
|
"email": "sop@google.com",
|
|
"date": "2012-04-24 18:08:08.000000000",
|
|
"tz": -420
|
|
},
|
|
"subject": "Use an EventBus to manage star icons",
|
|
"message": "Use an EventBus to manage star icons\n\nImage widgets that need to ..."
|
|
}
|
|
----
|
|
|
|
Adding query parameter `links` (for example `/changes/.../commit?links`)
|
|
returns a link:#commit-info[CommitInfo] with the additional field `web_links`.
|
|
|
|
[[get-revision-actions]]
|
|
=== Get Revision Actions
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/actions'
|
|
--
|
|
|
|
Retrieves revision link:#action-info[actions] of the revision of a change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/actions' HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
|
|
{
|
|
"submit": {
|
|
"method": "POST",
|
|
"label": "Submit",
|
|
"title": "Submit patch set 1 into master",
|
|
"enabled": true
|
|
},
|
|
"cherrypick": {
|
|
"method": "POST",
|
|
"label": "Cherry Pick",
|
|
"title": "Cherry pick change to a different branch",
|
|
"enabled": true
|
|
}
|
|
}
|
|
----
|
|
|
|
The response is a flat map of possible revision actions mapped to their
|
|
link:#action-info[ActionInfo].
|
|
|
|
[[get-review]]
|
|
=== Get Review
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/review'
|
|
--
|
|
|
|
Retrieves a review of a revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity with
|
|
link:#detailed-labels[detailed labels] and link:#detailed-accounts[
|
|
detailed accounts] is returned that describes the review of the
|
|
revision. The revision for which the review is retrieved is contained
|
|
in the `revisions` field. In addition the `current_revision` field is
|
|
set if the revision for which the review is retrieved is the current
|
|
revision of the change. Please note that the returned labels are always
|
|
for the current patch set.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
|
|
"subject": "Implementing Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 34,
|
|
"deletions": 45,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
"labels": {
|
|
"Verified": {
|
|
"all": [
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"value": 0,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
],
|
|
"values": {
|
|
"-1": "Fails",
|
|
" 0": "No score",
|
|
"+1": "Verified"
|
|
}
|
|
},
|
|
"Code-Review": {
|
|
"all": [
|
|
{
|
|
"value": -1,
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"value": 1,
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
]
|
|
"values": {
|
|
"-2": "This shall not be merged",
|
|
"-1": "I would prefer this is not merged as is",
|
|
" 0": "No score",
|
|
"+1": "Looks good to me, but someone else must approve",
|
|
"+2": "Looks good to me, approved"
|
|
}
|
|
}
|
|
},
|
|
"permitted_labels": {
|
|
"Verified": [
|
|
"-1",
|
|
" 0",
|
|
"+1"
|
|
],
|
|
"Code-Review": [
|
|
"-2",
|
|
"-1",
|
|
" 0",
|
|
"+1",
|
|
"+2"
|
|
]
|
|
},
|
|
"removable_reviewers": [
|
|
{
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
},
|
|
{
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
],
|
|
"current_revision": "674ac754f91e64a0efb8087e59a176484bd534d1",
|
|
"revisions": {
|
|
"674ac754f91e64a0efb8087e59a176484bd534d1": {
|
|
"_number": 2,
|
|
"ref": "refs/changes/65/3965/2",
|
|
"fetch": {
|
|
"http": {
|
|
"url": "http://gerrit/myProject",
|
|
"ref": "refs/changes/65/3965/2"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
[[get-related-changes]]
|
|
=== Get Related Changes
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/related'
|
|
--
|
|
|
|
Retrieves related changes of a revision. Related changes are changes that either
|
|
depend on, or are dependencies of the revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/gerrit~master~I5e4fc08ce34d33c090c9e0bf320de1b17309f774/revisions/b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe/related HTTP/1.0
|
|
----
|
|
|
|
As result a link:#related-changes-info[RelatedChangesInfo] entity is returned
|
|
describing the related changes.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"changes": [
|
|
{
|
|
"change_id": "Ic62ae3103fca2214904dbf2faf4c861b5f0ae9b5",
|
|
"commit": {
|
|
"commit": "78847477532e386f5a2185a4e8c90b2509e354e3",
|
|
"parents": [
|
|
{
|
|
"commit": "bb499510bbcdbc9164d96b0dbabb4aa45f59a87e"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "David Ostrovsky",
|
|
"email": "david@ostrovsky.org",
|
|
"date": "2014-07-12 15:04:24.000000000",
|
|
"tz": 120
|
|
},
|
|
"subject": "Remove Solr"
|
|
},
|
|
"_change_number": 58478,
|
|
"_revision_number": 2,
|
|
"_current_revision_number": 2
|
|
},
|
|
{
|
|
"change_id": "I5e4fc08ce34d33c090c9e0bf320de1b17309f774",
|
|
"commit": {
|
|
"commit": "b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe",
|
|
"parents": [
|
|
{
|
|
"commit": "d898f12a9b7a92eb37e7a80636195a1b06417aad"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "David Pursehouse",
|
|
"email": "david.pursehouse@sonymobile.com",
|
|
"date": "2014-06-24 02:01:28.000000000",
|
|
"tz": 540
|
|
},
|
|
"subject": "Add support for secondary index with Elasticsearch"
|
|
},
|
|
"_change_number": 58081,
|
|
"_revision_number": 10,
|
|
"_current_revision_number": 10
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
|
|
[[set-review]]
|
|
=== Set Review
|
|
--
|
|
'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"
|
|
},
|
|
{
|
|
"range": {
|
|
"start_line": 50,
|
|
"start_character": 0,
|
|
"end_line": 55,
|
|
"end_character": 20
|
|
},
|
|
"message": "Incorrect indentation"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
----
|
|
|
|
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
|
|
}
|
|
}
|
|
----
|
|
|
|
A review cannot be set on a change edit. Trying to post a review for a
|
|
change edit fails with `409 Conflict`.
|
|
|
|
[[rebase-revision]]
|
|
=== Rebase Revision
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/rebase'
|
|
--
|
|
|
|
Rebases a revision.
|
|
|
|
Optionally, the parent revision can be changed to another patch set through the
|
|
link:#rebase-input[RebaseInput] entity.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/rebase HTTP/1.0
|
|
Content-Type: application/json;charset=UTF-8
|
|
|
|
{
|
|
"base" : "1234",
|
|
}
|
|
----
|
|
|
|
As response a link:#change-info[ChangeInfo] entity is returned that
|
|
describes the rebased change. Information about the current patch set
|
|
is included.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"project": "myProject",
|
|
"branch": "master",
|
|
"change_id": "I3ea943139cb62e86071996f2480e58bf3eeb9dd2",
|
|
"subject": "Implement Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": false,
|
|
"insertions": 21,
|
|
"deletions": 21,
|
|
"_number": 4799,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
},
|
|
"current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822",
|
|
"revisions": {
|
|
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
|
|
"_number": 2,
|
|
"ref": "refs/changes/99/4799/2",
|
|
"fetch": {
|
|
"http": {
|
|
"url": "http://gerrit:8080/myProject",
|
|
"ref": "refs/changes/99/4799/2"
|
|
}
|
|
},
|
|
"commit": {
|
|
"parents": [
|
|
{
|
|
"commit": "b4003890dadd406d80222bf1ad8aca09a4876b70",
|
|
"subject": "Implement Feature A"
|
|
}
|
|
],
|
|
"author": {
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com",
|
|
"date": "2013-05-07 15:21:27.000000000",
|
|
"tz": 120
|
|
},
|
|
"committer": {
|
|
"name": "Gerrit Code Review",
|
|
"email": "gerrit-server@example.com",
|
|
"date": "2013-05-07 15:35:43.000000000",
|
|
"tz": 120
|
|
},
|
|
"subject": "Implement Feature X",
|
|
"message": "Implement Feature X\n\nAdded feature X."
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
If the revision cannot be rebased, e.g. due to conflicts, the response is
|
|
"`409 Conflict`" and the error message is contained in the response
|
|
body.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 409 Conflict
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
The change could not be rebased due to a path conflict during merge.
|
|
----
|
|
|
|
[[submit-revision]]
|
|
=== Submit Revision
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/submit'
|
|
--
|
|
|
|
Submits a revision.
|
|
|
|
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"
|
|
----
|
|
|
|
[[publish-draft-revision]]
|
|
=== Publish Draft Revision
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/publish'
|
|
--
|
|
|
|
Publishes a draft revision.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/publish HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[delete-draft-revision]]
|
|
=== Delete Draft Revision
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]'
|
|
--
|
|
|
|
Deletes a draft revision.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1 HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[get-patch]]
|
|
=== Get Patch
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/patch'
|
|
--
|
|
|
|
Gets the formatted patch for one revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/patch HTTP/1.0
|
|
----
|
|
|
|
The formatted patch is returned as text encoded inside base64:
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
X-FYI-Content-Encoding: base64
|
|
X-FYI-Content-Type: application/mbox
|
|
|
|
RnJvbSA3ZGFkY2MxNTNmZGVhMTdhYTg0ZmYzMmE2ZTI0NWRiYjY...
|
|
----
|
|
|
|
Adding query parameter `zip` (for example `/changes/.../patch?zip`)
|
|
returns the patch as a single file inside of a ZIP archive. Clients
|
|
can expand the ZIP to obtain the plain text patch, avoiding the
|
|
need for a base64 decoding step. This option implies `download`.
|
|
|
|
Query parameter `download` (e.g. `/changes/.../patch?download`)
|
|
will suggest the browser save the patch as `commitsha1.diff.base64`,
|
|
for later processing by command line tools.
|
|
|
|
[[get-mergeable]]
|
|
=== Get Mergeable
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/mergeable'
|
|
--
|
|
|
|
Gets the method the server will use to submit (merge) the change and
|
|
an indicator if the change is currently mergeable.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/mergeable HTTP/1.0
|
|
----
|
|
|
|
As response a link:#mergeable-info[MergeableInfo] entity is returned.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
submit_type: "MERGE_IF_NECESSARY",
|
|
mergeable: true,
|
|
}
|
|
----
|
|
|
|
If the `other-branches` parameter is specified, the mergeability will also be
|
|
checked for all other branches.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/mergeable?other-branches HTTP/1.0
|
|
----
|
|
|
|
The response will then contain a list of all other branches where this changes
|
|
could merge cleanly.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
submit_type: "MERGE_IF_NECESSARY",
|
|
mergeable: true,
|
|
mergeable_into: [
|
|
"refs/heads/stable-2.7",
|
|
"refs/heads/stable-2.8",
|
|
]
|
|
}
|
|
----
|
|
|
|
[[get-submit-type]]
|
|
=== Get Submit Type
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/submit_type'
|
|
--
|
|
|
|
Gets the method the server will use to submit (merge) the change.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/submit_type HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"MERGE_IF_NECESSARY"
|
|
----
|
|
|
|
[[test-submit-type]]
|
|
=== Test Submit Type
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/test.submit_type'
|
|
--
|
|
|
|
Tests the submit_type Prolog rule in the project, or the one given.
|
|
|
|
Request body may be either the Prolog code as `text/plain` or a
|
|
link:#rule-input[RuleInput] object. The query parameter `filters`
|
|
may be set to `SKIP` to bypass parent project filters while testing
|
|
a project-specific rule.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/test.submit_type HTTP/1.0
|
|
Content-Type: text/plain; charset-UTF-8
|
|
|
|
submit_type(cherry_pick).
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
"CHERRY_PICK"
|
|
----
|
|
|
|
[[test-submit-rule]]
|
|
=== Test Submit Rule
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/test.submit_rule'
|
|
--
|
|
|
|
Tests the submit_rule Prolog rule in the project, or the one given.
|
|
|
|
Request body may be either the Prolog code as `text/plain` or a
|
|
link:#rule-input[RuleInput] object. The query parameter `filters`
|
|
may be set to `SKIP` to bypass parent project filters while testing
|
|
a project-specific rule.
|
|
|
|
.Request
|
|
----
|
|
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/test.submit_rule?filters=SKIP HTTP/1.0
|
|
Content-Type: text/plain; charset-UTF-8
|
|
|
|
submit_rule(submit(R)) :-
|
|
R = label('Any-Label-Name', reject(_)).
|
|
----
|
|
|
|
The response is a 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": {}
|
|
}
|
|
}
|
|
]
|
|
----
|
|
|
|
When testing with the `curl` command line client the
|
|
`--data-binary @rules.pl` flag should be used to ensure
|
|
all LFs are included in the Prolog code:
|
|
|
|
----
|
|
curl -X POST \
|
|
-H 'Content-Type: text/plain; charset=UTF-8' \
|
|
--data-binary @rules.pl \
|
|
http://.../test.submit_rule
|
|
----
|
|
|
|
[[list-drafts]]
|
|
=== List Revision Drafts
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/'
|
|
--
|
|
|
|
Lists the draft comments of a revision that belong to the calling
|
|
user.
|
|
|
|
Returns a map of file paths to lists of link:#comment-info[CommentInfo]
|
|
entries. The entries in the map are sorted by file path.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
},
|
|
{
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000"
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[create-draft]]
|
|
=== Create Draft
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts'
|
|
--
|
|
|
|
Creates a draft comment on a revision.
|
|
|
|
The new draft comment must be provided in the request body inside a
|
|
link:#comment-input[CommentInput] entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace"
|
|
}
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the draft comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
}
|
|
----
|
|
|
|
[[get-draft]]
|
|
=== Get Draft
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/link:#draft-id[\{draft-id\}]'
|
|
--
|
|
|
|
Retrieves a draft comment of a revision that belongs to the calling
|
|
user.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the draft comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
}
|
|
----
|
|
|
|
[[update-draft]]
|
|
=== Update Draft
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/link:#draft-id[\{draft-id\}]'
|
|
--
|
|
|
|
Updates a draft comment on a revision.
|
|
|
|
The new draft comment must be provided in the request body inside a
|
|
link:#comment-input[CommentInput] entity.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
{
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace"
|
|
}
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the draft comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000"
|
|
}
|
|
----
|
|
|
|
[[delete-draft]]
|
|
=== Delete Draft
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/drafts/link:#draft-id[\{draft-id\}]'
|
|
--
|
|
|
|
Deletes a draft comment from a revision.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[list-comments]]
|
|
=== List Revision Comments
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/comments/'
|
|
--
|
|
|
|
Lists the published comments of a revision.
|
|
|
|
As result a map is returned that maps the file path to a list of
|
|
link:#comment-info[CommentInfo] entries. The entries in the map are
|
|
sorted by file path and only include file (or inline) comments. Use
|
|
the link:#get-change-detail[Get Change Detail] endpoint to retrieve
|
|
the general change message (or comment).
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/ HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
},
|
|
{
|
|
"id": "TveXwFiA",
|
|
"line": 49,
|
|
"in_reply_to": "TfYX-Iuo",
|
|
"message": "Done",
|
|
"updated": "2013-02-26 15:40:45.328000000",
|
|
"author": {
|
|
"_account_id": 1000097,
|
|
"name": "Jane Roe",
|
|
"email": "jane.roe@example.com"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
[[get-comment]]
|
|
=== Get Comment
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/comments/link:#comment-id[\{comment-id\}]'
|
|
--
|
|
|
|
Retrieves a published comment of a revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/TvcXrmjM HTTP/1.0
|
|
----
|
|
|
|
As response a link:#comment-info[CommentInfo] entity is returned that
|
|
describes the published comment.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
{
|
|
"id": "TvcXrmjM",
|
|
"path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"line": 23,
|
|
"message": "[nit] trailing whitespace",
|
|
"updated": "2013-02-26 15:40:43.986000000",
|
|
"author": {
|
|
"_account_id": 1000096,
|
|
"name": "John Doe",
|
|
"email": "john.doe@example.com"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[list-files]]
|
|
=== List Files
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/'
|
|
--
|
|
|
|
Lists the files that were modified, added or deleted in a revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/ HTTP/1.0
|
|
----
|
|
|
|
As result a map is returned that maps the 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.
|
|
|
|
The request parameter `q` changes the response to return a list
|
|
of all files (modified or unmodified) that contain that substring
|
|
in the path name. This is useful to implement suggestion services
|
|
finding a file by partial name.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/?reviewed HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]}'
|
|
[
|
|
"/COMMIT_MSG",
|
|
"gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
]
|
|
----
|
|
|
|
[[get-content]]
|
|
=== Get Content
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/content'
|
|
--
|
|
|
|
Gets the content of a file from a certain revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/content HTTP/1.0
|
|
----
|
|
|
|
The content is returned as base64 encoded string. The HTTP response
|
|
Content-Type is always `text/plain`, reflecting the base64 wrapping.
|
|
A Gerrit-specific `X-FYI-Content-Type` header is returned describing
|
|
the server detected content type of the file.
|
|
|
|
If only the content type is required, callers should use HEAD to
|
|
avoid downloading the encoded file contents.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
X-FYI-Content-Encoding: base64
|
|
X-FYI-Content-Type: text/xml
|
|
|
|
Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY...
|
|
----
|
|
|
|
Alternatively, if the only value of the Accept request header is
|
|
`application/json` the content is returned as JSON string and
|
|
`X-FYI-Content-Encoding` is set to `json`.
|
|
|
|
[[get-diff]]
|
|
=== Get Diff
|
|
--
|
|
'GET /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/diff'
|
|
--
|
|
|
|
Gets the diff of a file from a certain revision.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/diff HTTP/1.0
|
|
----
|
|
|
|
As response a link:#diff-info[DiffInfo] entity is returned that describes the diff.
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]
|
|
{
|
|
"meta_a": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 372
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"change_type": "MODIFIED",
|
|
"diff_header": [
|
|
"diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"index 59b7670..9faf81c 100644",
|
|
"--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java"
|
|
],
|
|
"content": [
|
|
{
|
|
"ab": [
|
|
"// Copyright (C) 2010 The Android Open Source Project",
|
|
"//",
|
|
"// Licensed under the Apache License, Version 2.0 (the \"License\");",
|
|
"// you may not use this file except in compliance with the License.",
|
|
"// You may obtain a copy of the License at",
|
|
"//",
|
|
"// http://www.apache.org/licenses/LICENSE-2.0",
|
|
"//",
|
|
"// Unless required by applicable law or agreed to in writing, software",
|
|
"// distributed under the License is distributed on an \"AS IS\" BASIS,",
|
|
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
|
|
"// See the License for the specific language governing permissions and",
|
|
"// limitations under the License."
|
|
]
|
|
},
|
|
{
|
|
"b": [
|
|
"//",
|
|
"// Add some more lines in the header."
|
|
]
|
|
},
|
|
{
|
|
"ab": [
|
|
"",
|
|
"package com.google.gerrit.server.project;",
|
|
"",
|
|
"import com.google.common.collect.Maps;",
|
|
...
|
|
]
|
|
}
|
|
...
|
|
]
|
|
}
|
|
----
|
|
|
|
If the `intraline` parameter is specified, intraline differences are included in the diff.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/b6b9c10649b9041884046119ab794374470a1b45/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/diff?intraline HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]
|
|
{
|
|
"meta_a": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 372
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"change_type": "MODIFIED",
|
|
"diff_header": [
|
|
"diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"index 59b7670..9faf81c 100644",
|
|
"--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java"
|
|
],
|
|
"content": [
|
|
...
|
|
{
|
|
"a": [
|
|
"/** Manages access control for Git references (aka branches, tags). */"
|
|
],
|
|
"b": [
|
|
"/** Manages access control for the Git references (aka branches, tags). */"
|
|
],
|
|
"edit_a": [],
|
|
"edit_b": [
|
|
[
|
|
31,
|
|
4
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
The `base` parameter can be specified to control the base patch set from which the diff should
|
|
be generated.
|
|
|
|
[[weblinks-only]]
|
|
If the `weblinks-only` parameter is specified, only the diff web links are returned.
|
|
|
|
.Request
|
|
----
|
|
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/b6b9c10649b9041884046119ab794374470a1b45/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/diff?base=2 HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 200 OK
|
|
Content-Disposition: attachment
|
|
Content-Type: application/json; charset=UTF-8
|
|
|
|
)]
|
|
{
|
|
"meta_a": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"meta_b": {
|
|
"name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java",
|
|
"content_type": "text/x-java-source",
|
|
"lines": 578
|
|
},
|
|
"change_type": "MODIFIED",
|
|
"content": [
|
|
{
|
|
"skip": 578
|
|
}
|
|
]
|
|
}
|
|
----
|
|
|
|
The `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
|
|
--
|
|
'PUT /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/reviewed'
|
|
--
|
|
|
|
Marks a file of a revision as reviewed by the calling user.
|
|
|
|
.Request
|
|
----
|
|
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/reviewed HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 201 Created
|
|
----
|
|
|
|
If the file was already marked as reviewed by the calling user the
|
|
response is "`200 OK`".
|
|
|
|
[[delete-reviewed]]
|
|
=== Delete Reviewed
|
|
--
|
|
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/files/link:#file-id[\{file-id\}]/reviewed'
|
|
--
|
|
|
|
Deletes the reviewed flag of the calling user from a file of a revision.
|
|
|
|
.Request
|
|
----
|
|
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/reviewed HTTP/1.0
|
|
----
|
|
|
|
.Response
|
|
----
|
|
HTTP/1.1 204 No Content
|
|
----
|
|
|
|
[[cherry-pick]]
|
|
=== Cherry Pick Revision
|
|
--
|
|
'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/cherrypick'
|
|
--
|
|
|
|
Cherry picks a revision to a destination branch.
|
|
|
|
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
|
|
|
|
)]}'
|
|
{
|
|
"id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"project": "myProject",
|
|
"branch": "release-branch",
|
|
"change_id": "I8473b95934b5732ac55d26311a706c9c2bde9941",
|
|
"subject": "Implementing Feature X",
|
|
"status": "NEW",
|
|
"created": "2013-02-01 09:59:32.126000000",
|
|
"updated": "2013-02-21 11:16:36.775000000",
|
|
"mergeable": true,
|
|
"insertions": 12,
|
|
"deletions": 11,
|
|
"_number": 3965,
|
|
"owner": {
|
|
"name": "John Doe"
|
|
}
|
|
}
|
|
----
|
|
|
|
[[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",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",cols="1,^1,5"]
|
|
|====================================
|
|
|Field Name ||Description
|
|
|`method` |optional|
|
|
HTTP method to use with the action. Most actions use `POST`, `PUT`
|
|
or `DELETE` to cause state changes.
|
|
|`label` |optional|
|
|
Short title to display to a user describing the action. In the
|
|
Gerrit web interface the label is used as the text on the button
|
|
presented in the UI.
|
|
|`title` |optional|
|
|
Longer text to display describing the action. In a web UI this
|
|
should be the title attribute of the element, displaying when
|
|
the user hovers the mouse.
|
|
|`enabled` |optional|
|
|
If true the action is permitted at this time and the caller is
|
|
likely allowed to execute it. This may change if state is updated
|
|
at the server or permissions are modified. Not present if false.
|
|
|====================================
|
|
|
|
[[add-reviewer-result]]
|
|
=== AddReviewerResult
|
|
The `AddReviewerResult` entity describes the result of adding a
|
|
reviewer to a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`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",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-edit-input]]
|
|
=== ChangeEditInput
|
|
The `ChangeEditInput` entity contains information for restoring a
|
|
path within change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`restore_path`|optional|Path to file to restore.
|
|
|`old_path` |optional|Old path to file to rename.
|
|
|`new_path` |optional|New path to file to rename.
|
|
|===========================
|
|
|
|
[[change-edit-message-input]]
|
|
=== ChangeEditMessageInput
|
|
The `ChangeEditMessageInput` entity contains information for changing
|
|
the commit message within a change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` ||New commit message.
|
|
|===========================
|
|
|
|
[[change-info]]
|
|
=== ChangeInfo
|
|
The `ChangeInfo` entity contains information about a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==================================
|
|
|Field Name ||Description
|
|
|`id` ||
|
|
The ID of the change in the format "'<project>\~<branch>~<Change-Id>'",
|
|
where 'project', 'branch' and 'Change-Id' are URL encoded. For 'branch' the
|
|
`refs/heads/` prefix is omitted.
|
|
|`project` ||The name of the project.
|
|
|`branch` ||
|
|
The name of the target branch. +
|
|
The `refs/heads/` prefix is omitted.
|
|
|`topic` |optional|The topic to which this change belongs.
|
|
|`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.
|
|
Only set if link:#reviewed[reviewed] is requested.
|
|
|`mergeable` |optional|
|
|
Whether the change is mergeable. +
|
|
Not set for merged changes, or if the change has not yet been tested.
|
|
|`insertions` ||
|
|
Number of inserted lines.
|
|
|`deletions` ||
|
|
Number of deleted lines.
|
|
|`_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:#current-revision[the current revision] is requested
|
|
(in which case it will only contain a key for the current revision) or
|
|
if link:#all-revisions[all revisions] are requested.
|
|
|`_more_changes` |optional, not set if `false`|
|
|
Whether the query would deliver more results if not limited. +
|
|
Only set on the last change that is returned.
|
|
|`problems` |optional|
|
|
A list of link:#problem-info[ProblemInfo] entities describing potential
|
|
problems with this change. Only set if link:#check[CHECK] is set.
|
|
|`base_change` |optional|
|
|
A link:#change-id[\{change-id\}] that identifies the base change for a create
|
|
change operation. Only used for the link:#create-change[CreateChange] endpoint.
|
|
|==================================
|
|
|
|
[[change-message-info]]
|
|
=== ChangeMessageInfo
|
|
The `ChangeMessageInfo` entity contains information about a message
|
|
attached to a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==================================
|
|
|Field Name ||Description
|
|
|`id` ||The ID of the message.
|
|
|`author` |optional|
|
|
Author of the message as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity. +
|
|
Unset if written by the Gerrit system.
|
|
|`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",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",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`patch_set` |optional|
|
|
The patch set number for the comment; only set in contexts where +
|
|
comments may be returned for multiple patch sets.
|
|
|`id` ||The URL encoded UUID of the comment.
|
|
|`path` |optional|
|
|
The path of the file for which the inline comment was done. +
|
|
Not set if returned in a map where the key is the file path.
|
|
|`side` |optional|
|
|
The side on which the comment was added. +
|
|
Allowed values are `REVISION` and `PARENT`. +
|
|
If not set, the default is `REVISION`.
|
|
|`line` |optional|
|
|
The number of the line for which the comment was done. +
|
|
If range is set, this equals the end line of the range. +
|
|
If neither line nor range is set, it's a file comment.
|
|
|`range` |optional|
|
|
The range of the comment as a link:#comment-range[CommentRange]
|
|
entity.
|
|
|`in_reply_to` |optional|
|
|
The URL encoded UUID of the comment to which this comment is a reply.
|
|
|`message` |optional|The comment message.
|
|
|`updated` ||
|
|
The link:rest-api.html#timestamp[timestamp] of when this comment was
|
|
written.
|
|
|`author` |optional|
|
|
The author of the message as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity. +
|
|
Unset for draft comments, assumed to be the calling user.
|
|
|===========================
|
|
|
|
[[comment-input]]
|
|
=== CommentInput
|
|
The `CommentInput` entity contains information for creating an inline
|
|
comment.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`id` |optional|
|
|
The URL encoded UUID of the comment if an existing draft comment should
|
|
be updated.
|
|
|`path` |optional|
|
|
The path of the file for which the inline comment should be added. +
|
|
Doesn't need to be set if contained in a map where the key is the file
|
|
path.
|
|
|`side` |optional|
|
|
The side on which the comment should be added. +
|
|
Allowed values are `REVISION` and `PARENT`. +
|
|
If not set, the default is `REVISION`.
|
|
|`line` |optional|
|
|
The number of the line for which the comment should be added. +
|
|
`0` if it is a file comment. +
|
|
If neither line nor range is set, a file comment is added. +
|
|
If range is set, this value is ignored in favor of the `end_line` of the range.
|
|
|`range` |optional|
|
|
The range of the comment as a link:#comment-range[CommentRange]
|
|
entity.
|
|
|`in_reply_to` |optional|
|
|
The URL encoded UUID of the comment to which this comment is a reply.
|
|
|`updated` |optional|
|
|
The link:rest-api.html#timestamp[timestamp] of this comment. +
|
|
Accepted but ignored.
|
|
|`message` |optional|
|
|
The comment message. +
|
|
If not set and an existing draft comment is updated, the existing draft
|
|
comment is deleted.
|
|
|===========================
|
|
|
|
[[comment-range]]
|
|
=== CommentRange
|
|
The `CommentRange` entity describes the range of an inline comment.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`start_line` ||The start line number of the range.
|
|
|`start_character` ||The character position in the start line.
|
|
|`end_line` ||The end line number of the range.
|
|
|`end_character` ||The character position in the end line.
|
|
|===========================
|
|
|
|
[[commit-info]]
|
|
=== CommitInfo
|
|
The `CommitInfo` entity contains information about a commit.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`commit` |The commit ID.
|
|
|`parents` |
|
|
The parent commits of this commit as a list of
|
|
link:#commit-info[CommitInfo] entities. In each parent
|
|
only the `commit` and `subject` fields are populated.
|
|
|`author` |The author of the commit as a
|
|
link:#git-person-info[GitPersonInfo] entity.
|
|
|`committer` |The committer of the commit as a
|
|
link:#git-person-info[GitPersonInfo] entity.
|
|
|`subject` |
|
|
The subject of the commit (header line of the commit message).
|
|
|`message` |The commit message.
|
|
|`web_links` |optional|
|
|
Links to the commit in external sites as a list of
|
|
link:#web-link-info[WebLinkInfo] entities.
|
|
|==========================
|
|
|
|
[[diff-content]]
|
|
=== DiffContent
|
|
The `DiffContent` entity contains information about the content differences
|
|
in a file.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`a` |optional|Content only in the file on side A (deleted in B).
|
|
|`b` |optional|Content only in the file on side B (added in B).
|
|
|`ab` |optional|Content in the file on both sides (unchanged).
|
|
|`edit_a` |only present 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.
|
|
|`common` |optional|Set to `true` if the region is common according
|
|
to the requested ignore-whitespace parameter, but a and b contain
|
|
differing amounts of whitespace. When present and true a and b are
|
|
used instead of ab.
|
|
|==========================
|
|
|
|
[[diff-file-meta-info]]
|
|
=== DiffFileMetaInfo
|
|
The `DiffFileMetaInfo` entity contains meta information about a file diff.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`name` ||The name of the file.
|
|
|`content_type`||The content type of the file.
|
|
|`lines` ||The total number of lines in the file.
|
|
|`web_links` |optional|
|
|
Links to the file in external sites as a list of
|
|
link:rest-api-changes.html#web-link-info[WebLinkInfo] entries.
|
|
|==========================
|
|
|
|
[[diff-info]]
|
|
=== DiffInfo
|
|
The `DiffInfo` entity contains information about the diff of a file
|
|
in a revision.
|
|
|
|
If the link:#weblinks-only[weblinks-only] parameter is specified, only
|
|
the `web_links` field is set.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`meta_a` |not present when the file is added|
|
|
Meta information about the file on side A as a
|
|
link:#diff-file-meta-info[DiffFileMetaInfo] entity.
|
|
|`meta_b` |not present when the file is deleted|
|
|
Meta information about the file on side B as a
|
|
link:#diff-file-meta-info[DiffFileMetaInfo] entity.
|
|
|`change_type` ||The type of change (`ADDED`, `MODIFIED`, `DELETED`, `RENAMED`
|
|
`COPIED`, `REWRITE`).
|
|
|`intraline_status`|only set when the `intraline` parameter was specified in the request|
|
|
Intraline status (`OK`, `ERROR`, `TIMEOUT`).
|
|
|`diff_header` ||A list of strings representing the patch set diff header.
|
|
|`content` ||The content differences in the file as a list of
|
|
link:#diff-content[DiffContent] entities.
|
|
|`web_links` |optional|
|
|
Links to the file diff in external sites as a list of
|
|
link:rest-api-changes.html#diff-web-link-info[DiffWebLinkInfo] entries.
|
|
|`binary` |not set if `false`|Whether the file is binary.
|
|
|==========================
|
|
|
|
[[diff-intraline-info]]
|
|
=== DiffIntralineInfo
|
|
The `DiffIntralineInfo` entity contains information about intraline edits in a
|
|
file.
|
|
|
|
The information consists of a list of `<skip length, 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.
|
|
|
|
[[diff-web-link-info]]
|
|
=== DiffWebLinkInfo
|
|
The `DiffWebLinkInfo` entity describes a link on a diff screen to an
|
|
external site.
|
|
|
|
[options="header",cols="1,6"]
|
|
|=======================
|
|
|Field Name|Description
|
|
|`name` |The link name.
|
|
|`url` |The link URL.
|
|
|`image_url`|URL to the icon of the link.
|
|
|show_on_side_by_side_diff_view|
|
|
Whether the web link should be shown on the side-by-side diff screen.
|
|
|show_on_unified_diff_view|
|
|
Whether the web link should be shown on the unified diff screen.
|
|
|=======================
|
|
|
|
[[edit-file-info]]
|
|
=== EditFileInfo
|
|
The `EditFileInfo` entity contains additional information
|
|
of a file within a change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`web_links` |optional|
|
|
Links to the diff info in external sites as a list of
|
|
link:#web-link-info[WebLinkInfo] entities.
|
|
|===========================
|
|
|
|
[[edit-info]]
|
|
=== EditInfo
|
|
The `EditInfo` entity contains information about a change edit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`commit` ||The commit of change edit as
|
|
link:#commit-info[CommitInfo] entity.
|
|
|`baseRevision`||The revision of the patch set change edit is based on.
|
|
|`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.
|
|
|`files` |optional|
|
|
The files of the change edit as a map that maps the file names to
|
|
link:#file-info[FileInfo] entities.
|
|
|===========================
|
|
|
|
[[fetch-info]]
|
|
=== FetchInfo
|
|
The `FetchInfo` entity contains information about how to fetch a patch
|
|
set via a certain protocol.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|==========================
|
|
|Field Name ||Description
|
|
|`url` ||The URL of the project.
|
|
|`ref` ||The ref of the patch set.
|
|
|`commands` |optional|
|
|
The download commands for this patch set as a map that maps the command
|
|
names to the commands. +
|
|
Only set if link:#download_commands[download commands] are requested.
|
|
|==========================
|
|
|
|
[[file-info]]
|
|
=== FileInfo
|
|
The `FileInfo` entity contains information about a file in a patch set.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|=============================
|
|
|Field Name ||Description
|
|
|`status` |optional|
|
|
The status of the file ("`A`"=Added, "`D`"=Deleted, "`R`"=Renamed,
|
|
"`C`"=Copied, "`W`"=Rewritten). +
|
|
Not set if the file was Modified ("`M`").
|
|
|`binary` |not set if `false`|Whether the file is binary.
|
|
|`old_path` |optional|
|
|
The old file path. +
|
|
Only set if the file was renamed or copied.
|
|
|`lines_inserted`|optional|
|
|
Number of inserted lines. +
|
|
Not set for binary files or if no lines were inserted.
|
|
|`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",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`name` |The name of the author/committer.
|
|
|`email` |The email address of the author/committer.
|
|
|`date` |The link:rest-api.html#timestamp[timestamp] of when
|
|
this identity was constructed.
|
|
|`tz` |The timezone offset from UTC of when this identity was
|
|
constructed.
|
|
|==========================
|
|
|
|
[[group-base-info]]
|
|
=== GroupBaseInfo
|
|
The `GroupBaseInfo` entity contains base information about the group.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`id` |The id of the group.
|
|
|`name` |The name of the group.
|
|
|==========================
|
|
|
|
[[included-in-info]]
|
|
=== IncludedInInfo
|
|
The `IncludedInInfo` entity contains information about the branches a
|
|
change was merged into and tags it was tagged with.
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`branches` | The list of branches this change was merged into.
|
|
Each branch is listed without the 'refs/head/' prefix.
|
|
|`tags` | The list of tags this change was tagged with.
|
|
Each tag is listed without the 'refs/tags/' prefix.
|
|
|==========================
|
|
|
|
[[label-info]]
|
|
=== LabelInfo
|
|
The `LabelInfo` entity contains information about a label on a change, always
|
|
corresponding to the current patch set.
|
|
|
|
There are two options that control the contents of `LabelInfo`:
|
|
link:#labels[`LABELS`] and link:#detailed-labels[`DETAILED_LABELS`].
|
|
|
|
* For a quick summary of the state of labels, use `LABELS`.
|
|
* For detailed information about labels, including exact numeric votes for all
|
|
users and the allowed range of votes for the current user, use `DETAILED_LABELS`.
|
|
|
|
==== Common fields
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`optional` |not set if `false`|
|
|
Whether the label is optional. Optional means the label may be set, but
|
|
it's neither necessary for submission nor does it block submission if
|
|
set.
|
|
|===========================
|
|
|
|
==== Fields set by `LABELS`
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`approved` |optional|One user who approved this label on the change
|
|
(voted the maximum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`rejected` |optional|One user who rejected this label on the change
|
|
(voted the minimum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`recommended` |optional|One user who recommended this label on the
|
|
change (voted positively, but not the maximum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`disliked` |optional|One user who disliked this label on the change
|
|
(voted negatively, but not the minimum value) as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`blocking` |optional|If `true`, the label blocks submit operation.
|
|
If not set, the default is false.
|
|
|`value` |optional|The voting value of the user who
|
|
recommended/disliked this label on the change if it is not
|
|
"`+1`"/"`-1`".
|
|
|`default_value`|optional|The default voting value for the label.
|
|
This value may be outside the range specified in permitted_labels.
|
|
|===========================
|
|
|
|
==== Fields set by `DETAILED_LABELS`
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`all` |optional|List of all approvals for this label as a list
|
|
of link:#approval-info[ApprovalInfo] entities.
|
|
|`values` |optional|A map of all values that are allowed for this
|
|
label. The map maps the values ("`-2`", "`-1`", " `0`", "`+1`", "`+2`")
|
|
to the value descriptions.
|
|
|===========================
|
|
|
|
[[mergeable-info]]
|
|
=== MergeableInfo
|
|
The `MergeableInfo` entity contains information about the mergeability of a
|
|
change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|============================
|
|
|Field Name ||Description
|
|
|`submit_type` ||
|
|
Submit type used for this change, can be `MERGE_IF_NECESSARY`,
|
|
`FAST_FORWARD_ONLY`, `REBASE_IF_NECESSARY`, `MERGE_ALWAYS` or
|
|
`CHERRY_PICK`.
|
|
|`mergeable` ||
|
|
`true` if this change is cleanly mergeable, `false` otherwise
|
|
|`mergeable_into`|optional|
|
|
A list of other branch names where this change could merge cleanly
|
|
|============================
|
|
|
|
[[problem-info]]
|
|
=== ProblemInfo
|
|
The `ProblemInfo` entity contains a description of a potential consistency problem
|
|
with a change. These are not related to the code review process, but rather
|
|
indicate some inconsistency in Gerrit's database or repository metadata related
|
|
to the enclosing change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name||Description
|
|
|`message` ||Plaintext message describing the problem with the change.
|
|
|`status` |optional|
|
|
The status of fixing the problem (`FIXED`, `FIX_FAILED`). Only set if a
|
|
fix was attempted.
|
|
|`outcome` |optional|
|
|
If `status` is set, an additional plaintext message describing the
|
|
outcome of the fix.
|
|
|===========================
|
|
|
|
[[rebase-input]]
|
|
=== RebaseInput
|
|
The `RebaseInput` entity contains information for changing parent when rebasing.
|
|
|
|
[options="header",width="50%",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`base` |optional|
|
|
The new parent revision. This can be a ref or a SHA1 to a concrete patchset. +
|
|
Alternatively, a change number can be specified, in which case the current
|
|
patch set is inferred. +
|
|
Empty string is used for rebasing directly on top of the target branch,
|
|
which effectively breaks dependency towards a parent change.
|
|
|===========================
|
|
|
|
[[related-change-and-commit-info]]
|
|
=== RelatedChangeAndCommitInfo
|
|
|
|
The `RelatedChangeAndCommitInfo` entity contains information about
|
|
a related change and commit.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`change_id` |optional|The Change-Id of the change.
|
|
|`commit` ||The commit as a
|
|
link:#commit-info[CommitInfo] entity.
|
|
|`_change_number` |optional|The change number.
|
|
|`_revision_number` |optional|The revision number.
|
|
|`_current_revision_number`|optional|The current revision number.
|
|
|===========================
|
|
|
|
[[related-changes-info]]
|
|
=== RelatedChangesInfo
|
|
The `RelatedChangesInfo` entity contains information about related
|
|
changes.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`changes` |A list of
|
|
link:#related-change-and-commit-info[RelatedChangeAndCommitInfo] entities
|
|
describing the related changes. Sorted by git commit order, newest to
|
|
oldest. Empty if there are no related changes.
|
|
|===========================
|
|
|
|
[[restore-input]]
|
|
=== RestoreInput
|
|
The `RestoreInput` entity contains information for restoring a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when restoring the
|
|
change.
|
|
|===========================
|
|
|
|
[[revert-input]]
|
|
=== RevertInput
|
|
The `RevertInput` entity contains information for reverting a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
Message to be added as review comment to the change when reverting the
|
|
change.
|
|
|===========================
|
|
|
|
[[review-info]]
|
|
=== ReviewInfo
|
|
The `ReviewInfo` entity contains information about a review.
|
|
|
|
[options="header",cols="1,6"]
|
|
|===========================
|
|
|Field Name |Description
|
|
|`labels` |
|
|
The labels of the review as a map that maps the label names to the
|
|
voting values.
|
|
|===========================
|
|
|
|
[[review-input]]
|
|
=== ReviewInput
|
|
The `ReviewInput` entity contains information for adding a review to a
|
|
revision.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|============================
|
|
|Field Name ||Description
|
|
|`message` |optional|
|
|
The message to be added as review comment.
|
|
|`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`, `PUBLISH_ALL_REVISIONS` and
|
|
`KEEP`. All values except `PUBLISH_ALL_REVISIONS` operate only on drafts
|
|
for a single revision. +
|
|
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.
|
|
|============================
|
|
|
|
[[reviewer-info]]
|
|
=== ReviewerInfo
|
|
The `ReviewerInfo` entity contains information about a reviewer and its
|
|
votes on a change.
|
|
|
|
`ReviewerInfo` has the same fields as
|
|
link:rest-api-accounts.html#account-info[AccountInfo] and includes
|
|
link:#detailed-accounts[detailed account information].
|
|
In addition `ReviewerInfo` has the following fields:
|
|
|
|
[options="header",cols="1,6"]
|
|
|==========================
|
|
|Field Name |Description
|
|
|`approvals` |
|
|
The approvals of the reviewer as a map that maps the label names to the
|
|
approval values ("`-2`", "`-1`", "`0`", "`+1`", "`+2`").
|
|
|==========================
|
|
|
|
[[reviewer-input]]
|
|
=== ReviewerInput
|
|
The `ReviewerInput` entity contains information for adding a reviewer
|
|
to a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`reviewer` ||
|
|
The link:rest-api-accounts.html#account-id[ID] of one account that
|
|
should be added as reviewer or the link:rest-api-groups.html#group-id[
|
|
ID] of one 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.
|
|
Not all fields are returned by default. Additional fields can
|
|
be obtained by adding `o` parameters as described in
|
|
link:#list-changes[Query Changes].
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`draft` |not set if `false`|Whether the patch set is a draft.
|
|
|`has_draft_comments` |not set if `false`|Whether the patch
|
|
set has one or more draft comments by the calling user. Only set if
|
|
link:#draft_comments[DRAFT_COMMENTS] option is requested.
|
|
|`_number` ||The patch set number.
|
|
|`created` ||
|
|
The link:rest-api.html#timestamp[timestamp] of when the patch set was
|
|
created.
|
|
|`uploader` ||
|
|
The uploader of the patch set as an
|
|
link:rest-api-accounts.html#account-info[AccountInfo] entity.
|
|
|`ref` ||The Git reference for the patch set.
|
|
|`fetch` ||
|
|
Information about how to fetch this patch set. The fetch information is
|
|
provided as a map that maps the protocol name ("`git`", "`http`",
|
|
"`ssh`") to link:#fetch-info[FetchInfo] entities. This information is
|
|
only included if a plugin implementing the
|
|
link:intro-project-owner.html#download-commands[download commands]
|
|
interface is installed.
|
|
|`commit` |optional|The commit of the patch set as
|
|
link:#commit-info[CommitInfo] entity.
|
|
|`files` |optional|
|
|
The files of the patch set as a map that maps the file names to
|
|
link:#file-info[FileInfo] entities. Only set if
|
|
link:#current-files[CURRENT_FILES] or link:#all-files[ALL_FILES]
|
|
option is requested.
|
|
|`actions` |optional|
|
|
Actions the caller might be able to perform on this revision. The
|
|
information is a map of view name to link:#action-info[ActionInfo]
|
|
entities.
|
|
|`reviewed` |optional|
|
|
Indicates whether the caller is authenticated and has commented on the
|
|
current revision. Only set if link:#reviewed[REVIEWED] option is requested.
|
|
|`messageWithFooter` |optional|
|
|
If the link:#commit-footers[COMMIT_FOOTERS] option is requested and
|
|
this is the current patch set, contains the full commit message with
|
|
Gerrit-specific commit footers, as if this revision were submitted
|
|
using the link:project-configuration.html#cherry_pick[Cherry Pick]
|
|
submit type.
|
|
|===========================
|
|
|
|
[[rule-input]]
|
|
=== RuleInput
|
|
The `RuleInput` entity contains information to test a Prolog rule.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`rule`||
|
|
Prolog code to execute instead of the code in `refs/meta/config`.
|
|
|`filters`|`RUN` if not set|
|
|
When `RUN` filter rules in the parent projects are called to
|
|
post-process the results of the project specific rule. This
|
|
behavior matches how the rule will execute if installed. +
|
|
If `SKIP` the parent filters are not called, allowing the test
|
|
to return results from the input rule.
|
|
|===========================
|
|
|
|
[[submit-info]]
|
|
=== SubmitInfo
|
|
The `SubmitInfo` entity contains information about the change status
|
|
after submitting.
|
|
|
|
[options="header",cols="1,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.
|
|
|`on_behalf_of`|optional|
|
|
The link:rest-api-accounts.html#account-id[\{account-id\}] of the user on
|
|
whose behalf the action should be done. To use this option the caller must
|
|
have been granted both `Submit` and `Submit (On Behalf Of)` permissions.
|
|
The user named by `on_behalf_of` does not need to be granted the `Submit`
|
|
permission. This feature is aimed for CI solutions: the CI account can be
|
|
granted both permssions, so individual users don't need `Submit` permission
|
|
themselves. Still the changes can be submited on behalf of real users and
|
|
not with the identity of the CI account.
|
|
|==========================
|
|
|
|
[[submit-input]]
|
|
=== SubmitInput
|
|
The `SubmitInput` entity contains information for submitting a change.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`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",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.
|
|
|===========================
|
|
|
|
[[suggested-reviewer-info]]
|
|
=== SuggestedReviewerInfo
|
|
The `SuggestedReviewerInfo` entity contains information about a reviewer
|
|
that can be added to a change (an account or a group).
|
|
|
|
`SuggestedReviewerInfo` has either the `account` field that contains
|
|
the link:rest-api-accounts.html#account-info[AccountInfo] entity, or
|
|
the `group` field that contains the
|
|
link:rest-api-changes.html#group-base-info[GroupBaseInfo] entity.
|
|
|
|
[[topic-input]]
|
|
=== TopicInput
|
|
The `TopicInput` entity contains information for setting a topic.
|
|
|
|
[options="header",cols="1,^1,5"]
|
|
|===========================
|
|
|Field Name ||Description
|
|
|`topic` |optional|The topic. +
|
|
The topic will be deleted if not set.
|
|
|===========================
|
|
|
|
[[web-link-info]]
|
|
=== WebLinkInfo
|
|
The `WebLinkInfo` entity describes a link to an external site.
|
|
|
|
[options="header",cols="1,6"]
|
|
|======================
|
|
|Field Name|Description
|
|
|`name` |The link name.
|
|
|`url` |The link URL.
|
|
|`image_url`|URL to the icon of the link.
|
|
|======================
|
|
|
|
GERRIT
|
|
------
|
|
Part of link:index.html[Gerrit Code Review]
|
|
|
|
SEARCHBOX
|
|
---------
|