= gerrit stream-events
== NAME
gerrit stream-events - Monitor events occurring in real time

== SYNOPSIS
[verse]
--
_ssh_ -p <port> <host> _gerrit stream-events_
--

== DESCRIPTION

Provides a portal into the major events occurring on the server,
outputting activity data in real-time to the client.  Events are
filtered by the caller's access permissions, ensuring the caller
only receives events for changes they can view on the web, or in
the project repository.

Event output is in JSON, one event per line.

== ACCESS
Caller must be a member of the privileged 'Administrators' group,
or have been granted
link:access-control.html#capability_streamEvents[the 'Stream Events' global capability].

== SCRIPTING
This command is intended to be used in scripts.

== OPTIONS
--subscribe|-s::
	Type of the event to subscribe to.  Multiple --subscribe options
	may be specified to subscribe to multiple events. When this option
	is provided, only subscribed events are emitted and all other
	events are ignored. When this option is omitted, all events are
	emitted.

== EXAMPLES

----
  $ ssh -p 29418 review.example.com gerrit stream-events
  {"type":"comment-added",change:{"project":"tools/gerrit", ...}, ...}
  {"type":"comment-added",change:{"project":"tools/gerrit", ...}, ...}
----

Only subscribe to specific event types:

----
  $ ssh -p 29418 review.example.com gerrit stream-events \
      -s draft-published -s patchset-created -s ref-replicated
----

== SCHEMA
The JSON messages consist of nested objects referencing the *change*,
*patchSet*, *account* involved, and other attributes as appropriate.

Note that any field may be missing in the JSON messages, so consumers of
this JSON stream should deal with that appropriately.

[[events]]
== EVENTS
=== Assignee Changed

Sent when the assignee of a change has been modified.

type:: "assignee-changed"

change:: link:json.html#change[change attribute]

changer:: link:json.html#account[account attribute]

oldAssignee:: Assignee before it was changed.

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Change Abandoned

Sent when a change has been abandoned.

type:: "change-abandoned"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

abandoner:: link:json.html#account[account attribute]

reason:: Reason for abandoning the change.

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

== Change Deleted

Sent when a change has been deleted.

type:: "change-deleted"

change:: link:json.html#change[change attribute]

deleter:: link:json.html#account[account attribute]

=== Change Merged

Sent when a change has been merged into the git repository.

type:: "change-merged"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

submitter:: link:json.html#account[account attribute]

newRev:: The resulting revision of the merge.

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Change Restored

Sent when an abandoned change has been restored.

type:: "change-restored"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

restorer:: link:json.html#account[account attribute]

reason:: Reason for restoring the change.

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Comment Added

Sent when a review comment has been posted on a change.

type:: "comment-added"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

author:: link:json.html#account[account attribute]

approvals:: All link:json.html#approval[approval attributes] granted.

comment:: Review comment cover message.

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Draft Published

Sent when a draft change has been published.

type:: "draft-published"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

uploader:: link:json.html#account[account attribute]

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Dropped Output

Sent to notify a client that events have been dropped.

type:: "dropped-output"

=== Hashtags Changed

Sent when the hashtags have been added to or removed from a change.

type:: "hashtags-changed"

change:: link:json.html#change[change attribute]

editor:: link:json.html#account[account attribute]

added:: List of hashtags added to the change

removed:: List of hashtags removed from the change

hashtags:: List of hashtags on the change after tags were added or removed

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Project Created

Sent when a new project has been created.

type:: "project-created"

projectName:: The created project name

projectHead:: The created project head name

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Patchset Created

Sent when a new change has been uploaded, or a new patch set has been uploaded
to an existing change.

Note that this event is also sent for changes or patch sets uploaded as draft,
but is only visible to the change owner, any existing reviewers, and users who
belong to a group that is granted the
link:access-control.html#category_view_drafts[View Drafts] capability.

type:: "patchset-created"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

uploader:: link:json.html#account[account attribute]

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Ref Updated

Sent when a reference is updated in a git repository.

type:: "ref-updated"

submitter:: link:json.html#account[account attribute]

refUpdate:: link:json.html#refUpdate[refUpdate attribute]

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Reviewer Added

Sent when a reviewer is added to a change.

type:: "reviewer-added"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

reviewer:: link:json.html#account[account attribute]

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Reviewer Deleted

Sent when a reviewer (with a vote) is removed from a change.

type:: "reviewer-deleted"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

reviewer:: reviewer that was removed as link:json.html#account[account attribute]

remover:: user that removed the reviewer as link:json.html#account[account attribute]

approvals:: All link:json.html#approval[approval attributes] removed.

comment:: Review comment cover message.

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Topic Changed

Sent when the topic of a change has been changed.

type:: "topic-changed"

change:: link:json.html#change[change attribute]

changer:: link:json.html#account[account attribute]

oldTopic:: Topic name before it was changed.

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

=== Vote Deleted

Sent when a vote was removed from a change.

type:: "vote-deleted"

change:: link:json.html#change[change attribute]

patchSet:: link:json.html#patchSet[patchSet attribute]

reviewer:: user whose vote was removed as link:json.html#account[account attribute]

remover:: user who removed the vote as link:json.html#account[account attribute]

approvals:: all votes as link:json.html#approval[approval attributes]

comment:: Review comment cover message.

== SEE ALSO

* link:json.html[JSON Data Formats]
* link:access-control.html[Access Controls]

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

SEARCHBOX
---------
