= Gerrit Code Review - Robot Comments

Gerrit has special support for inline comments that are generated by
automated third-party systems, so called "robot comments". For example
robot comments can be used to represent the results of code analyzers.

In contrast to regular inline comments which are free-text comments,
robot comments are more structured and can contain additional data,
such as a robot ID, a robot run ID and a URL, see
link:rest-api-changes.html#robot-comment-info[RobotCommentInfo] for
details.

It is planned to visualize robot comments differently in the web UI so
that they can be easily distinguished from human comments. Users should
also be able to use filtering on robot comments, so that only part of
the robot comments or no robot comments are shown. In addition robot
comments can contain fixes, that users can apply by a single click.

== REST endpoints

* Posting robot comments is done by the
  link:rest-api-changes.html[Set Review] REST endpoint. The
  link:rest-api-changes.html#review-input[input] for this REST endpoint
  can contain robot comments in its `robot_comments` field.
* link:rest-api-changes.html#list-robot-comments[List Robot Comments]
* link:rest-api-changes.html#get-robot-comment[Get Robot Comment]

== Storage

Robot comments are stored per change in a
`refs/changes/XX/YYYY/robot-comments` ref, where `XX/YYYY` is the
sharded change ID.

Robot comments can be dropped by deleting this ref.

== Limitations

* There is no support for draft robot comments, but robot comments are
  always published and visible to everyone who can see the change.

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

SEARCHBOX
---------
