Skip to content

chore(ci): replace mirror.yml with reusable wrapper#31

Open
hyperpolymath wants to merge 1 commit into
mainfrom
chore/mirror-reusable-wrapper
Open

chore(ci): replace mirror.yml with reusable wrapper#31
hyperpolymath wants to merge 1 commit into
mainfrom
chore/mirror-reusable-wrapper

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Replaces this repo's full mirror.yml (~145 lines, drift-prone) with a thin ~13-line wrapper that calls hyperpolymath/standards/.github/workflows/mirror-reusable.yml@e6b2884722350515934d443daf23442f2195796f (merged via standards#187).

Forge selection (GitLab, Bitbucket, Codeberg, SourceHut, Disroot, Gitea, Radicle) remains gated by Actions vars.<FORGE>_MIRROR_ENABLED exactly as before. secrets: inherit flows the per-forge SSH keys through implicitly.

Why

Estate audit: 289 mirror.yml deployments across the org, 75 unique blob SHAs (76% drift). Drift is action-SHA pin churn, not feature variance — the canonical 7-forge job set is identical across sampled variants. Converging behind the reusable cuts ~94k LOC of estate scaffold and means future changes to mirror logic propagate via one SHA bump.

Part of estate-wide convergence campaign 2026-05-26 (standards#199 / #187).

Pins to hyperpolymath/standards#187 merge SHA e6b2884722350515934d443daf23442f2195796f. Replaces the
canonical mirror.yml (~145 lines, drift-prone) with a thin ~13-line
wrapper. Forge selection still externalised to vars.<FORGE>_MIRROR_ENABLED.

Part of estate-wide convergence campaign 2026-05-26
(standards#199 / #187).
@hyperpolymath hyperpolymath enabled auto-merge (squash) May 26, 2026 15:51
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 34 issues detected

Severity Count
🔴 Critical 0
🟠 High 18
🟡 Medium 16
View findings
[
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "codeql.yml lists `language: javascript-typescript` but the repo has no source files in any CodeQL-scannable language. The analyze job will exit 'no source files' on every run. Switch the matrix to `actions` (which scans workflow files — every repo has those).",
    "type": "codeql_language_matrix_mismatch",
    "file": "codeql.yml",
    "action": "switch_codeql_matrix_to_actions",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "binary_to_term without :safe option -- deserialization attack (1 occurrences, CWE-502)",
    "type": "elixir_send_unsanitised",
    "file": "/home/runner/work/chimichanga/chimichanga/lib/munition/forensics/dump.ex",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "unsafe block -- requires SAFETY comment (10 occurrences, CWE-676)",
    "type": "unsafe_block",
    "file": "/home/runner/work/chimichanga/chimichanga/test_wasm/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "Nominal-only SAST in chimichanga: codeql.yml language matrix contains no language present in the repo and lacks `actions`, so CodeQL records zero results on every commit. Remediation: set the CodeQL matrix to `language: actions`.",
    "type": "StaticAnalysis",
    "file": "/home/runner/work/chimichanga/chimichanga",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "medium",
    "remediation": "Add CodeQL or equivalent SAST workflow.",
    "scorecard_check": "SAST"
  },
  {
    "reason": "Repository has 6 non-main remote branch(es). Policy: single main branch only.",
    "type": "GS007",
    "file": ".",
    "action": "delete_remote_branches",
    "rule_module": "git_state",
    "severity": "medium"
  },
  {
    "reason": "Code scanning (Scorecard): TokenPermissionsID -- Token-Permissions -- 0 day(s) old",
    "type": "CSA001",
    "file": ".github/workflows/hypatia-scan.yml",
    "action": "update",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  },
  {
    "reason": "Code scanning (Scorecard): PinnedDependenciesID -- Pinned-Dependencies -- 7 day(s) old",
    "type": "CSA001",
    "file": ".github/workflows/governance.yml",
    "action": "review",
    "rule_module": "code_scanning_alerts",
    "severity": "medium"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/workflow_audit/codeql_language_matrix_mismatch -- Hypatia workflow_audit: codeql_language_matrix_mismatch -- 7 day(s) old",
    "type": "CSA001",
    "file": "codeql.yml",
    "action": "update",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/structural_drift/SD009 -- Hypatia structural_drift: SD009 -- 8 day(s) old",
    "type": "CSA001",
    "file": "ffi/zig/src/main.zig",
    "action": "review",
    "rule_module": "code_scanning_alerts",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

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