Connect GitLab.
Connect selected projects from GitLab.com or a self-managed GitLab server. Perfloop reads their code and opens merge requests for proven changes. You review and merge them.
If Setup has no GitLab tab, contact hello@perfloop.ai.
Access you need
-
dedicated bot · api scope Use a group access token, a project access token, or a personal access token of a dedicated service account. The account must be an active GitLab bot. Personal tokens of people are refused. Your GitLab plan must support the token kind you choose; a paid plan is not required for every token kind.
-
Developer · selected projects Give the bot at least the Developer role on each project you select. The api scope can grant more access than Perfloop uses. Limit the bot to the projects it needs. Perfloop works only on the selection you save, even if the token can reach other projects.
Perfloop can push a branch, open and update its merge requests, read their checks and discussion, and answer feedback. It cannot approve or merge a merge request, deploy, or change project settings. Keep your default branch protected and your review and CI requirements in place.
PR review
With PR review on, Perfloop reviews merge requests opened or committed to after you turn it on. The review lists unproven Hypotheses tied to the changed code, with comments on the changed lines. Perfloop does not review its own merge requests or merge requests from forks.
PR review is off by default. An Admin turns it on per project in Setup → Automatic work: set PR review to On, then select Save. See Autonomy and limits for what a review costs and how to work a finding.
Setup
1 · prepare the connection
Create the bot token in GitLab with the api scope and the project access above. Keep it in a secret store. Enter it only in Perfloop's Setup form, never in a chat or an MCP call.
For GitLab.com, use https://gitlab.com and leave Relay name and Root CA empty. A public self-managed server can also connect directly. For a private server, configure a code-host relay upstream first. Its URL must be the same HTTPS origin you enter in Setup, including a non-default port.
If your server uses a private certificate authority, have its public root CA certificates in PEM format ready. Never paste a private key. Perfloop checks the server's hostname and certificate; there is no option to turn TLS verification off.
2 · list and choose projects
As a workspace Admin, open Setup → Connections → Code host → GitLab and select Connect GitLab. Enter Instance URL and Access token. For a private server, enter the upstream's name in Relay name, without relay://. Paste the public CA certificates in Root CA if needed.
Select List projects, then tick the projects Perfloop may use. Listing saves no connection. Select Connect to save the selection. Perfloop checks access to every chosen project. A connected row and the selected projects appear in Setup. Perfloop never shows the token again.
3 · choose the work
The selected projects use the same system model and Case workflow as other code hosts. Automatic work is controlled separately in Setup → Automatic work. With Pull requests set to Ask, a proven change waits for your decision in Inbox before Perfloop opens its merge request. See Autonomy and limits.
Data Perfloop reads and keeps
Perfloop reads selected source code, project metadata, and merge-request changes, checks and discussion. It keeps the system model, Cases and their proof, and the connection details needed to use those projects. The token is stored encrypted and is not given to coding agents or sandboxes.
Selected code, including private code, can enter model context through OpenAI, Anthropic Claude on Google Cloud Vertex AI, or Fireworks AI. No model provider is used without zero-data-retention terms confirmed first. Perfloop does not use your code to train models. Where enabled, Research and security work can use Fireworks AI. See Security for data handling.
Change the token or project selection
Before the token expires, create its replacement in GitLab. Select Reconnect on the saved connection. Enter the fresh token and select List projects. Saved projects the token can reach start ticked. The checked list replaces the previous selection when you select Reconnect. Unticked projects lose selection. Revoke a replaced token in GitLab too.
A reconnect keeps its instance URL. To use another server, select Connect another GitLab instance.
Remove access
Select Delete on the instance's row in Setup and confirm. This works whether the instance is connected or disconnected. Perfloop deletes the token it stores, its projects leave your selection, and the row disappears. Open merge requests stay in GitLab. Revoke the bot token in GitLab to remove its provider access too.
Deleting a connection does not delete Cases or proof already stored by Perfloop. Deleting the workspace removes its stored data. To use the instance again, connect it with a fresh token and project selection.
Security questions: security@perfloop.ai