GITHUB_TOKEN=<token> ./create-release username/reponame <tag-name> <path-to-upload>
Example: GITHUB_TOKEN=4a68631afb82bala9f9c49892e0e3c82eaa7ef66 ./create-release GrowtopiaJaw/adb-wireless v1 adb-wireless.zip
GITHUB_TOKEN=<token> ./create-release username/reponame <tag-name> <path-to-upload>
Example: GITHUB_TOKEN=4a68631afb82bala9f9c49892e0e3c82eaa7ef66 ./create-release GrowtopiaJaw/adb-wireless v1 adb-wireless.zip
#!/usr/bin/env python3 | |
import json | |
import os | |
import sys | |
from urllib.parse import urlencode | |
from urllib.request import Request, urlopen | |
repo = sys.argv[1] | |
tag = sys.argv[2] | |
upload_file = sys.argv[3] | |
token = os.environ['GITHUB_TOKEN'] | |
url_template = 'https://{}.github.com/repos/' + repo + '/releases' | |
# Create. | |
_json = json.loads(urlopen(Request( | |
url_template.format('api'), | |
json.dumps({ | |
'tag_name': tag, | |
'name': tag, | |
'prerelease': True, | |
}).encode(), | |
headers={ | |
'Accept': 'application/vnd.github.v3+json', | |
'Authorization': 'token ' + token, | |
}, | |
)).read().decode()) | |
release_id = _json['id'] | |
# Upload. | |
with open(upload_file, 'br') as myfile: | |
content = myfile.read() | |
_json = json.loads(urlopen(Request( | |
url_template.format('uploads') + '/' + str(release_id) + '/assets?' \ | |
+ urlencode({'name': os.path.split(upload_file)[1]}), | |
content, | |
headers={ | |
'Accept': 'application/vnd.github.v3+json', | |
'Authorization': 'token ' + token, | |
'Content-Type': 'application/zip', | |
}, | |
)).read().decode()) |