mirror of
https://github.com/TinyTapeout/tt-support-tools.git
synced 2026-11-03 04:36:09 +01:00
refactor: add types to git_utils
This commit is contained in:
+13
-8
@@ -2,11 +2,13 @@ import base64
|
|||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
import logging
|
import logging
|
||||||
import requests
|
import requests
|
||||||
import git
|
from git.repo import Repo
|
||||||
|
import sys
|
||||||
|
import typing
|
||||||
import os
|
import os
|
||||||
import errno
|
import errno
|
||||||
|
|
||||||
def fetch_file(url, filename):
|
def fetch_file(url: str, filename: str):
|
||||||
logging.info("trying to download {}".format(url))
|
logging.info("trying to download {}".format(url))
|
||||||
r = requests.get(url)
|
r = requests.get(url)
|
||||||
if r.status_code != 200:
|
if r.status_code != 200:
|
||||||
@@ -18,12 +20,12 @@ def fetch_file(url, filename):
|
|||||||
fh.write(r.content)
|
fh.write(r.content)
|
||||||
|
|
||||||
|
|
||||||
def check_status(r):
|
def check_status(r: requests.Response):
|
||||||
if r.status_code == 401:
|
if r.status_code == 401:
|
||||||
logging.error("unauthorised, check INFO.md for information about GitHub API keys")
|
logging.error("unauthorised, check INFO.md for information about GitHub API keys")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
def headers_try_to_add_authorization_from_environment(headers: dict) -> bool:
|
def headers_try_to_add_authorization_from_environment(headers: typing.Dict[str, str]) -> bool:
|
||||||
gh_token = os.getenv('GH_TOKEN', '') # override like gh CLI
|
gh_token = os.getenv('GH_TOKEN', '') # override like gh CLI
|
||||||
if not gh_token:
|
if not gh_token:
|
||||||
gh_token = os.getenv('GITHUB_TOKEN', '') # GHA inherited
|
gh_token = os.getenv('GITHUB_TOKEN', '') # GHA inherited
|
||||||
@@ -52,14 +54,17 @@ def headers_try_to_add_authorization_from_environment(headers: dict) -> bool:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def get_most_recent_action_page(commits, runs):
|
def get_most_recent_action_page(
|
||||||
|
commits: typing.List[typing.Dict[str, str]],
|
||||||
|
runs: typing.List[typing.Dict[str, str]]) -> typing.Optional[str]:
|
||||||
release_sha_to_page_url = {run['head_sha']: run['html_url'] for run in runs if run['name'] == 'gds'}
|
release_sha_to_page_url = {run['head_sha']: run['html_url'] for run in runs if run['name'] == 'gds'}
|
||||||
for commit in commits:
|
for commit in commits:
|
||||||
if commit['sha'] in release_sha_to_page_url:
|
if commit['sha'] in release_sha_to_page_url:
|
||||||
return release_sha_to_page_url[commit['sha']]
|
return release_sha_to_page_url[commit['sha']]
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def split_git_url(url):
|
def split_git_url(url: str):
|
||||||
res = urlparse(url)
|
res = urlparse(url)
|
||||||
try:
|
try:
|
||||||
_, user_name, repo = res.path.split('/')
|
_, user_name, repo = res.path.split('/')
|
||||||
@@ -71,7 +76,7 @@ def split_git_url(url):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_latest_action_url(url):
|
def get_latest_action_url(url: str):
|
||||||
logging.debug(url)
|
logging.debug(url)
|
||||||
user_name, repo = split_git_url(url)
|
user_name, repo = split_git_url(url)
|
||||||
|
|
||||||
@@ -102,5 +107,5 @@ def get_latest_action_url(url):
|
|||||||
return page_url
|
return page_url
|
||||||
|
|
||||||
|
|
||||||
def get_first_remote(repo: git.Repo) -> str:
|
def get_first_remote(repo: Repo) -> str:
|
||||||
return list(repo.remotes[0].urls)[0]
|
return list(repo.remotes[0].urls)[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user