This page describes the change related REST endpoints. Please also take note of the general information on the REST API.
POST /changes/
The change input ChangeInput entity must be provided in the request body.
Request.
POST /changes/ HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "project" : "myProject", "subject" : "Let's support 100% Gerrit workflow direct in browser", "branch" : "master", "topic" : "create-change-in-browser", "status" : "NEW" }
As response a ChangeInfo entity is returned that describes the resulting change.
Response.
HTTP/1.1 201 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9941", "project": "myProject", "branch": "master", "topic": "create-change-in-browser", "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9941", "subject": "Let's support 100% Gerrit workflow direct in browser", "status": "NEW", "created": "2014-05-05 07:15:44.639000000", "updated": "2014-05-05 07:15:44.639000000", "mergeable": true, "insertions": 0, "deletions": 0, "_number": 4711, "owner": { "name": "John Doe" } }
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:
Request.
GET /changes/?q=status:open+is:watched&n=2 HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ { "id": "demo~master~Idaf5e098d70898b7119f6f4af5a6c13343d64b57", "project": "demo", "branch": "master", "change_id": "Idaf5e098d70898b7119f6f4af5a6c13343d64b57", "subject": "One change", "status": "NEW", "created": "2012-07-17 07:18:30.854000000", "updated": "2012-07-17 07:19:27.766000000", "mergeable": true, "insertions": 26, "deletions": 10, "_number": 1756, "owner": { "name": "John Doe" }, }, { "id": "demo~master~I09c8041b5867d5b33170316e2abc34b79bbb8501", "project": "demo", "branch": "master", "change_id": "I09c8041b5867d5b33170316e2abc34b79bbb8501", "subject": "Another change", "status": "NEW", "created": "2012-07-17 07:18:30.884000000", "updated": "2012-07-17 07:18:30.885000000", "mergeable": true, "insertions": 12, "deletions": 18, "_number": 1757, "owner": { "name": "John Doe" }, "_more_changes": true } ]
If the number of changes matching the query exceeds either the internal limit or a supplied n
query parameter, the last change object has a _more_changes: true
JSON field set.
The S
or start
query parameter can be supplied to skip a number of changes from the list.
Clients are allowed to specify more than one query by setting the q
parameter multiple times. In this case the result is an array of arrays, one per query in the same order the queries were given in.
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": {} } } ], [], [] ]
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
: 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, all reviewers by state, 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 the commands
field in the FetchInfo for revisions. Only valid when the CURRENT_REVISION
or ALL_REVISIONS
option is selected.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
: 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
: list files modified by the commit and magic files, including basic line counts inserted/deleted per file. Only valid when the CURRENT_REVISION
or ALL_REVISIONS
option is selected.ALL_FILES
: list files modified by the commit and magic files, including basic line counts inserted/deleted per file. If only the CURRENT_REVISION
was requested then only that commit’s modified files will be output.DETAILED_ACCOUNTS
: include _account_id
, email
and username
fields when referencing accounts.REVIEWER_UPDATES
: include updates to reviewers set as ReviewerUpdateInfo entities.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 the reviewed
field if all of the following are true:
the change is open
the caller is authenticated
the caller has commented on the change more recently than the last update from the change owner, i.e. this change would show up in the results of reviewedby:self.
SUBMITTABLE
: include the submittable
field in ChangeInfo, which can be used to tell if the change is reviewed and ready for submit.WEB_LINKS
: include the web_links
field in CommitInfo, therefore only valid in combination with CURRENT_COMMIT
or ALL_COMMITS
.CHECK
: include potential problems with the change.COMMIT_FOOTERS
: include the full commit message with Gerrit-specific commit footers in the RevisionInfo.PUSH_CERTIFICATES
: include push certificate information in the RevisionInfo. Ignored if signed push is not enabled on the server.TRACKING_IDS
: include references to external tracking systems as TrackingIdInfo.Request.
GET /changes/?q=97&o=CURRENT_REVISION&o=CURRENT_COMMIT&o=CURRENT_FILES&o=DOWNLOAD_COMMANDS HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ { "id": "gerrit~master~I7ea46d2e2ee5c64c0d807677859cfb7d90b8966a", "project": "gerrit", "branch": "master", "change_id": "I7ea46d2e2ee5c64c0d807677859cfb7d90b8966a", "subject": "Use an EventBus to manage star icons", "status": "NEW", "created": "2012-04-25 00:52:25.580000000", "updated": "2012-04-25 00:52:25.586000000", "mergeable": true, "insertions": 16, "deletions": 7, "_number": 97, "owner": { "name": "Shawn Pearce" }, "current_revision": "184ebe53805e102605d11f6b143486d15c23a09c", "revisions": { "184ebe53805e102605d11f6b143486d15c23a09c": { "kind": "REWORK", "_number": 1, "ref": "refs/changes/97/97/1", "fetch": { "git": { "url": "git://localhost/gerrit", "ref": "refs/changes/97/97/1", "commands": { "Checkout": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD", "Cherry-Pick": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD", "Format-Patch": "git fetch git://localhost/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD", "Pull": "git pull git://localhost/gerrit refs/changes/97/97/1" } }, "http": { "url": "http://myuser@127.0.0.1:8080/gerrit", "ref": "refs/changes/97/97/1", "commands": { "Checkout": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD", "Cherry-Pick": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD", "Format-Patch": "git fetch http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD", "Pull": "git pull http://myuser@127.0.0.1:8080/gerrit refs/changes/97/97/1" } }, "ssh": { "url": "ssh://myuser@*:29418/gerrit", "ref": "refs/changes/97/97/1", "commands": { "Checkout": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git checkout FETCH_HEAD", "Cherry-Pick": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git cherry-pick FETCH_HEAD", "Format-Patch": "git fetch ssh://myuser@*:29418/gerrit refs/changes/97/97/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD", "Pull": "git pull ssh://myuser@*:29418/gerrit refs/changes/97/97/1" } } }, "commit": { "parents": [ { "commit": "1eee2c9d8f352483781e772f35dc586a69ff5646", "subject": "Migrate contributor agreements to All-Projects." } ], "author": { "name": "Shawn O. Pearce", "email": "sop@google.com", "date": "2012-04-24 18:08:08.000000000", "tz": -420 }, "committer": { "name": "Shawn O. Pearce", "email": "sop@google.com", "date": "2012-04-24 18:08:08.000000000", "tz": -420 }, "subject": "Use an EventBus to manage star icons", "message": "Use an EventBus to manage star icons\n\nImage widgets that need to ..." }, "files": { "gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeCache.java": { "lines_deleted": 8, "size_delta": -412, "size": 7782 }, "gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeDetailCache.java": { "lines_inserted": 1, "size_delta": 23, "size": 6762 }, "gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java": { "lines_inserted": 11, "lines_deleted": 19, "size_delta": -298, "size": 47023 }, "gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java": { "lines_inserted": 23, "lines_deleted": 20, "size_delta": 132, "size": 17727 }, "gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StarCache.java": { "status": "D", "lines_deleted": 139, "size_delta": -5512, "size": 13098 }, "gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StarredChanges.java": { "status": "A", "lines_inserted": 204, "size_delta": 8345, "size": 8345 }, "gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Screen.java": { "lines_deleted": 9, "size_delta": -343, "size": 5385 } } } } } ]
GET /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.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0
As response a 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 /changes/{change-id}/detail
Retrieves a change with labels, detailed labels, detailed accounts, reviewer updates, 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.
Request.
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.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940", "project": "myProject", "branch": "master", "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940", "subject": "Implementing Feature X", "status": "NEW", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "mergeable": true, "insertions": 126, "deletions": 11, "_number": 3965, "owner": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "labels": { "Verified": { "all": [ { "value": 0, "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, { "value": 0, "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com", "username": "jroe" } ], "values": { "-1": "Fails", " 0": "No score", "+1": "Verified" } }, "Code-Review": { "disliked": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "all": [ { "value": -1, "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, { "value": 1, "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com", "username": "jroe" } ] "values": { "-2": "This shall not be merged", "-1": "I would prefer this is not merged as is", " 0": "No score", "+1": "Looks good to me, but someone else must approve", "+2": "Looks good to me, approved" } } }, "permitted_labels": { "Verified": [ "-1", " 0", "+1" ], "Code-Review": [ "-2", "-1", " 0", "+1", "+2" ] }, "removable_reviewers": [ { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, { "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com", "username": "jroe" } ], "reviewers": { "REVIEWER": [ { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, { "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com", "username": "jroe" } ] }, "reviewer_updates": [ { "state": "REVIEWER", "reviewer": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "updated_by": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "updated": "2016-07-21 20:12:39.000000000" }, { "state": "REMOVED", "reviewer": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "updated_by": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "updated": "2016-07-21 20:12:33.000000000" }, { "state": "CC", "reviewer": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "updated_by": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "updated": "2016-03-23 21:34:02.419000000", }, ], "messages": [ { "id": "YH-egE", "author": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }, "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 } ] }
POST /changes/{change-id}/merge
Update an existing change by using a MergePatchSetInput entity.
Gerrit will create a merge commit based on the information of MergePatchSetInput and add a new patch set to the change corresponding to the new merge commit.
Request.
POST /changes/test~master~Ic5466d107c5294414710935a8ef3b0180fb848dc/merge HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "subject": "Merge dev_branch into master", "merge": { "source": "refs/12/1234/1" } }
As response a ChangeInfo entity with current revision is returned that describes the resulting change.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "test~master~Ic5466d107c5294414710935a8ef3b0180fb848dc", "project": "test", "branch": "master", "hashtags": [], "change_id": "Ic5466d107c5294414710935a8ef3b0180fb848dc", "subject": "Merge dev_branch into master", "status": "NEW", "created": "2016-09-23 18:08:53.238000000", "updated": "2016-09-23 18:09:25.934000000", "submit_type": "MERGE_IF_NECESSARY", "mergeable": true, "insertions": 5, "deletions": 0, "_number": 72, "owner": { "_account_id": 1000000 }, "current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822" }
PUT /changes/{change-id}/message
Creates a new patch set with a new commit message.
The new commit message must be provided in the request body inside a CommitMessageInput entity and contain the change ID footer if Require Change-Id was specified.
Request.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/message HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "message": "New Commit message \n\nChange-Id: I10394472cbd17dd12454f229e4f6de00b143a444\n" }
Notifications.
An email will be sent using the “newpatchset” template.
GET /changes/{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.
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.
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 /changes/{change-id}/topic
Deletes the topic of a change.
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.
Request.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/topic HTTP/1.0
Response.
HTTP/1.1 204 No Content
GET /changes/{change-id}/assignee
Retrieves the account of the user assigned to a change.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/assignee HTTP/1.0
As a response an AccountInfo entity describing the assigned account is returned.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }
If the change has no assignee the response is “204 No Content
”.
GET /changes/{change-id}/past_assignees
Returns a list of every user ever assigned to a change, in the order in which they were first assigned.
[NOTE] Past assignees are only available when NoteDb is enabled.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/past_assignees HTTP/1.0
As a response a list of AccountInfo entities is returned.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ { "_account_id": 1000051, "name": "Jane Doe", "email": "jane.doe@example.com", "username": "janed" }, { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" } ]
PUT /changes/{change-id}/assignee
Sets the assignee of a change.
The new assignee must be provided in the request body inside a AssigneeInput entity.
Request.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/assignee HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "assignee": "jdoe" }
As a response an AccountInfo entity describing the assigned account is returned.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }
DELETE /changes/{change-id}/assignee
Deletes the assignee of a change.
Request.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/assignee HTTP/1.0
As a response an AccountInfo entity describing the account of the deleted assignee is returned.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com", "username": "jdoe" }
If the change had no assignee the response is “204 No Content
”.
GET /changes/{change-id}/pure_revert
Check if the given change is a pure revert of the change it references in revertOf
. Optionally, the query parameter o
can be passed in to specify a commit (SHA1 in 40 digit hex representation) to check against. It takes precedence over revertOf
. If the change has no reference in revertOf
, the parameter is mandatory.
As response a PureRevertInfo entity is returned.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/pure_revert?o=247bccf56ae47634650bcc08b8aa784c3580ccas HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "is_pure_revert" : false }
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.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/abandon HTTP/1.0
As response a ChangeInfo entity is returned that describes the abandoned change.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940", "project": "myProject", "branch": "master", "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940", "subject": "Implementing Feature X", "status": "ABANDONED", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "mergeable": true, "insertions": 3, "deletions": 310, "_number": 3965, "owner": { "name": "John Doe" } }
If the change cannot be abandoned because the change state doesn’t allow abandoning of the change, the response is “409 Conflict
” and the error message is contained in the response body.
Response.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 change is merged
Notifications.
An email will be sent using the “abandon” template. The notify handling is ALL. Notifications are suppressed on WIP changes that have never started review.
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.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/restore HTTP/1.0
As response a 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
POST /changes/{change-id}/rebase
Rebases a change.
Optionally, the parent revision can be changed to another patch set through the RebaseInput entity.
Request.
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.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2", "project": "myProject", "branch": "master", "change_id": "I3ea943139cb62e86071996f2480e58bf3eeb9dd2", "subject": "Implement Feature X", "status": "NEW", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "mergeable": false, "insertions": 33, "deletions": 9, "_number": 4799, "owner": { "name": "John Doe" }, "current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822", "revisions": { "27cc4558b5a3d3387dd11ee2df7a117e7e581822": { "kind": "REWORK", "_number": 2, "ref": "refs/changes/99/4799/2", "fetch": { "http": { "url": "http://gerrit:8080/myProject", "ref": "refs/changes/99/4799/2" } }, "commit": { "parents": [ { "commit": "b4003890dadd406d80222bf1ad8aca09a4876b70", "subject": "Implement Feature A" } ], "author": { "name": "John Doe", "email": "john.doe@example.com", "date": "2013-05-07 15:21:27.000000000", "tz": 120 }, "committer": { "name": "Gerrit Code Review", "email": "gerrit-server@example.com", "date": "2013-05-07 15:35:43.000000000", "tz": 120 }, "subject": "Implement Feature X", "message": "Implement Feature X\n\nAdded feature X." } } }
If the change cannot be rebased, e.g. due to conflicts, the response is “409 Conflict
” and the error message is contained in the response body.
Response.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 The change could not be rebased due to a path conflict during merge.
POST /changes/{change-id}/move
Move a change.
The destination branch must be provided in the request body inside a MoveInput entity.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/move HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "destination_branch" : "release-branch" }
As response a ChangeInfo entity is returned that describes the moved change.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~release-branch~I8473b95934b5732ac55d26311a706c9c2bde9940", "project": "myProject", "branch": "release-branch", "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940", "subject": "Implementing Feature X", "status": "NEW", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "mergeable": true, "insertions": 2, "deletions": 13, "_number": 3965, "owner": { "name": "John Doe" } }
Note that this endpoint will not update the change’s parents, which is different from the cherry-pick endpoint.
If the change cannot be moved because the change state doesn’t allow moving the change, the response is “409 Conflict
” and the error message is contained in the response body.
Response.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 change is merged
If the change cannot be moved because the user doesn’t have abandon permission on the change or upload permission on the destination, the response is “409 Conflict
” and the error message is contained in the response body.
Response.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 move not permitted
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.
Request.
POST /changes/myProject~master~I1ffe09a505e25f15ce1521bcfb222e51e62c2a14/revert HTTP/1.0
As response a 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
POST /changes/{change-id}/submit
Submits a change.
The request body only needs to include a SubmitInput entity if submitting on behalf of another user.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/submit HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "on_behalf_of": 1001439 }
As response a ChangeInfo entity is returned that describes the submitted/merged change.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940", "project": "myProject", "branch": "master", "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940", "subject": "Implementing Feature X", "status": "MERGED", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "submitted": "2013-02-21 11:16:36.615000000", "_number": 3965, "owner": { "name": "John Doe" } }
If the change cannot be submitted because the submit rule doesn’t allow submitting the change, the response is “409 Conflict
” and the error message is contained in the response body.
Response.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 blocked by Verified
GET /changes/{change-id}/submitted_together?o=NON_VISIBLE_CHANGES
Computes list of all changes which are submitted when Submit is called for this change, including the current change itself.
The list consists of:
The given change.
If change.submitWholeTopic
is enabled, include all open changes with the same topic.
For each change whose submit type is not CHERRY_PICK, include unmerged ancestors targeting the same branch.
As a special case, the list is empty if this change would be submitted by itself (without other changes).
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/submitted_together?o=NON_VISIBLE_CHANGES HTTP/1.0 Content-Type: application/json; charset=UTF-8
As a response a SubmittedTogetherInfo entity is returned that describes what would happen if the change were submitted. This response contains a list of changes and a count of changes that are not visible to the caller that are part of the set of changes to be merged.
The listed changes use the same format as in Query Changes with the LABELS
, DETAILED_LABELS
, CURRENT_REVISION
, CURRENT_COMMIT
, and SUBMITTABLE
options set.
Standard formatting options can be specified with the o
parameter, as well as the submitted_together
specific option NON_VISIBLE_CHANGES
.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "changes": [ { "id": "gerrit~master~I1ffe09a505e25f15ce1521bcfb222e51e62c2a14", "project": "gerrit", "branch": "master", "hashtags": [], "change_id": "I1ffe09a505e25f15ce1521bcfb222e51e62c2a14", "subject": "ChangeMergeQueue: Rewrite such that it works on set of changes", "status": "NEW", "created": "2015-05-01 15:39:57.979000000", "updated": "2015-05-20 19:25:21.592000000", "mergeable": true, "insertions": 303, "deletions": 210, "_number": 1779, "owner": { "_account_id": 1000000 }, "labels": { "Code-Review": { "approved": { "_account_id": 1000000 }, "all": [ { "value": 2, "date": "2015-05-20 19:25:21.592000000", "_account_id": 1000000 } ], "values": { "-2": "This shall not be merged", "-1": "I would prefer this is not merged as is", " 0": "No score", "+1": "Looks good to me, but someone else must approve", "+2": "Looks good to me, approved" }, "default_value": 0 }, "Verified": { "approved": { "_account_id": 1000000 }, "all": [ { "value": 1, "date": "2015-05-20 19:25:21.592000000", "_account_id": 1000000 } ], "values": { "-1": "Fails", " 0": "No score", "+1": "Verified" }, "default_value": 0 } }, "permitted_labels": { "Code-Review": [ "-2", "-1", " 0", "+1", "+2" ], "Verified": [ "-1", " 0", "+1" ] }, "removable_reviewers": [ { "_account_id": 1000000 } ], "reviewers": { "REVIEWER": [ { "_account_id": 1000000 } ] }, "current_revision": "9adb9f4c7b40eeee0646e235de818d09164d7379", "revisions": { "9adb9f4c7b40eeee0646e235de818d09164d7379": { "kind": "REWORK", "_number": 1, "created": "2015-05-01 15:39:57.979000000", "uploader": { "_account_id": 1000000 }, "ref": "refs/changes/79/1779/1", "fetch": {}, "commit": { "parents": [ { "commit": "2d3176497a2747faed075f163707e57d9f961a1c", "subject": "Merge changes from topic \u0027submodule-subscription-tests-and-fixes-3\u0027" } ], "author": { "name": "Stefan Beller", "email": "sbeller@google.com", "date": "2015-04-29 21:36:52.000000000", "tz": -420 }, "committer": { "name": "Stefan Beller", "email": "sbeller@google.com", "date": "2015-05-01 00:11:16.000000000", "tz": -420 }, "subject": "ChangeMergeQueue: Rewrite such that it works on set of changes", "message": "ChangeMergeQueue: Rewrite such that it works on set of changes\n\nChangeMergeQueue used to work on branches rather than sets of changes.\nThis change is a first step to merge sets of changes (e.g. grouped by a\ntopic and `changes.submitWholeTopic` enabled) in an atomic fashion.\nThis change doesn\u0027t aim to implement these changes, but only as a step\ntowards it.\n\nMergeOp keeps its functionality and behavior as is. A new class\nMergeOpMapper is introduced which will map the set of changes to\nthe set of branches. Additionally the MergeOpMapper is also\nresponsible for the threading done right now, which was part of\nthe ChangeMergeQueue before.\n\nChange-Id: I1ffe09a505e25f15ce1521bcfb222e51e62c2a14\n" } } } }, { "id": "gerrit~master~I7fe807e63792b3d26776fd1422e5e790a5697e22", "project": "gerrit", "branch": "master", "hashtags": [], "change_id": "I7fe807e63792b3d26776fd1422e5e790a5697e22", "subject": "AbstractSubmoduleSubscription: Split up createSubscription", "status": "NEW", "created": "2015-05-01 15:39:57.979000000", "updated": "2015-05-20 19:25:21.546000000", "mergeable": true, "insertions": 15, "deletions": 6, "_number": 1780, "owner": { "_account_id": 1000000 }, "labels": { "Code-Review": { "approved": { "_account_id": 1000000 }, "all": [ { "value": 2, "date": "2015-05-20 19:25:21.546000000", "_account_id": 1000000 } ], "values": { "-2": "This shall not be merged", "-1": "I would prefer this is not merged as is", " 0": "No score", "+1": "Looks good to me, but someone else must approve", "+2": "Looks good to me, approved" }, "default_value": 0 }, "Verified": { "approved": { "_account_id": 1000000 }, "all": [ { "value": 1, "date": "2015-05-20 19:25:21.546000000", "_account_id": 1000000 } ], "values": { "-1": "Fails", " 0": "No score", "+1": "Verified" }, "default_value": 0 } }, "permitted_labels": { "Code-Review": [ "-2", "-1", " 0", "+1", "+2" ], "Verified": [ "-1", " 0", "+1" ] }, "removable_reviewers": [ { "_account_id": 1000000 } ], "reviewers": { "REVIEWER": [ { "_account_id": 1000000 } ] }, "current_revision": "1bd7c12a38854a2c6de426feec28800623f492c4", "revisions": { "1bd7c12a38854a2c6de426feec28800623f492c4": { "kind": "REWORK", "_number": 1, "created": "2015-05-01 15:39:57.979000000", "uploader": { "_account_id": 1000000 }, "ref": "refs/changes/80/1780/1", "fetch": {}, "commit": { "parents": [ { "commit": "9adb9f4c7b40eeee0646e235de818d09164d7379", "subject": "ChangeMergeQueue: Rewrite such that it works on set of changes" } ], "author": { "name": "Stefan Beller", "email": "sbeller@google.com", "date": "2015-04-25 00:11:59.000000000", "tz": -420 }, "committer": { "name": "Stefan Beller", "email": "sbeller@google.com", "date": "2015-05-01 00:11:16.000000000", "tz": -420 }, "subject": "AbstractSubmoduleSubscription: Split up createSubscription", "message": "AbstractSubmoduleSubscription: Split up createSubscription\n\nLater we want to have subscriptions to more submodules, so we need to\nfind a way to add more submodule entries into the file. By splitting up\nthe createSubscription() method, that is very easy by using the\naddSubmoduleSubscription method multiple times.\n\nChange-Id: I7fe807e63792b3d26776fd1422e5e790a5697e22\n" } } } } ], "non_visible_changes": 0 }
If the o=NON_VISIBLE_CHANGES
query parameter is not passed, then instead of a SubmittedTogetherInfo entity, the response is a list of changes, or a 403 response with a message if the set of changes to be submitted with this change includes changes the caller cannot read.
DELETE /changes/{change-id}
Deletes a change.
New or abandoned changes can be deleted by their owner if the user is granted the Delete Own Changes permission, otherwise only by administrators.
Request.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0 Content-Type: application/json; charset=UTF-8
Response.
HTTP/1.1 204 No Content
GET /changes/{change-id}/in
Retrieves the branches and tags in which a change is included. As result an 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": [] }
POST /changes/{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
GET /changes/{change-id}/comments
Lists the published comments of all revisions of the change.
Returns a map of file paths to lists of 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" } } ] }
GET /changes/{change-id}/robotcomments
Lists the robot comments of all revisions of the change.
Return a map that maps the file path to a list of RobotCommentInfo entries. The entries in the map are sorted by file path.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/robotcomments/ HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [ { "id": "TvcXrmjM", "line": 23, "message": "unused import", "updated": "2016-02-26 15:40:43.986000000", "author": { "_account_id": 1000110, "name": "Code Analyzer", "email": "code.analyzer@example.com" }, "robotId": "importChecker", "robotRunId": "76b1375aa8626ea7149792831fe2ed85e80d9e04" }, { "id": "TveXwFiA", "line": 49, "message": "wrong indention", "updated": "2016-02-26 15:40:45.328000000", "author": { "_account_id": 1000110, "name": "Code Analyzer", "email": "code.analyzer@example.com" }, "robotId": "styleChecker", "robotRunId": "5c606c425dd45184484f9d0a2ffd725a7607839b" } ] }
GET /changes/{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 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" } ] }
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.
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" } ] }
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.
Some fixes have options controlling their behavior, which can be set in the FixInput entity body.
Only the change owner, a project owner, or an administrator may fix changes.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/check HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940", "project": "myProject", "branch": "master", "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940", "subject": "Implementing Feature X", "status": "MERGED", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "submitted": "2013-02-21 11:16:36.615000000", "mergeable": true, "insertions": 34, "deletions": 101, "_number": 3965, "owner": { "name": "John Doe" }, "problems": [ { "message": "Current patch set 2 not found" }, { "message": "Patch set 1 (1eee2c9d8f352483781e772f35dc586a69ff5646) is merged into destination ref master (1eee2c9d8f352483781e772f35dc586a69ff5646), but change status is NEW", "status": FIXED, "outcome": "Marked change as merged" } ] }
POST /changes/{change-id}/wip
Marks the change as not ready for review yet.
The request body does not need to include a WorkInProgressInput entity if no review comment is added. Actions that create a new patch set in a WIP change default to notifying OWNER instead of ALL.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/wip HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "message": "Refactoring needs to be done before we can proceed here." }
Response.
HTTP/1.1 200 OK
POST /changes/{change-id}/ready
Marks the change as ready for review (set WIP property to false).
Activates notifications of reviewer. The request body does not need to include a WorkInProgressInput entity if no review comment is added.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/ready HTTP/1.0 Content-Type: application/json;charset=UTF-8 { "message": "Refactoring is done." }
Response.
HTTP/1.1 200 OK
POST /changes/{change-id}/private
Marks the change to be private. Changes may only be marked private by the owner or site administrators.
A message can be specified in the request body inside a PrivateInput entity.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/private HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "message": "After this security fix has been released we can make it public now." }
Response.
HTTP/1.1 201 Created
If the change was already private the response is “200 OK
”.
DELETE /changes/{change-id}/private
Marks the change to be non-private. Note users can only unmark own private changes.
A message can be specified in the request body inside a PrivateInput entity.
Request.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/private HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "message": "This is a security fix that must not be public." }
Response.
HTTP/1.1 204 No Content
If the change was already not private, the response is “409 Conflict
”.
Please note that some proxies prohibit request bodies for DELETE requests. In this case, if you want to set a message options, use a POST request:
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/private.delete HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "message": "This is a security fix that must not be public." }
PUT /changes/{change-id}/ignore
Marks a change as ignored. The change will not be shown in the incoming reviews dashboard, and email notifications will be suppressed.
Request.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/ignore HTTP/1.0
PUT /changes/{change-id}/unignore
Un-marks a change as ignored.
Request.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/unignore HTTP/1.0
PUT /changes/{change-id}/mute
Marks a change as muted.
This allows users to “de-highlight” changes in their dashboard until a new patch set is uploaded.
This differs from the ignore endpoint, which will mute emails and hide the change from dashboard completely until it is unignored again.
Request.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/mute HTTP/1.0
PUT /changes/{change-id}/unmute
Unmutes a change.
Request.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/unmute HTTP/1.0
GET /changes/{change-id}/hashtags
Gets the hashtags associated with a change.
[NOTE] Hashtags are only available when NoteDb is enabled.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/hashtags HTTP/1.0
As response the change’s hashtags are returned as a list of strings.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ "hashtag1", "hashtag2" ]
POST /changes/{change-id}/hashtags
Adds and/or removes hashtags from a change.
[NOTE] Hashtags are only available when NoteDb is enabled.
The hashtags to add or remove must be provided in the request body inside a HashtagsInput entity.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/hashtags HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "add" : [ "hashtag3" ], "remove" : [ "hashtag2" ] }
As response the change’s hashtags are returned as a list of strings.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ "hashtag1", "hashtag3" ]
'GET /changes/{change-id}/edit
Retrieves a change edit details.
Request.
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.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "commit":{ "parents":[ { "commit":"1eee2c9d8f352483781e772f35dc586a69ff5646", } ], "author":{ "name":"Shawn O. Pearce", "email":"sop@google.com", "date":"2012-04-24 18:08:08.000000000", "tz":-420 }, "committer":{ "name":"Shawn O. Pearce", "email":"sop@google.com", "date":"2012-04-24 18:08:08.000000000", "tz":-420 }, "subject":"Use an EventBus to manage star icons", "message":"Use an EventBus to manage star icons\n\nImage widgets that need to ..." }, "base_revision":"c35558e0925e6985c91f3a16921537d5e572b7a3" }
'PUT /changes/{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 /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.
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 /changes/{change-id}/edit:message
Modify commit message. The request body needs to include a 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 /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.
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 /changes/{change-id}/edit/path%2fto%2ffile
Retrieves content of a file from a change edit.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit/foo HTTP/1.0
The content of the file is returned as text encoded inside base64. The Content-Type header will always be text/plain
reflecting the outer base64 encoding. A Gerrit-specific X-FYI-Content-Type
header can be examined to find the server detected content type of the file.
When the specified file was deleted in the change edit “204 No Content
” is returned.
If only the content type is required, callers should use HEAD to avoid downloading the encoded file contents.
If the base
parameter is set to true, the returned content is from the revision that the edit is based on.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: text/plain; charset=ISO-8859-1 X-FYI-Content-Encoding: base64 X-FYI-Content-Type: text/xml RnJvbSA3ZGFkY2MxNTNmZGVhMTdhYTg0ZmYzMmE2ZTI0NWRiYjY...
Alternatively, if the only value of the Accept request header is application/json
the content is returned as JSON string and X-FYI-Content-Encoding
is set to json
.
'GET /changes/{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 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 /changes/{change-id}/edit:message
Retrieves commit message from change edit.
If the base
parameter is set to true, the returned message is from the revision that the edit is based on.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:message HTTP/1.0
The commit message is returned as base64 encoded string.
Response.
HTTP/1.1 200 OK VGhpcyBpcyBhIGNvbW1pdCBtZXNzYWdlCgpDaGFuZ2UtSWQ6IElhYzhmZGM1MGRlZjFiYWUzYjAz M2JhNjcxZTk0OTBmNzUxNDU5ZGUzCg==
Alternatively, if the only value of the Accept request header is application/json
the commit message is returned as JSON string:
Response.
HTTP/1.1 200 OK )]}' "Subject of the commit message\n\nThis is the body of the commit message.\n\nChange-Id: Iaf1ba916bf843c175673d675bf7f52862f452db9\n"
'POST /changes/{change-id}/edit:publish
Promotes change edit to a regular patch set.
Options can be provided in the request body as a PublishChangeEditInput entity.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:publish HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "notify": "NONE" }
As response “204 No Content
” is returned.
Response.
HTTP/1.1 204 No Content
'POST /changes/{change-id}/edit:rebase
Rebases change edit on top of latest patch set.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/edit:rebase HTTP/1.0
When change was rebased on top of latest patch set, response “204 No Content
” is returned. When change edit is already based on top of the latest patch set, the response “409 Conflict
” is returned.
Response.
HTTP/1.1 204 No Content
DELETE /changes/{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
GET /changes/{change-id}/reviewers/
Lists the reviewers of a change.
As result a list of 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" } ]
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.
Groups can be excluded from the results by specifying e=f.
As result a list of SuggestedReviewerInfo entries is returned.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/suggest_reviewers?q=J HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ { "account": { "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com" }, "count": 1 }, { "group": { "id": "4fd581c0657268f2bdcc26699fbf9ddb76e3a279", "name": "Joiner" }, "count": 5 } ]
GET /changes/{change-id}/reviewers/{account-id}
Retrieves a reviewer of a change.
As response a 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" }
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.
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 AddReviewerResult entity is returned that describes the newly added reviewers.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "input": "john.doe@example.com", "reviewers": [ { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" "approvals": { "Verified": " 0", "Code-Review": " 0" }, } ] }
If a group is specified, adding the group members as reviewers is an atomic operation. This means if an error is returned, none of the members are added as reviewer.
If a group with many members is added as reviewer a confirmation may be required.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "reviewer": "MyProjectVerifiers" }
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "input": "MyProjectVerifiers", "error": "The group My Group has 15 members. Do you want to add them all as reviewers?", "confirm": true }
To confirm the addition of the reviewers, resend the request with the confirmed
flag being set.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "input": "MyProjectVerifiers", "confirmed": true }
If reviewer.enableByEmail is set for the project, reviewers and CCs are not required to have a Gerrit account. If you POST an email address of a reviewer or CC then, they will be added to the change even if they don’t have a Gerrit account.
If this option is disabled, the request would fail with 400 Bad Request
if the email address can’t be resolved to an active Gerrit account.
Note that the name is optional so both “un.registered@reviewer.com” and “John Doe <un.registered@reviewer.com>” are valid inputs.
Reviewers without Gerrit accounts can only be added on changes visible to anonymous users.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "reviewer": "John Doe <un.registered@reviewer.com>" }
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "input": "John Doe <un.registered@reviewer.com>" }
Notifications.
An email will be sent using the “newchange” template.
DELETE /changes/{change-id}/reviewers/{account-id}
POST /changes/{change-id}/reviewers/{account-id}/delete
Deletes a reviewer from a change.
Options can be provided in the request body as a DeleteReviewerInput entity.
Request.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe HTTP/1.0 POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/delete HTTP/1.0
Please note that some proxies prohibit request bodies for DELETE requests. In this case, if you want to specify options, use a POST request:
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/delete HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "notify": "NONE" }
Response.
HTTP/1.1 204 No Content
Notifications.
An email will be sent using the “deleteReviewer” template. If deleting the reviewer resulted in one or more approvals being removed, then the deleted reviewer will also receive a notification (unless notify=NONE).
GET /changes/{change-id}/reviewers/{account-id}/votes/
Lists the votes for a specific reviewer of the change.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/ HTTP/1.0
As result a map is returned that maps the label name to the label value. The entries in the map are sorted by label name.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json;charset=UTF-8 )]}' { "Code-Review": -1, "Verified": 1 "Work-In-Progress": 1, }
DELETE /changes/{change-id}/reviewers/{account-id}/votes/{label-id}
POST /changes/{change-id}/reviewers/{account-id}/votes/{label-id}/delete
Deletes a single vote from a change. Note, that even when the last vote of a reviewer is removed the reviewer itself is still listed on the change.
Options can be provided in the request body as a DeleteVoteInput entity.
Request.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/Code-Review HTTP/1.0 POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0
Please note that some proxies prohibit request bodies for DELETE requests. In this case, if you want to specify options, use a POST request:
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "notify": "NONE" }
Response.
HTTP/1.1 204 No Content
GET /changes/{change-id}/revisions/{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 CommitInfo entity is returned that describes the revision.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "commit": "674ac754f91e64a0efb8087e59a176484bd534d1", "parents": [ { "commit": "1eee2c9d8f352483781e772f35dc586a69ff5646", "subject": "Migrate contributor agreements to All-Projects." } ], "author": { "name": "Shawn O. Pearce", "email": "sop@google.com", "date": "2012-04-24 18:08:08.000000000", "tz": -420 }, "committer": { "name": "Shawn O. Pearce", "email": "sop@google.com", "date": "2012-04-24 18:08:08.000000000", "tz": -420 }, "subject": "Use an EventBus to manage star icons", "message": "Use an EventBus to manage star icons\n\nImage widgets that need to ..." }
Adding query parameter links
(for example /changes/.../commit?links
) returns a CommitInfo with the additional field web_links
.
GET /changes/{change-id}/revisions/{revision-id}/description
Retrieves the description of a patch set.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/description HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "Added Documentation"
If the patch set does not have a description an empty string is returned.
PUT /changes/{change-id}/revisions/{revision-id}/description
Sets the description of a patch set.
The new description must be provided in the request body inside a DescriptionInput entity.
Request.
PUT /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/description HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "description": "Added Documentation" }
As response the new description is returned.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "Added Documentation"
GET /changes/{change-id}/revisions/{revision-id}/mergelist
Returns the list of commits that are being integrated into a target branch by a merge commit. By default the first parent is assumed to be uninteresting. By using the parent
option another parent can be set as uninteresting (parents are 1-based).
The list of commits is returned as a list of CommitInfo entities. Web links are only included if the links
option was set.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/7e30d802b890ec8d0be45b1cc2a8ef092bcfc858/mergelist HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ { "commit": "674ac754f91e64a0efb8087e59a176484bd534d1", "parents": [ { "commit": "1eee2c9d8f352483781e772f35dc586a69ff5646", "subject": "Migrate contributor agreements to All-Projects." } ], "author": { "name": "Shawn O. Pearce", "email": "sop@google.com", "date": "2012-04-24 18:08:08.000000000", "tz": -420 }, "committer": { "name": "Shawn O. Pearce", "email": "sop@google.com", "date": "2012-04-24 18:08:08.000000000", "tz": -420 }, "subject": "Use an EventBus to manage star icons", "message": "Use an EventBus to manage star icons\n\nImage widgets that need to ..." } ]
GET /changes/{change-id}/revisions/{revision-id}/actions
Retrieves revision 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 ActionInfo.
GET /changes/{change-id}/revisions/{revision-id}/review
Retrieves a review of a revision.
Request.
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.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940", "project": "myProject", "branch": "master", "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940", "subject": "Implementing Feature X", "status": "NEW", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "mergeable": true, "insertions": 34, "deletions": 45, "_number": 3965, "owner": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" }, "labels": { "Verified": { "all": [ { "value": 0, "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" }, { "value": 0, "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com" } ], "values": { "-1": "Fails", " 0": "No score", "+1": "Verified" } }, "Code-Review": { "all": [ { "value": -1, "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" }, { "value": 1, "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com" } ] "values": { "-2": "This shall not be merged", "-1": "I would prefer this is not merged as is", " 0": "No score", "+1": "Looks good to me, but someone else must approve", "+2": "Looks good to me, approved" } } }, "permitted_labels": { "Verified": [ "-1", " 0", "+1" ], "Code-Review": [ "-2", "-1", " 0", "+1", "+2" ] }, "removable_reviewers": [ { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" }, { "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com" } ], "reviewers": { "REVIEWER": [ { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" }, { "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com" } ] }, "current_revision": "674ac754f91e64a0efb8087e59a176484bd534d1", "revisions": { "674ac754f91e64a0efb8087e59a176484bd534d1": { "kind": "REWORK", "_number": 2, "ref": "refs/changes/65/3965/2", "fetch": { "http": { "url": "http://gerrit/myProject", "ref": "refs/changes/65/3965/2" } } } } }
GET /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.
Request.
GET /changes/gerrit~master~I5e4fc08ce34d33c090c9e0bf320de1b17309f774/revisions/b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe/related HTTP/1.0
As result a RelatedChangesInfo entity is returned describing the related changes.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "changes": [ { "project": "gerrit", "change_id": "Ic62ae3103fca2214904dbf2faf4c861b5f0ae9b5", "commit": { "commit": "78847477532e386f5a2185a4e8c90b2509e354e3", "parents": [ { "commit": "bb499510bbcdbc9164d96b0dbabb4aa45f59a87e" } ], "author": { "name": "David Ostrovsky", "email": "david@ostrovsky.org", "date": "2014-07-12 15:04:24.000000000", "tz": 120 }, "subject": "Remove Solr" }, "_change_number": 58478, "_revision_number": 2, "_current_revision_number": 2 "status": "NEW" }, { "project": "gerrit", "change_id": "I5e4fc08ce34d33c090c9e0bf320de1b17309f774", "commit": { "commit": "b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe", "parents": [ { "commit": "d898f12a9b7a92eb37e7a80636195a1b06417aad" } ], "author": { "name": "David Pursehouse", "email": "david.pursehouse@sonymobile.com", "date": "2014-06-24 02:01:28.000000000", "tz": 540 }, "subject": "Add support for secondary index with Elasticsearch" }, "_change_number": 58081, "_revision_number": 10, "_current_revision_number": 10 "status": "NEW" } ] }
POST /changes/{change-id}/revisions/{revision-id}/review
Sets a review on a revision, optionally also publishing draft comments, setting labels, adding reviewers or CCs, and modifying the work in progress property.
The review must be provided in the request body as a ReviewInput entity.
A review cannot be set on a change edit. Trying to post a review for a change edit fails with 409 Conflict
.
Here is an example of using this method to set labels:
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "tag": "jenkins", "message": "Some nits need to be fixed.", "labels": { "Code-Review": -1 }, "comments": { "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [ { "line": 23, "message": "[nit] trailing whitespace" }, { "line": 49, "message": "[nit] s/conrtol/control" }, { "range": { "start_line": 50, "start_character": 0, "end_line": 55, "end_character": 20 }, "message": "Incorrect indentation" } ] } }
As response a ReviewResult entity is returned that describes the applied labels and any added reviewers (e.g. yourself, if you set a label but weren’t previously a reviewer on this CL).
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "labels": { "Code-Review": -1 } }
It is also possible to add one or more reviewers or CCs to a change simultaneously with a review:
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/review HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "message": "I don't have context here. Jane and maybe John and the project leads should take a look.", "reviewers": [ { "reviewer": "jane.roe@example.com" }, { "reviewer": "john.doe@example.com", "state": "CC" } { "reviewer": "MyProjectVerifiers", } ] }
Each element of the reviewers
list is an instance of ReviewerInput. The corresponding result of adding each reviewer will be returned in a map of inputs to AddReviewerResults.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "reviewers": { "jane.roe@example.com": { "input": "jane.roe@example.com", "reviewers": [ { "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com" "approvals": { "Verified": " 0", "Code-Review": " 0" }, }, ] }, "john.doe@example.com": { "input": "john.doe@example.com", "ccs": [ { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" "approvals": { "Verified": " 0", "Code-Review": " 0" }, } ] }, "MyProjectVerifiers": { "input": "MyProjectVerifiers", "reviewers": [ { "_account_id": 1000098, "name": "Alice Ansel", "email": "alice.ansel@example.com" "approvals": { "Verified": " 0", "Code-Review": " 0" }, }, { "_account_id": 1000099, "name": "Bob Bollard", "email": "bob.bollard@example.com" "approvals": { "Verified": " 0", "Code-Review": " 0" }, }, ] } } }
If there are any errors returned for reviewers, the entire review request will be rejected with 400 Bad Request
. None of the entries will have the reviewers
or ccs
field set, and those which specifically failed will have the errors
field set containing details of why they failed.
Error Response.
HTTP/1.1 400 Bad Request Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "reviewers": { "jane.roe@example.com": { "input": "jane.roe@example.com", "error": "Account of jane.roe@example.com is inactive." }, "john.doe@example.com": { "input": "john.doe@example.com" }, "MyProjectVerifiers": { "input": "MyProjectVerifiers", "error": "The group My Group has 15 members. Do you want to add them all as reviewers?", "confirm": true } } }
Notifications.
An email will be sent using the “comment” template.
If the top-level notify property is null or not set, then notification behavior depends on whether the change is WIP, whether it has started review, and whether the tag property is null.
Note
If adding reviewers, the notify property of each ReviewerInput is ignored. Use the notify property of the top-level ReviewInput instead.
For the purposes of this table, everyone means owner, reviewers, CCs, stars, and ALL_COMMENTS watchers.
If reviewers are added, then a second email will be sent using the “newchange” template. The notification logic for this email is the same as for Add Reviewer.
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.
Request.
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.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "myProject~master~I3ea943139cb62e86071996f2480e58bf3eeb9dd2", "project": "myProject", "branch": "master", "change_id": "I3ea943139cb62e86071996f2480e58bf3eeb9dd2", "subject": "Implement Feature X", "status": "NEW", "created": "2013-02-01 09:59:32.126000000", "updated": "2013-02-21 11:16:36.775000000", "mergeable": false, "insertions": 21, "deletions": 21, "_number": 4799, "owner": { "name": "John Doe" }, "current_revision": "27cc4558b5a3d3387dd11ee2df7a117e7e581822", "revisions": { "27cc4558b5a3d3387dd11ee2df7a117e7e581822": { "kind": "REWORK", "_number": 2, "ref": "refs/changes/99/4799/2", "fetch": { "http": { "url": "http://gerrit:8080/myProject", "ref": "refs/changes/99/4799/2" } }, "commit": { "parents": [ { "commit": "b4003890dadd406d80222bf1ad8aca09a4876b70", "subject": "Implement Feature A" } ], "author": { "name": "John Doe", "email": "john.doe@example.com", "date": "2013-05-07 15:21:27.000000000", "tz": 120 }, "committer": { "name": "Gerrit Code Review", "email": "gerrit-server@example.com", "date": "2013-05-07 15:35:43.000000000", "tz": 120 }, "subject": "Implement Feature X", "message": "Implement Feature X\n\nAdded feature X." } } }
If the revision cannot be rebased, e.g. due to conflicts, the response is “409 Conflict
” and the error message is contained in the response body.
Response.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 The change could not be rebased due to a path conflict during merge.
POST /changes/{change-id}/revisions/{revision-id}/submit
Submits a revision.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/submit HTTP/1.0 Content-Type: application/json; charset=UTF-8
As response a SubmitInfo entity is returned that describes the status of the submitted change.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "status": "MERGED" }
If the revision cannot be submitted, e.g. because the submit rule doesn’t allow submitting the revision or the revision is not the current revision, the response is “409 Conflict
” and the error message is contained in the response body.
Response.
HTTP/1.1 409 Conflict Content-Type: text/plain; charset=UTF-8 "revision 674ac754f91e64a0efb8087e59a176484bd534d1 is not current revision"
GET /changes/{change-id}/revisions/{revision-id}/patch
Gets the formatted patch for one revision.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/patch HTTP/1.0
The formatted patch is returned as text encoded inside base64:
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: text/plain; charset=ISO-8859-1 X-FYI-Content-Encoding: base64 X-FYI-Content-Type: application/mbox RnJvbSA3ZGFkY2MxNTNmZGVhMTdhYTg0ZmYzMmE2ZTI0NWRiYjY...
Adding query parameter zip
(for example /changes/.../patch?zip
) returns the patch as a single file inside of a ZIP archive. Clients can expand the ZIP to obtain the plain text patch, avoiding the need for a base64 decoding step. This option implies download
.
Query parameter download
(e.g. /changes/.../patch?download
) will suggest the browser save the patch as commitsha1.diff.base64
, for later processing by command line tools.
If the path
parameter is set, the returned content is a diff of the single file that the path refers to.
GET /changes/{change-id}/revisions/{revision-id}/preview_submit
Gets a file containing thin bundles of all modified projects if this change was submitted. The bundles are named ${ProjectName}.git
. Each thin bundle contains enough to construct the state in which a project would be in if this change were submitted. The base of the thin bundles are the current target branches, so to make use of this call in a non-racy way, first get the bundles and then fetch all projects contained in the bundle. (This assumes no non-fastforward pushes).
You need to give a parameter ?format=zip or ?format=tar to specify the format for the outer container. It is always possible to use tgz, even if tgz is not in the list of allowed archive formats.
To make good use of this call, you would roughly need code as found at:
$ curl -Lo preview_submit_test.sh http://review.example.com:8080/tools/scripts/preview_submit_test.sh
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/preview_submit?zip HTTP/1.0
Response.
HTTP/1.1 200 OK Date: Tue, 13 Sep 2016 19:13:46 GMT Content-Disposition: attachment; filename="submit-preview-147.zip" X-Content-Type-Options: nosniff Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: Mon, 01 Jan 1990 00:00:00 GMT Content-Type: application/x-zip Transfer-Encoding: chunked [binary stuff]
In case of an error, the response is not a zip file but a regular json response, containing only the error message:
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "Anonymous users cannot submit"
GET /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.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/mergeable HTTP/1.0
As response a MergeableInfo entity is returned.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { submit_type: "MERGE_IF_NECESSARY", strategy: "recursive", mergeable: true }
If the other-branches
parameter is specified, the mergeability will also be checked for all other branches which are listed in the branchOrder section in the project.config file.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/current/mergeable?other-branches HTTP/1.0
The response will then contain a list of all other branches where this changes could merge cleanly.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { submit_type: "MERGE_IF_NECESSARY", mergeable: true, mergeable_into: [ "refs/heads/stable-2.7", "refs/heads/stable-2.8", ] }
GET /changes/{change-id}/revisions/{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"
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.
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"
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.
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 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
GET /changes/{change-id}/revisions/{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 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" } ] }
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.
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 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 /changes/{change-id}/revisions/{revision-id}/drafts/{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 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" }
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.
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 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 /changes/{change-id}/revisions/{revision-id}/drafts/{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
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).
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 /changes/{change-id}/revisions/{revision-id}/comments/{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 CommentInfo entity is returned that describes the published comment.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "TvcXrmjM", "path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "line": 23, "message": "[nit] trailing whitespace", "updated": "2013-02-26 15:40:43.986000000", "author": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" } }
DELETE /changes/{change-id}/revisions/{revision-id}/comments/{comment-id}
POST /changes/{change-id}/revisions/{revision-id}/comments/{comment-id}/delete
Deletes a published comment of a revision. Instead of deleting the whole comment, this endpoint just replaces the comment’s message with a new message, which contains the name of the user who deletes the comment and the reason why it’s deleted. The reason can be provided in the request body as a DeleteCommentInput entity.
Note that only users with the Administrate Server global capability are permitted to delete a comment.
Please note that some proxies prohibit request bodies for DELETE requests. In this case, if you want to specify options, use a POST request:
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/comments/TvcXrmjM/delete HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "reason": "contains confidential information" }
As response a CommentInfo entity is returned that describes the updated comment.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "TvcXrmjM", "path": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "line": 23, "message": "Comment removed by: Administrator; Reason: contains confidential information", "updated": "2013-02-26 15:40:43.986000000", "author": { "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" } }
GET /changes/{change-id}/revisions/{revision-id}/robotcomments/
Lists the robot comments of a revision.
As result a map is returned that maps the file path to a list of RobotCommentInfo entries. The entries in the map are sorted by file path.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/robotcomments/ HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": [ { "id": "TvcXrmjM", "line": 23, "message": "unused import", "updated": "2016-02-26 15:40:43.986000000", "author": { "_account_id": 1000110, "name": "Code Analyzer", "email": "code.analyzer@example.com" }, "robotId": "importChecker", "robotRunId": "76b1375aa8626ea7149792831fe2ed85e80d9e04" }, { "id": "TveXwFiA", "line": 49, "message": "wrong indention", "updated": "2016-02-26 15:40:45.328000000", "author": { "_account_id": 1000110, "name": "Code Analyzer", "email": "code.analyzer@example.com" }, "robotId": "styleChecker", "robotRunId": "5c606c425dd45184484f9d0a2ffd725a7607839b" } ] }
GET /changes/{change-id}/revisions/{revision-id}/robotcomments/{comment-id}
Retrieves a robot comment of a revision.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/robotcomments/TvcXrmjM HTTP/1.0
As response a RobotCommentInfo entity is returned that describes the robot comment.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "id": "TvcXrmjM", "line": 23, "message": "unused import", "updated": "2016-02-26 15:40:43.986000000", "author": { "_account_id": 1000110, "name": "Code Analyzer", "email": "code.analyzer@example.com" }, "robotId": "importChecker", "robotRunId": "76b1375aa8626ea7149792831fe2ed85e80d9e04" }
POST /changes/section_title/revisions/section_title/fixes/section_title/apply
Applies a suggested fix by creating a change edit which includes the modifications indicated by the fix suggestion. If a change edit already exists, it will be updated accordingly. A fix can only be applied if no change edit exists and the fix refers to the current patch set, or the fix refers to the patch set on which the change edit is based.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/fixes/8f605a55_f6aa4ecc/apply HTTP/1.0
If the fix was successfully applied, an EditInfo describing the resulting change edit is returned.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "commit":{ "parents":[ { "commit":"1eee2c9d8f352483781e772f35dc586a69ff5646", } ], "author":{ "name":"John Doe", "email":"john.doe@example.com", "date":"2013-05-07 15:21:27.000000000", "tz":120 }, "committer":{ "name":"Jane Doe", "email":"jane.doe@example.com", "date":"2013-05-07 15:35:43.000000000", "tz":120 }, "subject":"Implement feature X", "message":"Implement feature X\n\nWith this feature ..." }, "base_revision":"674ac754f91e64a0efb8087e59a176484bd534d1" }
If the application failed e.g. due to conflicts with an existing change edit, the response “409 Conflict
” including an error message in the response body is returned.
Response.
HTTP/1.1 409 Conflict Content-Disposition: attachment Content-Type: text/plain; charset=UTF-8 The existing change edit could not be merged with another tree.
GET /changes/{change-id}/revisions/{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 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, "size_delta": 551, "size": 551 }, "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java": { "lines_inserted": 5, "lines_deleted": 3, "size_delta": 98, "size": 23348 } }
The request parameter reviewed
changes the response to return a list of the paths the caller has marked as reviewed. Clients that also need the FileInfo should make two requests.
The request parameter q
changes the response to return a list of all files (modified or unmodified) that contain that substring in the path name. This is useful to implement suggestion services finding a file by partial name.
The integer-valued request parameter parent
changes the response to return a list of the files which are different in this commit compared to the given parent commit. This is useful for supporting review of merge commits. The value is the 1-based index of the parent’s position in the commit object.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/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 /changes/{change-id}/revisions/{revision-id}/files/{file-id}/content
Gets the content of a file from a certain revision.
The optional, integer-valued parent
parameter can be specified to request the named file from a parent commit of the specified revision. The value is the 1-based index of the parent’s position in the commit object. If the parameter is omitted or the value is non-positive, the patch set is referenced.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/content HTTP/1.0
The content is returned as base64 encoded string. The HTTP response Content-Type is always text/plain
, reflecting the base64 wrapping. A Gerrit-specific X-FYI-Content-Type
header is returned describing the server detected content type of the file.
If only the content type is required, callers should use HEAD to avoid downloading the encoded file contents.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: text/plain; charset=ISO-8859-1 X-FYI-Content-Encoding: base64 X-FYI-Content-Type: text/xml Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY...
Alternatively, if the only value of the Accept request header is application/json
the content is returned as JSON string and X-FYI-Content-Encoding
is set to json
.
GET /changes/{change-id}/revisions/{revision-id}/files/{file-id}/download
Downloads the content of a file from a certain revision, in a safe format that poses no risk for inadvertent execution of untrusted code.
If the content type is defined as safe, the binary file content is returned verbatim. If the content type is not safe, the file is stored inside a ZIP file, containing a single entry with a random, unpredictable name having the same base and suffix as the true filename. The ZIP file is returned in verbatim binary form.
See Gerrit config documentation for information about safe file type configuration.
The HTTP resource Content-Type is dependent on the file type: the applicable type for safe files, or “application/zip” for unsafe files.
The optional, integer-valued parent
parameter can be specified to request the named file from a parent commit of the specified revision. The value is the 1-based index of the parent’s position in the commit object. If the parameter is omitted or the value non-positive, the patch set is referenced.
Filenames are decorated with a suffix of _new
for the current patch, _old
for the only parent, or _oldN
for the Nth parent of many.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/website%2Freleases%2Flogo.png/download HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment; filename="logo.png" Content-Type: image/png `[binary data for logo.png]`
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/download?suffix=new HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: Content-Disposition:attachment; filename="RefControl_new-931cdb73ae9d97eb500a3533455b055d90b99944.java.zip" Content-Type:application/zip `[binary ZIP archive containing a single file, "RefControl_new-cb218df1337df48a0e7ab30a49a8067ac7321881.java"]`
GET /changes/{change-id}/revisions/{revision-id}/files/{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 DiffInfo entity is returned that describes the diff.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )] { "meta_a": { "name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "content_type": "text/x-java-source", "lines": 372 }, "meta_b": { "name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "content_type": "text/x-java-source", "lines": 578 }, "change_type": "MODIFIED", "diff_header": [ "diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "index 59b7670..9faf81c 100644", "--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java" ], "content": [ { "ab": [ "// Copyright (C) 2010 The Android Open Source Project", "//", "// Licensed under the Apache License, Version 2.0 (the \"License\");", "// you may not use this file except in compliance with the License.", "// You may obtain a copy of the License at", "//", "// http://www.apache.org/licenses/LICENSE-2.0", "//", "// Unless required by applicable law or agreed to in writing, software", "// distributed under the License is distributed on an \"AS IS\" BASIS,", "// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", "// See the License for the specific language governing permissions and", "// limitations under the License." ] }, { "b": [ "//", "// Add some more lines in the header." ] }, { "ab": [ "", "package com.google.gerrit.server.project;", "", "import com.google.common.collect.Maps;", ... ] } ... ] }
If the intraline
parameter is specified, intraline differences are included in the diff.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/b6b9c10649b9041884046119ab794374470a1b45/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/diff?intraline HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )] { "meta_a": { "name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "content_type": "text/x-java-source", "lines": 372 }, "meta_b": { "name": "gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "content_type": "text/x-java-source", "lines": 578 }, "change_type": "MODIFIED", "diff_header": [ "diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "index 59b7670..9faf81c 100644", "--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java", "+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java" ], "content": [ ... { "a": [ "/** Manages access control for Git references (aka branches, tags). */" ], "b": [ "/** Manages access control for the Git references (aka branches, tags). */" ], "edit_a": [], "edit_b": [ [ 31, 4 ] ] } ] }
The base
parameter can be specified to control the base patch set from which the diff should be generated.
The integer-valued request parameter parent
can be specified to control the parent commit number against which the diff should be generated. This is useful for supporting review of merge commits. The value is the 1-based index of the parent’s position in the commit object.
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 whitespace
parameter can be specified to control how whitespace differences are reported in the result. Valid values are IGNORE_NONE
, IGNORE_TRAILING
, IGNORE_LEADING_AND_TRAILING
or IGNORE_ALL
.
The context
parameter can be specified to control the number of lines of surrounding context in the diff. Valid values are ALL
or number of lines.
GET /changes/{change-id}/revisions/{revision-id}/files/{file-id}/blame
Gets the blame of a file from a certain revision.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/blame HTTP/1.0
As response a BlameInfo entity is returned that describes the blame.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )] { [ { "author": "Joe Daw", "id": "64e140b4de5883a4dd74d06c2b62ccd7ffd224a7", "time": 1421441349, "commit_msg": "RST test\n\nChange-Id: I11e9e24bd122253f4bb10c36dce825ac2410d646\n", "ranges": [ { "start": 1, "end": 10 }, { "start": 16, "end": 296 } ] }, { "author": "Jane Daw", "id": "8d52621a0e2ac6adec73bd3a49f2371cd53137a7", "time": 1421825421, "commit_msg": "add banner\n\nChange-Id: I2eced9b2691015ae3c5138f4d0c4ca2b8fb15be9\n", "ranges": [ { "start": 13, "end": 13 } ] } ] }
The base
parameter can be specified to control the base patch set from which the blame should be generated.
PUT /changes/{change-id}/revisions/{revision-id}/files/{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 /changes/{change-id}/revisions/{revision-id}/files/{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
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. If the commit message does not specify a Change-Id, a new one is picked for the destination change.
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/cherrypick HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "message" : "Implementing Feature X", "destination" : "release-branch" }
As response a 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" } }
GET /changes/{change-id}/revisions/{revision-id}/reviewers/
Lists the reviewers of a revision.
Please note that only the current revision is supported.
As result a list of ReviewerInfo entries is returned.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/ HTTP/1.0
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' [ { "approvals": { "Verified": "+1", "Code-Review": "+2" }, "_account_id": 1000096, "name": "John Doe", "email": "john.doe@example.com" }, { "approvals": { "Verified": " 0", "Code-Review": "-1" }, "_account_id": 1000097, "name": "Jane Roe", "email": "jane.roe@example.com" } ]
GET /changes/{change-id}/revisions/{revision-id}/reviewers/{account-id}/votes/
Lists the votes for a specific reviewer of the revision.
Please note that only the current revision is supported.
Request.
GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/ HTTP/1.0
As result a map is returned that maps the label name to the label value. The entries in the map are sorted by label name.
Response.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json;charset=UTF-8 )]}' { "Code-Review": -1, "Verified": 1, "Work-In-Progress": 1 }
DELETE /changes/{change-id}/revisions/{revision-id} /reviewers/{account-id}/votes/{label-id}
POST /changes/{change-id}/revisions/{revision-id} /reviewers/{account-id}/votes/{label-id}/delete
Deletes a single vote from a revision. The deletion will be possible only if the revision is the current revision. By using this endpoint you can prevent deleting the vote (with same label) from a newer patch set by mistake.
Note, that even when the last vote of a reviewer is removed the reviewer itself is still listed on the change.
Options can be provided in the request body as a DeleteVoteInput entity.
Request.
DELETE /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/Code-Review HTTP/1.0 POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0
Please note that some proxies prohibit request bodies for DELETE requests. In this case, if you want to specify options, use a POST request:
Request.
POST /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940/revisions/674ac754f91e64a0efb8087e59a176484bd534d1/reviewers/John%20Doe/votes/Code-Review/delete HTTP/1.0 Content-Type: application/json; charset=UTF-8 { "notify": "NONE" }
Response.
HTTP/1.1 204 No Content
Identifier that uniquely identifies one change.
This can be:
an ID of the change in the format “<project>~<numericId>”
an ID of the change in the format “<project><branch><Change-Id>”, where for the branch the refs/heads/
prefix can be omitted (“myProjectmasterI8473b95934b5732ac55d26311a706c9c2bde9940”)
a Change-Id if it uniquely identifies one change (“I8473b95934b5732ac55d26311a706c9c2bde9940”)
a numeric change ID (“4247”)
UUID of a published comment.
UUID of a draft comment.
The name of the label.
The path of the file.
The following magic paths are supported:
/COMMIT_MSG
:
The commit message and headers with the parent commit(s), the author information and the committer information.
/MERGE_LIST
(for merge commits only):
The list of commits that are being integrated into the destination branch by submitting the merge commit.
UUID of a suggested fix.
Identifier that uniquely identifies one revision of a change.
This can be:
the literal current
to name the current patch set/revision
a commit ID (“674ac754f91e64a0efb8087e59a176484bd534d1”)
an abbreviated commit ID that uniquely identifies one revision of the change (“674ac754”), at least 4 digits are required
a legacy numeric patch number (“1” for first patch set of the change)
“0” or the literal edit
for a change edit
The AbandonInput
entity contains information for abandoning a change.
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.
The AddReviewerResult
entity describes the result of adding a reviewer to a change.
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:
The AssigneeInput
entity contains the identity of the user to be set as assignee.
The BlameInfo
entity stores the commit metadata with the row coordinates where it applies.
The ChangeEditInput
entity contains information for restoring a path within change edit.
The ChangeEditMessageInput
entity contains information for changing the commit message within a change edit.
The ChangeInfo
entity contains information about a change.
The ChangeInput
entity contains information about creating a new change.
The ChangeMessageInfo
entity contains information about a message attached to a change.
The CherryPickInput
entity contains information for cherry-picking a change to a new branch.
The CommentInfo
entity contains information about an inline comment.
The CommentInput
entity contains information for creating an inline comment.
The CommentRange
entity describes the range of an inline comment.
The CommitInfo
entity contains information about a commit.
The CommitMessageInput
entity contains information for changing the commit message of a change.
The DeleteCommentInput
entity contains the option for deleting a comment.
The DeleteReviewerInput
entity contains options for the deletion of a reviewer.
The DeleteVoteInput
entity contains options for the deletion of a vote.
The DescriptionInput
entity contains information for setting a description.
The DiffContent
entity contains information about the content differences in a file.
The DiffFileMetaInfo
entity contains meta information about a file diff.
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.
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.
The DiffWebLinkInfo
entity describes a link on a diff screen to an external site.
The EditFileInfo
entity contains additional information of a file within a change edit.
The EditInfo
entity contains information about a change edit.
The FetchInfo
entity contains information about how to fetch a patch set via a certain protocol.
The FileInfo
entity contains information about a file in a patch set.
The FixInput
entity contains options for fixing commits using the fix change endpoint.
The FixSuggestionInfo
entity represents a suggested fix.
The FixReplacementInfo
entity describes how the content of a file should be replaced by another content.
The GitPersonInfo
entity contains information about the author/committer of a commit.
The GroupBaseInfo
entity contains base information about the group.
The HashtagsInput
entity contains information about hashtags to add to, and/or remove from, a change.
The IncludedInInfo
entity contains information about the branches a change was merged into and tags it was tagged with.
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
.
LABELS
DETAILED_LABELS
The MergeableInfo
entity contains information about the mergeability of a change.
The MergeInput
entity contains information about the merge
The MergePatchSetInput
entity contains information about updating a new change by creating a new merge commit.
The MoveInput
entity contains information for moving a change to a new branch.
The NotifyInfo
entity contains detailed information about who should be notified about an update. These notifications are sent out even if a notify
option in the request input disables normal notifications. NotifyInfo
entities are normally contained in a notify_details
map in the request input where the key is the recipient type. The recipient type can be TO
, CC
and BCC
.
The PrivateInput
entity contains information for changing the private flag on a change.
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.
The PublishChangeEditInput
entity contains options for the publishing of change edit.
The PureRevertInfo
entity describes the result of a pure revert check.
The PushCertificateInfo
entity contains information about a push certificate provided when the user pushed for review with git push --signed HEAD:refs/for/<branch>
. Only used when signed push is enabled on the server.
The RangeInfo
entity stores the coordinates of a range.
The RebaseInput
entity contains information for changing parent when rebasing.
The RelatedChangeAndCommitInfo
entity contains information about a related change and commit.
The RelatedChangesInfo
entity contains information about related changes.
The RestoreInput
entity contains information for restoring a change.
The RevertInput
entity contains information for reverting a change.
The ReviewInfo
entity contains information about a review.
The ReviewerUpdateInfo
entity contains information about updates to change’s reviewers set.
The ReviewInput
entity contains information for adding a review to a revision.
The ReviewResult
entity contains information regarding the updates that were made to a review.
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:
The ReviewerInput
entity contains information for adding a reviewer to a change.
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.
The RobotCommentInfo
entity contains information about a robot inline comment.
RobotCommentInfo
has the same fields as CommentInfo. In addition RobotCommentInfo
has the following fields:
The RobotCommentInput
entity contains information for creating an inline robot comment.
RobotCommentInput
has the same fields as RobotCommentInfo.
The RuleInput
entity contains information to test a Prolog rule.
The SubmitInfo
entity contains information about the change status after submitting.
The SubmitInput
entity contains information for submitting a change.
The SubmitRecord
entity describes results from a submit_rule. Fields in this entity roughly correspond to the fields set by LABELS
in LabelInfo.
The SubmittedTogetherInfo
entity contains information about a collection of changes that would be submitted together.
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.
The TopicInput
entity contains information for setting a topic.
The TrackingIdInfo
entity describes a reference to an external tracking system.
The VotingRangeInfo
entity describes the continuous voting range from min to max values.
The WebLinkInfo
entity describes a link to an external site.
The WorkInProgressInput
entity contains additional information for a change set to WorkInProgress/ReadyForReview.
Part of Gerrit Code Review