= 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.

hashtags:: List of hashtags associated with this change.

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.

private:: Boolean indicating if the change is
link:intro-user.html#private-changes[private].

wip:: Boolean indicating if the change is
link:intro-user.html#wip[work in progress].

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. Zero value (`0000000000000000000000000000000000000000`)
indicates that the ref was deleted.

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.

requirements:: Each <<requirement>> describes what needs to be changed
in order for the change to be submittable.


[[requirement]]
== requirement
Information about a requirement in order to submit a change.

fallbackText:: A human readable description of the requirement.

type:: Alphanumerical (plus hyphens or underscores) string to identify what the requirement is and
why it was triggered. Can be seen as a class: requirements sharing the same type were created for a
similar reason, and the data structure will follow one set of rules.

data:: (Optional) Additional key-value data linked to this requirement. This is used in templates to
render rich status messages.

[[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
---------
