| Provider | Auth method | PR author | Recommended setup |
|---|---|---|---|
| GitHub | GitHub App (installation token) | TigerGate Bot (app identity) | Install TigerGate GitHub App |
| Azure DevOps | Personal Access Token (PAT) | PAT owner’s identity | Use a dedicated service account |
| GitLab | Personal / Project / Group Access Token | Token owner’s identity | Project or Group token + service account |
| Bitbucket | App Password | Password owner’s identity | Use a dedicated service account |
Why a service account?
When TigerGate creates automated remediation PRs (fixing vulnerabilities, applying SAST fixes), the PR author is determined by the credential used:- GitHub Apps — PRs show as authored by
TigerGate[bot]. No extra setup. - PAT-based providers — PRs are attributed to the PAT owner. If you use your personal PAT, every fix PR will look like you opened it.
GitHub
GitHub connects only through the TigerGate GitHub App — the Connect GitHub button installs it, and there is no personal-access-token option in the dialog.Install the TigerGate App on your org
GitHub redirects you to the App install page. Pick Only select repositories to scope, or All repositories for org-wide.
Required permissions
The GitHub App requests:- Contents — Read & Write (push fix branches)
- Pull Requests — Read & Write (create PRs, leave inline comments)
- Metadata — Read (list repositories)
- Checks — Read & Write (post commit statuses for the quality gate)
Azure DevOps
Create a service account (recommended)
In Azure Active Directory, create a new user — e.g.
[email protected]. Add to your Azure DevOps organisation. Grant Contribute + Create branch under Project Settings → Repositories → Security.Generate a PAT as the service account
Sign in as the service account → User Settings → Personal Access Tokens → New Token.
| Field | Value |
|---|---|
| Name | TigerGate Automation |
| Organisation | Pick yours |
| Expiration | Up to 1 year (rotate) |
| Code scope | Read & Write |
| Pull Request Threads | Read & Write (for inline comments) |
TigerGate Bot (the service account’s display name).
PAT scope reference
| Scope | Permission | Purpose |
|---|---|---|
| Code | Read | Clone repos for scanning |
| Code | Read & Write | Push fix branches for remediation PRs |
| Pull Request Threads | Read & Write | Create and comment on PRs |
GitLab
Three token options, in order of preference:| Option | Scope | When to use |
|---|---|---|
| Project Access Token | Single project | Just one repo |
| Group Access Token | All projects in a group | Org-wide GitLab |
| Personal Access Token | Whatever your user can see | Solo / testing only |
Project Access Token (recommended for single repo)
Create the token
Project → Settings → Access Tokens → Add a new token.
- Role: Maintainer (needed for branch creation)
- Scopes:
api,read_repository,write_repository
Connect in TigerGate
Dashboard → Integrations → Code Providers → Connect GitLab. Paste the token.For a self-hosted / on-premise instance, tick “Self-hosted / On-premise GitLab” on the same GitLab card and enter your instance URL (e.g.
https://gitlab.yourcompany.com) — there’s no separate provider card. SaaS GitLab (https://gitlab.com) needs nothing extra. On-premise connections are stored as the gitlab-onpremise provider.Group Access Token (recommended for org-wide)
Same flow as Project Access Token, but at Group → Settings → Access Tokens. Sub-projects inherit access automatically.Bitbucket
Create a service account
Same recommendation as Azure DevOps — make a
tigergate-bot user, invite to your Bitbucket workspace, grant Write access on the repos to scan.Generate an App Password
Sign in as the service account → Personal settings → App passwords → Create app password.Permissions:
- Repositories — Read, Write
- Pull requests — Read, Write
After connecting
Once connected, every repository the credential can see appears under Code Security → Repositories. You can:- Scans run automatically — the initial scan starts on connect (org setting Auto-scan all repositories on connect, on by default), and connected repos re-scan on push / PR webhooks (set up below)
- Wire CI — head to CI/CD integration for the gating snippet
- Enable AI code review on PRs — turn it on per repository in the repo’s Settings → In-House Scanning (see below)
AI code review on PRs
TigerGate can post inline review comments on the exact changed lines of a pull request, plus one-click AI fix suggestions. It is off by default: enable it per repository — open the repo’s Settings, and under In-House Scanning turn on In-House PR Review — and connect an AI provider under Integrations → AI Provider (reviews are skipped when no AI credential is configured). Once enabled, no CI wiring is required; the provider’s PR/MR webhook drives it. See AI Code Review for the full behavior and per-provider setup.Provider webhooks (for auto-scan)
For push / PR events to auto-trigger scans, the provider has to POST to TigerGate when something happens. Most flows handle this for you, but the manual setup is here for reference and for auditors who need to know exactly what’s wired.When the webhook is set up automatically
| Provider | Auto webhook |
|---|---|
| GitHub | Automatic — the App handles it; nothing to do |
| GitLab (any token) | Manual — configure via the dashboard’s Webhook Setup (see below) |
| Bitbucket | Automatic on OAuth connect; manual for App Passwords (can’t manage repo webhooks) |
| Azure DevOps | Manual — PATs can’t manage Service Hooks |
Webhook URL format
GitLab and Azure DevOps post straight to your region:X-Gitlab-Token), Bitbucket via ?secret= in the URL, and Azure DevOps via the X-TigerGate-Webhook-Secret header — spelled out per provider below.
The signing secret is generated when you connect the provider — it’s distinct per-provider so a leaked GitHub secret can’t replay GitLab events. Find the exact URL + secret under Integrations → Code Providers → <provider> → Webhook Setup.
GitHub webhooks are configured at the App level and delivered automatically to every installation — there is no per-repo GitHub webhook to add.
GitLab
Fill the form
| Field | Value |
|---|---|
| URL | https://<api-host>/api/git-webhooks/gitlab — your region’s API host; copy it from Webhook Setup |
| Secret token | the signing secret from TigerGate |
| Triggers | Push events + Merge request events |
| SSL verification | enabled |
X-Gitlab-Token header on every delivery, and TigerGate enforces it — a missing or mismatched token is rejected. Paste the exact secret from the connect dialog.X-Gitlab-Token enforcement; just swap the host for your TigerGate instance if you run TigerGate on-prem too.
For org-wide setup use Group → Settings → Webhooks instead — the webhook fires for every project in the group, no per-repo wiring.
Bitbucket
Connecting via OAuth installs this webhook on every repo automatically (needs thewebhook scope). These manual steps are only for App Password connections, or repos where the auto-install couldn’t run.
Fill the form
| Field | Value |
|---|---|
| Title | TigerGate |
| URL | https://hooks.tigergate.dev/r/<region>/bitbucket?secret=<signing-secret> — copy it from Webhook Setup |
| Triggers | Repository: Push + Pull request: Created, Updated, Merged |
?secret=<signing-secret> — copy the full URL (secret included) straight from TigerGate’s connect dialog. TigerGate enforces it on every delivery. Bitbucket Server / Data Center can instead send the secret as the X-TigerGate-Webhook-Secret header.Azure DevOps
Open the project's Service Hooks page
Project → Project settings → Service hooks → Create subscription.
Pick the trigger
Service: Web Hooks → Code pushed (one subscription) and Pull request created + Pull request updated (two more subscriptions).
Action settings
| Field | Value |
|---|---|
| URL | https://<api-host>/api/git-webhooks/azuredevops — your region’s API host; copy it from Webhook Setup |
| Resource details to send | All |
| HTTP headers | X-TigerGate-Webhook-Secret: <signing-secret> |
Disabling auto-scan
If you only want manual / CI-driven scans, keep the connection but skip the webhook setup. Each repository’s Settings modal (opened from its detail page) also has an Enable In-House Scanning toggle under In-House Scanning — turn it off to skip webhook-triggered scans and reviews for that one repo.Rotation
| Provider | Rotation cadence | How |
|---|---|---|
| GitHub App | Automatic — installation token rotates every hour | Nothing to do |
| Azure DevOps PAT | 90–365 days, depending on policy | Issue new PAT, paste into the same dialog, save |
| GitLab token | 90–365 days | Same — replace in dashboard |
| Bitbucket App Password | No expiry, rotate manually | Replace + revoke old |