From a99ee3c3ddfe9a1c17cc9f9928b333f7ae5927d2 Mon Sep 17 00:00:00 2001 From: dev-lead Date: Fri, 8 May 2026 09:03:10 -0700 Subject: [PATCH] fix(ci): pin setup-uv version to bypass anon GitHub API rate limit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both Tests/test and Tests/e2e jobs were failing with: No (valid) GitHub token provided. Falling back to anonymous. ::error::API rate limit exceeded for 5.78.80.188. ❌ Failure - Main Install uv Root cause: astral-sh/setup-uv@v5 with no `version:` resolves "latest" by calling api.github.com (octokit.repos.getLatestRelease). The operator host's anonymous IP is rate-limited at the public 60-req/hr cap because we no longer have a Molecule-AI GitHub PAT post the 2026-05-06 org suspension. Multiple uv installs across 16 runners exhaust the budget within minutes; subsequent installs fail. Pinning `version: "0.11.11"` makes setup-uv construct the release download URL directly (github.com/astral-sh/uv/releases/download/0.11.11) without an API call. Anonymous GitHub releases CDN downloads are not rate-limited. Same pattern as the prior molecule-core fix during the 2026-05-08 hermes-agent CI investigation; this one pins the tests.yml workflow that the prior fix missed. Drops the .ci-trigger-marker introduced earlier in this session — its job is done. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/.ci-trigger-marker | 6 ------ .github/workflows/tests.yml | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) delete mode 100644 .github/.ci-trigger-marker diff --git a/.github/.ci-trigger-marker b/.github/.ci-trigger-marker deleted file mode 100644 index 7573e8aa..00000000 --- a/.github/.ci-trigger-marker +++ /dev/null @@ -1,6 +0,0 @@ -# CI re-trigger marker -# Touched 2026-05-08 to fire Tests + Nix workflows after operator host -# disk pressure relief (99% → 79%). Last run had ENOSPC errors that -# masked which test failures are real vs env-induced. -# -# Safe to delete after confirming a clean run. diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a92afdfa..5365d345 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -32,7 +32,17 @@ jobs: run: sudo apt-get update && sudo apt-get install -y ripgrep - name: Install uv + # Pin uv version explicitly so setup-uv constructs the release + # download URL directly instead of resolving "latest" via the + # GitHub REST API. The operator host's anon IP (5.78.80.188) + # is anonymous-rate-limited at GitHub post-2026-05-06 (no org + # PAT available — see internal#79). Without the pin, the + # action's `octokit.repos.getLatestRelease()` call hits the + # 60-req/hr cap and fails Install uv with "API rate limit + # exceeded". With a pin, no API call is needed. uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 + with: + version: "0.11.11" - name: Set up Python 3.11 run: uv python install 3.11 @@ -61,7 +71,17 @@ jobs: uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Install uv + # Pin uv version explicitly so setup-uv constructs the release + # download URL directly instead of resolving "latest" via the + # GitHub REST API. The operator host's anon IP (5.78.80.188) + # is anonymous-rate-limited at GitHub post-2026-05-06 (no org + # PAT available — see internal#79). Without the pin, the + # action's `octokit.repos.getLatestRelease()` call hits the + # 60-req/hr cap and fails Install uv with "API rate limit + # exceeded". With a pin, no API call is needed. uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 + with: + version: "0.11.11" - name: Set up Python 3.11 run: uv python install 3.11