File: gh.py

package info (click to toggle)
tikzit 2.1.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,104 kB
  • sloc: cpp: 8,492; yacc: 226; lex: 194; sh: 77; python: 68; makefile: 9; xml: 7
file content (32 lines) | stat: -rw-r--r-- 918 bytes parent folder | download | duplicates (3)
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, 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