import re import requests import sys with open(sys.argv[1]) as f: commit_url = f.readline() github_acceptable_name_re = r'[a-zA-Z][a-zA-Z\d+\-_.]+' git_url_re = re.compile( fr'^https://github.com/({github_acceptable_name_re})/({github_acceptable_name_re})/commit/([0-9a-f]+)$') m = git_url_re.match(commit_url) if not m: print('Not a github commit url') exit(1) (author, repo_name, sha) = m.groups() r = requests.get(f'https://api.github.com/repos/{author}/{repo_name}/git/commits/{sha}') if not r: print('Error retrieving:', r.status_code) exit(1) j = r.json() if j['sha'] != sha: print('Not found?', j.get('message', '')) exit(1) print('ok:', j['message'])