From 73a3b8d5a173d4f569df5382368c1b9723e480e8 Mon Sep 17 00:00:00 2001 From: "stepsecurity-app[bot]" <188008098+stepsecurity-app[bot]@users.noreply.github.com> Date: Sun, 5 Jul 2026 22:18:10 +0000 Subject: [PATCH] [StepSecurity] Apply security best practices Signed-off-by: StepSecurity Bot --- .github/workflows/integrity-check.yml | 11 +++++--- .../workflows/validate-community-plugins.yml | 25 +++++++++++++++---- .github/workflows/validate-orchestrator.yml | 15 +++++++---- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/.github/workflows/integrity-check.yml b/.github/workflows/integrity-check.yml index 6ed6185..0271594 100644 --- a/.github/workflows/integrity-check.yml +++ b/.github/workflows/integrity-check.yml @@ -22,19 +22,24 @@ jobs: name: Tests runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + with: + egress-policy: audit + + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Install package manager (from package.json) run: | corepack enable corepack install - - uses: actions/setup-node@v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: '24' - name: Resolve yarn cache folder id: yarn-config run: echo "cacheFolder=$(yarn config get cacheFolder)" >> "$GITHUB_OUTPUT" - name: Restore yarn install cache (node_modules + cacheFolder + install-state) - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: | ${{ steps.yarn-config.outputs.cacheFolder }} diff --git a/.github/workflows/validate-community-plugins.yml b/.github/workflows/validate-community-plugins.yml index 0c0c46f..7714700 100644 --- a/.github/workflows/validate-community-plugins.yml +++ b/.github/workflows/validate-community-plugins.yml @@ -23,11 +23,16 @@ jobs: matrix: ${{ steps.parse.outputs.matrix }} plugin_count: ${{ steps.parse.outputs.count }} steps: - - uses: actions/checkout@v4 + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + with: + egress-policy: audit + + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Parse plugin registry id: parse - uses: actions/github-script@v7 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 with: script: | const fs = require('fs'); @@ -73,7 +78,12 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.load-plugins.outputs.matrix) }} steps: - - uses: actions/checkout@v4 + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + with: + egress-policy: audit + + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Create test project run: | @@ -142,10 +152,15 @@ jobs: if: always() runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + with: + egress-policy: audit + + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Generate summary - uses: actions/github-script@v7 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 with: script: | const { data: run } = await github.rest.actions.listJobsForWorkflowRun({ diff --git a/.github/workflows/validate-orchestrator.yml b/.github/workflows/validate-orchestrator.yml index 86b2116..dab44f7 100644 --- a/.github/workflows/validate-orchestrator.yml +++ b/.github/workflows/validate-orchestrator.yml @@ -56,11 +56,16 @@ jobs: name: Plugin Architecture Health runs-on: ubuntu-latest steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + with: + egress-policy: audit + - name: Checkout unity-builder - uses: actions/checkout@v4 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Checkout orchestrator - uses: actions/checkout@v4 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: repository: game-ci/orchestrator ref: ${{ github.head_ref || github.ref_name }} @@ -70,7 +75,7 @@ jobs: - name: Fallback to orchestrator main branch if: steps.orchestrator-branch.outcome == 'failure' - uses: actions/checkout@v4 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: repository: game-ci/orchestrator path: orchestrator-standalone @@ -79,14 +84,14 @@ jobs: run: | corepack enable corepack install - - uses: actions/setup-node@v4 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: 24 - name: Resolve yarn cache folder id: yarn-config run: echo "cacheFolder=$(yarn config get cacheFolder)" >> "$GITHUB_OUTPUT" - name: Restore yarn install cache (node_modules + cacheFolder + install-state) - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: | ${{ steps.yarn-config.outputs.cacheFolder }}