Skip to content

Six repos call the shared CI with no pull_request trigger — lint, test and the security gate run only on tags #48

Description

@felixgeelhaar

Sweeping the 24 repos that call the shared go-ci.yml / js-ci.yml, six have no pull_request trigger on their thin caller. None of them scans main on push either. So for a quarter of the fleet, the shared lint, test and nox security gate run only on release tags — or, for senat-os, only when someone clicks the button.

Repo Triggers on ci.yml Effect
pet-medical-www push: tags [v*], workflow_dispatch tags only
brotwerk push: tags [v*], workflow_dispatch tags only
rollops-studio push: tags [v*], workflow_dispatch tags only
kraftsport-coach push: tags [v*], workflow_dispatch tags only
senat-os workflow_dispatch only never runs automatically
lexora push: tags [v*], workflow_dispatch fixed in klarlabs-studio/lexora#25

The other 18 have pull_request and are fine.

Why this is worse than "CI is a bit thin there"

In lexora the gap was load-bearing for a decision. Its security.yml deleted the repo's own nox job with this justification:

the former nox security-gate job was removed — it duplicated the shared go-ci Security (nox) job … Code scanning is gated there on every PR/push

The premise was false for that repo: the shared job was not wired to PRs at all. A working local gate was removed in favour of one that essentially never ran. It is worth checking whether the same reasoning was applied to any of the other five.

This also compounds with #47: even on the rare tag build, any repo whose .nox.yaml sets output.format produced no findings.json, so the gate step skipped — and a skipped step is green.

Suggested rollout

I deliberately did not open five more PRs. These repos have never been PR-gated, so enabling the trigger may light up lint, test and security failures all at once, and each needs a human deciding what is worth fixing versus baselining.

lexora#25 is the pilot — it adds the trigger and the checks on that PR are the first real evidence of what happens. Recommend:

  1. Land lexora#25, see what the shared CI actually says about a previously ungated repo.
  2. Roll the trigger out to the remaining five one at a time, worst-first, rather than in a batch.
  3. senat-os probably deserves a look beyond the trigger — a repo whose CI has only ever run manually is unlikely to be green.

The one-line change in each case is:

on:
  pull_request:
    branches: ["main"]
  push:
    tags: ["v*"]
  workflow_dispatch: {}

matching armada, dispatch and bolt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions