Skip to content
Open
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/agent-task-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
issues: write # posts one comment with the structural check result; nothing else is written
steps:
- name: Harden runner (egress audit)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
with:
egress-policy: audit

Expand All @@ -39,7 +39,7 @@ jobs:
.quirk/schemas/repository-manifest.schema.json

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "3.12"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
security-events: write # uploads SARIF to code scanning
steps:
- name: Harden runner (egress audit)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
with:
egress-policy: audit

Expand All @@ -38,13 +38,13 @@ jobs:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
with:
languages: python
build-mode: none
queries: security-and-quality

- name: Analyze
uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/analyze@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
with:
category: "/language:python"
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
timeout-minutes: 10
steps:
- name: Harden runner (egress audit)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
with:
egress-policy: audit

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/governance-contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
persist-credentials: false

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "3.12"

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable-agent-task-contract.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
run: test "$(git -C .quirk-policy rev-parse HEAD)" = "$POLICY_SHA"

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "3.12"

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/reusable-codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@ jobs:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
with:
languages: ${{ inputs.languages }}
build-mode: ${{ inputs.build-mode }}
queries: ${{ inputs.queries }}

- name: Analyze
uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/analyze@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
2 changes: 1 addition & 1 deletion .github/workflows/reusable-evidence-binding.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
persist-credentials: false

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "3.12"

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable-sbom-provenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
persist-credentials: false

