Skip to content

Commit 0b784fe

Browse files
committed
ci: add explicit permissions to workflows
1 parent 93163df commit 0b784fe

5 files changed

Lines changed: 40 additions & 117 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ concurrency:
1010
group: ci-${{ github.ref }}
1111
cancel-in-progress: true
1212

13+
permissions:
14+
contents: read
15+
actions: write
16+
1317
jobs:
1418
build:
1519
runs-on: ubuntu-latest

.github/workflows/realistic-test.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,16 @@ concurrency:
1010
group: realistic-test
1111
cancel-in-progress: true
1212

13+
permissions:
14+
contents: read
15+
1316
jobs:
1417
realistic:
1518
name: Realistic — ${{ matrix.name }}
1619
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
actions: write
1723
strategy:
1824
max-parallel: 1
1925
fail-fast: false
@@ -43,6 +49,9 @@ jobs:
4349
realistic-diag:
4450
name: Diagnostics — ${{ matrix.name }}
4551
runs-on: ubuntu-latest
52+
permissions:
53+
contents: read
54+
actions: read
4655
needs: [realistic]
4756
if: ${{ needs.realistic.result != 'skipped' }}
4857
strategy:

.github/workflows/self-test.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,16 @@ concurrency:
6363
group: self-test
6464
cancel-in-progress: true
6565

66+
permissions:
67+
contents: read
68+
6669
jobs:
6770
scenario:
6871
name: Scenario — ${{ matrix.name }}
6972
runs-on: ubuntu-latest
73+
permissions:
74+
contents: read
75+
actions: write
7076
strategy:
7177
max-parallel: 1
7278
fail-fast: false
@@ -137,6 +143,9 @@ jobs:
137143
scenario-diag:
138144
name: Diagnostics — ${{ matrix.name }}
139145
runs-on: ubuntu-latest
146+
permissions:
147+
contents: read
148+
actions: read
140149
needs: [scenario]
141150
strategy:
142151
max-parallel: 1

HANDOFF.md

Lines changed: 0 additions & 117 deletions
This file was deleted.

scripts/generate-self-test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,16 @@ function generateWorkflow(): string {
9797
lines.push(" group: self-test");
9898
lines.push(" cancel-in-progress: true");
9999
lines.push("");
100+
lines.push("permissions:");
101+
lines.push(" contents: read");
102+
lines.push("");
100103
lines.push("jobs:");
101104
lines.push(" scenario:");
102105
lines.push(" name: Scenario — ${{ matrix.name }}");
103106
lines.push(" runs-on: ubuntu-latest");
107+
lines.push(" permissions:");
108+
lines.push(" contents: read");
109+
lines.push(" actions: write");
104110
lines.push(" strategy:");
105111
lines.push(" max-parallel: 1");
106112
lines.push(" fail-fast: false");
@@ -134,6 +140,9 @@ function generateWorkflow(): string {
134140
lines.push(" scenario-diag:");
135141
lines.push(" name: Diagnostics — ${{ matrix.name }}");
136142
lines.push(" runs-on: ubuntu-latest");
143+
lines.push(" permissions:");
144+
lines.push(" contents: read");
145+
lines.push(" actions: read");
137146
lines.push(" needs: [scenario]");
138147
lines.push(" strategy:");
139148
lines.push(" max-parallel: 1");
@@ -198,10 +207,16 @@ function generateRealisticWorkflow(): string | null {
198207
lines.push(" group: realistic-test");
199208
lines.push(" cancel-in-progress: true");
200209
lines.push("");
210+
lines.push("permissions:");
211+
lines.push(" contents: read");
212+
lines.push("");
201213
lines.push("jobs:");
202214
lines.push(" realistic:");
203215
lines.push(" name: Realistic — ${{ matrix.name }}");
204216
lines.push(" runs-on: ubuntu-latest");
217+
lines.push(" permissions:");
218+
lines.push(" contents: read");
219+
lines.push(" actions: write");
205220
lines.push(" strategy:");
206221
lines.push(" max-parallel: 1");
207222
lines.push(" fail-fast: false");
@@ -227,6 +242,9 @@ function generateRealisticWorkflow(): string | null {
227242
lines.push(" realistic-diag:");
228243
lines.push(" name: Diagnostics — ${{ matrix.name }}");
229244
lines.push(" runs-on: ubuntu-latest");
245+
lines.push(" permissions:");
246+
lines.push(" contents: read");
247+
lines.push(" actions: read");
230248
lines.push(" needs: [realistic]");
231249
lines.push(" if: ${{ needs.realistic.result != 'skipped' }}");
232250
lines.push(" strategy:");

0 commit comments

Comments
 (0)