presubmit: Use code-owners plugin if available.
Change-Id: I56734de985731d007360a4a4e65f2b16de28b69a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2753894
Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
diff --git a/presubmit_support.py b/presubmit_support.py
index 3a05c4b..9b339d4 100755
--- a/presubmit_support.py
+++ b/presubmit_support.py
@@ -652,10 +652,14 @@
# Temporary files we must manually remove at the end of a run.
self._named_temporary_files = []
- # TODO(dpranke): figure out a list of all approved owners for a repo
- # in order to be able to handle wildcard OWNERS files?
- self.owners_client = owners_client.DepotToolsClient(
- change.RepositoryRoot(), change.UpstreamBranch(), os_path=self.os_path)
+ self.owners_client = None
+ if self.gerrit:
+ self.owners_client = owners_client.GetCodeOwnersClient(
+ root=change.RepositoryRoot(),
+ upstream=change.UpstreamBranch(),
+ host=self.gerrit.host,
+ project=self.gerrit.project,
+ branch=self.gerrit.branch)
self.owners_db = owners_db.Database(
change.RepositoryRoot(), fopen=open, os_path=self.os_path)
self.owners_finder = owners_finder.OwnersFinder
diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py
index fc4e1df..8d9a9c5 100755
--- a/tests/presubmit_unittest.py
+++ b/tests/presubmit_unittest.py
@@ -178,6 +178,7 @@
mock.patch('gclient_utils.FileWrite').start()
mock.patch('json.load').start()
mock.patch('multiprocessing.cpu_count', lambda: 2)
+ mock.patch('gerrit_util.IsCodeOwnersEnabled').start()
mock.patch('os.chdir').start()
mock.patch('os.getcwd', self.RootDir)
mock.patch('os.listdir').start()
@@ -2749,9 +2750,9 @@
input_api.dry_run = dry_run
input_api.gerrit._FetchChangeDetail = lambda _: response
- input_api.owners_client = owners_client.DepotToolsClient('root', 'branch')
+ input_api.owners_client = owners_client.OwnersClient()
- with mock.patch('owners_client.DepotToolsClient.ListOwners',
+ with mock.patch('owners_client.OwnersClient.ListOwners',
side_effect=lambda f: owners_by_path.get(f, [])):
results = presubmit_canned_checks.CheckOwners(
input_api, presubmit.OutputApi, allow_tbr=allow_tbr)