Skip to content

[Phase 0] Layer 0 GitHub-native controls and close the motivating incident #1201

Open

Description

@don-petry

Story

As a repo maintainer/admin,
I want enable the GitHub-native outside-PR controls on ring-0 .github-private and close the motivating spam PR by hand,
so that the volume/native defense layer is in place before the spam-pr-guard reusable (Phases 1–3) ships, and the open incident is cleared.

Independent of the Phase 1–6 code work (which vendors a reusable from petry-projects/.github and consumes it via a caller stub pinned at spam-pr-guard/v1-stable). This phase is admin-UI only; it does not block the code phases from landing on main, only the fleet-enable (ring progression) side of Phase 5.

Acceptance Criteria

  1. On ring-0 .github-private, 'Require approval for workflows from all outside contributors' is enabled so fork PRs need maintainer approval to run Actions. (This also protects the spam-pr-guard reusable's dogfood on next, which routes to .github-private per the registry pattern.)
  2. A per-repo PR cap for users without write access is configured with a bypass list that includes dependabot[bot] and org-leads; if GitHub does not yet support the needed setting, the decision to defer is recorded on the epic instead.
  3. The motivating PR petry-projects/.github-private#1976 is closed by hand with a short explanatory comment.
  4. The chosen Layer 0 settings are recorded on the epic (written note or screenshot) so later rings can replicate them when Phase 5 promotes spam-pr-guard/v1-stable → *.

Tasks / Subtasks

Dev Notes

Project Structure Notes

No repo files change; the artifact is applied settings plus a recorded note on the epic.

References

Story prepared by the BMAD Scrum Master (Bob) for epic #1200. Realigned to the vendored-reusable + caller-stub + canary-rings shape. Status: ready-for-dev.

Activity

  1. don-petry commented on Sep 29, 2026

    @don-petry
    ContributorAuthor

    dev-lead is withholding action on this item.

    It is labeled dev-lead:hands-off (deliberately kept off-limits to dev-lead (e.g. changes to the dev-lead automation itself)), so dev-lead will not pick it up while that label is present. This notice is posted once so the withhold is visible rather than looking like a stalled run.

    To re-enable automated pickup: remove the dev-lead:hands-off label.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions