Coroid needs access to a repository before it can do anything. You connect a source control provider once at the organization level, then attach individual repositories to projects.
Connections are managed at Settings → Connections → Source control
(/settings/connections/source-control).
Connect a provider
GitHub App or a token
Settings → Connections → Source control
Repositories appear
The ones the connection can reach
App access or token scope
Create a project
One project per repository
Projects → New
First analysis
Languages, build and test commands
Check it in the project settings
Supported providers
| Provider | Connection method | Availability |
|---|---|---|
| GitHub | GitHub App install, or a personal access token | Generally available |
| GitLab | Personal access token | Private preview |
GitHub: App install or token
For GitHub, installing the Coroid GitHub App is the better option. The App grants access per repository rather than per user, keeps working when the person who set it up leaves, and lets Coroid receive webhook events without polling.
Choose a personal access token instead where App installation requires an admin approval you do not have.
To install the App, go to Settings → Connections → Source control, choose GitHub, and follow the install flow. GitHub will ask which repositories to grant access to; you can change this later from GitHub's own settings.
Connecting with a personal access token
Create the token in your provider, then paste it at Settings → Connections → Source control.
The token needs to read repository contents and create branches and pull requests.
On GitHub that is the repo scope for a classic token; on GitLab it is api.
Tokens are encrypted before they are stored and are never returned by the API or shown again in the interface after you save them. They are also excluded from settings export bundles — an exported bundle carries a placeholder, and you re-enter the secret when you import it elsewhere.
Attach a repository to a project
A connection makes repositories available; a project is what Coroid actually works in. Create one from Projects → New, pick the connected repository, and Coroid will do a first pass over the codebase to detect languages, build commands, and test commands.
That first analysis is what lets an agent build and test your project, so it is worth checking the result. You can correct anything it inferred wrong under the project's settings.
Try Coroid without writing to your repository
Pick Local only under Repository mode when you create the project. Coroid then reads from the repository and keeps every branch, commit and review inside Coroid; it never pushes, comments or opens pull requests. When you want pull requests, choose Start syncing on any review or in the project's repository settings. See Synced or local only.
A public GitHub repository needs no connection at all: choose Connect with URL, paste the repository address and validate access. Without a GitHub connection, Local only is preselected, because Coroid can read a public repository but has nothing to push with.
Which branch Coroid works from
Coroid branches from your default branch and opens pull requests back against it. You
can change the base branch per project in the project's repository settings if you
merge into something other than main.
Verify the connection
The connection is working when the repository appears in the project creation list and the project's first analysis completes. If a repository you expect is missing, the most common causes are:
- the GitHub App was installed but not granted access to that specific repository
- the token's scope is too narrow to list private repositories
- the repository belongs to a different organization than the one you connected
Next
How a task becomes a pull request — what happens after you describe some work.