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()) |