Notifications

Living PR card

One Slack message per pull request, updated in place as the PR changes.

Every pull request in a connected repo gets one live-updating Slack message per channel it's routed to — the living PR card. Instead of a new message for every event, the same card is edited in place as the PR moves through review, so the channel shows current state, not a scroll of duplicates.

What the card shows

The card and its thread carry everything that happens to the pull request:

  • PR state — open, merged, or closed.
  • CI progress — pending, passed, or failed.
  • Review requests and verdicts — who's on the hook, and where the PR stands.
  • Comments — new review comments appear in the thread.
  • Merge/close updates — the card's final state reflects the outcome.

Reviewers, assignees, CI status, mergeable state, and draft status all update directly on the card. A PR routed to more than one channel gets one card per channel, each kept in sync independently.

Pull requestReview, CI, and activity
Living pull-request card
Needs review · @sara
Check completed · needs human
A living card through a PR's life

One Slack message updating in place: opened, review verdict, changes requested, merged.

The PR lifecycle buckets

The card's headline state comes from one of three lifecycle buckets. Every open pull request Angada tracks falls into exactly one, checked in this order — a PR that matches an earlier rule never falls into a later one:

Awaiting Author

The PR has a "changes requested" review on it — the author is the one who needs to act next.

Ready to Merge

The PR has all its required approvals, and CI has passed. Nothing is blocking it from being merged.

Needs Review

Everything else — including any PR that hasn't matched the two rules above. Draft PRs are never placed in a bucket; they're excluded from the lifecycle entirely until marked ready for review.

Flags that don't change the bucket

A few other badges can show up on a card alongside its bucket, but none of them move the PR into a different bucket:

  • Stale — open longer than the configured threshold (3 days by default).
  • Draft — not yet ready for review.
  • CI status — pending, passed, or failed.
  • Mergeable state — clean, conflicting, or unknown.

A PR can be Ready to Merge and still show a conflict badge — the badge tells you something extra is worth a look; it doesn't reclassify the PR.

Edits and deletions

When a comment on the PR is edited, the corresponding thread post updates in place. When a comment is deleted, its thread post is removed. Repository syncs silently refresh the card, so it stays accurate even after activity happens outside Slack's view.

On this page