Skip to content

Commit 2bc5ae1

Browse files
hyperpolymathclaude
andcommitted
fix(ci): unbreak workflow YAML and add a complete actions.lock
Remediates GitHub Workflow Dependency Locking (public preview), which rejects runs at startup_failure with zero jobs and no logs. See hyperpolymath/standards#657. Five steps, in order, because each blocks the next: 1. Unbroke any workflow whose `permissions:` carried a scalar with an indented mapping under it - blind-permissions-insertion damage. This matters beyond the one file: gh actions-lock refuses to run when ANY workflow in the repo fails to parse, so the repo could never acquire a lockfile and could never self-heal. 2. Repinned hyperpolymath/standards reusables off commits that have no actions.lock. The rejection requires the CALLEE to be covered at the pinned SHA, which is unsatisfiable at a pre-lockfile commit. 3. Generated the lockfile with gh actions-lock. 4. Hand-added the reusable-workflow caller entries the tool omits, as '<path>': []. Measured across 218 repos: P(startup_failure | has lockfile) = 91.7% vs 15.8% without, because every workflow a lockfile OMITS is rejected. A PARTIAL lock is worse than none - running gh actions-lock and stopping there is how this outage spread. 5. Restored SPDX-License-Identifier to line 1, which the tool displaces with its own banner and which the workflow-security linter greps with head -1. Verified before push: 0 unparseable workflows, lockfile covers every workflow with no omissions, SPDX on line 1 in every file. Proven on hyperpolymath/anamnesis: 6 of 6 workflows dead -> 0 startup_failure, 13 running. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 7e391c9 commit 2bc5ae1

6 files changed

Lines changed: 42 additions & 7 deletions

File tree

.github/workflows/actions.lock

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# This file is machine-generated by `gh actions-lock`.
2+
# Do not edit by hand; run `gh actions-lock` to update.
3+
# Docs: https://gh.io/actions-lockfile
4+
version: 'v0.0.2'
5+
workflows:
6+
'.github/workflows/governance.yml': []
7+
'.github/workflows/hypatia-scan.yml': []
8+
'.github/workflows/secret-scanner.yml': []
9+
'.github/workflows/codeql.yml':
10+
- 'actions/checkout@v7.0.1'
11+
- 'github/codeql-action@v4.37.7'
12+
'.github/workflows/push-email-notify.yml':
13+
- 'dawidd6/action-send-mail@v3.12.0'
14+
dependencies:
15+
'actions/checkout@v7.0.1':
16+
ref: 'v7.0.1'
17+
commit: 'sha1-3d3c42e5aac5ba805825da76410c181273ba90b1'
18+
owner_id: 44036562
19+
repo_id: 197814629
20+
'dawidd6/action-send-mail@v3.12.0':
21+
ref: 'v3.12.0'
22+
commit: 'sha1-0bbdab096651ee93f37ec02383e088183d41ff0b'
23+
owner_id: 9713907
24+
repo_id: 222439721
25+
'github/codeql-action@v4.37.7':
26+
ref: 'v4.37.7'
27+
commit: 'sha1-ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd'
28+
owner_id: 9919
29+
repo_id: 259445878

.github/workflows/codeql.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: MPL-2.0
2+
# This workflow is managed by gh actions-lock.
23
name: CodeQL
34

45
on:
@@ -30,16 +31,16 @@ jobs:
3031
build-mode: none
3132
steps:
3233
- name: Checkout repository
33-
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4
34+
uses: actions/checkout@v7.0.1
3435

3536
- name: Initialize CodeQL
36-
uses: github/codeql-action/init@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
37+
uses: github/codeql-action/init@v4.37.7
3738
with:
3839
languages: ${{ matrix.language }}
3940
build-mode: ${{ matrix.build-mode }}
4041

4142
- name: Autobuild
42-
uses: github/codeql-action/autobuild@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
43+
uses: github/codeql-action/autobuild@v4.37.7
4344

4445
- name: Perform CodeQL Analysis
45-
uses: github/codeql-action/analyze@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
46+
uses: github/codeql-action/analyze@v4.37.7

.github/workflows/governance.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: MPL-2.0
2+
# This workflow is managed by gh actions-lock.
23
name: Governance
34

45
on:
@@ -14,4 +15,4 @@ permissions:
1415

1516
jobs:
1617
governance:
17-
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@7fdc2705df74b4e352d2a1cde3e87a5923fdf329
18+
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@84355587cb2a1f86e6882de83514a32db2646e7a

.github/workflows/hypatia-scan.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: MPL-2.0
2+
# This workflow is managed by gh actions-lock.
23
name: Hypatia Security Scan
34

45
on:
@@ -17,4 +18,4 @@ permissions:
1718

1819
jobs:
1920
scan:
20-
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@7fdc2705df74b4e352d2a1cde3e87a5923fdf329
21+
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@84355587cb2a1f86e6882de83514a32db2646e7a

.github/workflows/push-email-notify.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: MPL-2.0
2+
# This workflow is managed by gh actions-lock.
23
# Dormant push-email notification. ARMED by setting the repo variable
34
# PUSH_EMAIL_ENABLED=true (the single on/off switch). Addresses are pre-filled;
45
# sending needs the org SMTP secrets (SMTP_HOST/PORT/USER/PASS). Inherited by
@@ -16,7 +17,7 @@ jobs:
1617
runs-on: ubuntu-latest
1718
steps:
1819
- name: Send push notification email
19-
uses: dawidd6/action-send-mail@0bbdab096651ee93f37ec02383e088183d41ff0b # pinned
20+
uses: dawidd6/action-send-mail@v3.12.0
2021
with:
2122
server_address: ${{ secrets.SMTP_HOST }}
2223
server_port: ${{ secrets.SMTP_PORT }}

.github/workflows/secret-scanner.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: MPL-2.0
2+
# This workflow is managed by gh actions-lock.
23
# Calls the estate's shared secret scanner (gitleaks + rust-secrets +
34
# shell-secrets). Added because this repository had NO leak scanning at all.
45
#
@@ -13,6 +14,7 @@ concurrency:
1314
group: ${{ github.workflow }}-${{ github.ref }}
1415
cancel-in-progress: true
1516
permissions:
17+
actions: read
1618
contents: read
1719
jobs:
1820
secret-scan:

0 commit comments

Comments
 (0)