Merge pull request #3 from damien-list/master
[git-mirror.git] / github-add-hooks.py
index ba2b801c5cb4d0732a15bbc44165c4b07a119528..22d0d0fc0e307fdfcbb446f183d3f8bb041f4be1 100755 (executable)
@@ -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")
@@ -79,7 +79,7 @@ try:
     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!".format(args.local))
-except E:
+except Exception as E:
     shutil.copy(config_file+".bak", config_file)
     raise