From cfd6ae88b194d69d2a2c365d4a8a78644ba9079b Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sun, 13 Jan 2019 18:13:29 +0100 Subject: added github AUTO deploy scripts --- scripts/gh.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/gh.py (limited to 'scripts/gh.py') diff --git a/scripts/gh.py b/scripts/gh.py new file mode 100644 index 0000000..13a8880 --- /dev/null +++ b/scripts/gh.py @@ -0,0 +1,29 @@ +import sys, os, json +from subprocess import Popen, PIPE + +api_url = 'https://api.github.com/repos/tikzit/tikzit' + +tok = os.getenv('GITHUB_TOKEN', '') + +if tok == '': + print("Must set GITHUB_TOKEN environment variable.") + sys.exit(1) + +# pretty-print JSON responses +def pr(j): print(json.dumps(j, indent=2)) + +# call GitHub API with curl +def gh(s, args=[]): + cmd = (["curl", "-s"] + args + + ["-H", "Authorization: token " + tok] + + [s if 'https://' in s else api_url + '/' + s]) + # ONLY UN-COMMENT FOR TESTING: + # print(' '.join(cmd)) + p = Popen(cmd, stdout=PIPE) + resp = p.stdout.read() + return json.loads(resp if resp else '{}') + +def get_release(n): + rs = [r for r in gh('releases') if r['name'] == n] + if len(rs) > 0: return rs[0] + else: return None -- cgit v1.2.3 From 099d86e68c0db0987bdb954d40a6fed7d65f88f2 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Mon, 14 Jan 2019 13:01:01 +0100 Subject: added get script --- scripts/gh-list.py | 3 +-- scripts/gh.py | 9 ++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'scripts/gh.py') diff --git a/scripts/gh-list.py b/scripts/gh-list.py index f8b1c91..a2e7955 100644 --- a/scripts/gh-list.py +++ b/scripts/gh-list.py @@ -8,5 +8,4 @@ tok = os.getenv('GITHUB_TOKEN') draft = [r for r in gh('releases') if r['draft']][0] for a in draft['assets']: - print(a['browser_download_url'] + - '?access_token=' + tok) + print(a['browser_download_url']) diff --git a/scripts/gh.py b/scripts/gh.py index 13a8880..d12b416 100644 --- a/scripts/gh.py +++ b/scripts/gh.py @@ -13,15 +13,18 @@ if tok == '': def pr(j): print(json.dumps(j, indent=2)) # call GitHub API with curl -def gh(s, args=[]): - cmd = (["curl", "-s"] + args + +def gh(s, args=[], quiet=True, parse=True): + cmd = (["curl"] + + (["-s"] if quiet else []) + + args + ["-H", "Authorization: token " + tok] + [s if 'https://' in s else api_url + '/' + s]) # ONLY UN-COMMENT FOR TESTING: # print(' '.join(cmd)) p = Popen(cmd, stdout=PIPE) resp = p.stdout.read() - return json.loads(resp if resp else '{}') + if parse: return json.loads(resp if resp else '{}') + else: return resp def get_release(n): rs = [r for r in gh('releases') if r['name'] == n] -- cgit v1.2.3 From d4b6e9839823e27af646a915436462254758e053 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Mon, 14 Jan 2019 13:19:52 +0100 Subject: pushed auth into query string for gh-get --- scripts/gh-get.py | 4 ++-- scripts/gh.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'scripts/gh.py') diff --git a/scripts/gh-get.py b/scripts/gh-get.py index 9d9693f..bf95d97 100644 --- a/scripts/gh-get.py +++ b/scripts/gh-get.py @@ -14,9 +14,9 @@ draft = [r for r in gh('releases') if r['draft']][0] for a in draft['assets']: if filter == None or filter in a['name']: print('Downloading ' + a['name']) - b = gh('releases/assets/%s' % a['id'], + b = gh('releases/assets/%s?access_token=%s' % (a['id'], tok), ['-L', '-H', 'Accept: application/octet-stream'], - parse=False, quiet=False) + parse=False, quiet=False, auth=False) f = open(a['name'], 'w') f.write(b) f.close() diff --git a/scripts/gh.py b/scripts/gh.py index d12b416..81db1b2 100644 --- a/scripts/gh.py +++ b/scripts/gh.py @@ -13,11 +13,11 @@ if tok == '': def pr(j): print(json.dumps(j, indent=2)) # call GitHub API with curl -def gh(s, args=[], quiet=True, parse=True): +def gh(s, args=[], quiet=True, parse=True, auth=True): cmd = (["curl"] + (["-s"] if quiet else []) + args + - ["-H", "Authorization: token " + tok] + + (["-H", "Authorization: token " + tok] if auth else []) + [s if 'https://' in s else api_url + '/' + s]) # ONLY UN-COMMENT FOR TESTING: # print(' '.join(cmd)) -- cgit v1.2.3