= Gerrit Code Review - JSON Data

Some commands produce JSON data streams intended for other
applications to consume.  The structures are documented below.
Note that any field may be missing in the JSON messages, so consumers
of this JSON stream should deal with that appropriately.

[[change]]
== change
The Gerrit change being reviewed, or that was already reviewed.

project:: Project path in Gerrit.

branch:: Branch name within project.

topic:: Topic name specified by the uploader for this change series.

id:: Change identifier, as scraped out of the Change-Id field in
the commit message, or as assigned by the server if it was missing.

number:: Change number (deprecated).

subject:: Description of change.

owner:: Owner in <<account,account attribute>>.

url:: Canonical URL to reach this change.

commitMessage:: The full commit message for the change's current patch
set.

createdOn:: Time in seconds since the UNIX epoch when this change
was created.

lastUpdated:: Time in seconds since the UNIX epoch when this change
was last updated.

open:: Boolean indicating if the change is still open for review.

status:: Current state of this change.

  NEW;; Change is still being reviewed.

  MERGED;; Change has been merged to its branch.

  ABANDONED;; Change was abandoned by its owner or administrator.

comments:: All inline/file comments for this change in <<message,message attributes>>.

trackingIds:: Issue tracking system links in
<<trackingid,trackingid attributes>>, scraped out of the commit
message based on the server's
link:config-gerrit.html#trackingid[trackingid] sections.

currentPatchSet:: Current <<patchSet,patchSet attribute>>.

patchSets:: All <<patchSet,patchSet attributes>> for this change.

dependsOn:: List of changes that this change depends on in <<dependency,dependency attributes>>.

neededBy:: List of changes that depend on this change in <<dependency,dependency attributes>>.

submitRecords:: The <<submitRecord,submitRecord attribute>> contains
information about whether this change has been or can be submitted.

allReviewers:: List of all reviewers in <<account,account attribute>>
which are added to a change.

[[trackingid]]
== trackingid
A link to an issue tracking system.

system:: Name of the system.  This comes straight from the
gerrit.config file.

id:: Id number as scraped out of the commit message.

[[account]]
== account
A user account.

name:: User's full name, if configured.

email:: User's preferred email address.

username:: User's username, if configured.

[[patchSet]]
== patchSet
Refers to a specific patchset within a <<change,change>>.

number:: The patchset number.

revision:: Git commit for this patchset.

parents:: List of parent revisions.

ref:: Git reference pointing at the revision.  This reference is
available through the Gerrit Code Review server's Git interface
for the containing change.

uploader:: Uploader of the patch set in <<account,account attribute>>.

author:: Author of this patchset in <<account,account attribute>>.

createdOn:: Time in seconds since the UNIX epoch when this patchset
was created.

kind:: Kind of change uploaded.

  REWORK;; Nontrivial content changes.

  TRIVIAL_REBASE;; Conflict-free merge between the new parent and the prior patch set.

  MERGE_FIRST_PARENT_UPDATE;; Conflict-free change of first (left) parent of a merge commit.

  NO_CODE_CHANGE;; No code changed; same tree and same parent tree.

  NO_CHANGE;; No changes; same commit message, same tree and same parent tree.

approvals:: The <<approval,approval attribute>> granted.

comments:: All comments for this patchset in <<patchsetcomment,patchsetComment attributes>>.

files:: All changed files in this patchset in <<file,file attributes>>.

sizeInsertions:: Size information of insertions of this patchset.

sizeDeletions:: Size information of deletions of this patchset.

[[approval]]
== approval
Records the code review approval granted to a patch set.

type:: Internal name of the approval given.

description::  Human readable category of the approval.

value:: Value assigned by the approval, usually a numerical score.

oldValue:: The previous approval score, only present if the value changed as a result of this event.

grantedOn:: Time in seconds since the UNIX epoch when this approval
was added or last updated.

by:: Reviewer of the patch set in <<account,account attribute>>.

[[refUpdate]]
== refUpdate
Information about a ref that was updated.

oldRev:: The old value of the ref, prior to the update.

newRev:: The new value the ref was updated to.

refName:: Full ref name within project.

project:: Project path in Gerrit.

[[submitRecord]]
== submitRecord
Information about the submit status of a change.

status:: Current submit status.

  OK;; The change is ready for submission or already submitted.

  NOT_READY;; The change is missing a required label.

  RULE_ERROR;; An internal server error occurred preventing computation.

labels:: This describes the state of each code review
<<label,label attribute>>, unless the status is RULE_ERROR.

[[label]]
== label
Information about a code review label for a change.

label:: The name of the label.

status:: The status of the label.

  OK;; This label provides what is necessary for submission.

  REJECT;; This label prevents the change from being submitted.

  NEED;; The label is required for submission, but has not
  been satisfied.

  MAY;; The label may be set, but it's neither necessary for
  submission nor does it block submission if set.

  IMPOSSIBLE;; The label is required for submission, but is impossible
  to complete.  The likely cause is access has not been granted
  correctly by the project owner or site administrator.

by:: The <<account,account>> that applied the label.

[[dependency]]
== dependency
Information about a change or patchset dependency.

id:: Change identifier.

number:: Change number.

revision:: Patchset revision.

ref:: Ref name.

isCurrentPatchSet:: If the revision is the current patchset of the change.

[[message]]
== message
Comment added on a change by a reviewer.

timestamp:: Time in seconds since the UNIX epoch when this comment
was added.

reviewer:: The <<account,account>> that added the comment.

message:: The comment text.

[[patchsetcomment]]
== patchsetComment
Comment added on a patchset by a reviewer.

file:: The name of the file on which the comment was added.

line:: The line number at which the comment was added.

reviewer:: The <<account,account>> that added the comment.

message:: The comment text.

[[file]]
== file
Information about a patch on a file.

file:: The name of the file.  If the file is renamed, the new name.

fileOld:: The old name of the file, if the file is renamed.

type:: The type of change.

  ADDED;; The file is being created/introduced by this patch.

  MODIFIED;; The file already exists, and has updated content.

  DELETED;; The file existed, but is being removed by this patch.

  RENAMED;; The file is renamed.

  COPIED;; The file is copied from another file.

  REWRITE;; Sufficient amount of content changed to claim the file was rewritten.

insertions:: number of insertions of this patch.

deletions::  number of deletions of this patch.

== SEE ALSO

* link:cmd-stream-events.html[gerrit stream-events]
* link:cmd-query.html[gerrit query]

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
