From fa37b842cbb2d7a777b9da193f346ba8b770eedd Mon Sep 17 00:00:00 2001 From: anandgupta42 Date: Thu, 8 Oct 2026 11:42:39 -0700 Subject: [PATCH 1/2] chore(ci): read-only token and no persisted credentials in PR jobs Closes #1432 Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf965faa5..fcd1dc2b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,12 @@ concurrency: group: ci-${{ github.ref }} cancel-in-progress: true +# PR jobs run code from the pull request (tests, install scripts). None of them writes to the +# repo: keep the token read-only and out of .git/config. `pull-requests: read` is for paths-filter. +permissions: + contents: read + pull-requests: read + jobs: # --------------------------------------------------------------------------- # Detect which areas of the codebase changed to skip unaffected jobs. @@ -26,6 +32,8 @@ jobs: installer: ${{ steps.filter.outputs.installer }} steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3 id: filter @@ -105,6 +113,7 @@ jobs: steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: + persist-credentials: false fetch-depth: 0 persist-credentials: false @@ -148,6 +157,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: persist-credentials: false + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -181,6 +191,8 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -429,6 +441,8 @@ jobs: steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -524,6 +538,8 @@ jobs: timeout-minutes: 5 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -550,6 +566,8 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - name: Install Pester shell: pwsh @@ -579,6 +597,8 @@ jobs: timeout-minutes: 15 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -610,6 +630,8 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -666,6 +688,8 @@ jobs: timeout-minutes: 30 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -715,6 +739,8 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: @@ -758,6 +784,7 @@ jobs: steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: + persist-credentials: false fetch-depth: 0 - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 From a5f21721f8d53c86ced1408da1967c6e57cb8dff Mon Sep 17 00:00:00 2001 From: anandgupta42 Date: Thu, 8 Oct 2026 13:58:38 -0700 Subject: [PATCH 2/2] chore(ci): remove duplicate persist-credentials keys Two checkouts (tracker-leaks, typecheck) already set persist-credentials: false; the previous commit added it again, and duplicate mapping keys make the workflow invalid. Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fcd1dc2b1..0f9ea877d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -113,7 +113,6 @@ jobs: steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: - persist-credentials: false fetch-depth: 0 persist-credentials: false @@ -157,7 +156,6 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: persist-credentials: false - persist-credentials: false - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2 with: