---
title: Connect your repository
question: How do I connect my GitLab or GitHub repository to Diavi?
description: Create an access token, sign in, and pick the repository Diavi will work on.
section: start
order: 1
---
Diavi connects to your forge with **your own personal access token** — there is no Diavi password to create. You generate a token in GitLab or GitHub, paste it when signing in, and Diavi works under your identity, with exactly the rights that token carries.

## What scopes does the token need?

The minimum for the pipeline to read an issue, clone the repository and open a merge request.

- **GitLab**: the `api` and `read_user` scopes.
- **GitHub**: the `repo` scope.

Create it from your account preferences, under *Access Tokens* (GitLab) or *Developer settings → Personal access tokens* (GitHub).

## Where do I paste it?

On the sign-in page, along with your workspace identifier. If your team runs a self-hosted instance, expand the optional field and give its URL — it must be `https://`, never `http://`: a token sent unencrypted crosses the internet in the clear, and Diavi refuses to store it.

## Can anyone read my token back?

No, deliberately. It is encrypted at rest and no interface ever shows it again — not yours, not the vendor's console. If you lose it, you generate a new one in your forge and replace it in your settings; there is no recovery, only replacement.

## How do I change the token later?

From **Pipeline → Execution**, restricted to the account owner. The new token is validated against your forge before being stored: if it has expired or lacks a scope, you find out immediately rather than on the first failed run.

## What next?

Once signed in, Diavi sees the projects your token grants access to. You choose which one to run against at launch time — nothing is locked to a single repository.
