Ejemplo n.º 1
0
def create_or_update(args):
    "Creates or updates a code review case."

    creds = new_credentials_config()
    g = GitRepo()
    cr_data_file = get_cr_data_file(g)

    safe_create_code_review_data_file(cr_data_file)

    with CodeReviewConfiguration.persisting(cr_data_file) as data:
        if g.current_branch() in data.branches:
            cr_data = data.branches[g.current_branch()]
            if len(cr_data.commits) > 1 and g.sha("HEAD~") == cr_data.commits[-2]:
                # the last commit was amended, so replace it:
                if g.sha("HEAD") != cr_data.commits[-1]:
                    cr_data.commits[-1] = g.sha("HEAD")
            elif g.sha() not in cr_data.commits:
                cr_data.commits.append(g.sha())

            if len(cr_data.commits) >= 2:
                use_hash = str("..".join([cr_data.commits[0][0:8], cr_data.commits[-1][0:8]]))
            else:
                use_hash = str(cr_data.commits[-1])

            logger.info("updating an existing code review.")
            update_code_review(cr_data, g, use_hash)
        else:
            data.set_branch(
                g.current_branch(), {"original_name": g.commit_messages()[0], "commits": [g.sha("HEAD~"), g.sha()]}
            )

            logger.info("creating new code review.")
            create_code_review(data, g, creds)
Ejemplo n.º 2
0
def create_or_update(args):
    "Creates or updates a code review case."

    creds = new_credentials_config()
    g = GitRepo()
    cr_data_file = get_cr_data_file(g)

    safe_create_code_review_data_file(cr_data_file)

    with CodeReviewConfiguration.persisting(cr_data_file) as data:
        if g.current_branch() in data.branches:
            cr_data = data.branches[g.current_branch()]
            if len(cr_data.commits) > 1 and g.sha(
                    'HEAD~') == cr_data.commits[-2]:
                # the last commit was amended, so replace it:
                if g.sha('HEAD') != cr_data.commits[-1]:
                    cr_data.commits[-1] = g.sha('HEAD')
            elif g.sha() not in cr_data.commits:
                cr_data.commits.append(g.sha())

            if len(cr_data.commits) >= 2:
                use_hash = str('..'.join(
                    [cr_data.commits[0][0:8], cr_data.commits[-1][0:8]]))
            else:
                use_hash = str(cr_data.commits[-1])

            logger.info('updating an existing code review.')
            update_code_review(cr_data, g, use_hash)
        else:
            data.set_branch(
                g.current_branch(), {
                    'original_name': g.commit_messages()[0],
                    'commits': [g.sha('HEAD~'), g.sha()]
                })

            logger.info('creating new code review.')
            create_code_review(data, g, creds)