Validate OWNERS files on branch creation

With this change it's possible to enable validation of code owner config
files on branch creation (off by default). Enabling this validation is
rather expensive and makes branch creations slower (in average a latency
increase of 10s to 20s is expected).

If the validation is enabled and a new branch is created, all code owner
config files that are contained in the initial commit are newly
validated, even if the branch is created for a commit that already
exists in the repository. This makes sense since the validation
configuration of the new branch may differ from the branch that already
contains the commit. Also, if code owner config files are imported from
other projects without specifying a branch, these imports may be broken
in the context of the new branch (because the import assumes the same
branch as the importing code owner config and that branch may not exist
in the other project) and hence should be flagged on branch creation.

Skipping the validation is possible by specifying the
code-owners~skip-validation=true validation option.

Change-Id: I57db5b4735eff591c0de3e8c1cc22b7dc27226e3
Signed-off-by: Edwin Kempin <ekempin@google.com>
16 files changed
tree: 8b45c9376c6e6bf1ce4b3f56120adae2fa5cb98d
  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.

For a detailed description of the plugin functionality please refer to the plugin documentation.

IMPORTANT: Before installing/enabling the plugin follow the instructions from the setup guide.

NOTE: The plugin documentation only renders correctly when the plugin is installed in Gerrit and the documentation is accessed via https:///plugins/code-owners/Documentation/index.html. If you want to read the documentation before installing the plugin, you can find it properly rendered here.

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.