This change is another part of the chain to add defaults for adding or removing users as reviewers. This change ensures that each time reviewers are added or removed in any way, the attention set will also be updated accordingly. One edge case is the situation of a change that is work in progress, and in which case the attention set will not be touched, since it should be empty by default at all times, until it gets out the work in progress state. Also, it is possible to mark a change as work in progress while adding a reviewer. In this case it's important to ensure that nobody is added to the attention set. CCs are treated as "REMOVED" for the sake of attention set. They are not reviewers, and should not be in the attention set. As a follow-up change, when a change becomes "ready for review" instead of work in progress, all reviewers will be added to the attention set. Also, users will currently be added to the attention set when they post a reply, because they are added as reviewers at that time. This is not the behavior that we really want cause when users reply, they should be removed from the attention set. This will be fixed when working on the PostReview endpoint. In ChangeUpdate, we only needed to adjust "reviewers" and not the other field that adds reviewers "reviewersByEmail" since according to one of the tests, reviewers that are added by email are still going to be a part of the reviewers field, as long as they are registered within Gerrit. Users that are not registered in Gerrit should not be added to the attention set (hence reviewersByEmail field is not touched). Change-Id: I18300c06bb20d1236153d57bd90f28422d14ce9d
Gerrit Code Review
Gerrit is a code review and project management tool for Git based projects.
Objective
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.
Documentation
For information about how to install and use Gerrit, refer to the documentation.
Source
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Reporting bugs
Please report bugs on the issue tracker.
Contribute
Gerrit is the work of hundreds of contributors. We appreciate your help!
Please read the contribution guidelines.
Note that we do not accept Pull Requests via the Github mirror.
Getting in contact
The Developer Mailing list is repo-discuss on Google Groups.
License
Gerrit is provided under the Apache License 2.0.
Build
Install Bazel and run the following:
git clone --recurse-submodules https://gerrit.googlesource.com/gerrit
cd gerrit && bazel build release
Install binary packages (Deb/Rpm)
The instruction how to configure GerritForge/BinTray repositories is here
On Debian/Ubuntu run:
apt-get update & apt-get install gerrit=<version>-<release>
NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.
On CentOS/RedHat run:
yum clean all && yum install gerrit-<version>[-<release>]
On Fedora run:
dnf clean all && dnf install gerrit-<version>[-<release>]
Use pre-built Gerrit images on Docker
Docker images of Gerrit are available on DockerHub
To run a CentOS 7 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-centos7[:version]
To run a Ubuntu 15.04 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-ubuntu15.04[:version]
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.