Skip to content

Commit 9de48c3

Browse files
committed
ci: address supply-chain review feedback
1 parent ce489f9 commit 9de48c3

13 files changed

Lines changed: 64 additions & 11 deletions

.github/workflows/_update-addon-config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ jobs:
6262
with:
6363
app-id: ${{ secrets.RELEASE_APP_ID }}
6464
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
65+
permission-contents: write
6566
continue-on-error: true
6667

6768
- name: Determine push token

.github/workflows/deploy.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ jobs:
4646
cache-dependency-path: site/package-lock.json
4747

4848
- name: Install dependencies
49-
run: |
50-
npm install --global npm@12.0.2
51-
npm ci
49+
run: corepack npm ci
5250

5351
- name: Build with Astro
5452
run: npm run build

.github/workflows/locale-sync.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ jobs:
312312
with:
313313
app-id: ${{ secrets.RELEASE_APP_ID }}
314314
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
315+
permission-contents: write
315316
continue-on-error: true
316317

317318
- name: Ensure push credential

.github/workflows/pr.yml

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ jobs:
4545
if: github.event_name == 'pull_request'
4646
steps:
4747
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
48+
with:
49+
persist-credentials: false
4850
- name: Fail component changes riding an already-released version
4951
env:
5052
BASE_REF: ${{ github.base_ref }}
@@ -97,6 +99,8 @@ jobs:
9799
run: ${{ steps.filter.outputs.run }}
98100
steps:
99101
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
102+
with:
103+
persist-credentials: false
100104
- name: Classify changed files
101105
id: filter
102106
env:
@@ -200,6 +204,8 @@ jobs:
200204

201205
steps:
202206
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
207+
with:
208+
persist-credentials: false
203209

204210
- name: Verify uv.lock is in sync with pyproject.toml
205211
run: uv lock --check
@@ -243,6 +249,8 @@ jobs:
243249

244250
steps:
245251
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
252+
with:
253+
persist-credentials: false
246254

247255
- name: Check AGENTS.md size
248256
run: |
@@ -264,6 +272,8 @@ jobs:
264272
working-directory: site
265273
steps:
266274
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
275+
with:
276+
persist-credentials: false
267277

268278
- name: Setup Node
269279
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
@@ -273,9 +283,7 @@ jobs:
273283
cache-dependency-path: site/package-lock.json
274284

275285
- name: Install dependencies
276-
run: |
277-
npm install --global npm@12.0.2
278-
npm ci
286+
run: corepack npm ci
279287

280288
- name: Astro type & diagnostics check
281289
run: npm run check
@@ -304,6 +312,8 @@ jobs:
304312
run: apt-get update -qq && apt-get install -y -qq git >/dev/null 2>&1
305313

306314
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
315+
with:
316+
persist-credentials: false
307317

308318
- name: Install dependencies
309319
run: uv sync --dev
@@ -348,6 +358,8 @@ jobs:
348358

349359
steps:
350360
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
361+
with:
362+
persist-credentials: false
351363

352364
- name: Install dependencies
353365
run: uv sync --dev
@@ -365,6 +377,8 @@ jobs:
365377

366378
steps:
367379
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
380+
with:
381+
persist-credentials: false
368382

369383
- name: Install dependencies
370384
run: uv sync --dev
@@ -407,6 +421,7 @@ jobs:
407421
408422
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
409423
with:
424+
persist-credentials: false
410425
submodules: true
411426

412427
- name: Set up Node.js
@@ -432,9 +447,7 @@ jobs:
432447
# `npm ci` enforces package-lock.json — same reproducibility
433448
# discipline as uv.lock on the Python side. No-op on cache hit
434449
# if node_modules matches the lockfile.
435-
run: |
436-
npm install --global npm@12.0.2
437-
npm ci --prefix tests/js
450+
run: cd tests/js && corepack npm ci
438451

439452
- name: Run unit tests
440453
run: uv run pytest tests/src/unit/ -n auto --tb=short -v
@@ -480,6 +493,7 @@ jobs:
480493
steps:
481494
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
482495
with:
496+
persist-credentials: false
483497
submodules: true
484498

485499
- name: Set up Docker Buildx
@@ -581,6 +595,7 @@ jobs:
581595
steps:
582596
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
583597
with:
598+
persist-credentials: false
584599
submodules: true
585600

586601
- name: Set up Docker Buildx
@@ -678,6 +693,7 @@ jobs:
678693
steps:
679694
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
680695
with:
696+
persist-credentials: false
681697
submodules: true
682698
# fetch-depth 0: the update-path scenario checks the custom component
683699
# out at the released ``stable`` git tag, which the default shallow
@@ -766,6 +782,7 @@ jobs:
766782
steps:
767783
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
768784
with:
785+
persist-credentials: false
769786
submodules: true
770787

