Integrations
Connect Octopus with your existing tools for automated code reviews and seamless team workflows.
Setup checks and recovery
Settings → Integrations shows authorization, repository sync and webhook configuration separately. Not checked means there is no setup evidence yet. A configured webhook does not prove that a PR event has reached Octopus; follow the first-review guide to confirm the review completes. Forgejo webhooks remain manually configured and unconfirmed until a successful review.
An organization owner or admin can use Retry setup or Check setup for the affected provider. The check preserves credentials and checks existing repositories as well as newly discovered ones. GitLab uses project webhooks; Bitbucket uses a workspace webhook.
If an existing GitLab or Bitbucket webhook has ambiguous ownership, Octopus leaves it unchanged and does not create a duplicate. Open Repair an existing webhook in the integration card only after identifying it from your saved hook ID or team records. A matching callback URL alone is not proof of ownership. Leave unclear hooks untouched and ask the person who configured them.
For a confirmed hook, use the current connection secret and exact callback URL shown in the repair details, plus the description for Bitbucket. Follow the event and TLS instructions there, save the provider settings, then run the setup check again. After disconnecting and reconnecting, reload the details and save the current secret and connection marker together; an old hook does not establish readiness for a new connection.
Reauthorizing the same GitLab host and namespace or Bitbucket workspace preserves its signing secret. To replace that binding, an owner or admin must explicitly disconnect and reconnect; the new connection has a distinct signing secret. Disconnecting leaves remote hooks in place. Remove obsolete hooks you own in the provider settings, or repair them for the new connection using the steps above.
GitHub
Install the Octopus GitHub App to enable automatic PR reviews, check runs, and inline code comments.
Setup
- Install the Octopus GitHub App from the settings page
- Select which repositories to monitor
- PRs are reviewed automatically on open and update
Automatic PR Reviews
Every new or updated pull request gets an AI-powered review with severity levels and inline comments.
Check Runs
Review results appear as GitHub check runs. Critical findings block merge with REQUEST_CHANGES.
Inline Comments
Findings are posted as line-by-line review comments directly on the diff.
Issue Creation
Create GitHub issues directly from review findings for tracking and follow-up.
GitLab
Connect your GitLab account for automatic merge request reviews. Works with both gitlab.com and self-hosted GitLab instances.
Setup
- Connect GitLab from the settings page via OAuth
- For self-hosted GitLab, register your own OAuth application and enter the instance URL and credentials
- Select projects to monitor — project webhooks are created automatically
- MRs are reviewed automatically on open and update
MR Reviews
Automatic reviews on merge request creation and updates, with severity-rated findings.
Inline Comments
Findings posted as line-by-line discussion notes directly on the MR diff.
Self-Hosted Support
Bring your own GitLab instance. Per-org OAuth credentials override gitlab.com defaults.
Project Webhooks
One webhook per project is registered at sync time — no Premium tier required.
Bitbucket
Connect your Bitbucket workspace for automated PR reviews with OAuth-based authentication.
Setup
- Connect Bitbucket from the settings page via OAuth
- Octopus checks or creates the workspace webhook during repository sync; see setup checks above for recovery
- Reviews are posted as PR comments with inline code feedback
PR Reviews
Automatic reviews on pull request creation and updates.
Inline Comments
Findings posted as inline comments on specific lines in the diff.
Webhooks
Automatic webhook management for real-time PR event processing.
Forgejo
Choose a connection based on where Octopus runs and whether your Forgejo instance is reachable from the internet. All three options review pull requests and post comments and commit statuses.
Before you connect
Create a dedicated Forgejo account with admin access only to the repositories you want reviewed. It does not need instance administrator access. In that account's Settings → Applications, generate a token with read:user, write:repository and write:issue. For private repositories, choose the token's All (public, private, and limited) repository access option. Restrict access through the dedicated account's repository permissions: Forgejo's Specific repositories tokens cannot include read:user, which Octopus uses to identify the connected account. See Forgejo's token scope guide.
One Forgejo instance can be connected per Octopus organization. Only repositories the connected account administers are synced.
1. Octopus Cloud + public HTTPS
Use this when Octopus Cloud can reach your Forgejo instance over public HTTPS. Forgejo also needs outbound HTTPS access to Octopus Cloud for webhooks.
- Open Octopus Cloud → Settings → Integrations → Forgejo and choose Public HTTPS instance.
- Enter the public HTTPS instance URL and the Forgejo personal access token. Connect and sync repositories. Octopus stores this token encrypted.
- Add the signed repository webhooks, then prepare your repository and enable reviews.
2. Octopus Cloud + private LAN/VPN
Where is the connector?
The Forgejo connector is a small Docker container. Run it on an always-on machine in the same LAN or VPN as Forgejo. Docker downloads the connector image automatically when you run the command in step 4.
Have these ready
- Owner or admin access in your Octopus organization. You need this to create and manage the connector.
- Docker on the connector machine. The container must be able to reach Forgejo through your LAN/VPN routes and DNS. Access from your laptop's browser alone is not enough.
- A verified HTTPS Forgejo address. Use its hostname or LAN/VPN IP, including a port if needed, without a path. HTTP, redirects, localhost, loopback, link-local and metadata addresses are blocked. An internal certificate authority needs the trusted CA setup in step 4.
- Outbound internet access. Both Forgejo and the connector need HTTPS access to
octopus-review.aion port 443. Forgejo sends webhooks directly to Cloud. You do not need a tunnel, a public Forgejo address or inbound ports on the connector.
Your Forgejo token stays on the connector machine. Code, diffs and review context still travel to Octopus Cloud and your configured AI services. This keeps Forgejo private; review processing happens in Cloud.
In Forgejo
Create the Forgejo access token
Sign in with a dedicated account that administers only the repositories you want reviewed. It does not need instance administrator access.
Open that account's Settings → Applications and generate a personal access token with
read:user,write:repositoryandwrite:issue.For private repositories, choose All (public, private, and limited); limit access through the account's repository permissions. Full token requirements.
Keep this token locally. It becomes
FORGEJO_TOKENin step 3. You do not paste it into Octopus Cloud.In Octopus Cloud
Create the connector token
Open Forgejo settingsIn Settings → Integrations → Forgejo, select Private network connector. Enter your exact HTTPS Forgejo address and click Create connector.
Click Copy connector token and save it securely; it is shown only once. This separate token pairs your local connector with Octopus and becomes
OCTOPUS_CONNECTOR_TOKENbelow.On the connector machine
Create your configuration file
Create a file named
connector.envand paste this template. Replace the example address and both token placeholders.connector.envOCTOPUS_URL=https://octopus-review.ai OCTOPUS_CONNECTOR_TOKEN=YOUR_CONNECTOR_CREDENTIAL FORGEJO_URL=https://forgejo.internal.example FORGEJO_TOKEN=YOUR_FORGEJO_PERSONAL_ACCESS_TOKENOCTOPUS_CONNECTOR_TOKEN- The one-time token from Octopus in step 2.
FORGEJO_TOKEN- The personal access token from Forgejo in step 1.
Keep this file private and out of your Git repositories.
On the connector machine
Start the connector with Docker
Open a terminal in the folder containing
connector.envand run this command. It downloads the connector and starts it in the background. Keep the container running for indexing and reviews.If Forgejo uses an internal certificate authority, use the trusted CA command below instead.
Terminal — start the connectorchmod 600 connector.env docker run -d --name octopus-forgejo-connector \ --restart unless-stopped --stop-timeout 120 --read-only \ --env-file connector.env \ ghcr.io/octopusreview/octopus-selfhost:forgejo-connector-1.2.0Using an internal certificate authority?
Before starting the container, add this line to
connector.env:Add to connector.envNODE_EXTRA_CA_CERTS=/certs/forgejo-ca.pemUse the command below, replacing
/absolute/path/forgejo-ca.pemwith the trusted PEM certificate file on your machine. The file is mounted read-only. Keep TLS certificate verification enabled.Terminal — start with your trusted CAchmod 600 connector.env docker run -d --name octopus-forgejo-connector \ --restart unless-stopped --stop-timeout 120 --read-only \ --env-file connector.env \ --mount type=bind,src=/absolute/path/forgejo-ca.pem,dst=/certs/forgejo-ca.pem,readonly \ ghcr.io/octopusreview/octopus-selfhost:forgejo-connector-1.2.0Back in Octopus Cloud
Check the connection and sync repositories
Return to Forgejo settings and click Refresh status. When the status reads Connector online, click Sync repositories.
Only repositories the Forgejo account administers will appear. If the status stays Waiting for connector or Connector offline, check that its container can reach both Forgejo and Octopus Cloud before continuing.
In each Forgejo repository
Add the signed webhook
Open the repository's Settings → Webhooks → Add Webhook → Forgejo. Copy the webhook URL and secret shown in Octopus Forgejo settings.
- Use POST and
application/json. - Under Trigger on, choose Custom events….
- Under Pull request events, select Modification and Synchronized to review new pull requests and pushed commits.
- In that same group, select Comments for
@octopusor/octopusPR commands. Keep Active checked and save the webhook.
The webhook goes directly from Forgejo to Octopus Cloud. Webhook and review-event details.
- Use POST and
In Octopus Cloud
Confirm readiness and open your first PR
- Open Repositories and click your Forgejo repository.
- Confirm Auto Review is on in the repository panel; enable it if needed. You can change this setting while preparation is running.
- Octopus indexes and analyzes automatically when a review starts. You can open a PR without clicking Index now or Run Analysis. Preparation progress appears in the repository panel and the first-review guide.
Try your first review
Open a non-draft pull request in Forgejo and follow it in Review Logs. Check that the review completes and its comments and final commit status appear on Forgejo. A successful webhook test alone does not confirm the full review flow.
Reconnect, rotate a token, or remove the connector
Offline: restore the container's network access and click Refresh status. Keep the connector running for indexing, reviews and comment publication.
Rotate the connector token: generate a replacement in Octopus, update connector.env, then stop and remove the existing Docker container and run the matching command from step 4 again. A plain docker restart does not reload the environment file. The old connector token stops working.
Paused after an uncertain write: a comment or status may have reached Forgejo even if its result was lost. Check the affected PR before choosing Resume after checking Forgejo. Octopus does not automatically replay that write.
Disconnect: disconnecting in Octopus deactivates the repositories. Remove their webhooks, stop the local connector and revoke the Forgejo personal access token too.
3. Self-hosted Octopus + private LAN/VPN
Run your own Octopus web application and review workers where both can reach Forgejo. Enable self-host mode and explicitly allow the exact HTTPS origin through FORGEJO_ALLOWED_PRIVATE_ORIGINS. This direct connection does not require the local connector.
- Follow the self-hosted network, DNS and certificate setup on both web and review workers.
- In your Octopus Settings → Integrations → Forgejo, enter the private HTTPS origin and personal access token, then click Connect Forgejo to connect and sync repositories.
- Add signed webhooks targeting your own Octopus deployment. If the target is private, allow its exact host in Forgejo's
[webhook] ALLOWED_HOST_LIST, keeping existing entries. - In your own Octopus deployment, open Repositories, select the repository and confirm Auto Review is on. Open a non-draft PR; indexing and analysis run automatically. Follow Review Logs until the first review completes.
Your Octopus deployment and configured AI services determine where reviews are processed. Use local AI services when processing must stay on your network.
Signed webhooks and review events
In each synced Forgejo repository, open Settings → Webhooks → Add Webhook → Forgejo. Use POST, application/json, and the target URL and secret shown in Octopus. Under Trigger on, choose Custom events… → Pull request events, then select Modification and Synchronized. Select Comments in that same group for @octopus or /octopus PR commands. Keep Active checked and save the webhook. A successful Test Delivery checks transport; a real pull request checks the complete review flow.
With automatic reviews enabled, Octopus accepts pull_request events with action opened, reopened or synchronized, plus edited events containing changes.title.from. Removing a draft title prefix can trigger that title-change event. Octopus checks the current PR on Forgejo: only open, non-draft PRs qualify. Body-only edits do not trigger reviews. Automatic events skip a head with a prior review attempt or completed review, and cannot admit a second request while that head is pending, queued or reviewing.
For an explicit re-review of a completed head, post a new comment with the complete @octopus or /octopus command, or request it from Octopus. Longer aliases such as @octopus-review are not accepted. Replaying the same signed webhook payload does not create another review request.
Linear
Create Linear issues directly from code review findings. Track and assign bugs discovered during reviews.
Setup
- Connect Linear via OAuth from the settings page
- Select the default team for issue creation
- Create issues from any review finding with one click
Issue Creation
Turn review findings into Linear issues with title, description, priority, and team assignment.
Status Tracking
Track issue status directly from the Octopus dashboard.
Jira
Turn code review findings into Jira issues. Connect your Atlassian Cloud site to track bugs and improvements alongside your existing workflow.
Setup
- Connect Jira via OAuth from the settings page
- Select the Atlassian site and default project for issue creation
- Create issues from any review finding with one click
Issue Creation
Turn review findings into Jira issues with title, description, issue type, and project assignment.
Status Tracking
Track issue status directly from the Octopus dashboard without leaving the review.
Slack
Ask questions about your codebase and get notifications in Slack. Octopus searches your code, docs, and review history to answer.
Setup
- Install the Octopus Slack app from the settings page
- Select channels and configure event notifications
- Use /octopus to ask questions about your codebase
/octopus Command
Ask questions about your codebase in any channel. Octopus searches code, docs, reviews, and knowledge base to answer.
Event Notifications
Get notified when reviews complete, repos are indexed, or knowledge documents are ready.
Configurable events: