#!/usr/bin/env python3 import json import os import pprint import subprocess import sys import urllib.request from typing import Any SHA256_FILE = "other/bootstrap_daemon/docker/tox-bootstrapd.sha256" with open(f"{os.environ['HOME']}/.github-token") as fh: token = fh.read().strip() head_sha = (subprocess.run(["git", "rev-parse", "HEAD"], capture_output=True, check=True).stdout.decode("utf-8").strip()) def request(url: str) -> Any: return json.loads( urllib.request.urlopen( urllib.request.Request( url, headers={ "Accept": "application/vnd.github+json", "Authorization": "Bearer " + token, "X-GitHub-Api-Version": "2022-11-28", }, )).read()) pp = pprint.PrettyPrinter(indent=2, compact=True) annots = [ a for r in request( f"https://api.github.com/repos/TokTok/c-toxcore/commits/{head_sha}/check-runs?per_page=100" )["check_runs"] if r["name"] == "docker-bootstrap-node" for a in request(r["output"]["annotations_url"]) if a["path"] == SHA256_FILE ] if not annots: print("could not find sha256sum output") sys.exit(1) with open(SHA256_FILE, "w") as fh: fh.write(annots[0]["message"] + "\n") print(f"updated {SHA256_FILE}")