SLAdar Docs

Put an SLA on code review in Bitbucket Cloud: set review deadlines, catch every stale pull request, nudge the right person on the PR, and see your compliance rate — all inside Atlassian.

Runs on Atlassian No external data egress Free tier planned Coming soon

What SLAdar does

Pull requests sit for days waiting on a review, and native Bitbucket gives you no way to see it, let alone act on it. SLAdar fixes that — without a Slack bot and without your code data leaving Atlassian.

You set a review SLA for the workspace. SLAdar then tracks every open pull request against that clock, flags the ones going at risk and breached, posts a nudge comment on the PR to the person who can unblock it, and shows a live dashboard plus a monthly compliance rate. It is a focused Forge app for Bitbucket Cloud — one job, done well.

Getting started

After a workspace admin installs SLAdar from the Atlassian Marketplace, you'll find it in three places:

Pull request card

On any pull request — a status pill and a live countdown to the review deadline.

Workspace dashboard

Workspace → SLAdar — every open PR vs SLA, plus the compliance summary.

Settings

Workspace settings → SLAdar settings — the review SLA policy.

Works on day one. Sensible defaults (first review within 8 working hours, merge decision within 48, weekends excluded) apply before you configure anything.

Set an SLA

From Workspace settings → SLAdar settings, configure one workspace policy:

Whole hours. SLAs are set in whole working hours — the smallest is 1 hour, and 2 hours if you want an early "at risk" warning stage (the hourly engine can't resolve finer). The warning window must be shorter than the smallest SLA budget.

SLAdar uses a simple, correct "skip weekends" clock — no timezone or business-hours engine yet. All time math is UTC.

The pull request card

On every pull request, the SLAdar card shows a status pill — On track, At risk, Breached, Met, or Draft — and a plain-English countdown for the clock that matters right now: the first-review deadline until someone reviews it, then the merge-decision deadline. So you'll see labels like Review SLA: 7h 59m remaining, Merge SLA: 1d 4h remaining, or Review SLA breached — 4h 12m over. A draft PR shows Draft — not tracked — the clock starts when it's marked ready for review. It recomputes live every time you open the PR, so it's always current between hourly sweeps.

Nudges

An hourly job checks every tracked PR against its SLA. When a PR crosses a stage, SLAdar posts a comment on the PR — delivered by Bitbucket's own notifications — and it targets the person who can actually unblock it:

SituationWho gets nudged
First-review SLA at risk / breachedThe reviewers ("please take a look").
First-review breached, no reviewer assignedThe author ("please add a reviewer").
Merge-decision SLA at risk / breachedThe author ("please merge or decline it").
Merged and declined PRs are never nudged. The hourly sweep also self-heals: it reconciles each tracked PR against Bitbucket, so a missed event (a force-push, a reopen, a reviewer change) is corrected on the next run.

Dashboard

Workspace → SLAdar lists every open PR with its number (linked), title (linked), repo, reviewers, age, and SLA status. Breached rows show in red and the list is sorted oldest-first, so the most-aged PRs rise to the top.

Filters

Narrow by repository (dropdown) or to breached only (toggle). Status is live — a PR that just crossed its deadline shows Breached on reload, before the next hourly sweep.

Compliance

Above the table, two cards summarise the month:

First review

% of decided PRs that got a first review within the SLA, with a met / missed / counted breakdown.

Merge decision

% of PRs decided (merged or declined) in time — breached if merged/declined late, or left open past the merge deadline.

Each card carries a health indicator (On track / Watch / At risk, or Not tracking when that SLA isn't set) and a progress bar. PRs still within their deadline are "pending" and excluded from the denominator — as are drafts and PRs closed before a review was due — so the number stays honest.

The two clocks are separate. A PR reviewed on time but left unmerged past its merge deadline counts as met on the First-review card and overdue on the Merge-decision card — the same PR, two different questions.

Privacy & permissions

SLAdar is built on Atlassian Forge and runs entirely inside Atlassian Cloud. It makes no requests to any external server and stores only a small SLA layer over each PR (PR number/title/link, author & reviewer display names, timestamps, SLA status, and the nudge ledger) plus your policy and settings. It does not store your code, diffs, commits, or comment threads.

ScopeWhy
read:pullrequest:bitbucketRead PRs (title, reviewers, state, timestamps) to track SLAs.
write:pullrequest:bitbucketPost the nudge comment on a stale PR.
read:repository:bitbucketIdentify the repository a PR belongs to.
read:workspace:bitbucketScope tracking and the dashboard to your workspace.
storage:appPersist the SLA layer, policy, and settings in Forge storage.

See the full Privacy Policy, Terms of Service, and Support SLA.

FAQ

Does SLAdar send anything to Slack or an external service?

No. SLAdar is "Runs on Atlassian" — it makes no external network calls. Nudges are comments posted on the pull request itself, delivered by Bitbucket's own notifications. Your code data never leaves Atlassian.

What's the difference between the first-review and merge-decision SLAs?

The first-review clock asks "did someone review this in time?" and is met when a reviewer first approves or requests changes. The merge-decision clock asks "was this resolved in time?" and is met when the PR is merged or declined. They run in parallel and are reported separately.

What's the smallest SLA I can set?

SLAs are whole working hours, so the minimum is 1 hour — or 2 hours if you want an early "at risk" warning before the breach. The background job runs hourly, so anything finer couldn't be enforced anyway.

How often are people nudged, and can it get spammy?

A PR is nudged at most once when it enters "at risk" and once when it breaches — never repeatedly. Set the warning window to 0 for breach-only nudges.

What if a PR has no reviewer assigned?

It's still tracked. When its first-review SLA breaches, the nudge asks the author to add a reviewer, since there's nobody else to chase.

Does it handle weekends and timezones?

The clock skips Saturdays and Sundays. It does not yet model business hours, holidays, or per-team timezones — time math is UTC. A correct simple clock beats a subtly wrong sophisticated one.

What does it cost?

A free tier is planned for small teams, with paid tiers above that. Billing is handled entirely by the Atlassian Marketplace.

Support

Questions, bugs, or feedback? Email support@outpostlabs.dev. We provide best-effort, asynchronous support — see the Support SLA for response targets.