Integrations
Integrations connect Forge Logger to external issue trackers and notification services. When configured, bug reports can be exported as issues or notifications automatically or manually.
Supported providers
| Provider | What it does |
|---|---|
| GitHub | Creates a GitHub Issue in the configured repository |
| GitLab | Creates a GitLab Issue in the configured project |
| Jira | Creates a Jira ticket in the configured project |
| Discord | Sends a formatted message to a Discord webhook URL |
| Webhook | Sends a POST request with the report payload to a custom URL |
Setting up an integration
Navigate to your project’s Settings page and open the Integrations section. Each provider is a card — toggle it on to enable it and reveal its configuration fields. While configuring, you can open the in-app Setup guide (the help icon on each card) for these same steps.
GitHub
- Create a GitHub personal access token at github.com/settings/tokens.
A classic token needs the
reposcope; a fine-grained token needs Issues: Read and write on the target repository. - Expand the GitHub card, toggle it on, and fill in:
- Owner — the user or organization that owns the repo, e.g.
acme - Repository — the repository name only, e.g.
game-client - Token — the personal access token (stored encrypted)
- Labels — optional comma-separated labels applied to created issues
- Owner — the user or organization that owns the repo, e.g.
- Choose Manual or Automatic upload mode and click Save.
GitLab
- Create a GitLab personal (or project) access token with the
apiscope at gitlab.com/-/user_settings/personal_access_tokens. - Find your numeric Project ID under the project name on its homepage, or in Settings → General.
- Expand the GitLab card, toggle it on, and fill in:
- Host —
https://gitlab.comor your self-hosted instance URL - Project ID — the numeric project ID
- Token — the access token (stored encrypted)
- Labels — optional comma-separated labels
- Host —
- Click Save.
Jira
- Create an Atlassian API token at id.atlassian.com/manage-profile/security/api-tokens.
- Expand the Jira card, toggle it on, and fill in:
- Host — your site URL, e.g.
https://your-org.atlassian.net - Project Key — e.g.
GAME - Email — the Atlassian account email that owns the token
- API Token — the Atlassian API token (stored encrypted)
- Host — your site URL, e.g.
- Click Save.
Authentication uses HTTP Basic (email + API token). Issues are created as type Bug by default.
Discord
- In Discord, open Server Settings → Integrations → Webhooks and click New Webhook.
- Select the target channel and click Copy Webhook URL.
- Expand the Discord card, toggle it on, and paste the URL into Webhook URL.
- Click Save.
The webhook URL is itself the credential — keep it secret. It is stored encrypted.
Webhook
- Prepare an HTTPS endpoint that accepts the report payload and is reachable from the public internet.
- Expand the Webhook card, toggle it on, and fill in:
- Webhook URL — your HTTPS endpoint
- HTTP Method —
POST(default) orPUT - Authentication —
None,Bearer Token(sent asAuthorization: Bearer <token>), orBasic Auth(username + password) - Signature Secret — optional HMAC-SHA256 secret; the signature is sent in the
Signature Header (default
X-Webhook-Signature) assha256=<hex> - Timeout (ms) — optional, between 1000 and 30000
- Click Save.
Upload modes
| Mode | Behavior |
|---|---|
| Manual | Reports are exported only when you click “Export” on a report |
| Automatic | Every new report is automatically exported to the configured provider |
Managing integrations
- Enable / Disable — toggle an integration without removing it
- Update — change the configuration or credentials
- Delete — remove the integration entirely
Security
- Integration secrets (tokens, API keys, webhook secrets) are encrypted at rest using GCP Cloud KMS envelope encryption.
- The
hasSecretflag indicates whether a secret is configured. - The
secretFingerprintshows a hash of the stored secret for verification. - Secrets are never returned in API responses — only the fingerprint is visible.