Skip to content

Commit dfe5121

Browse files
committed
style: Improve logging associated with release, assets and references
Here are few examples of output: ``` $ githubrelease release jcfr/sandbox list release 'nightly' info Tag name : nightly Name : nightly (updated on 20170212) ID : 5427736 Created : 2017-02-01T07:31:19Z URL : https://github.com/jcfr/sandbox/releases/tag/nightly Author : jcfr Is published : True Is prerelease : True Asset #0 name : sandbox-4.12.0.dev20170212-cp27-cp27m-win32.whl size : 52 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp27-cp27m-win32.whl Downloads : 0 Asset #1 name : sandbox-4.12.0.dev20170212-cp27-cp27m-win_amd64.whl size : 56 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp27-cp27m-win_amd64.whl Downloads : 0 Asset #2 name : sandbox-4.12.0.dev20170212-cp34-cp34m-win32.whl size : 52 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp34-cp34m-win32.whl Downloads : 0 Asset #3 name : sandbox-4.12.0.dev20170212-cp34-cp34m-win_amd64.whl size : 56 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp34-cp34m-win_amd64.whl Downloads : 0 Asset #4 name : sandbox-4.12.0.dev20170212-cp35-cp35m-win32.whl size : 52 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp35-cp35m-win32.whl Downloads : 0 Asset #5 name : sandbox-4.12.0.dev20170212-cp35-cp35m-win_amd64.whl size : 56 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp35-cp35m-win_amd64.whl Downloads : 0 Asset #6 name : sandbox-4.12.0.dev20170212-cp36-cp36m-win32.whl size : 52 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp36-cp36m-win32.whl Downloads : 0 Asset #7 name : sandbox-4.12.0.dev20170212-cp36-cp36m-win_amd64.whl size : 56 uploader : jcfr URL : https://github.com/jcfr/sandbox/releases/download/nightly/sandbox-4.12.0.dev20170212-cp36-cp36m-win_amd64.whl Downloads : 0 ``` ``` $ githubrelease ref jcfr/sandbox list --verbose Reference 'refs/heads/master' Object type : commit sha : 0616014562f225a86469fffe39219536a53b56b1 Reference 'refs/tags/nightly' Object type : commit sha : 0616014562f225a86469fffe39219536a53b56b1 ``` ``` $ githubrelease release jcfr/sandbox create my-tag created 'my-tag' release Tag name : my-tag ID : 5427757 Created : 2017-02-11T06:23:39Z URL : https://github.com/jcfr/sandbox/releases/tag/untagged-cfccf5564b71b4d4a2a0 Author : jcfr Is published : False Is prerelease : False ```
1 parent 17578b2 commit dfe5121

File tree

1 file changed

+45
-32
lines changed

1 file changed

+45
-32
lines changed

github_release.py

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,26 @@ def _request(*args, **kwargs):
3131
# Releases
3232
#
3333

34-
def print_release_info(release):
35-
print('Tag name : {tag_name}'.format(**release))
34+
def print_release_info(release, title=None, indent=""):
35+
if title is None:
36+
title = "release '{0}' info".format(release["tag_name"])
37+
print(indent + title)
38+
indent = " " + indent
39+
print(indent + 'Tag name : {tag_name}'.format(**release))
3640
if release['name']:
37-
print('Name : {name}'.format(**release))
38-
print('ID : {id}'.format(**release))
39-
print('Created : {created_at}'.format(**release))
40-
print('URL : {html_url}'.format(**release))
41-
print('Author : {login}'.format(**release['author']))
42-
print('Is published : {0}'.format(not release['draft']))
43-
print('Is prerelease : {0}'.format(release['prerelease']))
41+
print(indent + 'Name : {name}'.format(**release))
42+
print(indent + 'ID : {id}'.format(**release))
43+
print(indent + 'Created : {created_at}'.format(**release))
44+
print(indent + 'URL : {html_url}'.format(**release))
45+
print(indent + 'Author : {login}'.format(**release['author']))
46+
print(indent + 'Is published : {0}'.format(not release['draft']))
47+
print(indent + 'Is prerelease : {0}'.format(release['prerelease']))
4448
if release['body']:
45-
print('Release notes :')
46-
print(release['body'])
49+
print(indent + 'Release notes :')
50+
print(indent + release['body'])
4751
print('')
4852
for (i, asset) in enumerate(release['assets']):
49-
print_asset_info(i, asset)
53+
print_asset_info(i, asset, indent=indent)
5054

5155

5256
def get_releases(repo_name):
@@ -134,8 +138,9 @@ def patch_release(repo_name, current_tag_name, **values):
134138
if key in values and data[key] != values[key]:
135139
updated.append("%s: '%s' -> '%s'" % (key, data[key], values[key]))
136140
if updated:
137-
print("updating release [%s]: \n %s" % (
141+
print("updating '%s' release: \n %s" % (
138142
current_tag_name, "\n ".join(updated)))
143+
print("")
139144

140145
data.update(values)
141146

@@ -206,7 +211,7 @@ def gh_release_create(repo_name, tag_name,
206211
data=json.dumps(data),
207212
headers={'Content-Type': 'application/json'})
208213
response.raise_for_status()
209-
print_release_info(response.json())
214+
print_release_info(response.json(), title="created '%s' release" % tag_name)
210215

211216

212217
gh_release_create.description = {
@@ -343,13 +348,15 @@ def gh_release_debug(repo_name, tag_name):
343348
# Assets
344349
#
345350

346-
def print_asset_info(i, asset):
347-
print(' Asset #{i} name : {name}'.format(i=i, **asset))
348-
print(' Asset #{i} size : {size}'.format(i=i, **asset))
349-
print(' Asset #{i} uploader : {login}'.format(i=i, **asset['uploader']))
350-
print(' Asset #{i} URL : {browser_download_url}'.format(i=i, **asset))
351-
print(' Asset #{i} Downloads : {download_count}'.format(i=i, **asset))
352-
print('')
351+
def print_asset_info(i, asset, indent=""):
352+
print(indent + "Asset #{i}".format(i=i))
353+
indent = " " + indent
354+
print(indent + "name : {name}".format(i=i, **asset))
355+
print(indent + "size : {size}".format(i=i, **asset))
356+
print(indent + "uploader : {login}".format(i=i, **asset['uploader']))
357+
print(indent + "URL : {browser_download_url}".format(i=i, **asset))
358+
print(indent + "Downloads : {download_count}".format(i=i, **asset))
359+
print("")
353360

354361

355362
def gh_asset_upload(repo_name, tag_name, pattern, dry_run=False, verbose=False):
@@ -367,23 +374,29 @@ def gh_asset_upload(repo_name, tag_name, pattern, dry_run=False, verbose=False):
367374
else:
368375
filenames = glob.glob(pattern)
369376

377+
prefix = "uploading '{0}' release assets: ".format(tag_name)
378+
if len(filenames) > 1:
379+
print(prefix)
380+
prefix = " "
381+
370382
for filename in filenames:
371-
print('release {0}: uploading {1}'.format(tag_name, filename))
383+
print(prefix + 'uploading ' + filename)
372384
if dry_run:
373385
uploaded = True
374386
continue
375387
with open(filename, 'rb') as f:
376388
basename = os.path.basename(filename)
377389
url = '{0}?name={1}'.format(upload_url, basename)
378390
if verbose:
379-
print('url:', url)
391+
print(prefix + 'upload_url: ' + url)
380392
response = _request(
381393
'POST', url,
382394
headers={'Content-Type': 'application/octet-stream'},
383395
data=f.read())
384396
response.raise_for_status()
385397
asset = response.json()
386-
print('browser_download_url:', asset["browser_download_url"])
398+
print(prefix + 'download_url: ' + asset["browser_download_url"])
399+
print("")
387400
uploaded = True
388401
if not uploaded:
389402
print("release {0}: skipping upload: "
@@ -467,16 +480,16 @@ def gh_asset_download(repo_name, tag_name=None, pattern=None):
467480
# References
468481
#
469482

470-
def print_object_info(ref_object):
471-
print('Object:')
472-
print(' type : {type}'.format(**ref_object))
473-
print(' sha : {sha}'.format(**ref_object))
483+
def print_object_info(ref_object, indent=""):
484+
print(indent + 'Object')
485+
print(indent + ' type : {type}'.format(**ref_object))
486+
print(indent + ' sha : {sha}'.format(**ref_object))
474487

475488

476-
def print_ref_info(ref):
477-
print('-' * 80)
478-
print('Reference : {ref}'.format(**ref))
479-
print_object_info(ref['object'])
489+
def print_ref_info(ref, indent=""):
490+
print(indent + "Reference '{ref}'".format(**ref))
491+
print_object_info(ref['object'], indent=" " + indent)
492+
print("")
480493

481494

482495
def get_refs(repo_name, tags=False, pattern=None):

0 commit comments

Comments
 (0)