summaryrefslogtreecommitdiff
path: root/scripts/gh.py
blob: d12b416b62d14b45a0d481fc07995ef637fd1829 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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):
    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()
    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