Skip to content

fix(ci): restore reachable standards workflow pins - #89

Merged
hyperpolymath merged 2 commits into
mainfrom
fix/restore-reachable-standards-pin
Sep 8, 2026
Merged

fix(ci): restore reachable standards workflow pins#89
hyperpolymath merged 2 commits into
mainfrom
fix/restore-reachable-standards-pin

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Replace the unreachable standards reusable-workflow commit 7fdc2705df74b4e352d2a1cde3e87a5923fdf329 with reachable standards main commit 092dedada188f56c5915f74a5fd40aac093742c3. The old SHA is an intermediate commit from squash-merged standards PR #596: it exists, but GitHub rejects it for cross-repository reusable workflows before creating jobs. This restores Hypatia/SARIF and the other affected workflows without weakening SHA pinning or branch protection. Estate incident: 251 active workflow files across 70 repositories in hyperpolymath and metadatastician.

@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 75c2d6f8-8f80-4d69-901b-3777edc1dcbb

📥 Commits

Reviewing files that changed from the base of the PR and between b1d7518 and 62361ab.

📒 Files selected for processing (5)
  • .github/workflows/governance.yml
  • .github/workflows/hypatia-scan.yml
  • .github/workflows/mirror.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/secret-scanner.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⚠️ CI failures not shown inline (36)

GitHub Actions: Central Estate CI/CD Audit / 0_estate-audit.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]GITHUB_TOKEN Permissions
 Contents: read
 Metadata: read
 Packages: read
 ##[endgroup]
 Secret source: Actions
 Prepare workflow directory
 Prepare all required actions
 Getting action download info
 ##[error]The actions actions/checkout@v4 and hyperpolymath/cicd-suite/actions/required-files-check@main are not allowed in hyperpolymath/candy-crash because all actions must be pinned to a full-length commit SHA.

GitHub Actions: CodeQL Security Analysis / 0_analyze (actions, none).txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Load language configuration
 [command]/opt/hostedtoolcache/CodeQL/2.26.4/x64/codeql/codeql resolve languages --format=betterjson --extractor-options-verbosity=4 --extractor-include-aliases
 {
   "aliases" : {
     "c" : "cpp",
     "c++" : "cpp",
     "c-c++" : "cpp",
     "c-cpp" : "cpp",
     "c#" : "csharp",
     "java-kotlin" : "java",
     "kotlin" : "java",
     "javascript-typescript" : "javascript",
     "typescript" : "javascript"
   },
   "extractors" : {
     "java" : [
       {
         "extractor_root" : "/opt/hostedtoolcache/CodeQL/2.26.4/x64/codeql/java",
         "extractor_options" : {
           "exclude" : {
             "title" : "A glob excluding files from analysis.",
             "description" : "A glob indicating what files to exclude from the analysis. This accepts glob patterns that are supported by Java's 'getPathMatcher' implementation.\n",
             "type" : "string"
           },
           "add_prefer_source" : {
             "title" : "Whether to always prefer source files over class files.",
             "description" : "A value indicating whether source files should be preferred over class files. If set to 'true', the extraction adds '-Xprefer:source' to the javac command line. If set to 'false', the extraction uses the default javac behavior ('-Xprefer:newer'). The default is 'true'.\n",
             "type" : "string",
             "pattern" : "^(false|true)$"
           },
           "buildless" : {
             "title" : "Whether to use buildless (standalone) extraction (experimental).",
             "description" : "A value indicating, which type of extraction the autobuilder should perform. If 'true', then the standalone extractor will be used, otherwise tracing extraction will be performed. The default is 'false'. Note that buildless extraction will generally yield less accurate analysis results, and should only be used in cases where it is not possible to build the code (for example if it uses inaccessible depe...

GitHub Actions: Central Estate CI/CD Audit / estate-audit: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]GITHUB_TOKEN Permissions
 Contents: read
 Metadata: read
 Packages: read
 ##[endgroup]
 Secret source: Actions
 Prepare workflow directory
 Prepare all required actions
 Getting action download info
 ##[error]The actions actions/checkout@v4 and hyperpolymath/cicd-suite/actions/required-files-check@main are not allowed in hyperpolymath/candy-crash because all actions must be pinned to a full-length commit SHA.

GitHub Actions: Workflow Security Linter / 0_lint-workflows.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run errors=0
 �[36;1merrors=0�[0m
 �[36;1mfor f in .github/workflows/*.yml .github/workflows/*.yaml; do�[0m
 �[36;1m  [ -f "$f" ] || continue�[0m
 �[36;1m  if ! head -1 "$f" | grep -q "SPDX-License-Identifier"; then�[0m
 �[36;1m    echo "ERROR: $f missing SPDX header"�[0m
 �[36;1m    errors=$((errors + 1))�[0m
 �[36;1m  fi�[0m
 �[36;1mdone�[0m
 �[36;1mexit $errors�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 ERROR: .github/workflows/main-estate-audit.yml missing SPDX header
 ##[error]Process completed with exit code 1.

GitHub Actions: CodeQL Security Analysis / analyze (actions, none): fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Load language configuration
 [command]/opt/hostedtoolcache/CodeQL/2.26.4/x64/codeql/codeql resolve languages --format=betterjson --extractor-options-verbosity=4 --extractor-include-aliases
 {
   "aliases" : {
     "c" : "cpp",
     "c++" : "cpp",
     "c-c++" : "cpp",
     "c-cpp" : "cpp",
     "c#" : "csharp",
     "java-kotlin" : "java",
     "kotlin" : "java",
     "javascript-typescript" : "javascript",
     "typescript" : "javascript"
   },
   "extractors" : {
     "java" : [
       {
         "extractor_root" : "/opt/hostedtoolcache/CodeQL/2.26.4/x64/codeql/java",
         "extractor_options" : {
           "exclude" : {
             "title" : "A glob excluding files from analysis.",
             "description" : "A glob indicating what files to exclude from the analysis. This accepts glob patterns that are supported by Java's 'getPathMatcher' implementation.\n",
             "type" : "string"
           },
           "add_prefer_source" : {
             "title" : "Whether to always prefer source files over class files.",
             "description" : "A value indicating whether source files should be preferred over class files. If set to 'true', the extraction adds '-Xprefer:source' to the javac command line. If set to 'false', the extraction uses the default javac behavior ('-Xprefer:newer'). The default is 'true'.\n",
             "type" : "string",
             "pattern" : "^(false|true)$"
           },
           "buildless" : {
             "title" : "Whether to use buildless (standalone) extraction (experimental).",
             "description" : "A value indicating, which type of extraction the autobuilder should perform. If 'true', then the standalone extractor will be used, otherwise tracing extraction will be performed. The default is 'false'. Note that buildless extraction will generally yield less accurate analysis results, and should only be used in cases where it is not possible to build the code (for example if it uses inaccessible depe...

GitHub Actions: AffineScript/Deno CI / 1_build.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run deno lint
 �[36;1mdeno lint�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 �[0m�[1m�[31merror�[0m: No target files found.
 ##[error]Process completed with exit code 1.

GitHub Actions: Workflow Security Linter / lint-workflows: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run errors=0
 �[36;1merrors=0�[0m
 �[36;1mfor f in .github/workflows/*.yml .github/workflows/*.yaml; do�[0m
 �[36;1m  [ -f "$f" ] || continue�[0m
 �[36;1m  if ! head -1 "$f" | grep -q "SPDX-License-Identifier"; then�[0m
 �[36;1m    echo "ERROR: $f missing SPDX header"�[0m
 �[36;1m    errors=$((errors + 1))�[0m
 �[36;1m  fi�[0m
 �[36;1mdone�[0m
 �[36;1mexit $errors�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 ERROR: .github/workflows/main-estate-audit.yml missing SPDX header
 ##[error]Process completed with exit code 1.

GitHub Actions: AffineScript/Deno CI / build: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run deno lint
 �[36;1mdeno lint�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 �[0m�[1m�[31merror�[0m: No target files found.
 ##[error]Process completed with exit code 1.

GitHub Actions: CI/CD Pipeline / 0_Test Suite.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run bundle install
 �[36;1mbundle install�[0m
 shell: /usr/bin/bash -e {0}
 env:
   RAILS_ENV: test
   DATABASE_URL: ***localhost:5432/candy_crash_test
 ##[endgroup]
 Could not locate Gemfile
 ##[error]Process completed with exit code 10.

GitHub Actions: CI/CD Pipeline / Test Suite: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run bundle install
 �[36;1mbundle install�[0m
 shell: /usr/bin/bash -e {0}
 env:
   RAILS_ENV: test
   DATABASE_URL: ***localhost:5432/candy_crash_test
 ##[endgroup]
 Could not locate Gemfile
 ##[error]Process completed with exit code 10.

GitHub Actions: CI/CD Pipeline / Test Suite: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

Print service container logs: 1951710daed7425e97aa63be86a708cd_postgres15_1e6109
 ##[command]/usr/bin/docker logs --details ***REDACTED_HIGH_ENTROPY_STRING***
  The files belonging to this database system will be owned by user "postgres".
  initdb: warning: enabling "trust" authentication for local connections
  initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
  This user must also own the server process.
  .659 UTC [1] LOG:  starting PostgreSQL 15.19 (Debian 15.19-1.pgdg13+2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
  .659 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
  The database cluster will be initialized with locale "en_US.utf8".
  The default database encoding has accordingly been set to "UTF8".
  The default text search configuration will be set to "english".
  .659 UTC [1] LOG:  listening on IPv6 address "::", port 5432
  Data page checksums are disabled.
  .662 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
  .664 UTC [62] LOG:  database system was shut down at  UTC
  .668 UTC [1] LOG:  database system is ready to accept connections
  .851 UTC [73] FATAL:  role "root" does not exist
  .927 UTC [81] FATAL:  role "root" does not exist
  fixing permissions on existing directory /var/lib/postgresql/data ... ok
  creating subdirectories ... ok
  selecting dynamic shared memory implementation ... posix
  selecting default max_connections ... 100
  selecting default shared_buffers ... 128MB
  selecting default time zone ... Etc/UTC
  creating configuration files ... ok
  running bootstrap script ... ok
  performing post-bootstrap initialization ... ok
  syncing data to disk ... ok
  Success. You can now start the database server using:
      pg_ctl -D /var/lib/postgresql/data -l logfile start
  waiting for server to start.....422 UTC [48] LOG:  starting PostgreSQL 15.19 (Debian 15.19-1.pgdg1...

GitHub Actions: CI/CD Pipeline / 1_Build Assets.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run bundle install
 �[36;1mbundle install�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 Could not locate Gemfile
 ##[error]Process completed with exit code 10.

GitHub Actions: CI/CD Pipeline / Build Assets: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run bundle install
 �[36;1mbundle install�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 Could not locate Gemfile
 ##[error]Process completed with exit code 10.

GitHub Actions: CI/CD Pipeline / 2_Build Container Image.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run podman build -t candy-crash:test -f Containerfile .
 �[36;1mpodman build -t candy-crash:test -f Containerfile .�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 [1/2] STEP 1/9: FROM cgr.dev/chainguard/wolfi-base:latest AS builder
 Trying to pull cgr.dev/chainguard/wolfi-base:latest...
 Getting image source signatures
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying config sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Writing manifest to image destination
 [1/2] STEP 2/9: RUN apk add --no-cache deno just bash
 fetch https://apk.cgr.dev/chainguard/x86_64/APKINDEX.tar.gz
 (1/5) Installing ncurses-terminfo-base (6.6.20260905-r0)
 (2/5) Installing ncurses (6.6.20260905-r0)
 (3/5) Installing bash (5.3-r13)
 (4/5) Installing deno (2.8.2-r0)
 (5/5) Installing just (1.58.0-r1)
 Executing busybox-1.38.0-r2.trigger
 OK: 161 MiB in 20 packages
 --> e8b42b0e6112
 [1/2] STEP 3/9: WORKDIR /app
 --> 60675fe2e637
 [1/2] STEP 4/9: COPY . .
 --> 8e5bd8e3aa1b
 [1/2] STEP 5/9: RUN echo '{"version":"4"}' > deno.lock
 --> 4e385bebc844
 [1/2] STEP 6/9: RUN deno task check
 �[0m�[1m�[31merror�[0m: deno task couldn't find deno.json(c) or package.json. See https://docs.deno.com/go/config
 Error: building at STEP "RUN deno task check": while running runtime: exit status 1
 ##[error]Process completed with exit code 1.

GitHub Actions: CI/CD Pipeline / Build Container Image: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run podman build -t candy-crash:test -f Containerfile .
 �[36;1mpodman build -t candy-crash:test -f Containerfile .�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 [1/2] STEP 1/9: FROM cgr.dev/chainguard/wolfi-base:latest AS builder
 Trying to pull cgr.dev/chainguard/wolfi-base:latest...
 Getting image source signatures
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying blob sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Copying config sha256:***REDACTED_HIGH_ENTROPY_STRING***
 Writing manifest to image destination
 [1/2] STEP 2/9: RUN apk add --no-cache deno just bash
 fetch https://apk.cgr.dev/chainguard/x86_64/APKINDEX.tar.gz
 (1/5) Installing ncurses-terminfo-base (6.6.20260905-r0)
 (2/5) Installing ncurses (6.6.20260905-r0)
 (3/5) Installing bash (5.3-r13)
 (4/5) Installing deno (2.8.2-r0)
 (5/5) Installing just (1.58.0-r1)
 Executing busybox-1.38.0-r2.trigger
 OK: 161 MiB in 20 packages
 --> e8b42b0e6112
 [1/2] STEP 3/9: WORKDIR /app
 --> 60675fe2e637
 [1/2] STEP 4/9: COPY . .
 --> 8e5bd8e3aa1b
 [1/2] STEP 5/9: RUN echo '{"version":"4"}' > deno.lock
 --> 4e385bebc844
 [1/2] STEP 6/9: RUN deno task check
 �[0m�[1m�[31merror�[0m: deno task couldn't find deno.json(c) or package.json. See https://docs.deno.com/go/config
 Error: building at STEP "RUN deno task check": while running runtime: exit status 1
 ##[error]Process completed with exit code 1.

GitHub Actions: CI/CD Pipeline / 3_Code Quality.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run bundle exec rubocop --parallel
 �[36;1mbundle exec rubocop --parallel�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 Could not locate Gemfile or .bundle/ directory
 ##[error]Process completed with exit code 10.

GitHub Actions: CI/CD Pipeline / Code Quality: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run bundle exec rubocop --parallel
 �[36;1mbundle exec rubocop --parallel�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 Could not locate Gemfile or .bundle/ directory
 ##[error]Process completed with exit code 10.

GitHub Actions: CI/CD Pipeline / 5_RSR Compliance Check.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run echo "📚 Validating RSR documentation requirements..."
 �[36;1mecho "📚 Validating RSR documentation requirements..."�[0m
 �[36;1mrequired_docs=(�[0m
 �[36;1m  "LICENSE.txt"�[0m
 �[36;1m  "SECURITY.md"�[0m
 �[36;1m  "CONTRIBUTING.adoc"�[0m
 �[36;1m  "CODE_OF_CONDUCT.adoc"�[0m
 �[36;1m  "MAINTAINERS.adoc"�[0m
 �[36;1m  "CHANGELOG.adoc"�[0m
 �[36;1m  "FUNDING.yml"�[0m
 �[36;1m  "GOVERNANCE.adoc"�[0m
 �[36;1m  "REVERSIBILITY.adoc"�[0m
 �[36;1m  ".gitignore"�[0m
 �[36;1m  ".gitattributes"�[0m
 �[36;1m)�[0m
 �[36;1mmissing=0�[0m
 �[36;1mfor doc in "${required_docs[@]}"; do�[0m
 �[36;1m  if [ ! -f "$doc" ]; then�[0m
 �[36;1m    echo "❌ Missing: $doc"�[0m
 �[36;1m    missing=1�[0m
 �[36;1m  else�[0m
 �[36;1m    echo "✅ $doc"�[0m
 �[36;1m  fi�[0m
 �[36;1mdone�[0m
 �[36;1mif [ $missing -eq 1 ]; then�[0m
 �[36;1m  exit 1�[0m
 �[36;1mfi�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 📚 Validating RSR documentation requirements...
 ❌ Missing: LICENSE.txt
 ✅ SECURITY.md
 ✅ CONTRIBUTING.adoc
 ✅ CODE_OF_CONDUCT.adoc
 ✅ MAINTAINERS.adoc
 ✅ CHANGELOG.adoc
 ✅ FUNDING.yml
 ✅ GOVERNANCE.adoc
 ✅ REVERSIBILITY.adoc
 ✅ .gitignore
 ✅ .gitattributes
 ##[error]Process completed with exit code 1.

GitHub Actions: CI/CD Pipeline / RSR Compliance Check: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run echo "📚 Validating RSR documentation requirements..."
 �[36;1mecho "📚 Validating RSR documentation requirements..."�[0m
 �[36;1mrequired_docs=(�[0m
 �[36;1m  "LICENSE.txt"�[0m
 �[36;1m  "SECURITY.md"�[0m
 �[36;1m  "CONTRIBUTING.adoc"�[0m
 �[36;1m  "CODE_OF_CONDUCT.adoc"�[0m
 �[36;1m  "MAINTAINERS.adoc"�[0m
 �[36;1m  "CHANGELOG.adoc"�[0m
 �[36;1m  "FUNDING.yml"�[0m
 �[36;1m  "GOVERNANCE.adoc"�[0m
 �[36;1m  "REVERSIBILITY.adoc"�[0m
 �[36;1m  ".gitignore"�[0m
 �[36;1m  ".gitattributes"�[0m
 �[36;1m)�[0m
 �[36;1mmissing=0�[0m
 �[36;1mfor doc in "${required_docs[@]}"; do�[0m
 �[36;1m  if [ ! -f "$doc" ]; then�[0m
 �[36;1m    echo "❌ Missing: $doc"�[0m
 �[36;1m    missing=1�[0m
 �[36;1m  else�[0m
 �[36;1m    echo "✅ $doc"�[0m
 �[36;1m  fi�[0m
 �[36;1mdone�[0m
 �[36;1mif [ $missing -eq 1 ]; then�[0m
 �[36;1m  exit 1�[0m
 �[36;1mfi�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 📚 Validating RSR documentation requirements...
 ❌ Missing: LICENSE.txt
 ✅ SECURITY.md
 ✅ CONTRIBUTING.adoc
 ✅ CODE_OF_CONDUCT.adoc
 ✅ MAINTAINERS.adoc
 ✅ CHANGELOG.adoc
 ✅ FUNDING.yml
 ✅ GOVERNANCE.adoc
 ✅ REVERSIBILITY.adoc
 ✅ .gitignore
 ✅ .gitattributes
 ##[error]Process completed with exit code 1.

GitHub Actions: Governance / 1_governance _ Code quality + docs.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run editorconfig-checker/action-editorconfig-checker@840e866d93b8e032123c23bac69dece044d4d84c
 with:
   github-***REDACTED_SECRET_ASSIGNMENT***
   version: latest
 ##[endgroup]
 Find 'latest' release
 ##[error]Error: The binary 'ec-linux-amd64*' not found

GitHub Actions: Governance / governance _ Code quality + docs: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run editorconfig-checker/action-editorconfig-checker@840e866d93b8e032123c23bac69dece044d4d84c
 with:
   github-***REDACTED_SECRET_ASSIGNMENT***
   version: latest
 ##[endgroup]
 Find 'latest' release
 ##[error]Error: The binary 'ec-linux-amd64*' not found

GitHub Actions: Governance / 2_governance _ Workflow security linter.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run if [ "$GITHUB_REPOSITORY" = hyperpolymath/standards ]; then
 �[36;1mif [ "$GITHUB_REPOSITORY" = hyperpolymath/standards ]; then�[0m
 �[36;1m  SCRIPT="tools/policy/check-workflows-parse.sh"�[0m
 �[36;1m  echo "Using this repository's own copy (standards self-lint)."�[0m
 �[36;1melse�[0m
 �[36;1m  SCRIPT=".standards-dupkey/tools/policy/check-workflows-parse.sh"�[0m
 �[36;1mfi�[0m
 �[36;1mif [ ! -f "$SCRIPT" ]; then�[0m
 �[36;1m  echo "::error::workflow parser gate not found in the pinned Standards revision or locally"�[0m

GitHub Actions: Governance / governance _ Workflow security linter: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run if [ "$GITHUB_REPOSITORY" = hyperpolymath/standards ]; then
 �[36;1mif [ "$GITHUB_REPOSITORY" = hyperpolymath/standards ]; then�[0m
 �[36;1m  SCRIPT="tools/policy/check-workflows-parse.sh"�[0m
 �[36;1m  echo "Using this repository's own copy (standards self-lint)."�[0m
 �[36;1melse�[0m
 �[36;1m  SCRIPT=".standards-dupkey/tools/policy/check-workflows-parse.sh"�[0m
 �[36;1mfi�[0m
 �[36;1mif [ ! -f "$SCRIPT" ]; then�[0m
 �[36;1m  echo "::error::workflow parser gate not found in the pinned Standards revision or locally"�[0m

GitHub Actions: Governance / governance _ Workflow security linter: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run # GitHub Actions REJECTS a workflow with duplicate keys: the run is
 �[36;1m# GitHub Actions REJECTS a workflow with duplicate keys: the run is�[0m
 �[36;1m# `failure` with no jobs, no log and no check run. Nothing else here�[0m
 �[36;1m# can see it, because yaml.safe_load silently keeps the LAST�[0m
 �[36;1m# duplicate and reports success — so the file "parses" and every�[0m
 �[36;1m# other lint passes. Measured 2026-08-05: nine workflows in hypatia�[0m
 �[36;1m# were dead this way, including a CodeQL workflow with zero�[0m
 �[36;1m# successful runs in its entire lifetime.�[0m
 �[36;1mset -euo pipefail�[0m
 �[36;1m# Standards exercises its pull-request scripts; every consumer uses�[0m
 �[36;1m# the canonical scripts fetched from this workflow's immutable�[0m
 �[36;1m# Standards revision.�[0m
 �[36;1mif [ "$GITHUB_REPOSITORY" = hyperpolymath/standards ]; then�[0m
 �[36;1m  SCRIPT="scripts/check-workflow-duplicate-keys.sh"�[0m
 �[36;1m  echo "Using this repository's own copy (standards self-lint)."�[0m
 �[36;1melse�[0m
 �[36;1m  SCRIPT=".standards-dupkey/scripts/check-workflow-duplicate-keys.sh"�[0m
 �[36;1mfi�[0m
 �[36;1mif [ ! -f "$SCRIPT" ]; then�[0m
 �[36;1m  echo "::error::duplicate-key checker not found — neither fetched from" \�[0m

GitHub Actions: Governance / governance _ Workflow security linter: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run failed=0
 �[36;1mfailed=0�[0m
 �[36;1mfor file in .github/workflows/*.yml .github/workflows/*.yaml; do�[0m
 �[36;1m  [ -f "$file" ] || continue�[0m
 �[36;1m  # ⚠ SCAN THE HEADER BLOCK, NOT LINE 1. REUSE places the identifier�[0m
 �[36;1m  # anywhere in a file's leading comment block, and `gh actions-lock`�[0m
 �[36;1m  # INSERTS `# This workflow is managed by gh actions-lock.` at line 1�[0m
 �[36;1m  # whenever it mints a lockfile — so a line-1 test fights the estate's�[0m
 �[36;1m  # own tool and re-fails every time a lockfile is refreshed.�[0m
 �[36;1m  #�[0m
 �[36;1m  # Measured 2026-08-07: it reported 27 hypatia workflows and 13 more�[0m
 �[36;1m  # elsewhere as missing a header they all had, and "fixing" that by�[0m
 �[36;1m  # prepending a default MIS-LICENSED three files (PMPL-1.0-or-later�[0m
 �[36;1m  # shadowed by MPL-2.0) before it was caught.�[0m
 �[36;1m  #�[0m
 �[36;1m  # The leading run of comment lines is read, tolerating a YAML�[0m
 �[36;1m  # document marker. A licence declared there is declared.�[0m
 �[36;1m  if ! awk '/^---[[:space:]]*$/ { next } /^`#/` { print; next } { exit }' "$file" \�[0m
 �[36;1m       | grep -q "^# SPDX-License-Identifier:"; then�[0m
 �[36;1m    echo "ERROR: $file has no SPDX-License-Identifier in its header comment block"; failed=1�[0m
 �[36;1m  fi�[0m
 �[36;1m  if ! grep -q "^permissions:" "$file"; then�[0m
 �[36;1m    echo "ERROR: $file missing top-level 'permissions:' declaration"; failed=1�[0m
 �[36;1m  fi�[0m
 �[36;1mdone�[0m
 �[36;1m[ $failed -eq 1 ] && { echo "Add SPDX header + permissions:"; exit 1; }�[0m
 �[36;1mecho "All workflows have SPDX headers + permissions"�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 ERROR: .github/workflows/main-estate-audit.yml has no SPDX-License-Identifier in its header comment block
 ERROR: .github/workflows/main-estate-audit.yml missing top-level 'permissions:' declaration
 Add SPDX header + permissions:
 ##[error]Process completed with exit code 1.

GitHub Actions: Governance / 6_governance _ Actions lockfile verify.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run set -uo pipefail
 �[36;1mset -uo pipefail�[0m
 �[36;1mif [ "$GITHUB_REPOSITORY" = hyperpolymath/standards ]; then�[0m
 �[36;1m  SRC=scripts�[0m
 �[36;1m  echo "Using this repository's own gate + verifier (standards self-lint)."�[0m
 �[36;1melse�[0m
 �[36;1m  SRC=.standards-lock/scripts�[0m
 �[36;1mfi�[0m
 �[36;1mfor f in check-actions-lock-gate.sh update-actions-lock.sh; do�[0m
 �[36;1m  if [ ! -f "$SRC/$f" ]; then�[0m
 �[36;1m    echo "::error::actions-lock gate: $f not found in $SRC (standards checkout at job.workflow_sha failed?)"�[0m

GitHub Actions: Governance / governance _ Actions lockfile verify: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run set -uo pipefail
 �[36;1mset -uo pipefail�[0m
 �[36;1mif [ "$GITHUB_REPOSITORY" = hyperpolymath/standards ]; then�[0m
 �[36;1m  SRC=scripts�[0m
 �[36;1m  echo "Using this repository's own gate + verifier (standards self-lint)."�[0m
 �[36;1melse�[0m
 �[36;1m  SRC=.standards-lock/scripts�[0m
 �[36;1mfi�[0m
 �[36;1mfor f in check-actions-lock-gate.sh update-actions-lock.sh; do�[0m
 �[36;1m  if [ ! -f "$SRC/$f" ]; then�[0m
 �[36;1m    echo "::error::actions-lock gate: $f not found in $SRC (standards checkout at job.workflow_sha failed?)"�[0m

GitHub Actions: Governance / 11_governance _ Language _ package anti-pattern policy.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run SCRIPT=".standards-checkout/scripts/check-ts-allowlist.sh"
 �[36;1mSCRIPT=".standards-checkout/scripts/check-ts-allowlist.sh"�[0m
 �[36;1mif [ ! -f "$SCRIPT" ] && [ "$GITHUB_REPOSITORY" = "hyperpolymath/standards" ] \�[0m
 �[36;1m   && [ -f scripts/check-ts-allowlist.sh ]; then�[0m
 �[36;1m  SCRIPT="scripts/check-ts-allowlist.sh"�[0m
 �[36;1m  echo "Using this repository's own copy (standards self-check)."�[0m
 �[36;1mfi�[0m
 �[36;1mif [ ! -f "$SCRIPT" ]; then�[0m
 �[36;1m  echo "::error::check-ts-allowlist gate not found in standards@main or locally"�[0m

GitHub Actions: Governance / governance _ Language _ package anti-pattern policy: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run SCRIPT=".standards-checkout/scripts/check-ts-allowlist.sh"
 �[36;1mSCRIPT=".standards-checkout/scripts/check-ts-allowlist.sh"�[0m
 �[36;1mif [ ! -f "$SCRIPT" ] && [ "$GITHUB_REPOSITORY" = "hyperpolymath/standards" ] \�[0m
 �[36;1m   && [ -f scripts/check-ts-allowlist.sh ]; then�[0m
 �[36;1m  SCRIPT="scripts/check-ts-allowlist.sh"�[0m
 �[36;1m  echo "Using this repository's own copy (standards self-check)."�[0m
 �[36;1mfi�[0m
 �[36;1mif [ ! -f "$SCRIPT" ]; then�[0m
 �[36;1m  echo "::error::check-ts-allowlist gate not found in standards@main or locally"�[0m

GitHub Actions: Governance / governance _ Language _ package anti-pattern policy: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run SCRIPT=".standards-checkout/tools/policy/check-language-policy.sh"
 �[36;1mSCRIPT=".standards-checkout/tools/policy/check-language-policy.sh"�[0m
 �[36;1mif [ ! -f "$SCRIPT" ] && [ -f tools/policy/check-language-policy.sh ]; then�[0m
 �[36;1m  SCRIPT="tools/policy/check-language-policy.sh"�[0m
 �[36;1m  echo "Using this repository's own copy (standards self-check)."�[0m
 �[36;1mfi�[0m
 �[36;1mif [ ! -f "$SCRIPT" ]; then�[0m
 �[36;1m  echo "::error::language-policy gate not found in standards@main or locally"�[0m

GitHub Actions: Governance / 12_governance _ Well-Known (RFC 9116 + RSR).txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run SECTXT=""
 �[36;1mSECTXT=""�[0m
 �[36;1m[ -f ".well-known/security.txt" ] && SECTXT=".well-known/security.txt"�[0m
 �[36;1m[ -f "security.txt" ] && SECTXT="security.txt"�[0m
 �[36;1mif [ -z "$SECTXT" ]; then�[0m
 �[36;1m  echo "::warning::No security.txt found."�[0m
 �[36;1m  exit 0�[0m
 �[36;1mfi�[0m
 �[36;1mgrep -q "^Contact:" "$SECTXT" || { echo "::error::Missing Contact field"; exit 1; }�[0m

GitHub Actions: Governance / governance _ Well-Known (RFC 9116 + RSR): fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run SECTXT=""
 �[36;1mSECTXT=""�[0m
 �[36;1m[ -f ".well-known/security.txt" ] && SECTXT=".well-known/security.txt"�[0m
 �[36;1m[ -f "security.txt" ] && SECTXT="security.txt"�[0m
 �[36;1mif [ -z "$SECTXT" ]; then�[0m
 �[36;1m  echo "::warning::No security.txt found."�[0m
 �[36;1m  exit 0�[0m
 �[36;1mfi�[0m
 �[36;1mgrep -q "^Contact:" "$SECTXT" || { echo "::error::Missing Contact field"; exit 1; }�[0m

GitHub Actions: Governance / governance _ Well-Known (RFC 9116 + RSR): fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run MIXED=$(grep -rE 'src="http://|href="http://' --include="*.html" --include="*.htm" . 2>/dev/null | grep -vE 'localhost|127\.0\.0\.1|example\.com|lol/|node_modules/|third-party/|vendor/' | head -5 || true)
 �[36;1mMIXED=$(grep -rE 'src="http://|href="http://' --include="*.html" --include="*.htm" . 2>/dev/null | grep -vE 'localhost|127\.0\.0\.1|example\.com|lol/|node_modules/|third-party/|vendor/' | head -5 || true)�[0m
 �[36;1mif [ -n "$MIXED" ]; then�[0m
 �[36;1m  echo "::error::Mixed content (HTTP in HTML)"�[0m

GitHub Actions: Governance / 13_governance _ Security policy checks.txt: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run FAILED=false
 �[36;1mFAILED=false�[0m
 �[36;1mWEAK_CRYPTO=$(grep -rE 'md5\(|sha1\(' --include="*.py" --include="*.rb" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" . 2>/dev/null | grep -v 'checksum\|cache\|test\|spec' | head -5 || true)�[0m
 �[36;1mif [ -n "$WEAK_CRYPTO" ]; then�[0m
 �[36;1m  echo "::warning::Weak crypto (MD5/SHA1) detected — ADVISORY, does not fail this job. Use SHA256+:"�[0m
 �[36;1m  echo "$WEAK_CRYPTO"�[0m
 �[36;1mfi�[0m
 �[36;1mHTTP_URLS=$(grep -rE 'http://[^l][^o][^c]' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.yaml" --include="*.yml" . 2>/dev/null | grep -v 'localhost\|127.0.0.1\|example\|test\|spec' | head -5 || true)�[0m
 �[36;1mif [ -n "$HTTP_URLS" ]; then�[0m
 �[36;1m  echo "::warning::HTTP URLs found — ADVISORY, does not fail this job. Use HTTPS:"�[0m
 �[36;1m  echo "$HTTP_URLS"�[0m
 �[36;1mfi�[0m
 �[36;1mSECRETS=$(grep -rEi '(api_key|apikey|secret_key|password)\s*[=:]\s*["\x27][A-Za-z0-9+/=]{20,}' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.env" . 2>/dev/null | grep -v 'example\|sample\|test\|mock\|placeholder' | head -3 || true)�[0m
 �[36;1mif [ -n "$SECRETS" ]; then�[0m
 �[36;1m  echo "::error::Potential hardcoded secrets detected — this FAILS the job:"�[0m

GitHub Actions: Governance / governance _ Security policy checks: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run FAILED=false
 �[36;1mFAILED=false�[0m
 �[36;1mWEAK_CRYPTO=$(grep -rE 'md5\(|sha1\(' --include="*.py" --include="*.rb" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" . 2>/dev/null | grep -v 'checksum\|cache\|test\|spec' | head -5 || true)�[0m
 �[36;1mif [ -n "$WEAK_CRYPTO" ]; then�[0m
 �[36;1m  echo "::warning::Weak crypto (MD5/SHA1) detected — ADVISORY, does not fail this job. Use SHA256+:"�[0m
 �[36;1m  echo "$WEAK_CRYPTO"�[0m
 �[36;1mfi�[0m
 �[36;1mHTTP_URLS=$(grep -rE 'http://[^l][^o][^c]' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.yaml" --include="*.yml" . 2>/dev/null | grep -v 'localhost\|127.0.0.1\|example\|test\|spec' | head -5 || true)�[0m
 �[36;1mif [ -n "$HTTP_URLS" ]; then�[0m
 �[36;1m  echo "::warning::HTTP URLs found — ADVISORY, does not fail this job. Use HTTPS:"�[0m
 �[36;1m  echo "$HTTP_URLS"�[0m
 �[36;1mfi�[0m
 �[36;1mSECRETS=$(grep -rEi '(api_key|apikey|secret_key|password)\s*[=:]\s*["\x27][A-Za-z0-9+/=]{20,}' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.env" . 2>/dev/null | grep -v 'example\|sample\|test\|mock\|placeholder' | head -3 || true)�[0m
 �[36;1mif [ -n "$SECRETS" ]; then�[0m
 �[36;1m  echo "::error::Potential hardcoded secrets detected — this FAILS the job:"�[0m

GitHub Actions: Governance / governance _ Security policy checks: fix(ci): restore reachable standards workflow pins

Conclusion: failure

View job details

##[group]Run set -uo pipefail
 �[36;1mset -uo pipefail�[0m
 �[36;1mDIR=.github/canonical-references�[0m
 �[36;1mif [ ! -d "$DIR" ]; then�[0m
 �[36;1m  echo "ℹ️  [R5] no $DIR/ — skipped (repo has not opted in)"�[0m
 �[36;1m  exit 0�[0m
 �[36;1mfi�[0m
 �[36;1mif ! command -v python3 >/dev/null 2>&1; then�[0m
 �[36;1m  echo "❌ [R5] python3 missing on runner — required for YAML rule parsing"�[0m
 �[36;1m  exit 2�[0m
 �[36;1mfi�[0m
 �[36;1mpython3 - <<'PY'�[0m
 �[36;1mimport os, sys, glob, subprocess�[0m
 �[36;1mtry:�[0m
 �[36;1m    import yaml�[0m
 �[36;1mexcept ImportError:�[0m
 �[36;1m    sys.exit("❌ [R5] PyYAML not installed on runner; install python3-yaml")�[0m
 �[36;1m�[0m
 �[36;1mdir_ = ".github/canonical-references"�[0m
 �[36;1mfiles = sorted(glob.glob(f"{dir_}/*.yml") + glob.glob(f"{dir_}/*.yaml"))�[0m
 �[36;1mif not files:�[0m
 �[36;1m    print(f"ℹ️  [R5] {dir_}/ has no .yml/.yaml rules — skipped")�[0m
 �[36;1m    sys.exit(0)�[0m
 �[36;1m�[0m
 �[36;1mtotal = 0�[0m
 �[36;1mfor rf in files:�[0m
 �[36;1m    with open(rf, encoding="utf-8") as fh:�[0m
 �[36;1m        cfg = yaml.safe_load(fh)�[0m
 �[36;1m    if not isinstance(cfg, dict):�[0m
 �[36;1m        print(f"❌ [R5] {rf}: top-level must be a mapping"); total += 1; continue�[0m
 �[36;1m    rid  = cfg.get("id", os.path.basename(rf))�[0m
 �[36;1m    desc = cfg.get("description", "")�[0m
 �[36;1m    pats = cfg.get("patterns") or []�[0m
 �[36;1m    canon = cfg.get("canonical_pointer", "")�[0m
 �[36;1m    scope = (cfg.get("scope") or {})�[0m
 �[36;1m    includes = scope.get("include") or []�[0m
 �[36;1m    if not pats or not includes:�[0m
 �[36;1m        print(f"❌ [R5:{rid}] missing patterns or scope.include in {rf}")�[0m
 �[36;1m        total += 1; continue�[0m
 �[36;1m    # exclude self-references�[0m
 �[36;1m    skip = set(["CHANGELOG.md", "CHANGELOG.adoc", rf])�[0m
 �[36;1m    if canon: skip.add(canon)�[0m
 �[36;1m    rule_hits = 0�[0m
 �[36;1m    for f_ in includes:�[0m
 �[36;1m        if f_ in skip or not os...
🔇 Additional comments (5)
.github/workflows/governance.yml (1)

12-12: LGTM!

Also applies to: 17-17

.github/workflows/hypatia-scan.yml (1)

14-14: LGTM!

Also applies to: 20-20

.github/workflows/mirror.yml (1)

10-10: LGTM!

Also applies to: 15-15

.github/workflows/scorecard.yml (1)

14-14: LGTM!

.github/workflows/secret-scanner.yml (1)

20-20: LGTM!


📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated the pinned revisions of governance, security scanning, mirroring, secret-scanning, and Scorecard automation workflows.
    • Added the required read access for workflow actions where applicable.
    • Keeps repository maintenance and security checks aligned with approved workflow revisions.

Walkthrough

Five GitHub Actions workflows update pinned reusable workflow commits. Governance, Hypatia scan, and mirror workflows also grant actions: read.

Changes

Reusable workflow pin updates

Layer / File(s) Summary
Update workflow permissions
.github/workflows/governance.yml, .github/workflows/hypatia-scan.yml, .github/workflows/mirror.yml
The workflows now grant actions: read.
Update reusable workflow pins
.github/workflows/*.yml
The governance, Hypatia scan, mirror, Scorecard, and secret-scanner workflows now reference newer pinned commits.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Merge Risk: ⚪ Minimal · up to 62361

This restores reusable GitHub Actions workflow execution with updated pinned revisions and required read permissions. No current merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the technical purpose and impact, but it does not follow the required template. It omits the Description, Type of Change, Changes Made, Testing, Checklist, and other required … Rewrite the pull request description using the repository template. Include the change type, specific file changes, testing details and results, relevant checklist items, related issues, and any required confirmations.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: restoring reachable pins for the standards reusable workflows. It is concise and specific.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the technical purpose and impact, but it does not follow the required template. It omits the Description, Type of Change, Changes Made, Testing, Checklist, and other required sections.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks each workflow line
New pins keep every path in time
Permissions read
Scans run as led
Five workflows now align

Comment @coderabbitai help to get the list of available commands.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Sep 4, 2026
Every hyperpolymath/standards reusable-workflow pin on this branch now points at
standards main HEAD (fad242d35291de1898242d6737ba02b74a59a2f2). Callers of reusables that request
`actions: read` at that revision (governance, hypatia-scan, mirror) are granted it,
because a pin bump alone startup-fails when the caller grants only `contents: read`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hyperpolymath
hyperpolymath merged commit ef933ef into main Sep 8, 2026
24 of 36 checks passed
@hyperpolymath
hyperpolymath deleted the fix/restore-reachable-standards-pin branch September 8, 2026 05:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant