> For the complete documentation index, see [llms.txt](https://docs.winga.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.winga.me/import-guides/importing-from-gitlab.md).

# Importing from GitLab

Winga can read a GitLab project's CI/CD variables and turn them into feature flags. This guide covers connecting GitLab to your workspace and running the import.

***

### 1. Connect GitLab

Open your workspace and go to **Connections** from the workspace navigation. On the Connections page, find the **GitLab** card under *Available integrations* and press **Connect**.

GitLab connects through **OAuth**. A short pre-flight dialog reminds you to make sure you're signed into the correct GitLab account at `gitlab.com` before continuing, then redirects you to GitLab to authorize the connection. After you approve, GitLab returns you to Winga and you confirm which account was connected. You need the **owner** or **admin** role in the workspace to add or remove a connection.

> **OAuth scopes are subject to change.** Winga requests the minimum scopes needed to read your CI/CD variables. The exact scope list may be narrowed after live verification in a later release — do not treat the current scope set as final.
>
> ***

### 2. Start the import

The import wizard lives on a project's **Flags** page. Open the project you want to import into, go to its **Flags** page, and start an import. Choose **Import from GitLab**, then pick the project to import from. GitLab projects are identified by a namespace path (such as `group/project`, including nested subgroups) or a numeric project ID.

***

### 3. How CI/CD variables are partitioned

Winga reads your project's CI/CD variables from the GitLab API:

* **Regular variables** (including masked variables) import **with their values**. GitLab returns the value for these variables, so their parsed value can be seeded as the flag's default if you choose to import values.
* **File-type variables** are **skipped entirely**. Their contents can be binary and are path-based, which doesn't map to a flag value, so Winga filters them out of the import rather than importing them as name-only entries.

Because GitLab returns values for every non-file variable, the **Import values too** option in the configure step is available whenever the import contains any variables.

***

### 4. Review and configure

After the variables are fetched, the review step lists every key. Deselect any you don't want, then move to the configure step to:

* choose which environments the imported flags are enabled in, and
* optionally import the parsed values as flag defaults (off by default — only enable this for test or example values, never production secrets).

Press **Import** to create the flags.
