Skip to content

Commit

Permalink
Fix release script to check GH token (#17803)
Browse files Browse the repository at this point in the history
The current logic didn't work.
  • Loading branch information
erikjohnston authored Oct 10, 2024
1 parent 05576f0 commit f6a3e5e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
1 change: 1 addition & 0 deletions changelog.d/17803.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Test github token before running release script steps.
36 changes: 23 additions & 13 deletions scripts-dev/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
import git
from click.exceptions import ClickException
from git import GitCommandError, Repo
from github import Github
from github import BadCredentialsException, Github
from packaging import version


Expand Down Expand Up @@ -323,10 +323,8 @@ def tag(gh_token: Optional[str]) -> None:
def _tag(gh_token: Optional[str]) -> None:
"""Tags the release and generates a draft GitHub release"""

if gh_token:
# Test that the GH Token is valid before continuing.
gh = Github(gh_token)
gh.get_user()
# Test that the GH Token is valid before continuing.
check_valid_gh_token(gh_token)

# Make sure we're in a git repo.
repo = get_repo_and_check_clean_checkout()
Expand Down Expand Up @@ -469,10 +467,8 @@ def upload(gh_token: Optional[str]) -> None:
def _upload(gh_token: Optional[str]) -> None:
"""Upload release to pypi."""

if gh_token:
# Test that the GH Token is valid before continuing.
gh = Github(gh_token)
gh.get_user()
# Test that the GH Token is valid before continuing.
check_valid_gh_token(gh_token)

current_version = get_package_version()
tag_name = f"v{current_version}"
Expand Down Expand Up @@ -569,10 +565,8 @@ def wait_for_actions(gh_token: Optional[str]) -> None:


def _wait_for_actions(gh_token: Optional[str]) -> None:
if gh_token:
# Test that the GH Token is valid before continuing.
gh = Github(gh_token)
gh.get_user()
# Test that the GH Token is valid before continuing.
check_valid_gh_token(gh_token)

# Find out the version and tag name.
current_version = get_package_version()
Expand Down Expand Up @@ -806,6 +800,22 @@ def get_repo_and_check_clean_checkout(
return repo


def check_valid_gh_token(gh_token: Optional[str]) -> None:
"""Check that a github token is valid, if supplied"""

if not gh_token:
# No github token supplied, so nothing to do.
return

try:
gh = Github(gh_token)

# We need to lookup name to trigger a request.
_name = gh.get_user().name
except BadCredentialsException as e:
raise click.ClickException(f"Github credentials are bad: {e}")


def find_ref(repo: git.Repo, ref_name: str) -> Optional[git.HEAD]:
"""Find the branch/ref, looking first locally then in the remote."""
if ref_name in repo.references:
Expand Down

0 comments on commit f6a3e5e

Please sign in to comment.