X-Git-Url: https://git.ralfj.de/git-mirror.git/blobdiff_plain/6290489e9a0359df09c7f09650ffb02f86bceb14..HEAD:/github-add-hooks.py diff --git a/github-add-hooks.py b/github-add-hooks.py index 8e65d86..22d0d0f 100755 --- a/github-add-hooks.py +++ b/github-add-hooks.py @@ -15,14 +15,14 @@ def generate_ssh_key(name, bits): subprocess.check_call(["ssh-keygen", "-f", name, "-C", name, "-b", str(bits), "-q", "-N", ""]) def add_deploy_key(key_name, repo_owner, repo_name, access_token): - url = "https://api.github.com/repos/{owner}/{repo}/keys?access_token={token}".format(owner=repo_owner, repo=repo_name, token=access_token) + url = "https://api.github.com/repos/{owner}/{repo}/keys".format(owner=repo_owner, repo=repo_name) data = { 'title': os.path.basename(key_name), 'key': open(key_name+".pub").read() } - r = requests.post(url, data=json.dumps(data)) + r = requests.post(url, data=json.dumps(data), headers = {"Authorization": "token {token}".format(token=access_token)}) if r.status_code >= 300: raise Exception(str(json.loads(r.content.decode('utf-8')))) def add_web_hook(webhook_url, hmac_secret, repo_owner, repo_name, access_token): - url = 'https://api.github.com/repos/{owner}/{repo}/hooks?access_token={token}'.format(owner=repo_owner, repo=repo_name, token=access_token) + url = 'https://api.github.com/repos/{owner}/{repo}/hooks'.format(owner=repo_owner, repo=repo_name) data = { 'name': "web", 'active': True, @@ -33,7 +33,7 @@ def add_web_hook(webhook_url, hmac_secret, repo_owner, repo_name, access_token): 'secret': hmac_secret, } } - r = requests.post(url, data=json.dumps(data)) + r = requests.post(url, data=json.dumps(data), headers = {"Authorization": "token {token}".format(token=access_token)}) if r.status_code >= 300: raise Exception(str(json.loads(r.content.decode('utf-8')))) @@ -42,7 +42,7 @@ conf = read_config() parser = argparse.ArgumentParser(description='Update and build a bunch of stuff') parser.add_argument("-o", "--owner", dest="owner", - help="The owner of this hook on GitHub") + help="The username of the owner of this hook on GitHub") parser.add_argument("-e", "--email", dest="email", help="An email address that gets notified in case of trouble with the hook") @@ -68,7 +68,7 @@ webhook_url = conf['DEFAULT']['webhook-url'] shutil.copy(config_file, config_file+".bak") with open(config_file, 'a') as f: f.write('\n[{}]\n'.format(args.name)) - f.write('owner={}\n'.format(args.owner)) + f.write('owner={}\n'.format(args.email)) f.write('local={}\n'.format(args.local)) f.write('deploy-key={}\n'.format(os.path.basename(ssh_deploy_key))) f.write('hmac-secret={}\n'.format(hmac_secret)) @@ -78,8 +78,8 @@ try: generate_ssh_key(ssh_deploy_key, 4*1024) add_deploy_key(ssh_deploy_key, args.owner, args.name, github_token) add_web_hook(webhook_url+"?repository="+args.name, hmac_secret, args.owner, args.name, github_token) - print("Done! Your GitHub repository is set up.\nRemember to configure the git-mirror hook for the local repository {}, e.g. in your gitolite configuration!", args.local) -except E: + print("Done! Your GitHub repository is set up.\nRemember to configure the git-mirror hook for the local repository {}, e.g. in your gitolite configuration!".format(args.local)) +except Exception as E: shutil.copy(config_file+".bak", config_file) raise