From 36de4be91ef66852c49aa5fd9e0cc31d5ec05ae9 Mon Sep 17 00:00:00 2001 From: Edward Lesmes Date: Tue, 16 Mar 2021 17:40:15 +0000 Subject: [PATCH] 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 Commit-Queue: Edward Lesmes Reviewed-by: Josip Sokcevic --- presubmit_support.py | 12 ++++++++---- tests/presubmit_unittest.py | 5 +++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/presubmit_support.py b/presubmit_support.py index 3a05c4b8ef..9b339d4e4e 100755 --- a/presubmit_support.py +++ b/presubmit_support.py @@ -652,10 +652,14 @@ class InputApi(object): # 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 fc4e1df40a..8d9a9c5d67 100755 --- a/tests/presubmit_unittest.py +++ b/tests/presubmit_unittest.py @@ -178,6 +178,7 @@ index fe3de7b..54ae6e1 100755 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 @@ the current line as well! 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)