Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"

- name: Provision pinned standards tools
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1

- name: Install dependencies
run: npm ci
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ jobs:
# must not turn a failed vulnerability gate into a successful publish.
if: ${{ !cancelled() && github.event_name != 'pull_request' }}
continue-on-error: true # kit-self-audit: allow-continue-on-error
uses: github/codeql-action/upload-sarif@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
sarif_file: trivy-results.sarif

Expand Down Expand Up @@ -186,7 +186,7 @@ jobs:
# SBOM per image — attached to the registry alongside the signature.
- name: Generate SBOM for CLI image
if: github.event_name != 'pull_request' && steps.docker-creds.outputs.present == 'true' && steps.push-cli.outputs.digest != ''
uses: anchore/sbom-action@3ad7283483fc7af8ff2b4ea19663c2d5ca935e26 # v0.24.2
uses: anchore/sbom-action@66cbf4bc1f1c0d2edc94016e65bc221b6bb0ad6c # v0.24.3
with:
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.push-cli.outputs.digest }}
format: cyclonedx-json
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
fetch-depth: 0

- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
registry-url: "https://registry.npmjs.org"
Expand Down Expand Up @@ -441,7 +441,7 @@ jobs:
- name: Generate SBOM (CycloneDX)
# Scan the extracted npm package, which contains what the consumer gets.
# Scanning the checkout would include dev tools absent from the tarball.
uses: anchore/sbom-action@3ad7283483fc7af8ff2b4ea19663c2d5ca935e26 # v0.24.2
uses: anchore/sbom-action@66cbf4bc1f1c0d2edc94016e65bc221b6bb0ad6c # v0.24.3
with:
path: .release-package/package
config: .syft.yaml # names the root component (see the step above)
Expand All @@ -451,7 +451,7 @@ jobs:

- name: Generate SBOM (SPDX)
# Some consumers (e.g. RHEL, federal) require SPDX format.
uses: anchore/sbom-action@3ad7283483fc7af8ff2b4ea19663c2d5ca935e26 # v0.24.2
uses: anchore/sbom-action@66cbf4bc1f1c0d2edc94016e65bc221b6bb0ad6c # v0.24.3
with:
path: .release-package/package
config: .syft.yaml # names the root component (see the step above)
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: scorecard-results
path: scorecard-results.sarif
Expand All @@ -48,6 +48,6 @@ jobs:
# Lands in repo's Security → Code scanning tab.
if: always()
continue-on-error: true # kit-self-audit: allow-continue-on-error
uses: github/codeql-action/upload-sarif@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
sarif_file: scorecard-results.sarif
26 changes: 13 additions & 13 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"
Expand All @@ -54,7 +54,7 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"
Expand Down Expand Up @@ -85,7 +85,7 @@ jobs:
timeout-minutes: 65
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"
Expand Down Expand Up @@ -121,7 +121,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"
Expand Down Expand Up @@ -159,12 +159,12 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Initialize CodeQL
uses: github/codeql-action/init@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
uses: github/codeql-action/init@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
languages: javascript-typescript
queries: security-extended
- name: Analyze JavaScript and TypeScript
uses: github/codeql-action/analyze@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
uses: github/codeql-action/analyze@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
category: "/language:javascript-typescript"

Expand Down Expand Up @@ -212,7 +212,7 @@ jobs:
# Don't fail the job if Code Scanning is off — scan result is the gate.
if: always()
continue-on-error: true # kit-self-audit: allow-continue-on-error
uses: github/codeql-action/upload-sarif@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
sarif_file: trivy-results.sarif

Expand All @@ -230,7 +230,7 @@ jobs:
- name: Checkov (terraform + kubernetes)
# Baseline of pre-existing findings in .checkov.yaml skip-check.
# Gating on net-new findings only — see .checkov.yaml header for context.
uses: bridgecrewio/checkov-action@444c9db6fa75e2d9c19ebf1fde7322089be9009e # v12.3125.0
uses: bridgecrewio/checkov-action@c13aafd679d3814a25067d10fcaf98c4f7594931 # v12.3131.0
with:
directory: .
config_file: .checkov.yaml
Expand All @@ -248,7 +248,7 @@ jobs:
# SARIF upload requires Code Scanning enabled in repo settings.
if: always()
continue-on-error: true # kit-self-audit: allow-continue-on-error
uses: github/codeql-action/upload-sarif@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1
uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
sarif_file: checkov.sarif

Expand Down Expand Up @@ -325,7 +325,7 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"
Expand All @@ -343,7 +343,7 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"
Expand Down Expand Up @@ -377,12 +377,12 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"
cache: "npm"
- run: npm ci && npm run build
- uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
- uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
# Triage verifies each tool's upstream repo through the GitHub API. Anonymous calls share
# a 60/hour limit per runner IP, and triage correctly fails closed when it cannot verify.
- name: Provision declared tools via kit install (triage-gated)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/triage-deps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
with:
python-version: "3.12"

- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "22"

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
timeout-minutes: 90
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 22
- name: Install
Expand Down Expand Up @@ -62,7 +62,7 @@ jobs:
npm test 2>&1 | tee win-tests.log
- name: Upload Windows test log (full output — gh logs truncate)
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: windows-test-log
path: win-tests.log
Expand Down
4 changes: 2 additions & 2 deletions src/github-codeql-workflow.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";

const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
const CODEQL_ACTION_SHA = "1c5b675653bb5c22dbe9b12b556ec555138e09fd";
const CODEQL_ACTION_SHA = "24c54180a607b1449ed407dd24f251e4e9147c8d";

describe("CodeQL workflow action", () => {
it("uses one supported v4 action commit for every CodeQL step", () => {
Expand All @@ -20,7 +20,7 @@ describe("CodeQL workflow action", () => {
assert.ok(references.length > 0, "expected at least one CodeQL action step");
for (const reference of references) {
assert.equal(reference.sha, CODEQL_ACTION_SHA, `${reference.name} has a stale CodeQL pin`);
assert.equal(reference.version, "v4.38.1", `${reference.name} must identify supported major`);
assert.equal(reference.version, "v4.38.3", `${reference.name} must identify supported major`);
}
});
});
2 changes: 1 addition & 1 deletion src/github-workflow-hardening.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ describe("informational CI jobs can still fail", () => {
describe("GitHub workflow standards gate", () => {
it("provisions the pinned standards tools and runs the full standards gate in CI", () => {
const ci = workflow("ci.yml");
assert.match(ci, /uses:\s*jdx\/mise-action@[a-f0-9]{40}\s*#\s*v4\.3\.0/);
assert.match(ci, /uses:\s*jdx\/mise-action@[a-f0-9]{40}\s*#\s*v5\.1\.1/);
assert.match(ci, /run:\s*node dist\/cli\.js standards --enforce/);
assert.doesNotMatch(
ci,
Expand Down
Loading