Skip to content

Commit 509f89a

Browse files
committed
fix:improvements
1 parent 151b276 commit 509f89a

2 files changed

Lines changed: 17 additions & 9 deletions

File tree

gha_cli/cli.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,17 @@ def compare_versions(v1: str, v2: str) -> int:
3030
v2 = v2[1:]
3131
v1 = v1.split('.')
3232
v2 = v2.split('.')
33-
compare_count = max(len(v1), len(v2)) if FLAG_COMPARE_EXACT_VERSION else 1
34-
for i in range(compare_count):
35-
v1_i = int(v1[i]) if i < len(v1) else 0
36-
v2_i = int(v2[i]) if i < len(v2) else 0
37-
if v1_i > v2_i:
38-
return 1
39-
if v1_i < v2_i:
40-
return -1
33+
try:
34+
compare_count = max(len(v1), len(v2)) if FLAG_COMPARE_EXACT_VERSION else 1
35+
for i in range(compare_count):
36+
v1_i = int(v1[i]) if i < len(v1) else 0
37+
v2_i = int(v2[i]) if i < len(v2) else 0
38+
if v1_i > v2_i:
39+
return 1
40+
if v1_i < v2_i:
41+
return -1
42+
except ValueError:
43+
logging.warning(f'Could not compare versions {v1} and {v2}')
4144
return 0
4245

4346

@@ -78,11 +81,16 @@ def check_for_updates(self, action_name: str) -> Optional[str]:
7881
return None
7982
repo_name, current_version = action_name.split('@')
8083
logging.debug(f'Checking for updates for {action_name}: Getting repo {repo_name}')
84+
if repo_name in self.actions_latest_release:
85+
latest_release = self.actions_latest_release[repo_name]
86+
logging.debug(f"Found in cache {repo_name}: {latest_release}")
87+
return latest_release if compare_versions(latest_release, current_version) else None
8188
repo = self.client.get_repo(repo_name)
8289
logging.debug(f'Getting latest release for repository: {repo_name}')
8390
try:
8491
latest_release = repo.get_latest_release()
8592
if compare_versions(latest_release.tag_name, current_version):
93+
self.actions_latest_release[repo_name] = latest_release.tag_name
8694
return latest_release.tag_name
8795
except UnknownObjectException:
8896
logging.warning(f'No releases found for repository: {repo_name}')

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ github-actions-cli = "gha_cli.cli:cli"
88

99
[tool.poetry]
1010
name = "github-actions-cli"
11-
version = "1.1.2"
11+
version = "1.1.3"
1212
description = "GitHub Actions CLI - allows updating workflows, etc."
1313
readme = "README.md"
1414
keywords = ["GitHub Actions", "CLI"]

0 commit comments

Comments
 (0)