#!/usr/bin/env python3 import argparse import os import sys import requests API_URL = "https://api.github.com" def main(api_token: str, user: str) -> None: s = requests.Session() s.headers.update({"Authorization": f"token {api_token}"}) s.headers.update({"Accept": "application/vnd.github.v3+json"}) res = s.get(f"{API_URL}/users/{user}/settings/billing/actions", timeout=5) res.raise_for_status() billing = res.json() time_remaining = billing["included_minutes"] - billing["total_minutes_used"] print( f"this cycle, {billing['total_minutes_used']} minutes have been used, and {time_remaining} minutes are remaining" ) if __name__ == "__main__": argp = argparse.ArgumentParser() argp.add_argument("-t", "--token-file", nargs=1, type=argparse.FileType("r")) argp.add_argument("-u", "--user", type=str, default="fcuny") args = argp.parse_args() if args.token_file: api_token = args.token_file[0].readline().strip() else: print("Must pass token file with -t/--token_file", file=sys.stderr) sys.exit(os.EX_USAGE) main(api_token, args.user)