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
4 linked development events · synced 12s ago
Built for the controls regulated teams have to prove
The problem
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 app | Self-hosted Git | Audit trail | Installs | Rating |
|---|---|---|---|---|
| GitHub for Atlassian (official, free) | × | × | 141,962 | 3.34 |
| GitLab for Jira Cloud (official, free) | × | × | 33,751 | 2.76 |
| Git Integration (paid, ~$2,610/yr) | limited | × | 8,923 | 4.43 |
| BastionTrail | ✓ | ✓ | — | new |
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
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.
How it works
No agent to install, no port to open. If your Git server can post a webhook to CI, it can talk to BastionTrail.
Add BastionTrail from the Marketplace. It runs on Atlassian Forge — nothing to host or patch on the Jira side.
In your self-hosted GitLab, add one outbound webhook with a secret. That is the entire server-side setup.
Commits, branches, merge requests, builds and deploys appear on the matching Jira issue — from a server the internet can't reach.
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 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?
Everything it does
Every capability solves a real failure of the tools regulated teams are stuck with today.
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.
ReliabilityProblem: 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.
ReliabilityProblem: 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.
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.
CorrectnessProblem: 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.
SecurityProblem: 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.
OperationsProblem: 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.
ComplianceProblem: 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.
SecurityProblem: 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.
PrivacySide by side
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.
| Capability | Official free apps | Paid Git integration | BastionTrail |
|---|---|---|---|
| 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 / agent | n/a | × | ✓ |
| Billed transparently by Atlassian | ✓ | ✓ | ✓ |
Security
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.
Every call from Jira validated RS256 against Atlassian's JWKS — issuer, audience and expiry enforced.
Each install's webhook secret compared in constant time. No shared keys.
All traffic over TLS; managed PostgreSQL with full-disk encryption at rest.
Uninstall triggers automatic erasure of that install's events, keys and health state.
No more guessing why a link never appeared — every delivery, with a reason.
Who it's for
If an auditor can ask who approved a production change, BastionTrail was built for you.
Git lives on an isolated network by regulation. You still owe SOX and regulators proof of change control for everything that reaches prod.
PHI-adjacent systems demand strict access and change records, but the official apps can't even see a self-hosted repo.
Air-gapped-adjacent environments with zero inbound access and heavy audit obligations.
Integrations
We ship what actually works. Three self-hosted servers connect today — GitLab is the one proven end to end with a real instance.
Gitea and per-region hosting (US / EU) for data residency are also planned. Need one sooner? Tell us.
Roadmap
Honest status. The core is validated end-to-end; the work now is turning it into the app a bank installs.
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.
PostgreSQL persistence, Forge Invocation Token validation, automatic per-tenant project discovery, and a hosted backend on a stable domain with TLS.
Approved and published by Atlassian. Paid via Atlassian with a 30-day free trial — the connector itself stays free.
CSV and printable audit export, GitHub Enterprise Server and Bitbucket Data Center, retroactive backfill, and a hash-chained trail with signed external anchors.
Per-region hosting so European customers keep their audit trail in the EU. The backend is already region-aware.
Pricing
No checkout, no invoices to chase, no payment data with us. Atlassian bills it on your existing Jira invoice.
The integration the official app can’t do. Free, no user limit.
The evidence an auditor asks for, on demand.
Discounts apply automatically as you grow.
Benchmark: the leading paid competitor charges ~$2,610/yr for 100 users — and can't reach self-hosted Git.
FAQ
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.
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.
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.
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."
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.
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.
Live on the Atlassian Marketplace. The connector is free and installs in minutes; the audit trail reports come with a 30-day trial.