Skip to content

Commit 2ef0454

Browse files
Merge remote-tracking branch 'upstream/main' into fix/parser-sandbox-pythonpath-escape
2 parents 496a785 + 2f82738 commit 2ef0454

32 files changed

Lines changed: 1300 additions & 388 deletions

.github/dependabot.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
version: 2
2+
updates:
3+
# Maintain dependencies for npm (frontend)
4+
- package-ecosystem: "npm"
5+
directory: "/frontend"
6+
schedule:
7+
interval: "weekly"
8+
target-branch: "main"
9+
open-pull-requests-limit: 10
10+
groups:
11+
frontend-dependencies:
12+
patterns:
13+
- "*"
14+
15+
# Maintain dependencies for Python (backend)
16+
- package-ecosystem: "pip"
17+
directory: "/backend"
18+
schedule:
19+
interval: "weekly"
20+
target-branch: "main"
21+
open-pull-requests-limit: 10
22+
groups:
23+
backend-dependencies:
24+
patterns:
25+
- "*"
26+
27+
# Maintain dependencies for Python (root pyproject.toml)
28+
- package-ecosystem: "pip"
29+
directory: "/"
30+
schedule:
31+
interval: "weekly"
32+
target-branch: "main"
33+
open-pull-requests-limit: 10
34+
groups:
35+
root-dependencies:
36+
patterns:
37+
- "*"
38+
39+
# Maintain GitHub Actions dependencies
40+
- package-ecosystem: "github-actions"
41+
directory: "/"
42+
schedule:
43+
interval: "weekly"
44+
target-branch: "main"
45+
open-pull-requests-limit: 10
46+
groups:
47+
github-actions:
48+
patterns:
49+
- "*"

.github/workflows/catalog-sync-check.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212

1313
steps:
1414
- name: Checkout Repository
15-
uses: actions/checkout@v4
15+
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
1616

1717
- name: Set up Python
18-
uses: actions/setup-python@v5
18+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
1919
with:
2020
python-version: '3.11'
2121

.github/workflows/check-artifacts.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
artifact-check:
1717
runs-on: ubuntu-latest
1818
steps:
19-
- uses: actions/checkout@v4
19+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
2020
with:
2121
fetch-depth: 0
2222

.github/workflows/ci.yml

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ jobs:
1414
run_backend: ${{ steps.filter.outputs.run_backend }}
1515
run_frontend: ${{ steps.filter.outputs.run_frontend }}
1616
steps:
17-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
1818
with:
1919
fetch-depth: 0
2020
- name: Set up Python
21-
uses: actions/setup-python@v5
21+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
2222
with:
2323
python-version: "3.11"
2424
- name: Fetch base branch for diff
@@ -37,7 +37,7 @@ jobs:
3737
if: github.event_name == 'pull_request'
3838
runs-on: ubuntu-latest
3939
steps:
40-
- uses: actions/checkout@v4
40+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
4141
with:
4242
fetch-depth: 0
4343
- name: Check formatting hygiene on changed files
@@ -46,8 +46,8 @@ jobs:
4646
issue-template-label-validation:
4747
runs-on: ubuntu-latest
4848
steps:
49-
- uses: actions/checkout@v4
50-
- uses: actions/setup-python@v5
49+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
50+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
5151
with:
5252
python-version: "3.11"
5353
- name: Validate issue template labels
@@ -56,8 +56,8 @@ jobs:
5656
doc-anchor-validation:
5757
runs-on: ubuntu-latest
5858
steps:
59-
- uses: actions/checkout@v4
60-
- uses: actions/setup-python@v5
59+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
60+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
6161
with:
6262
python-version: "3.11"
6363

