Example #1
0
def cli(repo_id, pr_number, pr_env_var, commit_hash, commit_hash_env_var):
    """
    Check the combined status of a GitHub PR/commit in a repo.
    """
    # github.enable_console_debug_logging()
    gh_utils = GitHubApiUtils(repo_id)

    if pr_number is None:
        if pr_env_var:
            pr_number = int(os.environ[pr_env_var])
    if commit_hash is None:
        if commit_hash_env_var:
            commit_hash = os.environ[commit_hash_env_var]

    status_success = False
    if pr_number:
        status_success = gh_utils.check_github_pr_test_status(pr_number)
        print "{}: Combined status of PR #{} is {}.".format(
            sys.argv[0], pr_number, "success" if status_success else "failed"
        )
    elif commit_hash:
        status_success = gh_utils.check_github_commit_test_status(commit_hash)
        print "{}: Combined status of commit hash {} is {}.".format(
            sys.argv[0], commit_hash, "success" if status_success else "failed"
        )

    # An exit code of 0 means success and non-zero means failure.
    sys.exit(not status_success)