> 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`

  ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-29a55fb234cd516c42842ec43632c749c5b0527c%2Facessando_gitlab.png?alt=media)

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

![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-f1dba7e7824a9d97ea87741a099b4371902e8e65%2Fgeneral_gitlab.png?alt=media)

| 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**

![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-45d101744a801182828946f9838593eb4fabfe72%2Faction_sync.png?alt=media)

> 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.

![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-53a4bbfddd1d05f871a0b6f82764e4f04a7e1d4d%2Fmodo_de_execu%C3%A7%C3%A3o.png?alt=media)

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

![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-b19cc931c6c55711de0104545d6ceeae96469a01%2Fresult_playbook.png?alt=media)

> 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.

  ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-e29a876d167992455130eca18de5c4d9f543380d%2Ffile_git.png?alt=media)

***

## 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.