771788
- name: Set up Docker Buildx

.github/workflows/publish-dev.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ jobs:
4646
steps:
4747
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
4848
with:
49+
persist-credentials: false
4950
# Full history: the dev version number is the commit count.
5051
fetch-depth: 0
5152

@@ -84,6 +85,7 @@ jobs:
8485
steps:
8586
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
8687
with:
88+
persist-credentials: false
8789
submodules: true
8890

8991
- name: Install uv
@@ -122,6 +124,7 @@ jobs:
122124
steps:
123125
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
124126
with:
127+
persist-credentials: false
125128
submodules: true
126129

127130
- name: Set up Docker Buildx
@@ -162,6 +165,8 @@ jobs:
162165
contents: write
163166
steps:
164167
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
168+
with:
169+
persist-credentials: false
165170

166171
- name: Create pre-release
167172
env:

.github/workflows/release-publish.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
steps:
2727
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
2828
with:
29+
persist-credentials: false
2930
ref: master
3031
fetch-depth: 0
3132

@@ -129,6 +130,7 @@ jobs:
129130
steps:
130131
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
131132
with:
133+
persist-credentials: false
132134
ref: ${{ needs.prepare.outputs.release_tag }}
133135
fetch-depth: 0
134136
# Required for the bundled skills (resources/skills-vendor is a
@@ -164,6 +166,7 @@ jobs:
164166
steps:
165167
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
166168
with:
169+
persist-credentials: false
167170
ref: ${{ needs.prepare.outputs.release_tag }}
168171
fetch-depth: 0
169172
# Required for the bundled skills (resources/skills-vendor is a
@@ -228,6 +231,8 @@ jobs:
228231
echo "Docker publish conclusion: ${{ needs.publish_docker.result }}"
229232
230233
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
234+
with:
235+
persist-credentials: false
231236
if: ${{ needs.publish_pypi.result == 'success' && needs.publish_docker.result == 'success' }}
232237
with:
233238
ref: ${{ needs.prepare.outputs.release_tag }}
@@ -266,6 +271,10 @@ jobs:
266271
--oci-image "$IMAGE"
267272
cat server.json
268273
274+
- name: Install uv
275+
if: ${{ needs.publish_pypi.result == 'success' && needs.publish_docker.result == 'success' }}
276+
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
277+
269278
- name: Validate server manifest
270279
if: ${{ needs.publish_pypi.result == 'success' && needs.publish_docker.result == 'success' }}
271280
run: |

.github/workflows/renovate.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ jobs:
4141
with:
4242
app-id: ${{ secrets.RENOVATE_APP_ID }}
4343
private-key: ${{ secrets.RENOVATE_APP_PRIVATE_KEY }}
44+
permission-contents: write
45+
permission-issues: write
46+
permission-pull-requests: write
47+
permission-workflows: write
4448

4549
- name: Self-hosted Renovate
4650
uses: renovatebot/github-action@316d7cd859606d6039a2182b7d69199e9b036835 # v46.2.1

.github/workflows/semver-release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ jobs:
7070
steps:
7171
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
7272
with:
73+
persist-credentials: false
7374
fetch-depth: 0
7475

7576
- name: Check for releasable commits since last tag
@@ -115,6 +116,7 @@ jobs:
115116
steps:
116117
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
117118
with:
119+
persist-credentials: false
118120
submodules: true
119121

120122
- name: Set up Docker Buildx
@@ -154,11 +156,13 @@ jobs:
154156
with:
155157
app-id: ${{ secrets.RELEASE_APP_ID }}
156158
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
159+
permission-contents: write
157160
# Fallback to RELEASE_TOKEN (PAT) or GITHUB_TOKEN if app credentials not configured
158161
continue-on-error: true
159162

160163
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
161164
with:
165+
persist-credentials: false
162166
fetch-depth: 0
163167
# Priority: GitHub App token > RELEASE_TOKEN (PAT) > GITHUB_TOKEN
164168
token: ${{ steps.app-token.outputs.token || secrets.RELEASE_TOKEN || secrets.GITHUB_TOKEN }}

.github/workflows/sync-integration-mirror.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ jobs:
141141
steps:
142142
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
143143
with:
144+
persist-credentials: false
144145
# The release-notes step needs the full stable-tag history
145146
# (git tag -l 'v*') to find the previous and current server
146147
# release, not just the default single-commit shallow checkout.

.github/workflows/sync-tool-docs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ jobs:
4444
with:
4545
app-id: ${{ secrets.RELEASE_APP_ID }}
4646
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
47+
permission-contents: write
4748
continue-on-error: true
4849

4950
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

0 commit comments

Comments
 (0)