From 472abfdf891260e6f026e947dac9779824cefe4f Mon Sep 17 00:00:00 2001 From: Lyra Bot Date: Mon, 17 Aug 2026 12:03:14 -0400 Subject: [PATCH] fix(ci): cache composer deps and authenticate to GitHub The test workflow was hitting GitHub's unauthenticated API rate limit (60 req/hour) when downloading 95 packages via composer install --prefer-dist, causing 429 Too Many Requests errors. Two fixes applied: 1. Cache Composer's download cache (~/.composer/cache) keyed on composer.lock hash, so repeated CI runs don't re-download packages at all. 2. Configure GitHub OAuth token via SYNC_GITHUB_TOKEN secret to raise the rate limit to 5,000 req/hour for cache misses. --- .gitea/workflows/tests.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.gitea/workflows/tests.yaml b/.gitea/workflows/tests.yaml index 3eaea61..3ce53c2 100644 --- a/.gitea/workflows/tests.yaml +++ b/.gitea/workflows/tests.yaml @@ -26,6 +26,24 @@ jobs: coverage: xdebug ini-values: apc.enable_cli=1 + # Authenticate to GitHub to raise API rate limit from 60 → 5,000 req/hour. + # Uses the same token that publish.yaml uses to sync to GitHub. + - name: Configure GitHub OAuth token + env: + GITHUB_TOKEN: ${{ secrets.SYNC_GITHUB_TOKEN }} + run: composer config --global github-oauth.github.com "$GITHUB_TOKEN" + + # Cache Composer's download cache so repeated CI runs don't re-download + # packages at all. Keyed on composer.lock hash — cache busts automatically + # when dependencies change. + - name: Cache Composer dependencies + uses: actions/cache@v4 + with: + path: ~/.composer/cache + key: composer-${{ runner.os }}-${{ hashFiles('composer.lock') }} + restore-keys: | + composer-${{ runner.os }}- + - name: Install dependencies run: composer install --prefer-dist --no-progress -- 2.54.0