Skip to content

feat: merge gate status checks in no-backend mode#2578

Open
azanar wants to merge 1 commit intodiggerhq:developfrom
azanar:merge-gate-no-backend
Open

feat: merge gate status checks in no-backend mode#2578
azanar wants to merge 1 commit intodiggerhq:developfrom
azanar:merge-gate-no-backend

Conversation

@azanar
Copy link

@azanar azanar commented Feb 21, 2026

Summary

Adds merge-gate commit status checks to no-backend (backendless) mode. This is the minimal change needed to support "must apply before merge" workflows without the full orchestrator backend.

Changes

In cli/pkg/github/github.go:

  • Before RunJobs: Set digger/plan or digger/apply to pending
  • After successful plan: Set digger/plan to success AND digger/apply to pending
  • After successful apply: Set digger/apply to success (unchanged)
  • On failure: Set status to failure (unchanged)

Why

Currently, no-backend mode sets success/failure statuses after execution but never sets a pending status. This means there's no way to gate merge on apply — digger/plan passes after plan, and there's nothing blocking merge until apply runs.

The full orchestrator backend solves this (Go server + Postgres), but that's heavy for single-repo setups that just want the merge gate.

How to use

  1. Use Digger in no-backend mode as normal
  2. Add digger/apply as a required status check in GitHub branch protection
  3. After digger plan runs on a PR, digger/apply will be pending — merge blocked
  4. Comment digger applydigger/apply flips to success — merge unblocked

Backward compatibility

No breaking changes. The pending statuses are additive — existing workflows that don't use required status checks are unaffected.

Test plan

  • Open a PR that triggers Digger plan in no-backend mode
  • Verify digger/plan shows as pending, then success
  • Verify digger/apply shows as pending after plan
  • Comment digger apply
  • Verify digger/apply flips to success

In no-backend mode, set pending commit statuses before RunJobs and
set digger/apply to pending after a successful plan. This allows
users to add digger/apply as a required status check in branch
protection to block merge until `digger apply` is run.

Previously, no-backend mode only set success/failure statuses after
execution, with no way to gate merge on apply without the full
orchestrator backend.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant