Skip to content

Commit 456f6a2

Browse files
Merge pull request #747 from MikroElektronika/update/removed-github-api-retry-approach
Updated scripts to exclude api fetching of all releases
2 parents 4b7f019 + 23f71be commit 456f6a2

2 files changed

Lines changed: 5 additions & 89 deletions

File tree

scripts/compare_assets.py

Lines changed: 4 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -13,60 +13,6 @@ def get_headers(api, token):
1313
'Accept': 'application/octet-stream'
1414
}
1515

16-
def fetch_specified_release_version(repo, token, tag):
17-
api_headers = get_headers(True, token)
18-
url = f'https://api.github.com/repos/{repo}/releases'
19-
20-
# First: 5 fast attempts (5s timeout)
21-
for attempt in range(1, 6):
22-
try:
23-
print(f'GitHub API attempt {attempt}/5 (timeout=10s)')
24-
response = requests.get(url, headers=api_headers, timeout=10)
25-
response.raise_for_status()
26-
return support.get_specified_release(repo, api_headers, tag)
27-
28-
except requests.exceptions.RequestException as e:
29-
last_exception = e
30-
print(f'\033[93mAttempt {attempt} failed:\033[0m {e}')
31-
32-
# Final fallback attempt (600s timeout)
33-
try:
34-
print('Final attempt with extended timeout (600s)')
35-
response = requests.get(url, headers=api_headers, timeout=600)
36-
response.raise_for_status()
37-
return support.get_specified_release(repo, api_headers, tag)
38-
39-
except requests.exceptions.RequestException as e:
40-
print('\033[91mFinal attempt failed too\033[0m')
41-
raise last_exception from e
42-
43-
def fetch_latest_release_version(repo, token):
44-
api_headers = get_headers(True, token)
45-
url = f'https://api.github.com/repos/{repo}/releases/latest'
46-
47-
# First: 5 fast attempts (5s timeout)
48-
for attempt in range(1, 6):
49-
try:
50-
print(f'GitHub API attempt {attempt}/5 (timeout=10s)')
51-
response = requests.get(url, headers=api_headers, timeout=10)
52-
response.raise_for_status()
53-
return response.json()
54-
55-
except requests.exceptions.RequestException as e:
56-
last_exception = e
57-
print(f'\033[93mAttempt {attempt} failed:\033[0m {e}')
58-
59-
# Final fallback attempt (600s timeout)
60-
try:
61-
print('Final attempt with extended timeout (600s)')
62-
response = requests.get(url, headers=api_headers, timeout=600)
63-
response.raise_for_status()
64-
return response.json()
65-
66-
except requests.exceptions.RequestException as e:
67-
print('\033[91mFinal attempt failed too\033[0m')
68-
raise last_exception from e
69-
7016
def fetch_existing_asset_names(release):
7117
return [asset['name'] for asset in release['assets']]
7218

@@ -75,15 +21,15 @@ def main(token, repo, current_tag, previous_tag):
7521

7622
print('\033[96mFetching the current tag release info...\033[0m')
7723
if current_tag != "latest":
78-
current_release = fetch_specified_release_version(repo, token, current_tag)
24+
current_release = support.get_specified_release(repo, get_headers(True, token), current_tag)
7925
else:
80-
current_release = fetch_latest_release_version(repo, token)
26+
current_release = support.get_latest_release(repo, get_headers(True, token))
8127

8228
print('\033[96mFetching the current tag release info...\033[0m')
8329
if previous_tag != "latest":
84-
previous_release = fetch_specified_release_version(repo, token, previous_tag)
30+
previous_release = support.get_specified_release(repo, get_headers(True, token), current_tag)
8531
else:
86-
previous_release = fetch_latest_release_version(repo, token)
32+
previous_release = support.get_latest_release(repo, get_headers(True, token))
8733

8834
current_assets = [package.replace('.7z', '') for package in fetch_existing_asset_names(current_release)]
8935
previous_assets = [package.replace('.7z', '') for package in fetch_existing_asset_names(previous_release)]

scripts/update_board_changelog.py

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -27,36 +27,6 @@ def find_file(root_folder, filename):
2727
return os.path.join(dirpath, filename), dirpath
2828
return None, None
2929

30-
def fetch_latest_release_version(repo, token):
31-
api_headers = get_headers(True, token)
32-
url = f'https://api.github.com/repos/{repo}/releases'
33-
response_acquired = False
34-
35-
# First: 5 fast attempts (10s timeout)
36-
for attempt in range(1, 6):
37-
try:
38-
print(f'GitHub API attempt {attempt}/5 (timeout=10s)')
39-
response = requests.get(url, headers=api_headers, timeout=10)
40-
response.raise_for_status()
41-
response_acquired = True
42-
break
43-
44-
except requests.exceptions.RequestException as e:
45-
last_exception = e
46-
print(f'\033[93mAttempt {attempt} failed:\033[0m {e}')
47-
48-
if not response_acquired:
49-
# Final fallback attempt (600s timeout)
50-
try:
51-
print('Final attempt with extended timeout (600s)')
52-
response = requests.get(url, headers=api_headers, timeout=600)
53-
response.raise_for_status()
54-
55-
except requests.exceptions.RequestException as e:
56-
print('\033[91mFinal attempt failed too\033[0m')
57-
raise last_exception from e
58-
return support.get_latest_release(repo, api_headers)
59-
6030
def edit_changelog(version):
6131
found_file, file_dir = find_file(os.path.join(os.getcwd(), "changelog"), "new_hw.md")
6232

@@ -107,7 +77,7 @@ def edit_bsp_header(changelog_path):
10777
parser.add_argument("repo", type=str, help="Repository name, e.g., 'username/repo'")
10878
args = parser.parse_args()
10979

110-
release = fetch_latest_release_version(args.repo, args.token)
80+
release = support.get_latest_release(args.repo, get_headers(True, args.token))
11181
changelog_path = edit_changelog(release['tag_name'].replace('mikroSDK-', ''))
11282

11383
# Update bsp header for board/card clock release

0 commit comments

Comments
 (0)