Pular para o conteúdo principal

GitLab

A integração do seu SCM com a StackSpot traz alguns benefícios para as equipes e podem ser executados remotamente via pipeline de CI/CD.

Atualmente, a StackSpot AI possui o fluxo de Code Shift possível de ser executado.

Pré-Requisito

1. Criar grupo e projeto GitLab

Para integrar o SCM com a StackSpot, o primeiro passo é ter um repositório próprio da sua organização para as pipelines. Desta forma, quando definidas, você poderá acioná-las remotamente via API informando os dados de entrada para cada fluxo.

Você pode utilizar um repositório já existente ou criar um novo.

Se sua Organização não possui um Grupo ou Projeto no GitLab, acesse os guias a seguir para criá-los:

2. Gerar o Personal Access Token no GitLab

  1. Acesse a sua conta do GitLab e faça o login;
  2. No menu, selecione seu avatar.
  3. Clique na opção Edit profile;
  4. Agora clique no botão de Access Tokens.

  1. Selecione Add new token.

Imagem mostra print do portal do Gitlab dentro da seção de Access Token com o botão Add New Token evidenciado por um quadrado vermelho

  1. Insira um nome e uma data de validade para o token. Se você não inserir uma data de vencimento, a data de vencimento será automaticamente definida para 365 dias depois da data atual.

Imagem mostra print do portal do Gitlab mostra o formulário de criação de Personal token com os campos Name, Expiration date e Select Scopes

  1. Selecione os escopos:
  • write_repository;
  • create_runner;
  • api;

Imagem mostra print do portal do Gitlab mostra o formulário de criação de Personal token na parte de Select Scopes com os escopos write_repository, create_runner e api selecionados e realçados por quadrados vermelhos

Informação Adicional

Os escopos podem depender das atividades que sua empresa precisa executar. Por isso, selecione todos os que são necessários para você. Acesse a lista completa de escopos do GitLab.

  1. Selecione Create personal access token.

  1. O código gerado será exibido temporariamente. Copie e salve o código gerado.

Configurar as pipelines automaticamente (Recomendado)


Os passos a seguir são feitos via STK CLI;


Passo 1. Execute os comandos a seguir:

  1. Se estiver com um Workspace ativo, use o comando a seguir para sair do Workspace:
stk exit workspace
  1. Após sair do Workspace, execute o Workflow com o comando a seguir:
stk run workflow stackspot-core/stackspot-setup-scm@3

Passo 2. O terminal pergunta qual é o seu provedor SCM. Selecione a opção gitLab.

Passo 3. Responda as seguintes perguntas:

  • Project name: informe o nome do seu Projeto do GitLab.
  • Group Name: informe o nome do seu Grupo do GitLab.
  • GitLab api domain: disponível apenas para o GitLab On Premise. Informe a URL do domínio da sua organização no GitLab. Exemplo: techwriters.gitlab.com.
  • Personal Access Token: informe o Personal Access Token gerado no GitLab.
  • The repository to setup scm already exists? (Y/n): para informar se o repositório da configuração do SCM já existe, responda 'Y' para sim e 'n' para não.
  • Want to do the setup in main branch or create a pull request? (Y/n): responda 'Y' para sim e 'n' para não. Ao escolher 'Y' (sim), informe em Target branch a branch usada para criar o pull request ou informe 'n' (não) para manter a configuração na branch 'main'.
Atenção!

O usuário do token e o próprio Personal Access Token precisam ter permissão de escrita no repositório da organização. Caso o repositório não exista, você precisa adicionar a permissão para criar repositórios.

Para mais informações, siga a documentação do GitLab.

Não é o Personal Access Token da sua Conta StackSpot.

Se a configuração foi executada com sucesso, o próximo passo é fazer a integração do GitLab com a sua conta da StackSpot.
Se não foi possível concluir a configuração de forma automática, siga os passos a seguir para fazer toda a configuração manualmente:

Criar o repositório e pipelines manualmente

Passo 1. No terminal STK CLI, execute os comandos a seguir:

