Skip to content

feat(github-app): merge-readiness aggregate gate #551

Description

@JSONbored

Parent roadmap: #525
Parent phase: #528

Background

A repo can enable up to four separate gates (linked-issue, duplicate, quality, and soon slop). Maintainers want ONE required check for branch protection, not four.

Goal

A tunable mergeReadinessGateMode composite gate that rolls linked-issue + duplicate + readiness + slop into a single pass/fail with a "what's still blocking" summary.

Current Behavior

evaluateGateCheck (src/rules/advisory.ts:139) already aggregates blocker classes but isn't exposed as a single configurable composite.

Desired Behavior

  • Add mergeReadinessGateMode (off/advisory/block) to RepositorySettings; when enabled, the Gittensory Gate conclusion reflects the composite and the summary lists each unmet condition.
  • Reuses buildPublicReadinessScore + the existing blocker classes.

Implementation Requirements

  • New setting + migration; extend gateCheckPolicy (processors.ts:760). Keep Gittensory Gate the single required check.

Public/Private Output Boundaries

  • Summary routed through sanitizeForCheckRun; no private scores.

Acceptance Criteria

  • One composite gate reflects all enabled sub-gates with a clear blocking summary.

Testing Requirements

  • npm run test:ci, 97%+ coverage. Composite on/off/advisory/block tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.roadmapOn the Wave-2 agent-layer roadmap board (project 9)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions