def GetChangeDetail(self, change_num): """Return detailed information about a gerrit change. Args: change_num: A gerrit change number. """ return gob_util.GetChangeDetail( self.host, change_num, o_params=('CURRENT_REVISION', 'CURRENT_COMMIT'))
def GetChangeDetail(self, change_num, verbose=False): """Return detailed information about a gerrit change. Args: change_num: A gerrit change number. verbose: (optional) Whether to print more properties of the change """ if verbose: o_params = ('ALL_REVISIONS', 'ALL_FILES', 'ALL_COMMITS', 'DETAILED_LABELS', 'MESSAGES', 'DOWNLOAD_COMMANDS', 'CHECK') else: o_params = ('CURRENT_REVISION', 'CURRENT_COMMIT') return gob_util.GetChangeDetail( self.host, change_num, o_params=o_params)
def Query(self, change=None, sort=None, current_patch=True, options=(), dryrun=False, raw=False, _resume_sortkey=None, **query_kwds): if options: raise GerritException( '"options" argument unsupported on gerrit-on-borg.') url_prefix = gob_util.GetGerritFetchUrl(self.host) o_params = ['DETAILED_ACCOUNTS'] if current_patch: o_params.extend( ['CURRENT_COMMIT', 'CURRENT_REVISION', 'DETAILED_LABELS']) if change and change.isdigit() and not query_kwds: if dryrun: logging.info( 'Would have run gob_util.GetChangeDetail(%s, %s, %s)', self.host, change, o_params) return [] patch_dict = cros_patch.GerritPatch.ConvertQueryResults( gob_util.GetChangeDetail(self.host, change, o_params=o_params), self.host) if raw: return [patch_dict] return [ cros_patch.GerritPatch(patch_dict, self.remote, url_prefix) ] if change and query_kwds.get('change'): raise GerritException( 'Bad query params: provided a change-id-like query,' ' and a "change" search parameter') if _resume_sortkey: query_kwds['resume_sortkey'] = _resume_sortkey if dryrun: logging.info( 'Would have run gob_util.QueryChanges(%s, %s, ' 'first_param=%s, limit=%d)', self.host, repr(query_kwds), change, self._GERRIT_MAX_QUERY_RETURN) return [] moar = gob_util.QueryChanges(self.host, query_kwds, first_param=change, limit=self._GERRIT_MAX_QUERY_RETURN, o_params=o_params) result = list(moar) while moar and moar[-1].get('_more_changes'): query_kwds['resume_sortkey'] = result[-1].get['_sortkey'] moar = gob_util.QueryChanges(self.host, query_kwds, first_param=change, limit=self._GERRIT_MAX_QUERY_RETURN) result.extend(moar) result = [ cros_patch.GerritPatch.ConvertQueryResults(x, self.host) for x in result ] if sort: result = sorted(result, key=operator.itemgetter(sort)) if raw: return result return [ cros_patch.GerritPatch(x, self.remote, url_prefix) for x in result ]