Connect GitHub Enterprise Server.
Connect selected repos on your GitHub Enterprise Server through a GitHub App you create on that server. Perfloop reads their code and opens pull requests for approved changes. You review and merge them.
Access you need
-
contents · read & write Reads code from the repos you select and pushes branches for approved changes.
-
pull requests · read & write Opens and updates an approved pull request, reads its conversation, comments, and replies to review comments.
-
issues · read & write Reads pull-request comments and reacts to the ones it handles. Opens an issue when your repo requires one before a pull request.
-
checks · statuses · read Reads CI conclusions and commit status.
-
metadata · read Mandatory for every GitHub App. Reads repo names and metadata.
Perfloop cannot approve or merge a pull request, deploy, or change repository settings. Keep your default branch protected and your review and CI requirements in place.
PR review
With PR review on, Perfloop posts a comment-only review on pull 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 pull requests. Automatic review measures same-repo heads and reads fork code without running it.
PR review is off by default. An Admin turns it on per repo 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 · create the App
On your server, create a GitHub App with the permissions above. Generate a private key and keep it in a secret store. Install the App on the repos Perfloop may use.
-
GitHub App name and Homepage URL are the only required fields. Any homepage works, for example
https://perfloop.ai. -
Leave Callback URL empty. Clear Active under Webhook; Perfloop receives no events from your server.
-
Under Where can this GitHub App be installed?, choose Only on this account.
2 · run the relay
Perfloop reaches your server only through the relay inside your network. Add a code-host relay upstream whose URL is your server's HTTPS origin, including a non-default port.
If your server uses a private certificate authority, have its public root CA certificates in PEM format ready. Perfloop checks the server's hostname and certificate; there is no option to turn TLS verification off.
3 · connect
As a workspace Admin, open Setup → Connections → Code host → GitHub Enterprise Server and select Connect GitHub Enterprise Server, or Connect another server when a server is already listed. Fill in the form:
-
Server URL: your server's address, starting with
https://. -
App ID: on the App's settings page on your server, under About.
-
Installation ID: the number at the end of the App installation's settings URL.
-
Private key: select Choose key file and choose the App's private key file. Perfloop stores it encrypted and never shows it again.
-
Repositories: each repo to select as
owner/name, such asteam/service, separated by spaces. A numeric repo ID also works. -
Relay name: the name you gave this server's upstream in your relay.
-
Root certificate (optional): only if your server's certificate comes from your own certificate authority. Paste its root certificate in PEM format.
Select Check. Perfloop reaches your server through the relay and checks the App, its installation and access to every listed repo. It lists the repos it found. Then select Connect to save the connection. If the check fails, the form says what to correct.
If the form says Perfloop could not reach your server, the relay's log names the network error.
This step has no MCP tool; an Admin does it in Setup. Never send the private key by email, in a chat or in an MCP call.
4 · choose the work
Automatic work is controlled in Setup → Automatic work. With Pull requests set to Ask, a proven change waits for your decision in Inbox before Perfloop opens its pull request. See Autonomy and limits.
Data Perfloop reads and keeps
Perfloop reads selected source code, repo metadata, and pull-request changes, checks and conversation. It keeps the system model, Cases and their proof, and the connection details needed to use those repos. The App private key 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 key or repo selection
To rotate the private key or change the repos, the Admin selects Reconnect on the server's row in Setup, chooses the current key file, enters the complete repo list, then selects Check and Reconnect. The new list replaces the previous selection. A reconnect keeps the server, App and installation. Delete a replaced key in the App's settings on your server.
Remove access
Select Delete on the server's row in Setup and confirm. This works whether the server is connected or disconnected. Perfloop deletes the key it stores, its repos leave your selection, and the row disappears. Open pull requests stay on your server. Uninstall the App or delete its private key on your server to remove its access there too.
Deleting a connection does not delete Cases or proof already stored by Perfloop. Deleting the workspace removes its stored data. To use the server again, connect it again.
Security questions: security@perfloop.ai