self-hosted

From ticket to merged pull request

EnsureFix reads the ticket, writes the code, reviews the diff for bugs and security issues, and opens the pull request. You review and merge.

It runs on your own infrastructure — your servers, your repositories, your provider keys.

30-day full-feature evaluation, no sign-up. Or explore the features.

Works withGitHubGitLabBitbucketAzure DevOpsJira
ensurefix · run #4127
PROJ-2841Running

Session expires mid-checkout

0m 00selapsed of 4m 12s

  1. PlannerTraced root cause to 3 files
  2. CoderPatched session refresh guard
  3. Reviewer16 checks · 0 blocking
  4. SecuritySAST clean · no secrets
  5. PublisherOpened PR #4127

src/auth/session.ts

+14 −6
export async function refresh(s: Session) {
- if (s.expiresAt < Date.now()) return null;
+ const skew = 30_000; // clock drift guard
+ if (s.expiresAt - skew < Date.now()) {
+ return renew(s.refreshToken);
+ }
return s;
}

Checks

16/16

Coverage

+2.4%

Risk

SAFE

The queue nobody gets to

Small tickets do not get scheduled

Every team carries a queue of one-line bugs, flaky tests and dependency bumps. None of them is worth a sprint slot on its own. Together they are months of work that never happens.

PROJ-2841Session expires mid-checkout14dbug
PROJ-2799Retry logic swallows the error cause31dbug
PROJ-2740Flaky test: checkout.spec.ts58dtest
PROJ-2688Bump axios for three open advisories89dsecurity
PROJ-2601Dead code in the legacy billing path134dchore

None of these is hard. Every one of them is someone’s afternoon, and nobody has the afternoon.

why teams switch

An assistant suggests. EnsureFix ships.

Completion tools and chat windows help you write a line. EnsureFix owns the whole errand, from the ticket to the branch, with the audit trail to prove it.

engineering/workflow+4−4
Removed: −You read the ticket and work out what to changean hour, if it is a good ticket
Added: +The planner reads it and names the exact filesranked, 3 of 1,842
Removed: −You write the change, then you write the testsand rerun them by hand
Added: +The coder writes both and reruns until they passself-healing
Removed: −You wait for a colleague to look at the diffwhenever they are free
Added: +Sixteen checks and a security scan run before it opens0 blocking
Removed: −You remember why you did it that wayor you do not
Added: +The reasoning trace is attached to the pull request7 layers

Reading the diff and deciding to merge stays yours. That is the one line EnsureFix does not try to remove.

The pipeline

Every ticket, woven into one reviewed pull request

Issues arrive from wherever your team files them. Eight agents plan the change, write it, review the diff, scan it for vulnerabilities and prove it with tests, then hand you a branch to merge.

Sources

Jira issues
GitHub issues
Azure Boards

EnsureFix

8 agents · plan, code, review, scan

Output

Pull requests
Tests + coverage
Security findings

0

Specialised agents

0

Checks before a PR opens

0

Stages per run

AES-256

Credential encryption

Under the hood

How a ticket becomes a pull request

Six stages, each one an agent with a narrow job and a written trace. You decide where to approve and where to let it run.

  1. 01

    Ticket arrives

    Webhook from Jira, GitHub or Azure DevOps opens a run.

    intake

  2. 02

    The fix is planned

    The codebase is analysed, the files identified, a plan written.

    planner

  3. 03

    Code is generated

    Production code, self-healing when the tests come back red.

    coder · tester

  4. 04

    Reviewed and validated

    Security scan, 16-point validation, a confidence score.

    reviewer · security

  5. 05

    Pull request opened

    Branch pushed, CI watched, failures fixed automatically.

    publisher

  6. 06

    The next run is better

    What you accepted and what you sent back both change the weights.

    learning engine

What EnsureFix does

Three things, done properly

Fix tickets, review pull requests, catch security issues. Adopt one and add the others when you're ready. They share the same pipeline and the same audit trail.

AUTO-FIX

Ticket → pull request

Point EnsureFix at a ticket. It works out what to change, writes the code, checks it for bugs, and opens a PR. You review the diff and merge.

  • Root cause analysis
  • Multi-file code generation
  • Self-healing on test failures
  • Confidence-based auto-merge
  • CI failure auto-recovery
PR REVIEW

AI review on every PR

Every pull request gets reviewed: inline comments on the diff, security issues flagged, style violations caught. A reviewer that never gets tired.

  • Inline code comments on PRs
  • Security vulnerability detection
  • Best practice enforcement
  • Auto-fix suggestions with patches
  • Severity scoring: SAFE / REVIEW / BLOCK
SECURITY

Security scanning, built in

Catches hardcoded secrets, SQL injection, XSS, insecure Docker configs, vulnerable dependencies and licence issues, on every commit.

  • SAST with CWE tracking
  • Secret and API-key detection
  • Dockerfile, Terraform, K8s scanning
  • Dependency vulnerability checks
  • Licence compliance validation

Beyond the core

And a good deal more

The pipeline earns its keep on tickets and reviews. These are the things teams end up using every day once it's in.

Test generation

Writes the cases the change needs, then proves they fail without it.

Codebase Q&A

Answers about your repository, each one citing the files it read.

DORA metrics

Deployment frequency, lead time, change failure rate and MTTR.

Browser reproduction

Replays a UI bug in Playwright and keeps the console and network trace.

Learns from feedback

Every accept and reject moves the weights behind the next run.

Reasoning traces

Seven layers of why, from ticket interpretation to final risk call.

Review

