> For the complete documentation index, see [llms.txt](https://docs.linuxcontrolcenter.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.linuxcontrolcenter.com.br/conf-integrations/integrations/gitlab.md).

# Gitlab

> **Versão mínima:** Linux Control Center `v2.13.X`\
> **Requisitos:**
>
> * Acesso ao repositório GitLab desejado
> * Token de acesso pessoal ou credenciais com permissão de leitura
> * 'api', 'read\_api', 'ai\_features'
> * Branch com scripts ou playbooks válidos (`.sh`, `.yml`, `.ps1`, `.bat`)

***

## O que faz?

Esta funcionalidade permite importar automaticamente **scripts e playbooks versionados** diretamente de um repositório GitLab para o Linux Control Center.\
Os arquivos são baixados, validados, verificados contra o commit mais recente e **mapeados como scripts personalizados** na plataforma.

***

## Como configurar

### 1. Acesse o módulo GitLab

* Navegue até `Menu lateral → Config → Integrações → GitLab`
* Clique em `Criar`

  ![](/files/yeOFq8I4vAROOPXNDDmI)

### 2. Preencha os dados do repositório

![](/files/UDMM9VhzfIVXVsZVazY5)

| Campo                            | Descrição                                               |
| -------------------------------- | ------------------------------------------------------- |
| **URL do repositório**           | Ex: `https://gitlab.com/empresa/repositorio.git`        |
| **Método de autenticação**       | `Token Pessoal` ou `Usuário/Senha`                      |
| **Token ou Senha Criptografada** | Requer permissão de leitura no projeto                  |
| **Branch**                       | Ex: `main`, `master`                                    |
| **Extensões permitidas**         | Marque se deseja importar `.sh`, `.yml`, `.ps1`, `.bat` |

> ⚠️ URLs inválidas, tokens incorretos ou permissões insuficientes impedirão a sincronização.

***

## Execute a Sincronização

Após salvar:

1. Clique em **Sync**

![](/files/1YzOhtKZTvHS6vCGJrYa)

> Escolha o modo de execução da sincronização

* Worker: Para executar em algum Worker que consiga estabelecer conexão com o repositório.
* Console: Para executar diretamente da console web que consegue estabelecer conexão com o repositório.
* Para analisar os logs da conexão da console, acesse o meu Logs na aba de detalhes do Gitlab.

![](/files/Y8nNP8oSyJr2dcYuKyVj)

2. O sistema:
   * Descobre todos os arquivos do repositório no branch escolhido
   * Verifica a extensão de cada arquivo
   * Baixa apenas arquivos com extensões permitidas
   * Calcula o hash de conteúdo para verificar alterações
   * Associa o script ao seu usuário ou ao Linux Control Center

***

## O que será criado

* Scripts `.sh`, `.ps1`, `.bat` → Salvos como **Custom Scripts**
* Playbooks `.yml` → Salvos como **Custom Playbooks**
* Cada item importado manterá:
  * Nome baseado no repositório + branch
  * Caminho físico no container
  * Último commit de origem
  * Hash para detectar modificações futuras

![](/files/HwG1thSGuD4Vl7t2FSkW)

> Estrutura de nomeação

* 1. Nome do arquivo
* 2. URL do repositório
* 3. Branch utilizada

***

## Reimportações automáticas

* Se um arquivo já existir:

  * Será atualizado se o hash ou commit mudar
  * Ignorado se não houver alteração
  * Estes dados podem ser verificados na opção 'Scripts' na aba de detalhes do repositório.

  ![](/files/M1ZkfG2n1swPBLPUHNdH)

***

## Local de Armazenamento

Os scripts são salvos em:\
`git_integration_remote_rep/<UUID_DO_REPOSITORIO>/`

***

## Exemplos de Suporte

| Extensão      | Suporte | Tipo de Mapeamento |
| ------------- | ------- | ------------------ |
| `.sh`         | ✅ Sim   | Script Linux       |
| `.yml`        | ✅ Sim   | Playbook           |
| `.ps1`        | ✅ Sim   | Script Windows     |
| `.bat`        | ✅ Sim   | Script Windows     |
| `.py`, `.txt` | ❌ Não   | Ignorados          |

***

## Logs e Diagnóstico

* Os logs de cada execução podem ser consultados no painel de GitLab da plataforma
* Incluem: erros de autenticação, arquivos ignorados, mudanças detectadas
* Erros comuns verificados são referentes a impossibilidade de conexão com repositório
* Autenticação de dois fatores (2F) exigida em login via usuário e senha
* Falta de permissões do usuário ou do token utilizado

***

## Dúvidas?

Consulte o suporte ou a documentação oficial do Linux Control Center.
