Live on the Atlassian Marketplace · installs in minutes

The Git integration for Jira that works behind your firewall

The official GitHub and GitLab apps are pull-based — they can never reach a Git server on a private network. BastionTrail flips the direction: your self-hosted Git sends an outbound webhook, so it just works — and every commit becomes an exportable audit trail your compliance team actually needs.

Connector free · audit trail reports from $2.26/user/mo, billed by Atlassian · no inbound ports, no VPN, no agent

jira.your-company.com / KAN-142
COMMIT
KAN-142 harden webhook secret comparisona3f19c2 · main
WFW. Ferreira
BRANCH
feature/KAN-142-constant-time2 commits ahead
WFW. Ferreira
MERGE
!318 merged into mainapproved by A. Silva
ASA. Silva
DEPLOY
Deployed to productionpipeline #2471 · success
✓ live

Built for the controls regulated teams have to prove

SOC 2 ISO 27001 SOX change control GDPR / LGPD PCI DSS change mgmt

The problem

190,000 installs of integrations people can't stand

Atlassian Marketplace data, July 2026. The free official apps have been abandoned at 2–3 stars for years. The one competent paid app is expensive — and still can't reach a Git server behind a firewall. Regulated teams are stuck choosing between broken and blind.

Atlassian Marketplace appSelf-hosted GitAudit trailInstallsRating
GitHub for Atlassian (official, free)××141,9623.34
GitLab for Jira Cloud (official, free)××33,7512.76
Git Integration (paid, ~$2,610/yr)limited×8,9234.43
BastionTrailnew

People already pay to escape the official app. Until now there was only one place to escape to — and it left self-hosted teams behind.

Why it works

Push, not pull

The official apps ask Atlassian's cloud to call into your Git server's API. On a private network that inbound call can never connect — it's the architecture, not a bug you can configure away.

BastionTrail inverts it. Your Git server sends an outbound webhook to us, exactly like the ones it already sends to CI. Corporate servers almost always have outbound internet even when they allow zero inbound access and no VPN — so it simply works, with nothing exposed.

No inbound firewall rules No VPN or reverse tunnel No agent on your servers
architecture · outbound webhook
Jira CloudForge app + issue panelBastionTrail.NET 8 + PostgreSQLapi.bastiontrail.comFIREWALL / PRIVATE NETWORKSelf-hosted GitGitLab CE / EEFIT (RS256)webhook OUTinbound pull: blockedYour Git reaches out. Nothing on your network is ever exposed to the internet.

How it works

Four steps. One afternoon.

No agent to install, no port to open. If your Git server can post a webhook to CI, it can talk to BastionTrail.

Install the Jira app

Add BastionTrail from the Marketplace. It runs on Atlassian Forge — nothing to host or patch on the Jira side.

Point one webhook

In your self-hosted GitLab, add one outbound webhook with a secret. That is the entire server-side setup.

See it in the issue

Commits, branches, merge requests, builds and deploys appear on the matching Jira issue — from a server the internet can't reach.

Export the audit trail

For any issue, pull the full chain from commit to production deploy, with the approver — ready to hand an auditor.

Where the value is

A change record your auditors accept

A nice integration is a commodity. An exportable audit trail is a compliance tool. BastionTrail records the whole chain and answers the one question every regulator asks: which code, approved by whom, reached production — and when?

Commit
a3f19c2
KAN-142 · W. Ferreira
Merge request
!318 approved
reviewer: A. Silva
Build
pipeline #2471
passed · 3m 04s
Deploy · production
✓ live
exportable evidence
Who approved the change What reached production When it shipped Exportable for the auditor

Everything it does

Built for the details that break naive integrations

Every capability solves a real failure of the tools regulated teams are stuck with today.

Works behind the firewall

Problem: pull-based apps can't reach private Git. How: an outbound webhook from your server to us. You get: the integration that everyone else says is impossible on-prem.

Reliability

Never fails silently

