Exemplo n.º 1
0
Arquivo: Release.py Projeto: rec/grit
 def update_pulls(self, base_commit):
     pulls = [p for p in Git.pulls().values() if self.accept(p)]
     pull_dict = dict((p.number, p.commit_id) for p in pulls)
     pull_dict['base_commit'] = base_commit
     if self.pull_dict != pull_dict:
         self.pull_dict = pull_dict
         _release(pulls, self.branch('working'), self.branch('next'),
                  self.name)
         return True
Exemplo n.º 2
0
Arquivo: Open.py Projeto: rec/grit
def get_format_string(name, user, context):

    def get_url():
        full_path = os.getcwd()
        if name:
            path, f = os.path.split(name)
            full_path = os.path.join(full_path, path)
            if not os.path.exists(full_path):
                raise ValueError("Path %s doesn't exist." % full_path)
            if f:
                for p in os.listdir(full_path):
                    if startswith(p, f):
                        full_path = os.path.join(full_path, p)
                        break
                else:
                    raise ValueError("Can't find file matching " + name)

        context['path'] = os.path.relpath(full_path, GitRoot.ROOT)
        return _URL

    if not name:
        return get_url()

    if name.isdigit():
        context['number'] = int(name)
        return PULL

    if 'commits'.startswith(name):
        return _COMMIT

    if 'diffs'.startswith(name):
        return _DIFF

    if 'pull'.startswith(name):
        return _PULL

    if 'pending'.startswith(name):
        if user == Settings.PROJECT_USER:
            return Pulls.pull_urls()[0]

        if user == Settings.USER:
            branch_name = '%s:%s' % (user, Git.branch())
            for number, pull in Git.pulls().items():
                if pull.branch == branch_name:
                    context['number'] = number
                    return PULL
            else:
                return _NEW_PULL

        raise ValueError("Can't pull for user %s." % user)

    if 'root'.startswith(name):
        name = GitRoot.root()

    return get_url()
Exemplo n.º 3
0
Arquivo: Import.py Projeto: rec/grit
def parse_branch(branch):
    try:
        pull_number = int(branch)
    except:
        pass
    else:
        pulls = Git.pulls()
        if pull_number not in pulls:
            raise ValueError(_ERROR % (pull, ' '.join(sorted(pulls))))
        pull = pulls[pull_number]
        branch = pull.branch
    if ':' in branch:
        return branch.split(':', 1)
    else:
        return Settings.USER, branch
Exemplo n.º 4
0
Arquivo: Pulls.py Projeto: rec/grit
def pulls():
    for number, p in reversed(sorted(Git.pulls().items())):
        print(_to_string(number, p.branch, p.title))