import os import sys import requests project = "networkx" core = "core-developers" emeritus = "emeritus-developers" steering = "steering-council" core_url = f"https://api.github.com/orgs/{project}/teams/{core}/members" emeritus_url = f"https://api.github.com/orgs/{project}/teams/{emeritus}/members" steering_url = f"https://api.github.com/orgs/{project}/teams/{steering}/members" token = os.environ.get("GH_TOKEN", None) if token is None: print( "No token found. Please export a GH_TOKEN with permissions " "to read team members." ) sys.exit(-1) def api(url): json = requests.get(url=url, headers={"Authorization": f"token {token}"}).json() if "message" in json and json["message"] == "Bad credentials": raise RuntimeError("Invalid token provided") else: return json resp = api(core_url) core = sorted(resp, key=lambda user: user["login"].lower()) resp = api(emeritus_url) emeritus = sorted(resp, key=lambda user: user["login"].lower()) resp = api(steering_url) steering = sorted(resp, key=lambda user: user["login"].lower()) def render_team(team): for member in team: profile = api(member["url"]) print( f""" .. raw:: html