PRESUBMIT: Make BUG= field mandatory.

Also show a descriptive error message if BUG= field is missing.

BUG=webrtc:6326
NOTRY=True
TESTED=Verified the presubmit error using this very same CL (but with BUG= left empty).

Review-Url: https://codereview.webrtc.org/2322843003
Cr-Commit-Position: refs/heads/master@{#14291}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 8619ac5..da193b4 100755
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -448,6 +448,21 @@
         warning_descriptions))
   return results
 
+def _CheckChangeHasBugField(input_api, output_api):
+  """Requires that the changelist have a BUG= field.
+
+  This check is stricter than the one in depot_tools/presubmit_canned_checks.py
+  since it fails the presubmit if the BUG= field is missing or doesn't contain
+  a bug reference.
+  """
+  if input_api.change.BUG:
+    return []
+  else:
+    return [output_api.PresubmitError(
+        'The BUG=[bug number] field is mandatory. Please create a bug and '
+        'reference it using either of:\n'
+        ' * https://bugs.webrtc.org - reference it using BUG=webrtc:XXXX\n'
+        ' * https://crbug.com - reference it using BUG=chromium:XXXXXX')]
 
 def _CheckJSONParseErrors(input_api, output_api):
   """Check that JSON files do not contain syntax errors."""
@@ -597,8 +612,7 @@
       input_api, output_api))
   results.extend(input_api.canned_checks.CheckChangeHasDescription(
       input_api, output_api))
-  results.extend(input_api.canned_checks.CheckChangeHasBugField(
-      input_api, output_api))
+  results.extend(_CheckChangeHasBugField(input_api, output_api))
   results.extend(input_api.canned_checks.CheckChangeHasTestField(
       input_api, output_api))
   results.extend(input_api.canned_checks.CheckTreeIsOpen(