- name: Generate SBOM
uses: anchore/sbom-action@3ad7283483fc7af8ff2b4ea19663c2d5ca935e26 # v0.24.2
uses: anchore/sbom-action@66cbf4bc1f1c0d2edc94016e65bc221b6bb0ad6c # v0.24.3
with:
path: ${{ inputs.sbom-path }}
format: ${{ inputs.sbom-format }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/reusable-validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ jobs:

- name: Setup Node.js (with cache)
if: inputs.package-manager != 'bun'
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: ${{ inputs.node-version }}
cache: ${{ inputs.package-manager }}

- name: Setup Node.js
if: inputs.package-manager == 'bun'
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: ${{ inputs.node-version }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable-workflow-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
persist-credentials: false

- name: Run zizmor
uses: zizmorcore/zizmor-action@cc914d7f3750a2d13d75c7f184a1060aa0e9d482 # v0.6.4
uses: zizmorcore/zizmor-action@53290badfa369cb0bf7ad16342cb62c2fa47ac7b # v0.8.0
with:
persona: ${{ inputs.persona }}
advanced-security: false
8 changes: 4 additions & 4 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
security-events: write # uploads SARIF to code scanning
steps:
- name: Harden runner (egress audit)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
with:
egress-policy: audit

Expand All @@ -38,20 +38,20 @@ jobs:
persist-credentials: false

- name: Run Scorecard
uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0
with:
results_file: results.sarif
results_format: sarif
publish_results: true

- name: Upload SARIF artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: scorecard-sarif
path: results.sarif
retention-days: 5

- name: Upload to code scanning
uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/upload-sarif@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
with:
sarif_file: results.sarif
4 changes: 2 additions & 2 deletions .github/workflows/workflow-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
timeout-minutes: 10
steps:
- name: Harden runner (egress audit)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
with:
egress-policy: audit

Expand All @@ -36,7 +36,7 @@ jobs:
persist-credentials: false

- name: Run zizmor (pedantic)
uses: zizmorcore/zizmor-action@cc914d7f3750a2d13d75c7f184a1060aa0e9d482 # v0.6.4
uses: zizmorcore/zizmor-action@53290badfa369cb0bf7ad16342cb62c2fa47ac7b # v0.8.0
with:
persona: pedantic
advanced-security: false
174 changes: 174 additions & 0 deletions .quirk/evidence/dependabot-pr59-review-b5dae62e2247.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
{
"schema_version": "evidence-receipt.v1",
"receipt_id": "qreceipt.dependabot-pr59-review.b5dae62e2247",
"repository": "Quirk-Systems/.github",
"status": "verified",
"subject": {
"base_commit": "d320f775a1be9ca8f6becfc19c84165bed176d1d",
"commit": "b5dae62e2247b96262e48fef697b5b465a457454",
"changed_paths": [
".github/workflows/agent-task-dispatch.yml",
".github/workflows/codeql.yml",
".github/workflows/dependency-review.yml",
".github/workflows/governance-contracts.yml",
".github/workflows/reusable-agent-task-contract.yml",
".github/workflows/reusable-codeql.yml",
".github/workflows/reusable-evidence-binding.yml",
".github/workflows/reusable-sbom-provenance.yml",
".github/workflows/reusable-validate.yml",
".github/workflows/reusable-workflow-lint.yml",
".github/workflows/scorecard.yml",
".github/workflows/workflow-lint.yml",
"tests/test_evidence_receipts.py"
]
},
"claims": [
{
"claim_id": "qclaim.dependabot-pr59-review.b5dae62e2247",
"claim_type": "evidence",
"authority_effect": "none",
"statement": "Updates ten action references across twelve workflows and aligns the exact setup-python assertion with v7.1.0; all action repository/version pins were resolved to upstream commits. The 41 evidence/workflow contract tests, actionlint 1.7.12, ruff 0.17.3, and zizmor 1.31.1 offline pedantic checks passed using existing exclusions. Full scripts/validate.sh is NOT passing: 232 of 233 unit tests pass; the inherited portfolio-document freshness failure also reproduces at the PR base, and the separate strict living-document validator fails. Hosted execution, online audits, vulnerability absence, independent approval, and merge readiness are NOT established; four hosted jobs did not start because of an account billing lock. No permissions, security controls, or test assertions were removed.",
"evidence_paths": [
".github/workflows/agent-task-dispatch.yml",
".github/workflows/codeql.yml",
".github/workflows/dependency-review.yml",
".github/workflows/governance-contracts.yml",
".github/workflows/reusable-agent-task-contract.yml",
".github/workflows/reusable-codeql.yml",
".github/workflows/reusable-evidence-binding.yml",
".github/workflows/reusable-sbom-provenance.yml",
".github/workflows/reusable-validate.yml",
".github/workflows/reusable-workflow-lint.yml",
".github/workflows/scorecard.yml",
".github/workflows/workflow-lint.yml",
"tests/test_evidence_receipts.py"
]
}
],
"artifacts": [
{
"path": ".github/workflows/agent-task-dispatch.yml",
"state": "present",
"git_blob": "a8e5db9e4b796b57cd7bc9bb0d8c1d44d7b1c03a",
"sha256": "sha256:5f162ebcd2641759c7afea93171acf7cad10f5cbbbb204aecbb4127c25a8e6b5"
},
{
"path": ".github/workflows/codeql.yml",
"state": "present",
"git_blob": "79007bc2835ba78c8736f826796d9afb439f65bf",
"sha256": "sha256:71dc73e2115d2d2a9dfe4195cc83ab5ae118cf013294a0c4e32e535e9c6e2c76"
},
{
"path": ".github/workflows/dependency-review.yml",
"state": "present",
"git_blob": "4f339c3f5bece329881b4600134e00c91fa0f72c",
"sha256": "sha256:35228fb13f411c729f26d98da0ccc29c77b0c89fa864ad953c3412b1a063f818"
},
{
"path": ".github/workflows/governance-contracts.yml",
"state": "present",
"git_blob": "7b43ddf398cc5097930861b7df624416a35d5ee4",
"sha256": "sha256:adda6626fb8c2e041ebab977fff0c886925acbe8baaf2054c8e597baa0d14318"
},
{
"path": ".github/workflows/reusable-agent-task-contract.yml",
"state": "present",
"git_blob": "943bc7b8ac727c3fce4c8a65e2b40ad87506792f",
"sha256": "sha256:bd1c5f150c763ffbf6212fb354eefc4fb8cb93d0a8baf1de1e7d4aa13c67dc5e"
},
{
"path": ".github/workflows/reusable-codeql.yml",
"state": "present",
"git_blob": "5695bc6b8ad85d2b01a2595eb68b71d44a7d3c39",
"sha256": "sha256:8dccadf9f72a33110b17923d62171fd9001085b7a2742ce347db1ed087386dcf"
},
{
"path": ".github/workflows/reusable-evidence-binding.yml",
"state": "present",
"git_blob": "52333459ba8824b2fbbbda6fdef4a284d7a5b643",
"sha256": "sha256:632e32dd3bae96c1406b91bd3a6a8dddd0f93705be000f817755a01a9ea47750"
},
{
"path": ".github/workflows/reusable-sbom-provenance.yml",
"state": "present",
"git_blob": "8960e8cfbd60f4d1a6a9919cb045a1b0314a6342",
"sha256": "sha256:7ccf1406f5e5e11f71ca0290f1dc63d32d4f7cd8c78dcdefa13596ada0a06c14"
},
{
"path": ".github/workflows/reusable-validate.yml",
"state": "present",
"git_blob": "46558c5f70122fc279398a0adbe1978fdadebd33",
"sha256": "sha256:e43865f70a2bdcb746244417dc88ad7719933c91ff266f704e6354485a601df0"
},
{
"path": ".github/workflows/reusable-workflow-lint.yml",
"state": "present",
"git_blob": "ef08675479bf0f2b36f0550a26405baddf21c160",
"sha256": "sha256:cd70d680aabc3236fc55e63a3457cdee10ec125c487a7b383f3848ce85219975"
},
{
"path": ".github/workflows/scorecard.yml",
"state": "present",
"git_blob": "72f200433e0694fcea46657e590295bf4e180aaf",
"sha256": "sha256:672a9e66ccb2d1969e9f5db2129999cf252e145f1dec6cc4b67ad810ad4a9524"
},
{
"path": ".github/workflows/workflow-lint.yml",
"state": "present",
"git_blob": "647912d9779048cc0654325b09831dee25fb53cf",
"sha256": "sha256:b8de61461a59b57993bc720e755d642ae9b353ca897737fb2369fbe18fea0c45"
},
{
"path": "tests/test_evidence_receipts.py",
"state": "present",
"git_blob": "8c120e462516bf86eba5c7e47016476e5cbe01fd",
"sha256": "sha256:160dcba6925dcc72a27346b26c7c2925cdba06e4c17e42012f52aa421179e587"
}
],
"verification": {
"commands": [
{
"command": "python3 -m unittest tests.test_evidence_receipts tests.test_workflow_pins -v",
"result": "pass",
"exit_code": 0
},
{
"command": "../pr59-tools/actionlint -ignore 'property \"workflow_(repository|sha)\" is not defined'",
"result": "pass",
"exit_code": 0
},
{
"command": "../pr59-tools/zizmor-wheel/zizmor-1.31.1.data/scripts/zizmor --offline --persona pedantic .",
"result": "pass",
"exit_code": 0
},
{
"command": "uv tool run ruff check .",
"result": "pass",
"exit_code": 0
},
{
"command": "python3 scripts/validate_governed_decisions.py --repository Quirk-Systems/.github --root . --decisions .quirk/decisions",
"result": "pass",
"exit_code": 0
},
{
"command": "python3 scripts/validate_evidence_receipts.py --repository Quirk-Systems/.github --root . --receipts .quirk/evidence",
"result": "pass",
"exit_code": 0
},
{
"command": "git diff --check d320f775a1be9ca8f6becfc19c84165bed176d1d HEAD",
"result": "pass",
"exit_code": 0
}
],
"verified_at": "2026-10-30T14:10:57Z"
},
"authority": {
"admission_effect": "none",
"authority_ref": null
},
"correction": null,
"receipt_sha256": "sha256:0f133ff71c0e9c7a20e89e2170b0c37b2c329c9f549a5dfcf5fbed09d2b4c3dc"
}
2 changes: 1 addition & 1 deletion tests/test_evidence_receipts.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
GOVERNANCE_WORKFLOW = ROOT / ".github" / "workflows" / "governance-contracts.yml"
REUSABLE_WORKFLOW = ROOT / ".github" / "workflows" / "reusable-evidence-binding.yml"
CHECKOUT_PIN = "actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1"
PYTHON_PIN = "actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97"
PYTHON_PIN = "actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0"
LEGACY_CHECKOUT_PIN = "actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955"
LEGACY_PYTHON_PIN = "actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065"

Expand Down
Loading