@@ -69,8 +69,8 @@ jobs:
6969
if: needs.detect-changes.outputs.run_backend == 'true'
7070
runs-on: ubuntu-latest
7171
steps:
72-
- uses: actions/checkout@v4
73-
- uses: actions/setup-python@v5
72+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
73+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
7474
with:
7575
python-version: "3.11"
7676
- name: Install backend system dependencies
@@ -91,8 +91,8 @@ jobs:
9191
(needs.formatting-hygiene.result == 'success' || needs.formatting-hygiene.result == 'skipped')
9292
runs-on: ubuntu-latest
9393
steps:
94-
- uses: actions/checkout@v4
95-
- uses: actions/setup-python@v5
94+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
95+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
9696
with:
9797
python-version: "3.11"
9898
- name: Install backend system dependencies
@@ -113,8 +113,8 @@ jobs:
113113
(needs.formatting-hygiene.result == 'success' || needs.formatting-hygiene.result == 'skipped')
114114
runs-on: ubuntu-latest
115115
steps:
116-
- uses: actions/checkout@v4
117-
- uses: actions/setup-python@v5
116+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
117+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
118118
with:
119119
python-version: "3.11"
120120
- name: Install backend system dependencies
@@ -142,8 +142,8 @@ jobs:
142142
- credentials
143143
- exploit
144144
steps:
145-
- uses: actions/checkout@v4
146-
- uses: actions/setup-python@v5
145+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
146+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
147147
with:
148148
python-version: "3.11"
149149
- name: Install backend system dependencies
@@ -173,8 +173,8 @@ jobs:
173173
backend-audit:
174174
runs-on: ubuntu-latest
175175
steps:
176-
- uses: actions/checkout@v4
177-
- uses: actions/setup-python@v5
176+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
177+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
178178
with:
179179
python-version: "3.11"
180180
- name: Install backend system dependencies
@@ -207,13 +207,13 @@ jobs:
207207
208208
- name: Upload pip-audit report
209209
if: always()
210-
uses: actions/upload-artifact@v4
210+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
211211
with:
212212
name: pip-audit-report
213213
path: ${{ github.workspace }}/backend/pip-audit-report.json
214214

215215
- name: Upload SBOM
216-
uses: actions/upload-artifact@v4
216+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
217217
with:
218218
name: sbom
219219
path: ${{ github.workspace }}/sbom.json
@@ -222,8 +222,8 @@ jobs:
222222
runs-on: ubuntu-latest
223223
needs: [backend-lint]
224224
steps:
225-
- uses: actions/checkout@v4
226-
- uses: actions/setup-python@v5
225+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
226+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
227227
with:
228228
python-version: "3.11"
229229
- name: Install backend system dependencies
@@ -238,7 +238,7 @@ jobs:
238238
continue-on-error: true
239239
- name: Upload benchmark comparison artifacts
240240
if: always()
241-
uses: actions/upload-artifact@v4
241+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
242242
with:
243243
name: benchmark-threshold-comparison
244244
path: |
@@ -263,8 +263,8 @@ jobs:
263263
run:
264264
working-directory: frontend
265265
steps:
266-
- uses: actions/checkout@v4
267-
- uses: actions/setup-node@v4
266+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
267+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
268268
with:
269269
node-version: ${{ matrix.node-version }}
270270
cache: "npm"
@@ -276,7 +276,7 @@ jobs:
276276
echo "version=$PLAYWRIGHT_VERSION" >> "$GITHUB_OUTPUT"
277277
echo "Using Playwright version $PLAYWRIGHT_VERSION for browser cache key"
278278
- name: Restore Playwright browser cache
279-
uses: actions/cache@v4
279+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
280280
with:
281281
path: ~/.cache/ms-playwright
282282
key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}-${{ matrix.node-version }}
@@ -302,7 +302,7 @@ jobs:
302302
run: python ${{ github.workspace }}/scripts/check_npm_audit.py --report ${{ github.workspace }}/frontend/npm-audit-report.json --config ${{ github.workspace }}/.audit-config.yaml
303303
- name: Upload npm-audit report
304304
if: always()
305-
uses: actions/upload-artifact@v4
305+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
306306
with:
307307
name: npm-audit-report
308308
path: frontend/npm-audit-report.json

.github/workflows/docker-hardening.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ jobs:
3434

3535
steps:
3636
- name: Checkout
37-
uses: actions/checkout@v4
37+
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
3838

3939
- name: Set up Docker Buildx
40-
uses: docker/setup-buildx-action@v3
40+
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
4141

4242
- name: Build ${{ matrix.service }} image
43-
uses: docker/build-push-action@v6
43+
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
4444
with:
4545
context: ${{ matrix.context }}
4646
file: ${{ matrix.dockerfile }}
@@ -54,7 +54,7 @@ jobs:
5454
run: docker save ${{ matrix.image }}:ci -o /tmp/${{ matrix.image }}.tar
5555

