Skip to content

Implement PR, push, and commit review triggers #10

@romgenie

Description

@romgenie

Local source: coven-github/issues/07-implement-pr-push-and-commit-review-triggers.md

Summary

The reimagined GitHub App product includes automatic review on @mention, commit, PR, or any configured combination. coven-github currently implements issue assignment, issue label, issue mention, and PR review-comment mention paths, but not PR lifecycle or push/commit review lanes.

Current Evidence

  • README.md lists V1 triggers as issue assigned to bot user, coven: label applied to issue, @cody mention in issue comment, and PR review comment @cody fix:.
  • crates/webhook/src/events.rs parses issues assigned/labeled, issue comments, and pull request review comments.
  • The revised architecture diagram marks PR opened/synchronize and commit/push review as target trigger lanes rather than implemented lanes.
  • docs/hosted-mvp-plan.md starts with issue/label triggers but the broader product direction includes hosted review and codebase-aware GitHub work.

Problem

Without PR and commit trigger support, the GitHub App cannot function as a general code-review agent. It is primarily an issue-to-PR agent plus manual mention responder.

Impact

  • Teams cannot install it as an automatic reviewer on every PR.
  • Commit/push review and branch-range review are unavailable.
  • Combined workflows cannot work, for example automatic shallow review on PR open plus @familiar deepen for targeted re-review.
  • Product messaging around code review is ahead of the actual event coverage.

Proposed Design

Add a trigger policy layer that supports:

  • mention: current issue/PR comment command behavior;
  • issue_assignment: current issue assignment behavior;
  • issue_label: current label behavior;
  • pull_request: opened, synchronize, reopened, ready_for_review, labeled;
  • push: branch pushes and commit range review;
  • manual: Cave/dashboard/API initiated task.

Each trigger should map to a typed task kind with immutable target refs. Repository policy should decide which triggers are enabled, which branches/paths are in scope, and whether the task is advisory, blocking, or fix-capable.

Acceptance Criteria

  • Event parser supports pull_request and push payloads with fixture tests.
  • Router can enable/disable each trigger by repo/familiar policy.
  • PR synchronize events coalesce or supersede older queued work for the same PR/head.
  • Push events can review a single commit or compare range.
  • Mention commands can re-run, deepen, or request a fix for an existing PR task.
  • Docs and README accurately distinguish implemented trigger lanes from planned lanes.

Test Notes

Add GitHub webhook fixture tests for PR opened, PR synchronize, PR ready_for_review, push to default branch, push to feature branch, and ignored branch. Verify task kind, target SHA, branch, repo, installation, and familiar routing.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions