diff --git a/.github/workflows/bump-pins.yml b/.github/workflows/bump-pins.yml index 27ae96b..5cf7ec1 100644 --- a/.github/workflows/bump-pins.yml +++ b/.github/workflows/bump-pins.yml @@ -41,7 +41,7 @@ jobs: contents: write # push the bump branch pull-requests: write # open the PR steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 # No third-party action is used to open the PR. `gh` ships on the runner, # so this adds zero new supply-chain trust to a repo whose whole purpose is diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08a4048..ad1c0f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,7 +60,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: bash -n (parse check) run: | set -euo pipefail @@ -89,7 +89,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: audit.sh run: ./audit.sh @@ -104,7 +104,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 with: fetch-depth: 0 - uses: gitleaks/gitleaks-action@e0c47f4f8be36e29cdc102c57e68cb5cbf0e8d1e # v3.0.0 @@ -119,7 +119,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: Check generated cloud agreement run: python3 .codex/cloud/check-instructions.py - name: sync.sh --check (self-only) @@ -152,9 +152,9 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: hadolint - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + uses: hadolint/hadolint-action@06be81baf89a55ffd0e24b8f04a4185738dd3387 # v3.5.0 with: dockerfile: ${{ matrix.dockerfile }} # DL3008 (pin apt versions) is a deliberate tradeoff here — the image @@ -170,7 +170,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: squid -k parse # squid.conf isn't shell, so the shell job ignores it; validate its directive # syntax here so a semantically-broken proxy config fails CI instead of only @@ -198,9 +198,9 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: set up buildx - uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 + uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 - name: build image (GHA layer cache) # The Dockerfile is BUILT here (hadolint/Trivy only lint/scan it), catching a # build that lints clean but breaks. Layers are cached in the GHA cache @@ -208,7 +208,7 @@ jobs: # touch only the final cheap COPY layers, and without a persisted cache CI # re-paid the full apt + Node/Python download + npm install build (~4-8 min, # the long pole of the pipeline) on every run. Cache-hit builds take seconds. - uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2 + uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 with: context: sandbox/.devcontainer tags: dev-sandbox:ci @@ -242,7 +242,7 @@ jobs: contents: read security-events: write # required to upload SARIF to GitHub Security steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: Run Trivy scan (SARIF — fail on HIGH/CRITICAL) # ONE scan does both duties: Trivy writes the SARIF report BEFORE applying @@ -261,7 +261,7 @@ jobs: - name: Upload Trivy SARIF to GitHub Security if: always() - uses: github/codeql-action/upload-sarif@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4 + uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 with: sarif_file: trivy-results.sarif category: trivy diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e93b4cd..4abd735 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -50,10 +50,10 @@ jobs: matrix: language: [actions] steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: Initialize CodeQL - uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4 + uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 with: languages: ${{ matrix.language }} # Actions workflows are declarative YAML — nothing to build. @@ -61,4 +61,4 @@ jobs: config-file: ./.github/codeql/codeql-config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4 + uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4