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)