Problem: the official app just stops linking, with no warning. How: every webhook is recorded with a readable reason. You get: a health view that shows the last success and any failure at a glance.

Reliability

Correct issue-key parser

Problem: emoji, CJK and RTL text silently break the link. How: a Unicode-hardened matcher with a strict allowlist. You get: real keys linked, and noise like UTF-8 never mistaken for one.

Correctness

Idempotent by design

Problem: retried webhooks pile up duplicates on the ticket. How: a deterministic content hash de-duplicates every event. You get: a webhook delivered twice recorded exactly once.

Correctness

Secure by construction

Problem: integrations become the soft spot in your supply chain. How: per-tenant webhook secrets in constant-time compare; Forge tokens verified RS256. You get: a connector that stands up to a security review.

Security

Auto project discovery

Problem: static key lists rot and cause false links. How: the app reads your real Jira project keys and syncs the allowlist per tenant. You get: zero config to maintain as projects change.

Operations

Exportable change trail

Problem: proving "who shipped what" is a manual scramble at audit time. How: the full commit-to-production chain is captured per issue. You get: evidence you can hand to an auditor, not rebuild.

Compliance

Isolated per tenant

Problem: shared multi-tenant stores worry security teams. How: each installation's data is scoped to that installation in PostgreSQL over TLS. You get: your data, kept to itself.

Security

Data minimization

Problem: the more it stores, the bigger the risk. How: we keep only linking metadata — never your source code, files or secrets. You get: a smaller attack surface and an easier legal review.

Privacy

Side by side

Why teams switch

The official apps are free and blind. The paid one is capable and expensive — and still can't come on-prem with an audit trail.

CapabilityOfficial free appsPaid Git integrationBastionTrail
Reaches self-hosted Git behind a firewall×limited
Exportable change audit trail××
Readable failures + health view×partial
Unicode-safe issue-key parsing×partial
No inbound access / VPN / agentn/a×
Billed transparently by Atlassian

Security

Designed to pass a security review

Compliance is the whole point — so security isn't a feature, it's the foundation. Every request in and out is authenticated, encrypted and minimized.

Signed Forge tokens

Every call from Jira validated RS256 against Atlassian's JWKS — issuer, audience and expiry enforced.

Per-tenant secrets

Each install's webhook secret compared in constant time. No shared keys.

TLS + encryption at rest

All traffic over TLS; managed PostgreSQL with full-disk encryption at rest.

Erased on uninstall

Uninstall triggers automatic erasure of that install's events, keys and health state.

Read the security overview

delivery health · last 5 events
push · a3f19c2 → KAN-14212s ago
merge_request · !318 → KAN-1421m ago
deployment · production2m ago
rejected: signature mismatch (bad secret)8m ago
pipeline · #2470 success14m ago

No more guessing why a link never appeared — every delivery, with a reason.

Who it's for

When shipping to production is a regulated event

If an auditor can ask who approved a production change, BastionTrail was built for you.

🏦

Banking & fintech

Git lives on an isolated network by regulation. You still owe SOX and regulators proof of change control for everything that reaches prod.

Solves: on-prem visibility + exportable approval-to-deploy evidence.
🏥

Healthcare

PHI-adjacent systems demand strict access and change records, but the official apps can't even see a self-hosted repo.

Solves: HIPAA-style change traceability without exposing your network.
🏛

Government & defense

Air-gapped-adjacent environments with zero inbound access and heavy audit obligations.

Solves: outbound-only integration + a defensible change trail.

Integrations

What connects today — and what's next

We ship what actually works. Three self-hosted servers connect today — GitLab is the one proven end to end with a real instance.

GL
GitLab CE / EE
Available
JC
Jira Cloud
Available
GH
GitHub Enterprise
Available
BB
Bitbucket Data Center
Available

Gitea and per-region hosting (US / EU) for data residency are also planned. Need one sooner? Tell us.

Roadmap

From proven core to production trust

Honest status. The core is validated end-to-end; the work now is turning it into the app a bank installs.

