Drop PROJECT_OWNERS as option for fallback code owners

We (Google) cannot support this option in our cronjob that
automatically reindexes stale changes.

Since the result of submit rules are stored in the index, reindexing a
change invokes the code-owners submit rule. Running the code-owners
submit rule with fallbackCodeOwners = PROJECT_OWNERS fails in the
cronjob because the cronjob has no permission backend available and
hence cannot check user permissions, which is needed to know if a user
is a project owner.

Making the permission backend available in the cronjob is infeasible at
the moment (because we have group backends that contact third-party
systems that do not work in the cronjob environment).

Since none of our stakeholders uses project owners as fallback code
owners we decided to drop this option. This also simplifies the code
quite a lot.

A few tests used project owners as fallback code owners to test other
functionality. These have been adapted to not rely on project owners as
fallback code owners. Most notable the CodeOwnerSubmitRuleBatchIT test
needed to be changed. Instead of using project owners as fallback code
owners it configures code owners via an OWNERS file now. To create the
OWNERS file the code owners test API is used, which needs to be bound in
Guice now. To add this binding TestBatchModule was added that follows
the example of TestModule.

If after this change fallbackCodeOwners = PROJECT_OWNERS is still set,
we fallback to fallbackCodeOwners = NONE.

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: Id34ccecfdc8aab534d96476e848eda4bec225f64
14 files changed
tree: 3b8de27ed93a9861cc76b033ac409736104d798a
  1. java/
  2. javatests/
  3. proto/
  4. resources/
  5. test/
  6. ui/
  7. .eslintrc.json
  8. .gitignore
  9. .gitreview
  10. bower.json
  11. BUILD
  12. LICENSE
  13. package-lock.json
  14. package.json
  15. README.md
README.md

Gerrit Code Review code-owners plugin

This plugin provides support for defining code owners for files in a repository.

If the code-owners plugin is enabled, changes can only be submitted if all touched files are covered by approvals from code owners.

Also see resources/Documentation/about.md.

IMPORTANT: Before installing/enabling the plugin follow the instructions from the setup guide, see resources/Documentation/setup-guide.md.

JavaScript Plugin

For testing the plugin with Gerrit FE Dev Helper build the JavaScript bundle and copy it to the plugins/ folder:

bazel build //plugins/code-owners/ui:code-owners
cp -f bazel-bin/plugins/code-owners/ui/code-owners.js plugins/

and let the Dev Helper redirect from .+/plugins/code-owners/static/code-owners.js to http://localhost:8081/plugins_/code-owners.js.