Nothing merges without a second opinion

Every diff, human-written or agent-written, gets the same treatment. Findings land as inline comments with a severity, the rule they tripped, and a patch you can apply in one click.

SAFE
Merge freely
REVIEW
Human eyes
BLOCK
Stop the merge
How review works
pull request #4127 · review
BLOCK

SQL built from request input

api/orders.ts:88

CWE-89 · use a parameterised query

REVIEW

Unbounded file read into memory

lib/upload.ts:34

Stream the body or cap the size

SAFE

Naming and structure consistent

ui/Cart.tsx:12

No action needed

Patch ready for 2 of 3 findingsApply patches

when it gets it wrong

Being wrong is a state the pipeline plans for

Confidence is scored before anything is applied, and the score decides what happens next. Two of the three outcomes end with a person, not a commit.

auto_apply

High confidence, low blast radius, every check green.

The branch is pushed and the pull request opens. You review it like any other.

needs_review

The change is larger than expected, or a check came back ambiguous.

Nothing is pushed. The diff, the confidence breakdown and the reasoning trace wait for a person.

block

A security finding, a forbidden path, or a pattern this repo has rejected before.

The run stops and says why. Overriding it takes an explicit acknowledgement.

what a rejection actually does+3−1
Removed: −The change is discarded and the same mistake arrives tomorrow
Added: +Your comment becomes a targeted prompt and the run retries
Added: +The signal that misfired loses weight for this repository
Added: +An approach rejected often enough stops being proposed at all

EnsureFix never force-pushes and never writes to your default branch. Commit policies can block paths, file counts and risk levels outright.

Measurement

Every run is accounted for

Reasoning traces show why each decision was made. DORA metrics show what it did to your delivery. Per-token costs show what it spent doing it.

delivery · last 30 days

Where the run time goes

Code generation46%
Review + validation27%
Security scan14%
Planning9%
Publish4%

Deployment frequency

Merged EnsureFix branches reaching your default branch, per week

Lead time for change

First commit on the branch to merge, measured per ticket

Change failure rate

Share of merged runs followed by a revert or hotfix

Mean time to restore

Failing check to green, including self-healing retries

ensurefix · run
$ docker compose up -d
✓ dashboard, worker, proxy up
✓ licence: trial · 30 days remaining
$ ensurefix run PROJ-2841
planner → 3 files, 1 test
coder → patch written
reviewer → 16/16 checks
security → 0 findings
✓ opened PR #4127 (4m 12s)

Getting started

Installed and running the same day

  1. 1Deploy itLoad the images, fill in the .env, docker compose up. Four commands on a server you own, and the 30-day evaluation starts by itself.
  2. 2Connect the repoPoint it at GitHub, GitLab, Bitbucket or Azure DevOps with credentials you supply and scopes you choose.
  3. 3Point it at a trackerPick the project and the labels that should open a run. Everything else is ignored.
  4. 4Review the first PRThe first ticket runs end to end. Approve the diff, or send it back with a comment the agents learn from.

where it runs

On your infrastructure, not ours

EnsureFix installs as Docker containers inside your own network. There is no hosted tier to sign up for, and no copy of your code on our side.

Stays with you

  • Every database and audit log
  • Repository clones and workspaces
  • VCS and model credentials, encrypted at rest

Leaves, because you point it there

  • Your AI provider, carrying the code being worked on
  • Your VCS, to read repositories and open pull requests

Both are endpoints and credentials you choose. Nothing goes to EnsureFix.

Try it first

30 days

A full-feature evaluation that starts by itself on install — no key, no sign-up, no card. When it ends the deployment goes read-only and your data is preserved.

What happens after 30 days →

Common workflows

Most teams start with one of these

Pick whichever hurts most. The others are a setting away once the first one is earning its keep.

Bug fixes on autopilot

Point EnsureFix at your bug tickets. It reads the issue, traces the root cause, generates a fix, validates it against 16 safety checks, and opens a PR.

Average fix time: 4 minutes

CI failure recovery

When CI breaks, EnsureFix reads the failure logs, diagnoses the issue, generates a fix and pushes, often before anyone notices.

60 to 70% of CI failures auto-resolved

Backlog burndown

Two hundred low-priority tickets gathering dust? Run them in batches while the team stays on the architecture work.

50+ tickets processed per week

Encrypted credentials

AES-256-GCM at rest

No code leaves

Cloned inside your network

Full audit trail

Every decision recorded

Self-hosted

Runs on your own servers

the same queue, a week later

Every one of those tickets is a pull request now

The backlog from the top of this page, run through the pipeline. Same five items, same repository, times taken from the runs themselves.

acme/payments · this week+5−5
Removed: −Session expires mid-checkoutopen 14 days
Added: +fix: guard session refresh against clock driftPR #4127 · 4m 12s
Removed: −Retry logic swallows the error causeopen 31 days
Added: +fix: preserve cause through retry wrapperPR #4131 · 3m 04s
Removed: −Flaky test: checkout.spec.tsopen 58 days
Added: +test: stabilise checkout spec against racePR #4136 · 6m 41s
Removed: −Bump axios for three open advisoriesopen 89 days
Added: +chore: bump axios, clear three advisoriesPR #4140 · 2m 18s
Removed: −Dead code in the legacy billing pathopen 134 days
Added: +refactor: drop unreachable legacy billing branchPR #4144 · 5m 27s

on your own infrastructure

Run it against your real backlog

Install the bundle on a server you own and evaluate the whole product for 30 days. No sign-up, no card, no call required first.