A GitHub App that detects merge conflicts, generates multiple resolution options, tests each in sandboxes, and posts results to the PR.
- Automatic Conflict Detection: Listens to PR events and detects merge conflicts
- Multiple Resolution Options:
- Option A: Keep base branch version (yours)
- Option B: Keep incoming branch version (theirs)
- Option C: AI-merged resolution using Claude
- Sandbox Testing: Tests each resolution in isolated Daytona sandboxes
- Clear Results: Posts formatted results with test pass/fail status
npm installRun the dev server and follow the Probot setup wizard:
npm run devThis will open http://localhost:3000 where you can register your GitHub App.
Copy .env.example to .env and fill in the values:
cp .env.example .envRequired variables:
APP_ID- From GitHub App registrationPRIVATE_KEY- From GitHub App registrationWEBHOOK_SECRET- From GitHub App registration
Optional (for full functionality):
DAYTONA_API_KEY- For sandbox testingDAYTONA_SERVER_URL- Daytona server URLANTHROPIC_API_KEY- For AI merge generation
After registering, install the app on a test repository.
# Run in development mode with hot reload
npm run dev
# Build TypeScript
npm run build
# Run production build
npm startOnce installed on a repository:
- Open a PR with merge conflicts
- The app will automatically detect conflicts and post a comment
- View the analysis with test results for each resolution option
- Comment
/resolve A,/resolve B, or/resolve Cto apply a resolution
src/
├── index.ts # Main Probot entry point
├── handlers/
│ └── pullRequest.ts # PR event handlers
├── services/
│ ├── conflict.ts # Conflict detection & parsing
│ ├── github.ts # GitHub API helpers
│ ├── merge.ts # Merge option generation
│ ├── claude.ts # AI merge (requires API key)
│ └── daytona.ts # Sandbox testing (requires API key)
├── utils/
│ ├── markdown.ts # Result formatting
│ └── testRunner.ts # Test framework detection
└── types/
└── index.ts # TypeScript types
- Project scaffolding
- TypeScript configuration
- PR event handling
- Conflict detection logic
- Conflict marker parsing
- Merge option generation
- Results formatting
- Daytona integration (needs API key)
- Claude integration (needs API key)
- Resolution application
- Production deployment