Skip to content

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

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/mirror-reusable-wrapper
May 27, 2026
Merged

hyperpolymath merged 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:52
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 62 issues detected

Severity Count
🔴 Critical 6
🟠 High 37
🟡 Medium 19

⚠️ Action Required: Critical security issues found!

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"
  },
  {
    "line": 57,
    "reason": "Secret found: Generic API key",
    "type": "secret_detected",
    "file": "/home/runner/work/thejeffparadox/thejeffparadox/docs/wiki/Getting-Started.md",
    "action": "revoke_rotate_and_purge",
    "rule_module": "security_errors",
    "severity": "critical"
  },
  {
    "line": 58,
    "reason": "Secret found: Generic API key",
    "type": "secret_detected",
    "file": "/home/runner/work/thejeffparadox/thejeffparadox/docs/wiki/Getting-Started.md",
    "action": "revoke_rotate_and_purge",
    "rule_module": "security_errors",
    "severity": "critical"
  },
  {
    "line": 61,
    "reason": "Secret found: Generic API key",
    "type": "secret_detected",
    "file": "/home/runner/work/thejeffparadox/thejeffparadox/docs/wiki/Getting-Started.md",
    "action": "revoke_rotate_and_purge",
    "rule_module": "security_errors",
    "severity": "critical"
  },
  {
    "line": 59,
    "reason": "Secret found: Generic API key",
    "type": "secret_detected",
    "file": "/home/runner/work/thejeffparadox/thejeffparadox/docs/wiki/FAQ.md",
    "action": "revoke_rotate_and_purge",
    "rule_module": "security_errors",
    "severity": "critical"
  },
  {
    "line": 76,
    "reason": "Secret found: Generic API key",
    "type": "secret_detected",
    "file": "/home/runner/work/thejeffparadox/thejeffparadox/README.adoc",
    "action": "revoke_rotate_and_purge",
    "rule_module": "security_errors",
    "severity": "critical"
  },
  {
    "line": 77,
    "reason": "Secret found: Generic API key",
    "type": "secret_detected",
    "file": "/home/runner/work/thejeffparadox/thejeffparadox/README.adoc",
    "action": "revoke_rotate_and_purge",
    "rule_module": "security_errors",
    "severity": "critical"
  },
  {
    "reason": "Repository has 8 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 -- 9 day(s) old [STALE]",
    "type": "CSA001",
    "file": ".github/workflows/hypatia-scan.yml",
    "action": "escalate",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/structural_drift/SD009 -- Hypatia structural_drift: SD009 -- 9 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

@hyperpolymath
hyperpolymath merged commit 3cec07c into main May 27, 2026
18 of 22 checks passed
@hyperpolymath
hyperpolymath deleted the chore/mirror-reusable-wrapper branch May 29, 2026 03:53
@hyperpolymath hyperpolymath added cicd CI/CD: workflows, actions, lockfiles, pins, runners, release gates and removed ci labels Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cicd CI/CD: workflows, actions, lockfiles, pins, runners, release gates config

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant