Module tf.tools.release
Expand source code Browse git
import sys
from github import Github, GithubException
from tf.core.helpers import console, var
def makeRelease(org, repo, tag, name, msg, silent=True):
ghPerson = var("GHPERS")
if ghPerson:
ghConn = Github(ghPerson)
rate = ghConn.get_rate_limit().core
if not silent:
console(
f"rate limit is {rate.limit} requests per hour,"
f" with {rate.remaining} left for this hour"
)
if rate.limit < 100:
console(
"To increase the rate,"
"see https://annotation.github.io/text-fabric/tf/advanced/repo.html"
)
try:
if not silent:
console(
f"\tconnecting to online GitHub repo {org}/{repo} ... ", newline=False,
)
repoOnline = ghConn.get_repo(f"{org}/{repo}")
if not silent:
console("connected")
except GithubException as why:
console("failed", error=True)
console(f"GitHub says: {why}", error=True)
except IOError:
console("no internet", error=True)
if not repoOnline:
return 1
try:
repoOnline.create_git_release(tag, name, msg)
result = 0
except GithubException:
console("failed", error=True)
console("GitHub says: {why}", error=True)
result = 1
except IOError:
console("no internet", error=True)
result = 1
if result == 0:
if not silent:
console(f"{org}/{repo} @ {tag} ({name}: {msg})")
else:
console("done")
return result
if __name__ == "__main__":
exit(makeRelease(*sys.argv[1:]))
Functions
def makeRelease(org, repo, tag, name, msg, silent=True)
-
Expand source code Browse git
def makeRelease(org, repo, tag, name, msg, silent=True): ghPerson = var("GHPERS") if ghPerson: ghConn = Github(ghPerson) rate = ghConn.get_rate_limit().core if not silent: console( f"rate limit is {rate.limit} requests per hour," f" with {rate.remaining} left for this hour" ) if rate.limit < 100: console( "To increase the rate," "see https://annotation.github.io/text-fabric/tf/advanced/repo.html" ) try: if not silent: console( f"\tconnecting to online GitHub repo {org}/{repo} ... ", newline=False, ) repoOnline = ghConn.get_repo(f"{org}/{repo}") if not silent: console("connected") except GithubException as why: console("failed", error=True) console(f"GitHub says: {why}", error=True) except IOError: console("no internet", error=True) if not repoOnline: return 1 try: repoOnline.create_git_release(tag, name, msg) result = 0 except GithubException: console("failed", error=True) console("GitHub says: {why}", error=True) result = 1 except IOError: console("no internet", error=True) result = 1 if result == 0: if not silent: console(f"{org}/{repo} @ {tag} ({name}: {msg})") else: console("done") return result