OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Enables directory-specific presubmit checks to run at upload and/or commit. | 6 """Enables directory-specific presubmit checks to run at upload and/or commit. |
7 """ | 7 """ |
8 | 8 |
9 __version__ = '1.3.5' | 9 __version__ = '1.3.5' |
10 | 10 |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 r".*\bRelease[\\\/].*", | 220 r".*\bRelease[\\\/].*", |
221 r".*\bxcodebuild[\\\/].*", | 221 r".*\bxcodebuild[\\\/].*", |
222 r".*\bsconsbuild[\\\/].*", | 222 r".*\bsconsbuild[\\\/].*", |
223 # All caps files like README and LICENCE. | 223 # All caps files like README and LICENCE. |
224 r".*\b[A-Z0-9_]{2,}$", | 224 r".*\b[A-Z0-9_]{2,}$", |
225 # SCM (can happen in dual SCM configuration). (Slightly over aggressive) | 225 # SCM (can happen in dual SCM configuration). (Slightly over aggressive) |
226 r"(|.*[\\\/])\.git[\\\/].*", | 226 r"(|.*[\\\/])\.git[\\\/].*", |
227 r"(|.*[\\\/])\.svn[\\\/].*", | 227 r"(|.*[\\\/])\.svn[\\\/].*", |
228 ) | 228 ) |
229 | 229 |
230 def __init__(self, change, presubmit_path, is_committing): | 230 # TODO(dpranke): Update callers to pass in tbr, host_url, remove |
| 231 # default arguments. |
| 232 def __init__(self, change, presubmit_path, is_committing, tbr=False, |
| 233 host_url='http://codereview.chromium.org'): |
231 """Builds an InputApi object. | 234 """Builds an InputApi object. |
232 | 235 |
233 Args: | 236 Args: |
234 change: A presubmit.Change object. | 237 change: A presubmit.Change object. |
235 presubmit_path: The path to the presubmit script being processed. | 238 presubmit_path: The path to the presubmit script being processed. |
236 is_committing: True if the change is about to be committed. | 239 is_committing: True if the change is about to be committed. |
237 """ | 240 """ |
238 # Version number of the presubmit_support script. | 241 # Version number of the presubmit_support script. |
239 self.version = [int(x) for x in __version__.split('.')] | 242 self.version = [int(x) for x in __version__.split('.')] |
240 self.change = change | 243 self.change = change |
| 244 self.host_url = host_url |
241 self.is_committing = is_committing | 245 self.is_committing = is_committing |
| 246 self.tbr = tbr |
242 | 247 |
243 # We expose various modules and functions as attributes of the input_api | 248 # We expose various modules and functions as attributes of the input_api |
244 # so that presubmit scripts don't have to import them. | 249 # so that presubmit scripts don't have to import them. |
245 self.basename = os.path.basename | 250 self.basename = os.path.basename |
246 self.cPickle = cPickle | 251 self.cPickle = cPickle |
247 self.cStringIO = cStringIO | 252 self.cStringIO = cStringIO |
248 self.json = json | 253 self.json = json |
249 self.os_path = os.path | 254 self.os_path = os.path |
250 self.pickle = pickle | 255 self.pickle = pickle |
251 self.marshal = marshal | 256 self.marshal = marshal |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 | 651 |
647 def __init__(self, name, description, local_root, files, issue, patchset): | 652 def __init__(self, name, description, local_root, files, issue, patchset): |
648 if files is None: | 653 if files is None: |
649 files = [] | 654 files = [] |
650 self._name = name | 655 self._name = name |
651 self._full_description = description | 656 self._full_description = description |
652 # Convert root into an absolute path. | 657 # Convert root into an absolute path. |
653 self._local_root = os.path.abspath(local_root) | 658 self._local_root = os.path.abspath(local_root) |
654 self.issue = issue | 659 self.issue = issue |
655 self.patchset = patchset | 660 self.patchset = patchset |
656 | |
657 # TODO(dpranke): implement - get from the patchset? | |
658 self.approvers = set() | |
659 | |
660 self.scm = '' | 661 self.scm = '' |
661 | 662 |
662 # From the description text, build up a dictionary of key/value pairs | 663 # From the description text, build up a dictionary of key/value pairs |
663 # plus the description minus all key/value or "tag" lines. | 664 # plus the description minus all key/value or "tag" lines. |
664 description_without_tags = [] | 665 description_without_tags = [] |
665 self.tags = {} | 666 self.tags = {} |
666 for line in self._full_description.splitlines(): | 667 for line in self._full_description.splitlines(): |
667 m = self._TAG_LINE_RE.match(line) | 668 m = self._TAG_LINE_RE.match(line) |
668 if m: | 669 if m: |
669 self.tags[m.group('key')] = m.group('value') | 670 self.tags[m.group('key')] = m.group('value') |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1184 options.commit, | 1185 options.commit, |
1185 options.verbose, | 1186 options.verbose, |
1186 sys.stdout, | 1187 sys.stdout, |
1187 sys.stdin, | 1188 sys.stdin, |
1188 options.default_presubmit, | 1189 options.default_presubmit, |
1189 options.may_prompt) | 1190 options.may_prompt) |
1190 | 1191 |
1191 | 1192 |
1192 if __name__ == '__main__': | 1193 if __name__ == '__main__': |
1193 sys.exit(Main(sys.argv)) | 1194 sys.exit(Main(sys.argv)) |
OLD | NEW |