#!/usr/bin/env python3 import time from env_helper import GITHUB_REPOSITORY RETRY = 5 def get_commit(gh, commit_sha, retry_count=RETRY): for i in range(retry_count): try: repo = gh.get_repo(GITHUB_REPOSITORY) commit = repo.get_commit(commit_sha) return commit except Exception as ex: if i == retry_count - 1: raise ex time.sleep(i) # just suppress warning return None def post_commit_status(gh, sha, check_name, description, state, report_url): for i in range(RETRY): try: commit = get_commit(gh, sha, 1) commit.create_status(context=check_name, description=description, state=state, target_url=report_url) break except Exception as ex: if i == RETRY - 1: raise ex time.sleep(i)