diff options
Diffstat (limited to 'scripts/gh.py')
-rw-r--r-- | scripts/gh.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/scripts/gh.py b/scripts/gh.py new file mode 100644 index 0000000..81db1b2 --- /dev/null +++ b/scripts/gh.py @@ -0,0 +1,32 @@ +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=[], quiet=True, parse=True, auth=True): + cmd = (["curl"] + + (["-s"] if quiet else []) + + args + + (["-H", "Authorization: token " + tok] if auth else []) + + [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() + 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] + if len(rs) > 0: return rs[0] + else: return None |