This page describes the change related REST endpoints. Please also take note of the general information on the REST API.
Change Endpoints
Create Change
'POST /changes'
The 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
.
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 ChangeInfo entity is returned that describes the resulting change.
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" } }
Query Changes
'GET /changes/'
Queries changes visible to the caller. The
query string must be provided
by the q
parameter. The n
parameter can be used to limit the
returned results.
As result a list of 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:
GET /changes/?q=status:open+is:watched&n=2 HTTP/1.0
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 that retrieves changes for a user’s dashboard:
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
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": {} } } ], [], [] ]
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
: a summary of each label required for submit, and approvers that have granted (or rejected) with that label.
-
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
: describe the current revision (patch set) of the change, including the commit SHA-1 and URLs to fetch from.
-
ALL_REVISIONS
: describe all revisions, not just current.
-
DOWNLOAD_COMMANDS
: include thecommands
field in the FetchInfo for revisions. Only valid when theCURRENT_REVISION
orALL_REVISIONS
option is selected.
-
DRAFT_COMMENTS
: include thehas_draft_comments
field for revisions. Only valid when theCURRENT_REVISION
orALL_REVISIONS
option is selected.
-
CURRENT_COMMIT
: parse and output all header fields from the commit object, including message. Only valid when theCURRENT_REVISION
orALL_REVISIONS
option is selected.
-
ALL_COMMITS
: parse and output all header fields from the output revisions. If onlyCURRENT_REVISION
was requested then only the current revision’s commit data will be output.
-
CURRENT_FILES
: list files modified by the commit, including basic line counts inserted/deleted per file. Only valid when theCURRENT_REVISION
orALL_REVISIONS
option is selected.
-
ALL_FILES
: list files modified by the commit, including basic line counts inserted/deleted per file. If only theCURRENT_REVISION
was requested then only that commit’s modified files will be output.
-
DETAILED_ACCOUNTS
: include_account_id
,email
andusername
fields when referencing accounts.
-
MESSAGES
: include messages associated with the change.
-
CURRENT_ACTIONS
: include information on available actions for the change and its current revision. Ignored if the caller is not authenticated.
-
CHANGE_ACTIONS
: include information on available change actions for the change. Ignored if the caller is not authenticated.
-
REVIEWED
: include thereviewed
field if the caller is authenticated and has commented on the current revision.
-
WEB_LINKS
: include theweb_links
field in CommitInfo, therefore only valid in combination withCURRENT_COMMIT
orALL_COMMITS
.
-
CHECK
: include potential problems with the change.
GET /changes/?q=97&o=CURRENT_REVISION&o=CURRENT_COMMIT&o=CURRENT_FILES&o=DOWNLOAD_COMMANDS HTTP/1.0
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 /changes/{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 Query Changes.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0
As response a ChangeInfo entity is returned that describes the change.
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 /changes/{change-id}/detail'
Retrieves a change with labels, detailed labels, detailed accounts, and 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 Query Changes.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/detail HTTP/1.0
As response a 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.
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 /changes/{change-id}/topic'
Retrieves the topic of a change.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
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
'PUT /changes/{change-id}/topic'
Sets the topic of a change.
The new topic must be provided in the request body inside a TopicInput entity.
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.
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 /changes/{change-id}/topic'
Deletes the topic of a change.
The request body does not need to include a 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 PUT to delete the topic.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
HTTP/1.1 204 No Content
Abandon Change
'POST /changes/{change-id}/abandon'
Abandons a change.
The request body does not need to include a AbandonInput entity if no review comment is added.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/abandon HTTP/1.0
As response a ChangeInfo entity is returned that describes the abandoned change.
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.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 change is merged
Restore Change
'POST /changes/{change-id}/restore'
Restores a change.
The request body does not need to include a RestoreInput entity if no review comment is added.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/restore HTTP/1.0
As response a ChangeInfo entity is returned that describes the restored change.
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.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 change is new
Rebase Change
'POST /changes/{change-id}/rebase'
Rebases a change.
Optionally, the parent revision can be changed to another patch set through the RebaseInput entity.
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/rebase HTTP/1.0 Content-Type: application/json;charset=UTF-8 { "base" : "1234", }
As response a ChangeInfo entity is returned that describes the rebased change. Information about the current patch set is included.
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.
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
'POST /changes/{change-id}/revert'
Reverts a change.
The request body does not need to include a RevertInput entity if no review comment is added.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revert HTTP/1.0
As response a ChangeInfo entity is returned that describes the reverting change.
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.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 change is new
Submit Change
'POST /changes/{change-id}/submit'
Submits a change.
The request body only needs to include a SubmitInput entity if the request should wait for the merge to complete.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/submit HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "wait_for_merge": true }
As response a ChangeInfo entity is returned that describes the submitted/merged change.
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.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 blocked by Verified
Publish Draft Change
'POST /changes/{change-id}/publish'
Publishes a draft change.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/publish HTTP/1.0 Content-Type: application/json; charset=UTF-8
HTTP/1.1 204 No Content
Delete Draft Change
'DELETE /changes/{change-id}'
Deletes a draft change.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0 Content-Type: application/json; charset=UTF-8
HTTP/1.1 204 No Content
Get Included In
'GET /changes/{change-id}/in'
Retrieves the branches and tags in which a change is included. As result an IncludedInInfo entity is returned.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/in HTTP/1.0
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "branches": [ "master" ], "tags": [] }
Index Change
'POST /changes/{change-id}/index'
Adds or updates the change in the secondary index.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/index HTTP/1.0
HTTP/1.1 204 No Content
Check change
'GET /changes/{change-id}/check'
Performs consistency checks on the change, and returns a
ChangeInfo entity with the problems
field set to a
list of 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.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/check HTTP/1.0
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
'POST /changes/{change-id}/check'
Performs consistency checks on the change as with 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.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/check HTTP/1.0
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" } ] }
Change Edit Endpoints
These endpoints are considered to be unstable and can be changed in backwards incompatible way any time without notice.
Get Change Edit Details
'GET /changes/{change-id}/edit
Retrieves a change edit details.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
As response an 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.
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 ..." }, }
Change file content in Change Edit
'PUT /changes/{change-id}/edit/path%2fto%2ffile
Put content of a file to a change edit.
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.
HTTP/1.1 204 No Content
Restore file content or rename files in Change Edit
'POST /changes/{change-id}/edit
Creates empty change edit, restores file content or renames files in change edit. The request body needs to include a ChangeEditInput entity when a file within change edit should be restored or old and new file names to rename a file.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "restore_path": "foo" }
or for rename:
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.
HTTP/1.1 204 No Content
Change commit message in Change Edit
'PUT /changes/{change-id}/edit:message
Modify commit message. The request body needs to include a ChangeEditMessageInput entity.
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.
HTTP/1.1 204 No Content
Delete file in Change Edit
'DELETE /changes/{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.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
When change edit doesn’t exist for this change yet it is created.
HTTP/1.1 204 No Content
Retrieve file content from Change Edit
'GET /changes/{change-id}/edit/path%2fto%2ffile
Retrieves content of a file from a change edit.
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.
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
.
Retrieve meta data of a file from Change Edit
'GET /changes/{change-id}/edit/path%2fto%2ffile/meta
Retrieves meta data of a file from a change edit. Currently only web links are returned.
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 EditFileInfo entity is returned.
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" } ]}
Retrieve commit message from Change Edit or current patch set of the change
'GET /changes/{change-id}/edit:message
Retrieves commit message from change edit.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:message HTTP/1.0
The commit message is returned as base64 encoded string.
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:
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 Change Edit
'POST /changes/{change-id}/edit:publish
Promotes change edit to a regular patch set.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:publish HTTP/1.0
As response “204 No Content” is returned.
HTTP/1.1 204 No Content
Rebase Change Edit
'POST /changes/{change-id}/edit:rebase
Rebases change edit on top of latest patch set.
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.
HTTP/1.1 204 No Content
Delete Change Edit
'DELETE /changes/{change-id}/edit'
Deletes change edit.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit HTTP/1.0
As response “204 No Content” is returned.
HTTP/1.1 204 No Content
Reviewer Endpoints
List Reviewers
'GET /changes/{change-id}/reviewers/'
Lists the reviewers of a change.
As result a list of ReviewerInfo entries is returned.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/ HTTP/1.0
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
'GET /changes/{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 SuggestedReviewerInfo entries is returned.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/suggest_reviewers?q=J HTTP/1.0
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 /changes/{change-id}/reviewers/{account-id}'
Retrieves a reviewer of a change.
As response a ReviewerInfo entity is returned that describes the reviewer.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/john.doe@example.com HTTP/1.0
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
'POST /changes/{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 ReviewerInput entity.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "reviewer": "john.doe@example.com" }
As response an AddReviewerResult entity is returned that describes the newly added reviewers.
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.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "reviewer": "MyProjectVerifiers" }
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.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "reviewer": "MyProjectVerifiers", "confirmed": true }
Delete Reviewer
'DELETE /changes/{change-id}/reviewers/{account-id}'
Deletes a reviewer from a change.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe HTTP/1.0
HTTP/1.1 204 No Content
Revision Endpoints
Get Commit
'GET /changes/{change-id}/revisions/{revision-id}/commit'
Retrieves a parsed commit of a revision.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/commit HTTP/1.0
As response a CommitInfo entity is returned that describes the revision.
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 CommitInfo with the additional field web_links
.
Get Revision Actions
'GET /changes/{change-id}/revisions/{revision-id}/actions'
Retrieves revision actions of the revision of a change.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/actions' HTTP/1.0
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 ActionInfo.
Get Review
'GET /changes/{change-id}/revisions/{revision-id}/review'
Retrieves a review of a revision.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0
As response a ChangeInfo entity with
detailed labels and
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.
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 /changes/{change-id}/revisions/{revision-id}/related'
Retrieves related changes of a revision. Related changes are changes that either depend on, or are dependencies of the revision.
GET /changes/gerrit~master~I5e4fc08ce34d33c090c9e0bf320de1b17309f774/revisions/b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe/related HTTP/1.0
As result a RelatedChangesInfo entity is returned describing the related changes.
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
'POST /changes/{change-id}/revisions/{revision-id}/review'
Sets a review on a revision.
The review must be provided in the request body as a ReviewInput entity.
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 ReviewInfo entity is returned that describes the applied labels.
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
'POST /changes/{change-id}/revisions/{revision-id}/rebase'
Rebases a revision.
Optionally, the parent revision can be changed to another patch set through the RebaseInput entity.
POST /changes/myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/rebase HTTP/1.0 Content-Type: application/json;charset=UTF-8 { "base" : "1234", }
As response a ChangeInfo entity is returned that describes the rebased change. Information about the current patch set is included.
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.
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
'POST /changes/{change-id}/revisions/{revision-id}/submit'
Submits a revision.
The request body only needs to include a SubmitInput entity if the request should wait for the merge to complete.
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 SubmitInfo entity is returned that describes the status of the submitted change.
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.
HTTP/1.1 409 Conflict Content-Type: text/plain; charset=UTF-8 "revision 674ac754f91e64a0efb8087e59a176484bd534d1 is not current revision"
Publish Draft Revision
'POST /changes/{change-id}/revisions/{revision-id}/publish'
Publishes a draft revision.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/publish HTTP/1.0 Content-Type: application/json; charset=UTF-8
HTTP/1.1 204 No Content
Delete Draft Revision
'DELETE /changes/{change-id}/revisions/{revision-id}'
Deletes a draft revision.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1 HTTP/1.0 Content-Type: application/json; charset=UTF-8
HTTP/1.1 204 No Content
Get Patch
'GET /changes/{change-id}/revisions/{revision-id}/patch'
Gets the formatted patch for one revision.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/patch HTTP/1.0
The formatted patch is returned as text encoded inside base64:
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 /changes/{change-id}/revisions/{revision-id}/mergeable'
Gets the method the server will use to submit (merge) the change and an indicator if the change is currently mergeable.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/mergeable HTTP/1.0
As response a MergeableInfo entity is returned.
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.
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.
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 /changes/{change-id}/revisions/{revision-id}/submit_type'
Gets the method the server will use to submit (merge) the change.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/submit_type HTTP/1.0
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "MERGE_IF_NECESSARY"
Test Submit Type
'POST /changes/{change-id}/revisions/{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
RuleInput object. The query parameter filters
may be set to SKIP
to bypass parent project filters while testing
a project-specific rule.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/test.submit_type HTTP/1.0 Content-Type: text/plain; charset-UTF-8 submit_type(cherry_pick).
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "CHERRY_PICK"
Test Submit Rule
'POST /changes/{change-id}/revisions/{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
RuleInput object. The query parameter filters
may be set to SKIP
to bypass parent project filters while testing
a project-specific rule.
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 SubmitRecord entries describing the permutations that satisfy the tested submit rule.
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
'GET /changes/{change-id}/revisions/{revision-id}/drafts/'
Lists the draft comments of a revision that belong to the calling user.
As result a map is returned that maps the file path to a list of CommentInfo entries. The entries in the map are sorted by file path.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/ HTTP/1.0
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
'PUT /changes/{change-id}/revisions/{revision-id}/drafts'
Creates a draft comment on a revision.
The new draft comment must be provided in the request body inside a CommentInput entity.
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 CommentInfo entity is returned that describes the draft comment.
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 /changes/{change-id}/revisions/{revision-id}/drafts/{draft-id}'
Retrieves a draft comment of a revision that belongs to the calling user.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
As response a CommentInfo entity is returned that describes the draft comment.
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
'PUT /changes/{change-id}/revisions/{revision-id}/drafts/{draft-id}'
Updates a draft comment on a revision.
The new draft comment must be provided in the request body inside a CommentInput entity.
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 CommentInfo entity is returned that describes the draft comment.
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 /changes/{change-id}/revisions/{revision-id}/drafts/{draft-id}'
Deletes a draft comment from a revision.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/drafts/TvcXrmjM HTTP/1.0
HTTP/1.1 204 No Content
List Comments
'GET /changes/{change-id}/revisions/{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 CommentInfo entries. The entries in the map are sorted by file path and only include file (or inline) comments. Use the Get Change Detail endpoint to retrieve the general change message (or comment).
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/ HTTP/1.0
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 /changes/{change-id}/revisions/{revision-id}/comments/{comment-id}'
Retrieves a published comment of a revision.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/TvcXrmjM HTTP/1.0
As response a CommentInfo entity is returned that describes the published comment.
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
'GET /changes/{change-id}/revisions/{revision-id}/files/'
Lists the files that were modified, added or deleted in a revision.
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 FileInfo entries. The entries in the map are sorted by file path.
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.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/?reviewed HTTP/1.0
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 /changes/{change-id}/revisions/{revision-id}/files/{file-id}/content'
Gets the content of a file from a certain revision.
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.
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 /changes/{change-id}/revisions/{revision-id}/files/{file-id}/diff'
Gets the diff of a file from a certain revision.
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 DiffInfo entity is returned that describes the diff.
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.
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
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.
If the weblinks-only
parameter is specified, only the diff web links are returned.
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
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
'PUT /changes/{change-id}/revisions/{revision-id}/files/{file-id}/reviewed'
Marks a file of a revision as reviewed by the calling user.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/reviewed HTTP/1.0
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 /changes/{change-id}/revisions/{revision-id}/files/{file-id}/reviewed'
Deletes the reviewed flag of the calling user from a file of a revision.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/reviewed HTTP/1.0
HTTP/1.1 204 No Content
Cherry Pick Revision
'POST /changes/{change-id}/revisions/{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 CherryPickInput entity.
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 ChangeInfo entity is returned that describes the resulting cherry picked change.
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
{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}
UUID of a published comment.
{draft-id}
UUID of a draft comment.
{file-id}
The path of the file.
{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
AbandonInput
The AbandonInput
entity contains information for abandoning a change.
Field Name | Description | |
---|---|---|
|
optional |
Message to be added as review comment to the change when abandoning the change. |
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.
Field Name | Description | |
---|---|---|
|
optional |
HTTP method to use with the action. Most actions use |
|
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. |
|
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. |
|
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. |
AddReviewerResult
The AddReviewerResult
entity describes the result of adding a
reviewer to a change.
Field Name | Description | |
---|---|---|
|
optional |
The newly added reviewers as a list of ReviewerInfo entities. |
|
optional |
Error message explaining why the reviewer could not be added. |
|
|
Whether adding the reviewer requires confirmation. |
ApprovalInfo
The ApprovalInfo
entity contains information about an approval from a
user for a label on a change.
ApprovalInfo
has the same fields as
AccountInfo.
In addition ApprovalInfo
has the following fields:
Field Name | Description | |
---|---|---|
|
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. |
|
optional |
The time and date describing when the approval was made. |
ChangeEditInput
The ChangeEditInput
entity contains information for restoring a
path within change edit.
Field Name | Description | |
---|---|---|
|
optional |
Path to file to restore. |
|
optional |
Old path to file to rename. |
|
optional |
New path to file to rename. |
ChangeEditMessageInput
The ChangeEditMessageInput
entity contains information for changing
the commit message within a change edit.
Field Name | Description | |
---|---|---|
|
New commit message. |
ChangeInfo
The ChangeInfo
entity contains information about a change.
Field Name | Description | |
---|---|---|
|
The ID of the change in the format "'<project>~<branch>~<Change-Id>'",
where 'project', 'branch' and 'Change-Id' are URL encoded. For 'branch' the
|
|
|
The name of the project. |
|
|
The name of the target branch. |
|
|
optional |
The topic to which this change belongs. |
|
The Change-Id of the change. |
|
|
The subject of the change (header line of the commit message). |
|
|
The status of the change ( |
|
|
The timestamp of when the change was created. |
|
|
The timestamp of when the change was last updated. |
|
|
not set if |
Whether the calling user has starred this change. |
|
not set if |
Whether the change was reviewed by the calling user. Only set if reviewed is requested. |
|
optional |
Whether the change is mergeable. |
|
Number of inserted lines. |
|
|
Number of deleted lines. |
|
|
The legacy numeric ID of the change. |
|
|
The owner of the change as an AccountInfo entity. |
|
|
optional |
Actions the caller might be able to perform on this revision. The information is a map of view name to ActionInfo entities. |
|
optional |
The labels of the change as a map that maps the label names to
LabelInfo entries. |
|
optional |
A map of the permitted labels that maps a label name to the list of
values that are allowed for that label. |
|
optional |
The reviewers that can be removed by the calling user as a list of
AccountInfo entities. |
|
optional |
Messages associated with the change as a list of
ChangeMessageInfo entities. |
|
optional |
The commit ID of the current patch set of this change. |
|
optional |
All patch sets of this change as a map that maps the commit ID of the
patch set to a RevisionInfo entity. |
|
optional, not set if |
Whether the query would deliver more results if not limited. |
|
optional |
A list of ProblemInfo entities describing potential problems with this change. Only set if CHECK is set. |
|
optional |
A {change-id} that identifies the base change for a create change operation. Only used for the CreateChange endpoint. |
ChangeMessageInfo
The ChangeMessageInfo
entity contains information about a message
attached to a change.
Field Name | Description | |
---|---|---|
|
The ID of the message. |
|
|
optional |
Author of the message as an
AccountInfo entity. |
|
The timestamp this message was posted. |
|
|
The text left by the user. |
|
|
optional |
Which patchset (if any) generated this message. |
CherryPickInput
The CherryPickInput
entity contains information for cherry-picking a change to a new branch.
Field Name | Description |
---|---|
|
Commit message for the cherry-picked change |
|
Destination branch |
CommentInfo
The CommentInfo
entity contains information about an inline comment.
Field Name | Description | |
---|---|---|
|
The URL encoded UUID of the comment. |
|
|
optional |
The path of the file for which the inline comment was done. |
|
optional |
The side on which the comment was added. |
|
optional |
The number of the line for which the comment was done. |
|
optional |
The range of the comment as a CommentRange entity. |
|
optional |
The URL encoded UUID of the comment to which this comment is a reply. |
|
optional |
The comment message. |
|
The timestamp of when this comment was written. |
|
|
optional |
The author of the message as an
AccountInfo entity. |
CommentInput
The CommentInput
entity contains information for creating an inline
comment.
Field Name | Description | |
---|---|---|
|
optional |
The URL encoded UUID of the comment if an existing draft comment should be updated. |
|
optional |
The path of the file for which the inline comment should be added. |
|
optional |
The side on which the comment should be added. |
|
optional |
The number of the line for which the comment should be added. |
|
optional |
The range of the comment as a CommentRange entity. |
|
optional |
The URL encoded UUID of the comment to which this comment is a reply. |
|
optional |
The timestamp of this comment. |
|
optional |
The comment message. |
CommentRange
The CommentRange
entity describes the range of an inline comment.
Field Name | Description | |
---|---|---|
|
The start line number of the range. |
|
|
The character position in the start line. |
|
|
The end line number of the range. |
|
|
The character position in the end line. |
CommitInfo
The CommitInfo
entity contains information about a commit.
Field Name | Description |
---|---|
|
The commit ID. |
|
The parent commits of this commit as a list of
CommitInfo entities. In each parent
only the |
|
The author of the commit as a GitPersonInfo entity. |
|
The committer of the commit as a GitPersonInfo entity. |
|
The subject of the commit (header line of the commit message). |
|
The commit message. |
|
optional |
DiffContent
The DiffContent
entity contains information about the content differences
in a file.
Field Name | Description | |
---|---|---|
|
optional |
Content only in the file on side A (deleted in B). |
|
optional |
Content only in the file on side B (added in B). |
|
optional |
Content in the file on both sides (unchanged). |
|
only present during a replace, i.e. both |
Text sections deleted from side A as a DiffIntralineInfo entity. |
|
only present during a replace, i.e. both |
Text sections inserted in side B as a DiffIntralineInfo entity. |
|
optional |
count of lines skipped on both sides when the file is too large to include all common lines. |
|
optional |
Set to |
DiffFileMetaInfo
The DiffFileMetaInfo
entity contains meta information about a file diff.
Field Name | Description | |
---|---|---|
|
The name of the file. |
|
|
The content type of the file. |
|
|
The total number of lines in the file. |
|
|
optional |
Links to the file in external sites as a list of WebLinkInfo entries. |
DiffInfo
The DiffInfo
entity contains information about the diff of a file
in a revision.
If the weblinks-only parameter is specified, only
the web_links
field is set.
Field Name | Description | |
---|---|---|
|
not present when the file is added |
Meta information about the file on side A as a DiffFileMetaInfo entity. |
|
not present when the file is deleted |
Meta information about the file on side B as a DiffFileMetaInfo entity. |
|
The type of change ( |
|
|
only set when the |
Intraline status ( |
|
A list of strings representing the patch set diff header. |
|
|
The content differences in the file as a list of DiffContent entities. |
|
|
optional |
Links to the file diff in external sites as a list of DiffWebLinkInfo entries. |
|
not set if |
Whether the file is binary. |
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.
DiffWebLinkInfo
The DiffWebLinkInfo
entity describes a link on a diff screen to an
external site.
Field Name | Description |
---|---|
|
The link name. |
|
The link 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. |
EditFileInfo
The EditFileInfo
entity contains additional information
of a file within a change edit.
Field Name | Description | |
---|---|---|
|
optional |
Links to the diff info in external sites as a list of WebLinkInfo entities. |
EditInfo
The EditInfo
entity contains information about a change edit.
Field Name | Description | |
---|---|---|
|
The commit of change edit as CommitInfo entity. |
|
|
The revision of the patch set change edit is based on. |
|
|
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 FetchInfo entities. |
|
|
optional |
The files of the change edit as a map that maps the file names to FileInfo entities. |
FetchInfo
The FetchInfo
entity contains information about how to fetch a patch
set via a certain protocol.
Field Name | Description | |
---|---|---|
|
The URL of the project. |
|
|
The ref of the patch set. |
|
|
optional |
The download commands for this patch set as a map that maps the command
names to the commands. |
FileInfo
The FileInfo
entity contains information about a file in a patch set.
Field Name | Description | |
---|---|---|
|
optional |
The status of the file (“A”=Added, “D”=Deleted, “R”=Renamed,
“C”=Copied, “W”=Rewritten). |
|
not set if |
Whether the file is binary. |
|
optional |
The old file path. |
|
optional |
Number of inserted lines. |
|
optional |
Number of deleted lines. |
GitPersonInfo
The GitPersonInfo
entity contains information about the
author/committer of a commit.
Field Name | Description |
---|---|
|
The name of the author/committer. |
|
The email address of the author/committer. |
|
The timestamp of when this identity was constructed. |
|
The timezone offset from UTC of when this identity was constructed. |
GroupBaseInfo
The GroupBaseInfo
entity contains base information about the group.
Field Name | Description |
---|---|
|
The id of the group. |
|
The name of the group. |
IncludedInInfo
The IncludedInInfo
entity contains information about the branches a
change was merged into and tags it was tagged with.
Field Name | Description |
---|---|
|
The list of branches this change was merged into. Each branch is listed without the 'refs/head/' prefix. |
|
The list of tags this change was tagged with. Each tag is listed without the 'refs/tags/' prefix. |
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
:
LABELS
and 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
Field Name | Description | |
---|---|---|
|
not set if |
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
Field Name | Description | |
---|---|---|
|
optional |
One user who approved this label on the change (voted the maximum value) as an AccountInfo entity. |
|
optional |
One user who rejected this label on the change (voted the minimum value) as an AccountInfo entity. |
|
optional |
One user who recommended this label on the change (voted positively, but not the maximum value) as an AccountInfo entity. |
|
optional |
One user who disliked this label on the change (voted negatively, but not the minimum value) as an AccountInfo entity. |
|
optional |
If |
|
optional |
The voting value of the user who recommended/disliked this label on the change if it is not “+1”/“-1”. |
|
optional |
The default voting value for the label. This value may be outside the range specified in permitted_labels. |
Fields set by DETAILED_LABELS
Field Name | Description | |
---|---|---|
|
optional |
List of all approvals for this label as a list of ApprovalInfo entities. |
|
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. |
MergeableInfo
The MergeableInfo
entity contains information about the mergeability of a
change.
Field Name | Description | |
---|---|---|
|
Submit type used for this change, can be |
|
|
|
|
|
optional |
A list of other branch names where this change could merge cleanly |
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.
Field Name | Description | |
---|---|---|
|
Plaintext message describing the problem with the change. |
|
|
optional |
The status of fixing the problem ( |
|
optional |
If |
RebaseInput
The RebaseInput
entity contains information for changing parent when rebasing.
Field Name | Description | |
---|---|---|
|
optional |
The new parent revision. This can be a ref or a SHA1 to a concrete patchset. |
RelatedChangeAndCommitInfo
The RelatedChangeAndCommitInfo
entity contains information about
a related change and commit.
Field Name | Description | |
---|---|---|
|
optional |
The Change-Id of the change. |
|
The commit as a CommitInfo entity. |
|
|
optional |
The change number. |
|
optional |
The revision number. |
|
optional |
The current revision number. |
RelatedChangesInfo
The RelatedChangesInfo
entity contains information about related
changes.
Field Name | Description |
---|---|
|
A list of RelatedChangeAndCommitInfo entities describing the related changes. Sorted by git commit order, newest to oldest. Empty if there are no related changes. |
RestoreInput
The RestoreInput
entity contains information for restoring a change.
Field Name | Description | |
---|---|---|
|
optional |
Message to be added as review comment to the change when restoring the change. |
RevertInput
The RevertInput
entity contains information for reverting a change.
Field Name | Description | |
---|---|---|
|
optional |
Message to be added as review comment to the change when reverting the change. |
ReviewInfo
The ReviewInfo
entity contains information about a review.
Field Name | Description |
---|---|
|
The labels of the review as a map that maps the label names to the voting values. |
ReviewInput
The ReviewInput
entity contains information for adding a review to a
revision.
Field Name | Description | |
---|---|---|
|
optional |
The message to be added as review comment. |
|
optional |
The votes that should be added to the revision as a map that maps the label names to the voting values. |
|
optional |
The comments that should be added as a map that maps a file path to a list of CommentInput entities. |
|
|
Whether all labels are required to be within the user’s permitted ranges
based on access controls. |
|
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. |
|
optional |
Notify handling that defines to whom email notifications should be sent
after the review is stored. |
|
optional |
{account-id} the review
should be posted on behalf of. To use this option the caller must
have been granted |
ReviewerInfo
The ReviewerInfo
entity contains information about a reviewer and its
votes on a change.
ReviewerInfo
has the same fields as
AccountInfo and includes
detailed account information.
In addition ReviewerInfo
has the following fields:
Field Name | Description |
---|---|
|
The approvals of the reviewer as a map that maps the label names to the approval values (“-2”, “-1”, “0”, “+1”, “+2”). |
ReviewerInput
The ReviewerInput
entity contains information for adding a reviewer
to a change.
Field Name | Description | |
---|---|---|
|
The ID of one account that
should be added as reviewer or the
ID of one group for which all members should be added as reviewers. |
|
|
optional |
Whether adding the reviewer is confirmed. |
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
Query Changes.
Field Name | Description | |
---|---|---|
|
not set if |
Whether the patch set is a draft. |
|
not set if |
Whether the patch set has one or more draft comments by the calling user. Only set if DRAFT_COMMENTS option is requested. |
|
The patch set number. |
|
|
The timestamp of when the patch set was created. |
|
|
The uploader of the patch set as an AccountInfo entity. |
|
|
The Git reference for the patch set. |
|
|
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 FetchInfo entities. This information is only included if a plugin implementing the download commands interface is installed. |
|
|
optional |
The commit of the patch set as CommitInfo entity. |
|
optional |
The files of the patch set as a map that maps the file names to FileInfo entities. Only set if CURRENT_FILES or ALL_FILES option is requested. |
|
optional |
Actions the caller might be able to perform on this revision. The information is a map of view name to ActionInfo entities. |
|
optional |
Indicates whether the caller is authenticated and has commented on the current revision. Only set if REVIEWED option is requested. |
RuleInput
The RuleInput
entity contains information to test a Prolog rule.
Field Name | Description | |
---|---|---|
|
Prolog code to execute instead of the code in |
|
|
|
When |
SubmitInfo
The SubmitInfo
entity contains information about the change status
after submitting.
Field Name | Description |
---|---|
|
The status of the change after submitting, can be |
|
optional |
SubmitInput
The SubmitInput
entity contains information for submitting a change.
Field Name | Description | |
---|---|---|
|
|
Whether the request should wait for the merge to complete. |
SubmitRecord
The SubmitRecord
entity describes results from a submit_rule.
Field Name | Description | |
---|---|---|
|
|
|
|
optional |
Map of labels that are approved; an AccountInfo identifies the voter chosen by the rule. |
|
optional |
Map of labels that are preventing submit; AccountInfo identifies voter. |
|
optional |
Map of labels that need to be given to submit. The value is currently an empty object. |
|
optional |
Map of labels that can be used, but do not affect submit. AccountInfo identifies voter, if the label has been applied. |
|
optional |
Map of labels that should have been in |
|
optional |
When status is RULE_ERROR this message provides some text describing the failure of the rule predicate. |
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 AccountInfo entity, or
the group
field that contains the
GroupBaseInfo entity.
TopicInput
The TopicInput
entity contains information for setting a topic.
Field Name | Description | |
---|---|---|
|
optional |
The topic. |
WebLinkInfo
The WebLinkInfo
entity describes a link to an external site.
Field Name | Description |
---|---|
|
The link name. |
|
The link URL. |
|
URL to the icon of the link. |
Part of Gerrit Code Review