pyment-public / scripts /utils /upload_weights_to_github.py
estenhl's picture
Working on setting up automatic weight downloading
66269ec
import argparse
import base64
import os
import requests
def upload_weights_to_github(filename: str, token: str, user: str, repo: str):
with open(filename, 'rb') as f:
bytes = f.read()
bytes = base64.b64encode(bytes).decode()
if os.path.isfile(token):
with open(token, 'r') as f:
token = f.read().strip()
headers = {
'Accept': 'application/vnd.github+json',
'Authorization': f'Bearer {token}',
'X-GitHub-Api-Version': '2022-11-28'
}
content = {
'content': bytes,
'encoding': 'base64'
}
url = f'https://api.github.com/repos/{user}/{repo}/git/blobs'
response = requests.post(url, json=content, headers=headers)
return response
if __name__ == '__main__':
parser = argparse.ArgumentParser('Uploads a weights-file to github')
parser.add_argument(
'-f', '--filename',
required=True,
help='Path to file containing weights'
)
parser.add_argument(
'-t', '--token',
required=True,
help='Token for the GitHub API'
)
parser.add_argument(
'-u', '--user',
required=False,
default='estenhl',
help='Owner of the github repo'
)
parser.add_argument(
'-r', '--repo',
required=False,
default='pyment-public',
help='Name of the github repo'
)
args = parser.parse_args()
response = upload_weights_to_github(
filename=args.filename,
token=args.token,
user=args.user,
repo=args.repo
)
print(response.text)