def main(args): with open(config.get_json_path(), 'rb') as fp: patches = data.parse_json(fp.read()) working_dir = config.get_working_dir() commit = gitcmd.get_sha1(config.get_master_branch()) bots = args.bots if not bots: bots = config.get_buildbots() for bot in bots: q = config.get_buildbot_query(bot) run_bot(patches, working_dir, commit, bot, q)
def get_merges(since): refspec = config.get_master_branch() o = git('log', '--merges', '--first-parent', '--pretty=format:%H\n%P\n%cn\n%ce', '--since=%s' % since, refspec) merged_heads = {} lines = o.split('\n') for i in range(0, len(lines), 4): if (i + 4) >= len(lines): continue commit = lines[i] heads = lines[i + 1].split() for head in heads: merged_heads[head] = { 'commit': commit, 'committer': { 'name': lines[i + 2], 'email': lines[i + 3] } } return merged_heads
def is_committed(series): committed = False if is_pull_request(series): if 'commit' in series['messages'][0]['pull-request']: return True elif is_committed_in_branch(series, config.get_master_branch()): return True return False for message in series['messages']: if message.has_key('cover') and message['cover']: continue if not message.has_key('commit'): return False else: committed = True return committed
def is_committed(series): committed = False if is_pull_request(series): if "commit" in series["messages"][0]["pull-request"]: return True elif is_committed_in_branch(series, config.get_master_branch()): return True return False for message in series["messages"]: if message.has_key("cover") and message["cover"]: continue if not message.has_key("commit"): return False else: committed = True return committed
def get_commits(since, trees): mapping = {} git_dir = config.get_git_dir() master_branch = config.get_master_branch() for branch in trees: if branch == master_branch: refspec = branch else: refspec = '%s..%s' % (master_branch, branch) pairs = [] o = git('log', '--pretty=format:%H\n%s\n%cn\n%ce', '--since=%s' % since, refspec) lines = o.split('\n') for i in range(0, len(lines), 4): if (i + 3) >= len(lines): continue pairs.append({ 'hexsha': lines[i], 'summary': lines[i + 1], 'branch': branch, 'committer': { 'name': lines[i + 2], 'email': lines[i + 3] } }) for commit in pairs: s = commit['summary'] if mapping.has_key(s): hsh = mapping[s] if type(hsh) != list: mapping[s] = [commit] mapping[s].append(commit) else: mapping[s] = commit return mapping