Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Side by Side Diff: git_cl.py

Issue 949273002: Add ability to specify and run post upload hooks (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Fix tests and cleanup Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | presubmit_support.py » ('j') | presubmit_support.py » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 # Copyright (C) 2008 Evan Martin <martine@danga.com> 6 # Copyright (C) 2008 Evan Martin <martine@danga.com>
7 7
8 """A git-command for integrating reviews on Rietveld.""" 8 """A git-command for integrating reviews on Rietveld."""
9 9
10 from distutils.version import LooseVersion 10 from distutils.version import LooseVersion
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 return self.tree_status_url 424 return self.tree_status_url
425 425
426 def GetViewVCUrl(self): 426 def GetViewVCUrl(self):
427 if not self.viewvc_url: 427 if not self.viewvc_url:
428 self.viewvc_url = self._GetRietveldConfig('viewvc-url', error_ok=True) 428 self.viewvc_url = self._GetRietveldConfig('viewvc-url', error_ok=True)
429 return self.viewvc_url 429 return self.viewvc_url
430 430
431 def GetBugPrefix(self): 431 def GetBugPrefix(self):
432 return self._GetRietveldConfig('bug-prefix', error_ok=True) 432 return self._GetRietveldConfig('bug-prefix', error_ok=True)
433 433
434 def GetRunPostUploadHook(self):
435 run_post_upload_hook = self._GetRietveldConfig(
436 'run-post-upload-hook', error_ok=True)
437 return run_post_upload_hook == "True"
438
434 def GetDefaultCCList(self): 439 def GetDefaultCCList(self):
435 return self._GetRietveldConfig('cc', error_ok=True) 440 return self._GetRietveldConfig('cc', error_ok=True)
436 441
437 def GetDefaultPrivateFlag(self): 442 def GetDefaultPrivateFlag(self):
438 return self._GetRietveldConfig('private', error_ok=True) 443 return self._GetRietveldConfig('private', error_ok=True)
439 444
440 def GetIsGerrit(self): 445 def GetIsGerrit(self):
441 """Return true if this repo is assosiated with gerrit code review system.""" 446 """Return true if this repo is assosiated with gerrit code review system."""
442 if self.is_gerrit is None: 447 if self.is_gerrit is None:
443 self.is_gerrit = self._GetConfig('gerrit.host', error_ok=True) 448 self.is_gerrit = self._GetConfig('gerrit.host', error_ok=True)
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after
1021 if new_val != initial: 1026 if new_val != initial:
1022 RunGit(['config', 'rietveld.' + name, new_val]) 1027 RunGit(['config', 'rietveld.' + name, new_val])
1023 1028
1024 SetProperty(settings.GetDefaultCCList(), 'CC list', 'cc', False) 1029 SetProperty(settings.GetDefaultCCList(), 'CC list', 'cc', False)
1025 SetProperty(settings.GetDefaultPrivateFlag(), 1030 SetProperty(settings.GetDefaultPrivateFlag(),
1026 'Private flag (rietveld only)', 'private', False) 1031 'Private flag (rietveld only)', 'private', False)
1027 SetProperty(settings.GetTreeStatusUrl(error_ok=True), 'Tree status URL', 1032 SetProperty(settings.GetTreeStatusUrl(error_ok=True), 'Tree status URL',
1028 'tree-status-url', False) 1033 'tree-status-url', False)
1029 SetProperty(settings.GetViewVCUrl(), 'ViewVC URL', 'viewvc-url', True) 1034 SetProperty(settings.GetViewVCUrl(), 'ViewVC URL', 'viewvc-url', True)
1030 SetProperty(settings.GetBugPrefix(), 'Bug Prefix', 'bug-prefix', False) 1035 SetProperty(settings.GetBugPrefix(), 'Bug Prefix', 'bug-prefix', False)
1036 SetProperty(settings.GetRunPostUploadHook(), 'Run Post Upload Hook',
1037 'run-post-upload-hook', False)
1031 1038
1032 # TODO: configure a default branch to diff against, rather than this 1039 # TODO: configure a default branch to diff against, rather than this
1033 # svn-based hackery. 1040 # svn-based hackery.
1034 1041
1035 1042
1036 class ChangeDescription(object): 1043 class ChangeDescription(object):
1037 """Contains a parsed form of the change description.""" 1044 """Contains a parsed form of the change description."""
1038 R_LINE = r'^[ \t]*(TBR|R)[ \t]*=[ \t]*(.*?)[ \t]*$' 1045 R_LINE = r'^[ \t]*(TBR|R)[ \t]*=[ \t]*(.*?)[ \t]*$'
1039 BUG_LINE = r'^[ \t]*(BUG)[ \t]*=[ \t]*(.*?)[ \t]*$' 1046 BUG_LINE = r'^[ \t]*(BUG)[ \t]*=[ \t]*(.*?)[ \t]*$'
1040 1047
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
1203 SetProperty('private', 'PRIVATE', unset_error_ok=True) 1210 SetProperty('private', 'PRIVATE', unset_error_ok=True)
1204 SetProperty('tree-status-url', 'STATUS', unset_error_ok=True) 1211 SetProperty('tree-status-url', 'STATUS', unset_error_ok=True)
1205 SetProperty('viewvc-url', 'VIEW_VC', unset_error_ok=True) 1212 SetProperty('viewvc-url', 'VIEW_VC', unset_error_ok=True)
1206 SetProperty('bug-prefix', 'BUG_PREFIX', unset_error_ok=True) 1213 SetProperty('bug-prefix', 'BUG_PREFIX', unset_error_ok=True)
1207 SetProperty('cpplint-regex', 'LINT_REGEX', unset_error_ok=True) 1214 SetProperty('cpplint-regex', 'LINT_REGEX', unset_error_ok=True)
1208 SetProperty('force-https-commit-url', 'FORCE_HTTPS_COMMIT_URL', 1215 SetProperty('force-https-commit-url', 'FORCE_HTTPS_COMMIT_URL',
1209 unset_error_ok=True) 1216 unset_error_ok=True)
1210 SetProperty('cpplint-ignore-regex', 'LINT_IGNORE_REGEX', unset_error_ok=True) 1217 SetProperty('cpplint-ignore-regex', 'LINT_IGNORE_REGEX', unset_error_ok=True)
1211 SetProperty('project', 'PROJECT', unset_error_ok=True) 1218 SetProperty('project', 'PROJECT', unset_error_ok=True)
1212 SetProperty('pending-ref-prefix', 'PENDING_REF_PREFIX', unset_error_ok=True) 1219 SetProperty('pending-ref-prefix', 'PENDING_REF_PREFIX', unset_error_ok=True)
1220 SetProperty('run-post-upload-hook', 'RUN_POST_UPLOAD_HOOK',
1221 unset_error_ok=True)
1213 1222
1214 if 'GERRIT_HOST' in keyvals: 1223 if 'GERRIT_HOST' in keyvals:
1215 RunGit(['config', 'gerrit.host', keyvals['GERRIT_HOST']]) 1224 RunGit(['config', 'gerrit.host', keyvals['GERRIT_HOST']])
1216 1225
1217 if 'PUSH_URL_CONFIG' in keyvals and 'ORIGIN_URL_CONFIG' in keyvals: 1226 if 'PUSH_URL_CONFIG' in keyvals and 'ORIGIN_URL_CONFIG' in keyvals:
1218 #should be of the form 1227 #should be of the form
1219 #PUSH_URL_CONFIG: url.ssh://gitrw.chromium.org.pushinsteadof 1228 #PUSH_URL_CONFIG: url.ssh://gitrw.chromium.org.pushinsteadof
1220 #ORIGIN_URL_CONFIG: http://src.chromium.org/git 1229 #ORIGIN_URL_CONFIG: http://src.chromium.org/git
1221 RunGit(['config', keyvals['PUSH_URL_CONFIG'], 1230 RunGit(['config', keyvals['PUSH_URL_CONFIG'],
1222 keyvals['ORIGIN_URL_CONFIG']]) 1231 keyvals['ORIGIN_URL_CONFIG']])
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after
2028 'might not include those changes.') 2037 'might not include those changes.')
2029 ask_for_data('About to upload; enter to confirm.') 2038 ask_for_data('About to upload; enter to confirm.')
2030 2039
2031 print_stats(options.similarity, options.find_copies, args) 2040 print_stats(options.similarity, options.find_copies, args)
2032 if settings.GetIsGerrit(): 2041 if settings.GetIsGerrit():
2033 return GerritUpload(options, args, cl, change) 2042 return GerritUpload(options, args, cl, change)
2034 ret = RietveldUpload(options, args, cl, change) 2043 ret = RietveldUpload(options, args, cl, change)
2035 if not ret: 2044 if not ret:
2036 git_set_branch_value('last-upload-hash', 2045 git_set_branch_value('last-upload-hash',
2037 RunGit(['rev-parse', 'HEAD']).strip()) 2046 RunGit(['rev-parse', 'HEAD']).strip())
2047 # Run post upload hooks, if specified.
2048 if settings.GetRunPostUploadHook():
2049 presubmit_support.DoPostUploadExecuter(
2050 change,
2051 cl,
2052 settings.GetRoot(),
2053 options.verbose,
2054 sys.stdout)
2038 2055
2039 return ret 2056 return ret
2040 2057
2041 2058
2042 def IsSubmoduleMergeCommit(ref): 2059 def IsSubmoduleMergeCommit(ref):
2043 # When submodules are added to the repo, we expect there to be a single 2060 # When submodules are added to the repo, we expect there to be a single
2044 # non-git-svn merge commit at remote HEAD with a signature comment. 2061 # non-git-svn merge commit at remote HEAD with a signature comment.
2045 pattern = '^SVN changes up to revision [0-9]*$' 2062 pattern = '^SVN changes up to revision [0-9]*$'
2046 cmd = ['rev-list', '--merges', '--grep=%s' % pattern, '%s^!' % ref] 2063 cmd = ['rev-list', '--merges', '--grep=%s' % pattern, '%s^!' % ref]
2047 return RunGit(cmd) != '' 2064 return RunGit(cmd) != ''
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after
3044 ('AppEngine is misbehaving and returned HTTP %d, again. Keep faith ' 3061 ('AppEngine is misbehaving and returned HTTP %d, again. Keep faith '
3045 'and retry or visit go/isgaeup.\n%s') % (e.code, str(e))) 3062 'and retry or visit go/isgaeup.\n%s') % (e.code, str(e)))
3046 3063
3047 3064
3048 if __name__ == '__main__': 3065 if __name__ == '__main__':
3049 # These affect sys.stdout so do it outside of main() to simplify mocks in 3066 # These affect sys.stdout so do it outside of main() to simplify mocks in
3050 # unit testing. 3067 # unit testing.
3051 fix_encoding.fix_encoding() 3068 fix_encoding.fix_encoding()
3052 colorama.init() 3069 colorama.init()
3053 sys.exit(main(sys.argv[1:])) 3070 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « no previous file | presubmit_support.py » ('j') | presubmit_support.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698