def run_releasetool_tag(lang: str, gh: github.GitHub, pull: dict) -> TagContext: """Runs releasetool tag using external config.""" language_module = importlib.import_module(f"releasetool.commands.tag.{lang}") ctx = TagContext() ctx.interactive = False # TODO(busunkim): Use proxy once KMS setup is complete. ctx.github = releasetool.github.GitHub(gh.token, use_proxy=False) ctx.token = gh.token ctx.upstream_repo = pull["base"]["repo"]["full_name"] ctx.release_pr = pull return language_module.tag(ctx)
def determine_release_pr(ctx: TagContext) -> None: click.secho( "> Let's figure out which pull request corresponds to your release.", fg="cyan" ) pulls = ctx.github.list_pull_requests(ctx.upstream_repo, state="closed") pulls = [pull for pull in pulls if "release" in pull["title"].lower()][:30] click.secho("> Please pick one of the following PRs:\n") for n, pull in enumerate(pulls, 1): print(f"\t{n}: {pull['title']} ({pull['number']})") pull_idx = click.prompt("\nWhich one do you want to tag and release?", type=int) ctx.release_pr = pulls[pull_idx - 1]