def search(self, args): ''' execute a gerrit query ''' query = ' '.join(self.arguments.terms) print ("Searching for: %s" % query) changes = gerrit.Changes() res = changes.query(query, n=self.arguments.n) gerrit.dump_json(res)
def search(self, args): ''' execute a gerrit query ''' query = ' '.join(self.arguments.terms) print("Searching for: %s" % query) changes = gerrit.Changes() res = changes.query(query, n=self.arguments.n) gerrit.dump_json(res)
def revert(self, changeids): ''' revert a change in gerrit ''' message = self.arguments.message changeids = self.arguments.changeid for changeid in changeids: change = gerrit.Change(changeid) try: res = change('revert').post(data={"message": message}) gerrit.dump_json(res) except Exception as e: print(e.message)
def merge(self, *extra_args): """ scap swat """ logger = self.get_logger() for changeid in self.changeids: change = gerrit.ChangeDetail(changeid) data = change.get() self.display_change(change) actions = change.revision('actions').get() if actions.rebase.enabled: # if the change is not submittable, attempt to rebase prompt = 'This change must be rebased on top of {}, continue?' prompt = prompt.format(change.data.branch) bail = 'Cannot merge without rebase.' self.confirm_if_flag_missing('rebase', prompt, False, bail) # Rebase on top of the target branch res = change.revision('rebase').post(data={"base": ''}) gerrit.dump_json(res) # refresh change details change.get() def submit(): if utils.confirm('Submit the change?', True): change.revision('submit').post() def approve(): logger.debug("Approval Message: %s", self.message) if utils.confirm('Vote +2 and submit?', True): reviewinput={ "message": self.message, "labels": { "Code-Review": "+2" }, "comments": {}, "drafts": "KEEP" } change.revision('review').post(data=reviewinput) submit() if change.data.submittable: submit() else: approve()
def merge(self, *extra_args): """ scap swat """ logger = self.get_logger() for changeid in self.changeids: change = gerrit.ChangeDetail(changeid) data = change.get() self.display_change(change) actions = change.revision('actions').get() if actions.rebase.enabled: # if the change is not submittable, attempt to rebase prompt = 'This change must be rebased on top of {}, continue?' prompt = prompt.format(change.data.branch) bail = 'Cannot merge without rebase.' self.confirm_if_flag_missing('rebase', prompt, False, bail) # Rebase on top of the target branch res = change.revision('rebase').post(data={"base": ''}) gerrit.dump_json(res) # refresh change details change.get() def submit(): if utils.confirm('Submit the change?', True): change.revision('submit').post() def approve(): logger.debug("Approval Message: %s", self.message) if utils.confirm('Vote +2 and submit?', True): reviewinput = { "message": self.message, "labels": { "Code-Review": "+2" }, "comments": {}, "drafts": "KEEP" } change.revision('review').post(data=reviewinput) submit() if change.data.submittable: submit() else: approve()
def display_change(self, change): data = change.data code_review = data.labels['Code-Review'] del data.messages del data.removable_reviewers del data.labels del data.permitted_labels mergeable = change.revision('mergeable') display = DataDisplay(data['owner']) display.show('username', 'name') display = DataDisplay(data) display.show('status', 'subject', 'topic','updated', 'change_id', 'project', 'branch') other_branches = mergeable.get(params={'other-branches':''}) gerrit.dump_json(other_branches) print("Votes:") for vote in code_review.all: value = vote.value if value > 0: value = "+%s" % value print(" {:<22}{:<2}".format(vote.name, value))
def display_change(self, change): data = change.data code_review = data.labels['Code-Review'] del data.messages del data.removable_reviewers del data.labels del data.permitted_labels mergeable = change.revision('mergeable') display = DataDisplay(data['owner']) display.show('username', 'name') display = DataDisplay(data) display.show('status', 'subject', 'topic', 'updated', 'change_id', 'project', 'branch') other_branches = mergeable.get(params={'other-branches': ''}) gerrit.dump_json(other_branches) print("Votes:") for vote in code_review.all: value = vote.value if value > 0: value = "+%s" % value print(" {:<22}{:<2}".format(vote.name, value))