| commit | f76f88ecf76c119726f620d193f092f1c8f13005 | [log] [tgz] |
|---|---|---|
| author | Edwin Kempin <ekempin@google.com> | Wed Dec 03 15:38:12 2025 +0000 |
| committer | Edwin Kempin <ekempin@google.com> | Wed Dec 03 15:46:27 2025 +0000 |
| tree | 605dfbe49b4109b2230b8e491f1766c92dfaf4e4 | |
| parent | 8c0d9a9599eb4a350c340592e1b29483cedfd8b2 [diff] |
Avoid computing file diffs when evalution code owner approvals To evaluate code owner approvals on a change we need to know which files have been changed. So far we retrieved the changed files from the diff cache, which means file diffs are being computed when they are not cached yet (or when their cache entry has expired). Computing files diff for changes that touch many files (e.g. > 70k files) can take > 15min. Since the code owner approval evaluation only needs to know which files have changed, computing the file diffs seems unnecessary. DiffOperations has a new method that allows to get the modified files without computing the file diffs and with this change we are using it to get the changed files instead of getting them from the diff cache. For the evalution of code owner approvals detecting renames is important (because renamed files require an approval on the old and the new path), hence the rename detection must be enabled. Bug: Google b/461456634 Change-Id: I45c7e61832be45676ef0ceae5044990cfdf469e0 Signed-off-by: Edwin Kempin <ekempin@google.com>
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.
From the root of the gerrit repository.
bazel test //plugins/code-owners/web:karma_test
For testing the plugin with the Gerrit FE Dev Helper the command below builds
bazel build //plugins/code-owners/web:code-owners
ln -s bazel-bin/plugins/code-owners/web/code-owners.js polygerrit-ui/app/plugins/
and let the Dev Helper redirect from .+/plugins/code-owners/static/code-owners.js to http://localhost:8081/plugins/code-owners.js.