Shipped

Proven end-to-end

Self-hosted GitLab → .NET backend → Forge → Jira Cloud, running against a real instance. Unicode-safe parser, idempotency, secret auth and the audit chain — all validated by 42 passing tests.

Shipped

Production backend

PostgreSQL persistence, Forge Invocation Token validation, automatic per-tenant project discovery, and a hosted backend on a stable domain with TLS.

Shipped

Live on the Marketplace

Approved and published by Atlassian. Paid via Atlassian with a 30-day free trial — the connector itself stays free.

Shipped

Export, more servers, tamper-evidence

CSV and printable audit export, GitHub Enterprise Server and Bitbucket Data Center, retroactive backfill, and a hash-chained trail with signed external anchors.

Next

EU data residency

Per-region hosting so European customers keep their audit trail in the EU. The backend is already region-aware.

190k+
installs of official apps rated 2–3 stars
100%
outbound — zero inbound access required
42
tests on a zero-dependency core
<5 min
to connect one webhook and go live

Pricing

Billed per Jira user, by Atlassian

No checkout, no invoices to chase, no payment data with us. Atlassian bills it on your existing Jira invoice.

Connector
$0

The integration the official app can’t do. Free, no user limit.

  • Self-hosted GitLab, GitHub ES, Bitbucket DC
  • Code & deploys on every issue
  • Delivery health view with readable failures
  • Self-service setup, no licence required
Install free
Compliance
Audit Trail reports
$2.26 / user / mo

The evidence an auditor asks for, on demand.

  • Project export (CSV + printable PDF)
  • % of changes with a complete trail
  • Segregation-of-Duties detection
  • Tamper-evident, verifiable offline
  • Minimum $22.63/mo — covers up to 10 users
  • 30-day free trial, billed by Atlassian
Start free trial
Volume
from $0.61 / user / mo

Discounts apply automatically as you grow.

  • Tiered pricing from 101 users
  • Annual billing at 10× the monthly rate
  • EU data residency on request
  • Security questionnaire support
Talk to us

Benchmark: the leading paid competitor charges ~$2,610/yr for 100 users — and can't reach self-hosted Git.

FAQ

Questions, answered

Does it really work with self-hosted GitLab behind a firewall?

Yes — that's the entire point. Your GitLab server sends an outbound webhook to us, so it works on a private network with no inbound access, no VPN and no agent. Today we support self-hosted GitLab (CE and EE); GitHub Enterprise Server and Bitbucket Data Center are on the roadmap.

Do I have to open a firewall port or install an agent?

No. There is no inbound connection and nothing to run on your servers — just one outbound webhook, exactly like the ones you already send to CI.

What data do you store, and where?

Only the metadata needed to link events and build the audit trail: commit/branch/MR references, approver, pipeline and deploy status, author name, Jira keys and timestamps. We never store your source code, files, passwords or payment data. It lives in an isolated PostgreSQL database over TLS. See the privacy policy and security overview.

What is the audit trail, exactly?

For each issue, the full chain from commit to production: commit → merge request (with approver) → build → deployment — exportable as evidence for SOC 2, ISO 27001, SOX and banking audits. It answers "which code, approved by whom, reached production, and when."

How is it priced?

The connector is free: code and deploys on your issues, the Setup page and the health dashboard cost nothing, with no user limit. The Audit Trail reports — project export with the completeness score and Segregation-of-Duties checks — are the paid plan: $2.26 per Jira user/month, with a minimum of $22.63/month covering up to 10 users, and volume discounts from 101 users. Billed by Atlassian on your existing invoice, with a 30-day free trial. You never hand us payment data.

What happens to my data if I uninstall?

An uninstall trigger immediately and automatically erases that installation's data from our backend — events, synced project keys and health state. You can also request export or deletion at any time.

Stop losing commits behind the firewall

Live on the Atlassian Marketplace. The connector is free and installs in minutes; the audit trail reports come with a 30-day trial.