mkdir <repo-name>
cd <repo-name>

Exemplo:

mkdir repo-runner-actions
cd repo-runner-actions

Passo 2. Crie o arquivo ".gitlab-ci.yml" dentro da pasta gerada anteriormente com o seguinte conteúdo:

repo-name/.gitlab-ci.yml
##
# Always run pipeline except for push events
##
workflow: # https://docs.gitlab.com/ee/ci/yaml/workflow.html#workflow-rules-examples
rules:
- if: $CI_PIPELINE_SOURCE == "push"
when: never
- when: always

image: ubuntu:latest

stages: # List of stages for jobs, and their order of execution
- run

variables:
workflow_name: ""
api_inputs: "{}"

run:
stage: run
script:
- |
cd /tmp
curl -fsSL https://stk.stackspot.com/install.sh | bash
echo "~/.stk/bin" >> $GITHUB_PATH
stk --version
stk upgrade

Passo 3. Faça o commit das alterações utilizando os comandos a seguir:

git init
git remote add origin https://gitlab.com/<gitlab-groupname>/<project-name>.git
git add .
git commit -m "Setup Runner"
git push

Exemplo:

git init
git remote add origin https://gitlab.com/my-group/repo-runner-actions.git
git add .
git commit -m "Setup Runner"
git push
Dica!

Em alguns SCMs o Project Name e Repository Name podem significar a mesma coisa. Confira a seguir como identificar esses campos na URL:

https://gitlab.com/[GITLAB-GROUP]/[PROJECT-NAME]

Exemplo:
https://gitlab.com/stack-spot/stackspot-workflows-action

Passo 4. Acesse o seu projeto GitLab e siga os passos:

  1. Acesse a seção de Settings e, em seguida, CI/CD;
  2. Clique no botão Expand da opção Pipeline trigger tokens;
  3. Preencha o campo Description. Depois clique no botão Create pipeline trigger token.

Exemplo:

GitLab Pipeline Trigger Token



Se a configuração foi executada com sucesso, o próximo passo é fazer a integração do GitLab com a sua conta da StackSpot.

Integrar o GitLab com a StackSpot

Os passos a seguir são feitos no Portal da Conta StackSpot.

Integrar o GitLab (nuvem) com a StackSpot

Configuração via GitLab PAT (Personal Access Token)

Passo 1. Acesse diretamente o Portal da Conta; Em seguida, clique no botão Configurar Integração SCM’;

Passo 2. No campo Select a provider, selecione GitLab;

Passo 3. Em Método de autenticação, selecione a opção PAT (Personal Access Token) e preencha os seguintes campos:

Passo 4. Em Configuração de Workflow, escolha como a organização deseja gerenciar o acesso ao SCM. Para isso, habilite ou desabilite a opção 'A organização vai gerenciar o acesso ao SCM via User PAT?':

  • Habilitado: O usuário irá gerenciar o acesso ao GitLab via PAT (Personal Access Token).
  • Desabilitado: A empresa irá gerenciar o acesso ao GitLab.
Informação Adicional

Ao habilitar este botão, os membros da sua conta terão que configurar o Acesso de SCM individual deles.

Passo 5. No campo URL do Workflow, insira a URL do repositório criado com as pipelines para a StackSpot identificar onde o seu workflow está configurado. Você vai precisar das seguintes informações para preencher a URL:

https://gitlab.com/<group_name>/<repository_name>?project_id=<project_id>&trigger_id=<trigger_id>

Para obter o as informações para preencher a URL do Workflow, acesse a sua conta do GitLab e siga as instruções para cada item a seguir.

  • project id: Acesse a página principal do seu projeto Gitlab. Depois clique no botão 'More actions', você encontrará o project id.

