Example #1
0
    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)
Example #3
0
 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 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)
Example #5
0
    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()
Example #7
0
    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))