[infra] Fix DEPS to use full commit hashes

Branches and tags may change out from under us or disappear entirely.
Also add a presubmit check to prevent regressing.

Change-Id: I73878907d9a72f7de7b50989919c3a7bc385abf9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229490
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index bd88c0a..2513c9c 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -226,6 +226,24 @@
     self.output_api.PresubmitPromptWarning = self.old_warning
 
 
+def _CheckDEPSValid(input_api, output_api):
+  """Ensure that DEPS contains valid entries."""
+  results = []
+  script = os.path.join('infra', 'bots', 'check_deps.py')
+  relevant_files = ('DEPS', script)
+  for f in input_api.AffectedFiles():
+    if f.LocalPath() in relevant_files:
+      break
+  else:
+    return results
+  cmd = ['python', script]
+  try:
+    subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+  except subprocess.CalledProcessError as e:
+    results.append(output_api.PresubmitError(e.output))
+  return results
+
+
 def _CommonChecks(input_api, output_api):
   """Presubmit checks common to upload and commit."""
   results = []
@@ -251,6 +269,7 @@
                                   source_file_filter=sources))
   results.extend(_ToolFlags(input_api, output_api))
   results.extend(_CheckCompileIsolate(input_api, output_api))
+  results.extend(_CheckDEPSValid(input_api, output_api))
   return results