5656
- name: Upload image artifact
57-
uses: actions/upload-artifact@v4
57+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
5858
with:
5959
name: ${{ matrix.image }}-tar
6060
path: /tmp/${{ matrix.image }}.tar
@@ -75,10 +75,10 @@ jobs:
7575

7676
steps:
7777
- name: Checkout
78-
uses: actions/checkout@v4
78+
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
7979

8080
- name: Download image artifact
81-
uses: actions/download-artifact@v4
81+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
8282
with:
8383
name: ${{ matrix.image }}-tar
8484
path: /tmp
@@ -114,7 +114,7 @@ jobs:
114114
115115
# No secrets baked into image
116116
- name: Scan image layers for secrets (Trivy secret scanner)
117-
uses: aquasecurity/trivy-action@v0.36.0
117+
uses: aquasecurity/trivy-action@a9c7b0f06e461e9d4b4d1711f154ee024b8d7ab8 # v0.36.0
118118
with:
119119
image-ref: ${{ matrix.image }}:ci
120120
format: table
@@ -124,7 +124,7 @@ jobs:
124124

125125
# Dockerfile lint (hadolint)
126126
- name: Lint ${{ matrix.service }} Dockerfile with hadolint
127-
uses: hadolint/hadolint-action@v3.1.0
127+
uses: hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf # v3.1.0
128128
with:
129129
dockerfile: ./${{ matrix.service }}/Dockerfile
130130
failure-threshold: error

.github/workflows/plugin-integrity-check.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414

1515
steps:
1616
- name: Checkout Repository
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
1818

1919
- name: Set up Python
20-
uses: actions/setup-python@v5
20+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
2121
with:
2222
python-version: '3.11'
2323

.github/workflows/security-ci.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ jobs:
1515
name: Python Security Linting (Bandit)
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v4
19-
- uses: actions/setup-python@v5
18+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
19+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
2020
with:
2121
python-version: "3.11"
2222
- name: Install bandit
@@ -39,7 +39,7 @@ jobs:
3939
"
4040
- name: Upload bandit report
4141
if: always()
42-
uses: actions/upload-artifact@v4
42+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
4343
with:
4444
name: bandit-report
4545
path: bandit-report.json
@@ -48,8 +48,8 @@ jobs:
4848
name: Route Authentication Check
4949
runs-on: ubuntu-latest
5050
steps:
51-
- uses: actions/checkout@v4
52-
- uses: actions/setup-python@v5
51+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
52+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
5353
with:
5454
python-version: "3.11"
5555
- name: Check all API routers have authentication
@@ -82,8 +82,8 @@ jobs:
8282
name: Debug Mode Default Check
8383
runs-on: ubuntu-latest
8484
steps:
85-
- uses: actions/checkout@v4
86-
- uses: actions/setup-python@v5
85+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
86+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
8787
with:
8888
python-version: "3.11"
8989
- name: Verify debug mode is off by default
@@ -124,7 +124,7 @@ jobs:
124124
name: Hardcoded Secret Detection
125125
runs-on: ubuntu-latest
126126
steps:
127-
- uses: actions/checkout@v4
127+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
128128
with:
129129
fetch-depth: 0
130130
- name: Scan for hardcoded secrets
@@ -172,8 +172,8 @@ jobs:
172172
name: Environment Config Validation
173173
runs-on: ubuntu-latest
174174
steps:
175-
- uses: actions/checkout@v4
176-
- uses: actions/setup-python@v5
175+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
176+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
177177
with:
178178
python-version: "3.11"
179179
- name: Validate .env.example safe defaults
@@ -205,8 +205,8 @@ jobs:
205205
name: Dependency Security Audit
206206
runs-on: ubuntu-latest
207207
steps:
208-
- uses: actions/checkout@v4
209-
- uses: actions/setup-python@v5
208+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
209+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
210210
with:
211211
python-version: "3.11"
212212
- name: Install pip-audit
@@ -234,7 +234,7 @@ jobs:
234234
"
235235
- name: Upload audit report
236236
if: always()
237-
uses: actions/upload-artifact@v4
237+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
238238
with:
239239
name: dep-audit-report
240240
path: dep-audit.json

0 commit comments

Comments
 (0)