Skip to content

ci.yml calls its gates merge-blocking; main has no protection at all, and the repo was never registered with the standards program #15

Description

@ChelseaKR

Two related facts, both verified today.

main is unprotected

  • gh api repos/ChelseaKR/perimeter/rulesets returns an empty list.
  • gh api repos/ChelseaKR/perimeter/branches/main returns "protected": false.
  • gh api repos/ChelseaKR/perimeter/branches/main/protection returns 404,
    "Branch not protected".

So main can be force-pushed, deleted, or pushed to directly with red CI. The
verify, secret-scan and sast jobs run and report; none of them blocks
anything.

.github/workflows/ci.yml opens with:

Least-privilege GITHUB_TOKEN, SHA-pinned actions, and the merge-blocking gates:
SAST, secret scan, and make verify ...

That sentence is not true of this repository. A reader who opens the workflow to
check the posture is told the opposite of what the server enforces, which is worse
than saying nothing.

Controls: CICD-13 (AUTO, required status checks: format, lint, type, test,
security + zizmor + codeql-actions), CICD-16 (AUTO, force-push to main blocked
via non_fast_forward), CICD-11 (AUTO, Scorecard Branch-Protection >= 8/10).
ledger's protect-main is the working reference in this portfolio.

Two gates named by CICD-13 have no implementation here at all: there is no zizmor
job and no CodeQL workflow, in a repo whose CI runs Node and Python and publishes
to GitHub Pages from a second workflow.

The repo was never onboarded

The portfolio conformance checker's FIX-02 discovery gate reports perimeter as
existing in the portfolio and not registered in its applicability manifest. Nothing
has ever decided which standards bind this repo, which is why the gaps below are
unrecorded rather than tracked:

Control Gate Status here
FIX-02 AUTO No applicability-manifest entry
DOC-11 AUTO _readme_conformance_table reports "no 'Standards Conformance' section in README"
DOC-04 AUTO docs/adr/ exists and is empty; no 0000-record-architecture-decisions.md, no MADR template
DOC-01 AUTO No .standards-version and no pinned standards reference

CITATION.cff, SECURITY.md, CONTRIBUTING.md, CHANGELOG.md and
.github/dependabot.yml are all present, so this is the last mile rather than the
first.

The docs/adr/ case deserves a note of its own: several genuinely
architectural decisions are already written up as prose in README.md and
docs/MARKERS.md (the three-state cell model, treating an out-of-domain value as
outside_published_domain rather than an error, the published-versus-inferred
marker split). An empty ADR directory beside that much recorded reasoning is a
filing problem, not a thinking one.

Done looks like

  • A protect-main ruleset requiring verify, secret-scan and sast by their
    job names, plus non_fast_forward and deletion.
  • zizmor and CodeQL (language: actions) added and required, or each recorded as
    a waiver with an owner and an expiry.
  • An applicability-manifest entry created, via the standards program's
    repo-registration script.
  • A fifteen-row Standards Conformance table in README.md and an ADR log with
    0000 plus the decisions the README already argues for.
  • The ci.yml header comment describes what is actually enforced.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions