Add token for check latest Rust version.

This commit is contained in:
Jean-Christophe Amiel 2025-07-21 11:44:49 +02:00
parent 29f4f8d05e
commit 8b3b797992
No known key found for this signature in database
GPG Key ID: 07FF11CFD55356CC
2 changed files with 27 additions and 8 deletions

View File

@ -72,10 +72,12 @@ jobs:
bin/check/zizmor.sh --github-token ${GITHUB_TOKEN} .github/workflows/*.yml
- name: Check Rust version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: always()
run: |
python3 -m pip install requests --quiet
bin/check/rust_version.py 7
bin/check/rust_version.py --token ${GITHUB_TOKEN} 7
- name: Generated
if: always()

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3
import argparse
import datetime
import json
import os
@ -7,10 +8,13 @@ import sys
import requests
def get_latest_release() -> None | tuple[str, datetime]:
def get_latest_release(token: str | None) -> None | tuple[str, datetime]:
"""Returns the latest Rust release available."""
url = "https://api.github.com/repos/rust-lang/rust/releases"
r = requests.get(url)
headers = {}
if token:
headers["Authorization"] = f"Bearer {token}"
r = requests.get(url, headers=headers)
if r.status_code != 200:
sys.stderr.write(f"Error GET {url} {r.status_code}\n")
sys.stderr.write(f"{r.text}\n")
@ -30,12 +34,22 @@ def get_current_version() -> str:
def main():
if len(sys.argv) < 2:
print("Usage: rust_version.py NUM_DAYS_BEFORE_ERROR")
sys.exit(1)
num_days_before_error = int(sys.argv[1])
parser = argparse.ArgumentParser(
description="Check if Hurl uses the latest Rust version"
)
parser.add_argument(
"num_days_before_error",
type=int,
metavar="NUM_DAYS_BEFORE_ERROR",
help="Interval in days before raising an error if Hurl is not using latest Rust",
)
parser.add_argument("--token", help="GitHub authentication token")
args = parser.parse_args()
ret = get_latest_release()
num_days_before_error = args.num_days_before_error
token = args.token
ret = get_latest_release(token=token)
if not ret:
sys.exit(2)
@ -48,6 +62,9 @@ def main():
days_before_now = datetime.datetime.now() - date
if days_before_now > datetime.timedelta(days=num_days_before_error):
sys.exit(1)
else:
sys.stderr.write(f"Latest Rust version: {latest_version}\n")
sys.stderr.write(f"Hurl Rust version: {current_version}\n")
if __name__ == "__main__":