diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b7fcff7cb..9b9ff9379e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,13 +9,20 @@ on: schedule: - cron: '0 19 * * 0' +permissions: + contents: read + security-events: write env: # Keep this in sync with /pipeline/install-node-prerequisites.yaml NODE_VERSION: 20.17.0 jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest + + permissions: + contents: read + env: { PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 } steps: - uses: actions/checkout@v4.2.2 @@ -45,6 +52,10 @@ jobs: unit-tests: name: unit-tests (${{ matrix.shard-index }}/${{ strategy.job-total }}) runs-on: ubuntu-22.04 + + permissions: + contents: read + env: { PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 } strategy: fail-fast: false @@ -81,6 +92,10 @@ jobs: lints: runs-on: ubuntu-22.04 + + permissions: + contents: read + env: { PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 } steps: - uses: actions/checkout@v4.2.2 @@ -114,24 +129,15 @@ jobs: run: yarn null:autoadd && node .github/workflows/verify-unchanged-strict-null-checks.js timeout-minutes: 6 - codeql: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4.2.2 - timeout-minutes: 2 - - uses: github/codeql-action/init@v3 - timeout-minutes: 2 - with: - trap-caching: false - languages: javascript - - - uses: github/codeql-action/analyze@v3 - timeout-minutes: 10 e2e-web-tests: name: e2e-web-tests (${{ matrix.shard-index }}/${{ strategy.job-total }}) runs-on: ubuntu-22.04 + + permissions: + contents: read + security-events: write # We need to update this each time we update playwright container: mcr.microsoft.com/playwright:v1.48.2-focal strategy: @@ -188,6 +194,10 @@ jobs: e2e-report-tests: runs-on: ubuntu-22.04 + + permissions: + contents: read + env: { PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 } steps: - uses: actions/checkout@v4.2.2 @@ -218,6 +228,10 @@ jobs: check-clearly-defined: runs-on: ubuntu-22.04 + + permissions: + contents: read + steps: - uses: actions/checkout@v4.2.2 timeout-minutes: 2 diff --git a/package.json b/package.json index a3ae7ff190..69a581c349 100644 --- a/package.json +++ b/package.json @@ -165,7 +165,7 @@ "react-dom": "^18.3.1", "react-helmet-async": "^2.0.5", "react-resize-detector": "^9.1.1", - "react-router-dom": "^6.21.3", + "react-router-dom": "^7.9.2", "tabbable": "^6.2.0", "ua-parser-js": "^1.0.37", "uuid": "^9.0.1", diff --git a/yarn.lock b/yarn.lock index 26a824b8f9..0b25738cab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1928,13 +1928,6 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.16.1": - version: 1.16.1 - resolution: "@remix-run/router@npm:1.16.1" - checksum: 69068815832b30d2a5c063ac1c75365c45cf5b484dab65e1b3129fdbb3c2a7b866401733f766e550dbca1eaf0b84bc772a9c55310f4dd21eb53e62eb1b4625d0 - languageName: node - linkType: hard - "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -3133,7 +3126,7 @@ __metadata: react-dom: ^18.3.1 react-helmet-async: ^2.0.5 react-resize-detector: ^9.1.1 - react-router-dom: ^6.21.3 + react-router-dom: ^7.9.2 regenerator-runtime: ^0.14.1 sass: ^1.69.7 sass-loader: ^13.3.3 @@ -4292,6 +4285,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:^1.0.1": + version: 1.0.2 + resolution: "cookie@npm:1.0.2" + checksum: 2c5a6214147ffa7135ce41860c781de17e93128689b0d080d3116468274b3593b607bcd462ac210d3a61f081db3d3b09ae106e18d60b1f529580e95cf2db8a55 + languageName: node + linkType: hard + "core-js-bundle@npm:^3.35.0": version: 3.37.1 resolution: "core-js-bundle@npm:3.37.1" @@ -10154,27 +10154,31 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.21.3": - version: 6.23.1 - resolution: "react-router-dom@npm:6.23.1" +"react-router-dom@npm:^7.9.2": + version: 7.9.2 + resolution: "react-router-dom@npm:7.9.2" dependencies: - "@remix-run/router": 1.16.1 - react-router: 6.23.1 + react-router: 7.9.2 peerDependencies: - react: ">=16.8" - react-dom: ">=16.8" - checksum: e87b5cf85019496f499286d466a4ad9cf5efe729f1420502fc5d16093d525462803253538418ea5b0da7ab5671a16caefee67848b373008e567629c2d667dc44 + react: ">=18" + react-dom: ">=18" + checksum: d40c7c7c474bd2ebf2e0dbd149676e3667332729788b28e29f31624df6d76a14e80438a9ee72ccce15246d902c30867c9cd0e2fec478ee406f64c8e69005b76f languageName: node linkType: hard -"react-router@npm:6.23.1": - version: 6.23.1 - resolution: "react-router@npm:6.23.1" +"react-router@npm:7.9.2": + version: 7.9.2 + resolution: "react-router@npm:7.9.2" dependencies: - "@remix-run/router": 1.16.1 + cookie: ^1.0.1 + set-cookie-parser: ^2.6.0 peerDependencies: - react: ">=16.8" - checksum: d5d43ccb908a95d2b7345f2a13315c38bf094e25bcf97d5a6c3f353b1ea88602de15726c3570cd7f07c53b19a3519af2b6739bf6929ec355012795611d739cff + react: ">=18" + react-dom: ">=18" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 6548b670a67cdee016f7a72ac7b649699e53828a1ce3e0e05853430a5a302c4b9ffcc80240e0b05211e1e44a3b563d470f1df6aa5f2b2a1dabe1255b9cd338e1 languageName: node linkType: hard @@ -10759,6 +10763,13 @@ __metadata: languageName: node linkType: hard +"set-cookie-parser@npm:^2.6.0": + version: 2.7.1 + resolution: "set-cookie-parser@npm:2.7.1" + checksum: 2ef8b351094712f8f7df6d63ed4b10350b24a5b515772690e7dec227df85fcef5bc451c7765f484fd9f36694ece5438d1456407d017f237d0d3351d7dbbd3587 + languageName: node + linkType: hard + "set-function-length@npm:^1.2.1": version: 1.2.2 resolution: "set-function-length@npm:1.2.2"