Skip to content

Commit

Permalink
Added exception handling for missing master/develop branches in impor…
Browse files Browse the repository at this point in the history
…t_library_versions (#1550)
  • Loading branch information
daveoconnor committed Jan 10, 2025
1 parent bd522bd commit 302dcb9
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
9 changes: 8 additions & 1 deletion core/githubhelper.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,14 @@ def get_ref(self, repo_slug: str = None, ref: str = None) -> dict:
repo_slug = self.repo_slug
if not ref:
ref = self.ref
return self.api.git.get_ref(owner=self.owner, repo=repo_slug, ref=ref)
try:
ref_response = self.api.git.get_ref(
owner=self.owner, repo=repo_slug, ref=ref
)
except OSError as e:
logger.warning("get_ref_failed", repo=repo_slug, ref=ref, exc_msg=str(e))
raise ValueError(f"Could not get ref for {repo_slug} and {ref}")
return ref_response

def get_repo(self, repo_slug: str = None) -> dict:
"""
Expand Down
5 changes: 2 additions & 3 deletions libraries/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,8 @@ def get_and_store_library_version_documentation_urls_for_version(version_pk):
library_version.save()
except LibraryVersion.DoesNotExist:
logger.info(
"get_library_version_documentation_urls_version_does_not_exist",
library_name=library_name,
version_slug=version.slug,
f"get_library_version_documentation_urls_version_does_not_exist"
f"{library_name=} {version.slug=}",
)
continue
except LibraryVersion.MultipleObjectsReturned:
Expand Down
10 changes: 6 additions & 4 deletions versions/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,10 +262,12 @@ def import_library_versions(version_name, token=None, version_type="tag"):
# Get the gitmodules file for the version, which contains library data
# The master and develop branches are not tags, so we retrieve their data
# from the heads/ namespace instead of tags/
if version_type == "tag":
ref = client.get_ref(ref=f"tags/{version_name}")
else:
ref = client.get_ref(ref=f"heads/{version_name}")
ref_s = f"tags/{version_name}" if version_type == "tag" else f"heads/{version_name}"
try:
ref = client.get_ref(ref=ref_s)
except ValueError:
logger.info(f"import_library_versions_invalid_ref {ref_s=}")
return

raw_gitmodules = client.get_gitmodules(ref=ref)
if not raw_gitmodules:
Expand Down

0 comments on commit 302dcb9

Please sign in to comment.