Página inicial do Gitlab, o cursor do mouse navega até o menu lateral e clica na opção Projects, depois clica no projeto desejado levando para a página principal deste projeto, clica no botão 'More actions' exibindo o número do project id



  • trigger id: Acesse o seu projeto GitLab e siga os passos a seguir:
  1. Acesse a seção Settings e, em seguida, CI/CD;
  2. Clique sobre o texto Pipeline trigger tokens;
  3. No menu de tokens disponíveis, clique sobre botão 'Revoke trigger' para abrir as opções do seu navegador;
  4. Em seguida, clique na opção 'Copy Link Address'.
  5. Abra qualquer editor de texto e cole o endereço do link que você acabou de copiar.

No final da URL copiada você vai encontrar o valor do 'trigger id':

Exemplo:

# https://gitlab.com/<group_name>/<project_name>/-/triggers/<trigger_id>
https://gitlab.com/techwriters/documentation/-/triggers/1622887

Gitlab trigger id



Volte para o Portal da StackSpot e continue a configuração a seguir:

Passo 6. Você será redirecionado para a tela de Review. Confira seus dados e clique no botão 'Integrar com StackSpot'.

Integrar o GitLab (On Premise) com a StackSpot

Configuração via GitLab PAT (Personal Access Token)

Passo 1. Acesse diretamente link do Portal da Conta;

Passo 2. Selecione a opção 'Organização';

Passo 3. No menu do Portal da Conta, selecione o produto StackSpot EDP e clique em ’SCM’. Em seguida, clique no botão Configurar Integração SCM’;

Passo 4. No campo Select a provider, selecione GitLab;

Passo 5. Em Método de autenticação, selecione a opção PAT (Personal Access Token) e preencha os seguintes campos:

  • URL do provider: a URL da sua organização no GitLab. Informe sempre a URL com o protocolo https://.
  • Usuário: o nome do seu usuário no GitLab;
  • Token: utilize o seu Personal Access Token que você gerou anteriormente.

Passo 6. Em Configuração de Workflow, escolha como a organização deseja gerenciar o acesso ao SCM. Para isso, habilite ou desabilite a opção 'A organização vai gerenciar o acesso ao SCM via User PAT?':

  • Habilitado: o usuário irá gerenciar o acesso ao GitLab via PAT (Personal Access Token).
  • Desabilitado: a empresa irá gerenciar o acesso ao GitLab.
Informação Adicional

Ao habilitar este botão, os membros da sua conta terão que configurar o próprio Acesso de SCM.

Passo 7. No campo URL do Workflow, insira a URL do repositório criado com as pipelines para a StackSpot identificar onde o seu workflow está configurado. Você vai precisar das seguintes informações para preencher a URL:

https://gitlab.com/<group_name>/<repository_name>?project_id=<project_id>&trigger_id=<trigger_id>

Para obter o as informações para preencher a URL do Workflow, acesse a sua conta do GitLab e siga as instruções para cada item a seguir.

  • project id: acesse a página principal do seu projeto Gitlab. Depois clique no botão 'More actions', você encontrará o project id.

Página inicial do Gitlab, o cursor do mouse navega até o menu lateral e clica na opção Projects, depois clica no projeto desejado levando para a página principal deste projeto, clica no botão 'More actions' exibindo o número do project id



  • trigger id: acesse o seu projeto GitLab e siga os passos:
  1. Acesse Settings e em seguida CI/CD;
  2. Clique sobre o texto Pipeline trigger tokens;
  3. No menu de tokens disponíveis, clique sobre botão 'Revoke trigger' para abrir as opções do seu navegador;
  4. Em seguida, clique na opção 'Copy Link Address';
  5. Abra qualquer editor de texto e cole o endereço do link que você acabou de copiar.

No final da Url copiada Você vai encontrar o valor do 'trigger id':

Exemplo:

# https://gitlab.com/<group_name>/<project_name>/-/triggers/<trigger_id>
https://gitlab.com/techwriters/documentation/-/triggers/1622887

Gilab trigger id



Volte para o Portal da StackSpot e continue a configuração a seguir:

Passo 8. Você será redirecionado para a tela de Review. Confira seus dados e clique em 'Integrar com StackSpot'.

Pronto, sua configuração está completa.