Skip to content

Commit 4c06c98

Browse files
authored
Add explicit permissions to all actions workflows (#36140)
Explicitely specify all workflow [`permissions`](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#permissions). This will fix [26 CodeQL alerts](https://github.com/go-gitea/gitea/security/code-scanning?query=permissions+is%3Aopen+branch%3Amain+).
1 parent 87b855b commit 4c06c98

File tree

9 files changed

+53
-0
lines changed

9 files changed

+53
-0
lines changed

.github/workflows/cron-licenses.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ jobs:
99
cron-licenses:
1010
runs-on: ubuntu-latest
1111
if: github.repository == 'go-gitea/gitea'
12+
permissions:
13+
contents: write
1214
steps:
1315
- uses: actions/checkout@v6
1416
- uses: actions/setup-go@v6

.github/workflows/cron-translations.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ jobs:
99
crowdin-pull:
1010
runs-on: ubuntu-latest
1111
if: github.repository == 'go-gitea/gitea'
12+
permissions:
13+
contents: write
1214
steps:
1315
- uses: actions/checkout@v6
1416
- uses: crowdin/github-action@v1

.github/workflows/files-changed.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ jobs:
2424
detect:
2525
runs-on: ubuntu-latest
2626
timeout-minutes: 3
27+
permissions:
28+
contents: read
2729
outputs:
2830
backend: ${{ steps.changes.outputs.backend }}
2931
frontend: ${{ steps.changes.outputs.frontend }}

.github/workflows/pull-compliance.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
1616
needs: files-changed
1717
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
1820
steps:
1921
- uses: actions/checkout@v6
2022
- uses: actions/setup-go@v6
@@ -30,6 +32,8 @@ jobs:
3032
if: needs.files-changed.outputs.templates == 'true'
3133
needs: files-changed
3234
runs-on: ubuntu-latest
35+
permissions:
36+
contents: read
3337
steps:
3438
- uses: actions/checkout@v6
3539
- uses: astral-sh/setup-uv@v6
@@ -46,6 +50,8 @@ jobs:
4650
if: needs.files-changed.outputs.yaml == 'true'
4751
needs: files-changed
4852
runs-on: ubuntu-latest
53+
permissions:
54+
contents: read
4955
steps:
5056
- uses: actions/checkout@v6
5157
- uses: astral-sh/setup-uv@v6
@@ -57,6 +63,8 @@ jobs:
5763
if: needs.files-changed.outputs.swagger == 'true'
5864
needs: files-changed
5965
runs-on: ubuntu-latest
66+
permissions:
67+
contents: read
6068
steps:
6169
- uses: actions/checkout@v6
6270
- uses: pnpm/action-setup@v4
@@ -70,6 +78,8 @@ jobs:
7078
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.frontend == 'true' || needs.files-changed.outputs.actions == 'true' || needs.files-changed.outputs.docs == 'true' || needs.files-changed.outputs.templates == 'true'
7179
needs: files-changed
7280
runs-on: ubuntu-latest
81+
permissions:
82+
contents: read
7383
steps:
7484
- uses: actions/checkout@v6
7585
- uses: actions/setup-go@v6
@@ -82,6 +92,8 @@ jobs:
8292
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
8393
needs: files-changed
8494
runs-on: ubuntu-latest
95+
permissions:
96+
contents: read
8597
steps:
8698
- uses: actions/checkout@v6
8799
- uses: actions/setup-go@v6
@@ -99,6 +111,8 @@ jobs:
99111
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
100112
needs: files-changed
101113
runs-on: ubuntu-latest
114+
permissions:
115+
contents: read
102116
steps:
103117
- uses: actions/checkout@v6
104118
- uses: actions/setup-go@v6
@@ -114,6 +128,8 @@ jobs:
114128
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
115129
needs: files-changed
116130
runs-on: ubuntu-latest
131+
permissions:
132+
contents: read
117133
steps:
118134
- uses: actions/checkout@v6
119135
- uses: actions/setup-go@v6
@@ -127,6 +143,8 @@ jobs:
127143
if: needs.files-changed.outputs.frontend == 'true' || needs.files-changed.outputs.actions == 'true'
128144
needs: files-changed
129145
runs-on: ubuntu-latest
146+
permissions:
147+
contents: read
130148
steps:
131149
- uses: actions/checkout@v6
132150
- uses: pnpm/action-setup@v4
@@ -143,6 +161,8 @@ jobs:
143161
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
144162
needs: files-changed
145163
runs-on: ubuntu-latest
164+
permissions:
165+
contents: read
146166
steps:
147167
- uses: actions/checkout@v6
148168
- uses: actions/setup-go@v6
@@ -175,6 +195,8 @@ jobs:
175195
if: needs.files-changed.outputs.docs == 'true' || needs.files-changed.outputs.actions == 'true'
176196
needs: files-changed
177197
runs-on: ubuntu-latest
198+
permissions:
199+
contents: read
178200
steps:
179201
- uses: actions/checkout@v6
180202
- uses: pnpm/action-setup@v4
@@ -188,6 +210,8 @@ jobs:
188210
if: needs.files-changed.outputs.actions == 'true' || needs.files-changed.outputs.actions == 'true'
189211
needs: files-changed
190212
runs-on: ubuntu-latest
213+
permissions:
214+
contents: read
191215
steps:
192216
- uses: actions/checkout@v6
193217
- uses: actions/setup-go@v6

.github/workflows/pull-db-tests.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
1616
needs: files-changed
1717
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
1820
services:
1921
pgsql:
2022
image: postgres:14
@@ -65,6 +67,8 @@ jobs:
6567
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
6668
needs: files-changed
6769
runs-on: ubuntu-latest
70+
permissions:
71+
contents: read
6872
steps:
6973
- uses: actions/checkout@v6
7074
- uses: actions/setup-go@v6
@@ -90,6 +94,8 @@ jobs:
9094
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
9195
needs: files-changed
9296
runs-on: ubuntu-latest
97+
permissions:
98+
contents: read
9399
services:
94100
elasticsearch:
95101
image: elasticsearch:7.5.0
@@ -152,6 +158,8 @@ jobs:
152158
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
153159
needs: files-changed
154160
runs-on: ubuntu-latest
161+
permissions:
162+
contents: read
155163
services:
156164
mysql:
157165
# the bitnami mysql image has more options than the official one, it's easier to customize
@@ -203,6 +211,8 @@ jobs:
203211
if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
204212
needs: files-changed
205213
runs-on: ubuntu-latest
214+
permissions:
215+
contents: read
206216
services:
207217
mssql:
208218
image: mcr.microsoft.com/mssql/server:2019-latest

.github/workflows/pull-docker-dryrun.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515
if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.actions == 'true'
1616
needs: files-changed
1717
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
1820
steps:
1921
- uses: actions/checkout@v6
2022
- uses: docker/setup-buildx-action@v3

.github/workflows/release-nightly.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ concurrency:
1111
jobs:
1212
nightly-binary:
1313
runs-on: namespace-profile-gitea-release-binary
14+
permissions:
15+
contents: read
1416
steps:
1517
- uses: actions/checkout@v6
1618
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
@@ -56,9 +58,11 @@ jobs:
5658
- name: upload binaries to s3
5759
run: |
5860
aws s3 sync dist/release s3://${{ secrets.AWS_S3_BUCKET }}/gitea/${{ steps.clean_name.outputs.branch }} --no-progress
61+
5962
nightly-container:
6063
runs-on: namespace-profile-gitea-release-docker
6164
permissions:
65+
contents: read
6266
packages: write # to publish to ghcr.io
6367
steps:
6468
- uses: actions/checkout@v6

.github/workflows/release-tag-rc.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ concurrency:
1212
jobs:
1313
binary:
1414
runs-on: namespace-profile-gitea-release-binary
15+
permissions:
16+
contents: read
1517
steps:
1618
- uses: actions/checkout@v6
1719
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
@@ -66,9 +68,11 @@ jobs:
6668
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --draft --notes-from-tag dist/release/*
6769
env:
6870
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
71+
6972
container:
7073
runs-on: namespace-profile-gitea-release-docker
7174
permissions:
75+
contents: read
7276
packages: write # to publish to ghcr.io
7377
steps:
7478
- uses: actions/checkout@v6

.github/workflows/release-tag-version.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ jobs:
1515
binary:
1616
runs-on: namespace-profile-gitea-release-binary
1717
permissions:
18+
contents: read
1819
packages: write # to publish to ghcr.io
1920
steps:
2021
- uses: actions/checkout@v6
@@ -70,9 +71,11 @@ jobs:
7071
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --notes-from-tag dist/release/*
7172
env:
7273
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
74+
7375
container:
7476
runs-on: namespace-profile-gitea-release-docker
7577
permissions:
78+
contents: read
7679
packages: write # to publish to ghcr.io
7780
steps:
7881
- uses: actions/checkout@v6

0 commit comments

Comments
 (0)