Skip to content

Instantly share code, notes, and snippets.

@nick-merrill
Last active June 5, 2023 13:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nick-merrill/4ba5374d21f58540d49888de93c4b77c to your computer and use it in GitHub Desktop.
Save nick-merrill/4ba5374d21f58540d49888de93c4b77c to your computer and use it in GitHub Desktop.
Load your github PRs along with certain labels that you may care about
#!/Users/nickm/.pyenv/versions/3.9.11/bin/python
import requests
# GitHub username and access token
username = ... # TODO: Fill this in
access_token = ... # TODO: Fill this in
headers = {
"Authorization": f"Bearer {access_token}",
"Accept": "application/vnd.github.v3+json"
}
response = requests.get(f"https://api.github.com/search/issues?q=is:pr+review-requested:{username}", headers=headers)
response.raise_for_status()
data = response.json()
total_prs = data["total_count"]
response = requests.get(f"https://api.github.com/search/issues?q=is:open+is:pr+label:\"security review\"", headers=headers)
response.raise_for_status()
data = response.json()
security_prs = data["total_count"]
color = "green" if total_prs + security_prs > 0 else None
# Template image is the GitHub logo, encoded as base64 from a PNG file. To decode: `echo "iVB..." | base64 -d`
out = f"{total_prs} S: {security_prs} | templateImage=iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEsGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTYiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTYiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLzEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIxNiIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjE2IgogICBleGlmOkNvbG9yU3BhY2U9IjEiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjMtMDYtMDJUMTc6NTU6MjArMDI6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMDYtMDJUMTc6NTU6MjArMDI6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWZmaW5pdHkgUGhvdG8gMS4xMC42IgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTA2LTAyVDE3OjU1OjIwKzAyOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz4KJKAvAAABgWlDQ1BzUkdCIElFQzYxOTY2LTIuMQAAKJF1kctLQkEUh7+0F2UY1KJFCwlrlWEGUpsgIyyQCDPIaqPXV6B2uVcJaRu0DQqiNr0W9RfUNmgdBEURRNtaF7UpuZ2rghJ5hjPnm9/MOcycAUsorWT0Rjdksjkt6Pc5FsNLjpZXmrFgx0t/RNHVibm5AHXt64EGM965zFr1z/1r7bG4rkBDq/C4omo54WnhwHpONXlXuFtJRWLC58KDmlxQ+N7Uo2V+MzlZ5h+TtVBwEiydwo5kDUdrWElpGWF5Oc5MOq9U7mO+xBbPLsxL7BPvRSeIHx8OZphiUnoyzJjMXlx4GJIVdfLdpfxZ1iRXkVmlgMYqSVLkGBQ1L9XjEhOix2WkKZj9/9tXPTHiKVe3+aDpxTA++qFlB4rbhvF9bBjFE7A+w1W2mr92BKOfom9XNech2Dfh4rqqRffgcgt6ntSIFilJVnFLIgHvZ9ARhq5baFsu96yyz+kjhDbkq25g/wAG5Lx95Rd0l2fs4hsSQwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAdlJREFUOI3FkD9oU1EUxr/v3feSPPPS2og+a6FVqoghg27WSSoIOtrF3bHqXjoJLmJ3F2f3FqS0XcRFRAS1g6miNuYPLRKbxNAQ3jvvODQvJI3OPdN3z7nf737nAkdd7D+cnZw0YRieVtUZVZ1V1fMASPIbyTUA7/L5fGVtY0OHAOempuwgCHIi8lBV51T1+MBLZEjyhTFmqVytbsZ9EwsvnZ4QkUVVnSG5CaBF8hfJHZI1kq+6yS5mx8beNJrNJgDYMSCKouuqeofkquu6TzqdTpakUVUFYLuu+77dbj8Pw3BWRO4CeDoAUNVbAGySxUQy+fn79nb78IdNjI+/BXBbRG7EAKtvngNQsyyrUNjaGjIDgLHt9a7nZNzrByQPgqgeNvYuk/Gs5+sJkiVVPRVF0eUL09PpfwGCIJjryv1eqliMjoycAZAjaYIguHoim931fb92f35eSsXitWOuuxCG4QMAHWPM+p9W6+UAwPO8BoArFlklmYmiCKr6aXllpeOmUo9F5N5BUH51HGeh0WzuDqyQSia/WOQzVXVJfnAc53Umk9nvrvcbQNA1P/pZLn8cWmGvXhff93+IyI6I3BSRBoDCXr0uGc+7BKCdSCQWS5XK6v8++WjqL9Ax0FAbx0laAAAAAElFTkSuQmCC"
if color:
out += f" color={color}"
print(out)
print(f"""---
My PRs | href=https://github.com/pulls
Review Requested ({total_prs}) | href=https://github.com/pulls/review-requested
Security Review ({security_prs}) | href=https://github.com/pulls?q=is%3Aopen+is%3Apr+archived%3Afalse+label%3A"security+review
""")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment