
Usando o bot do gitlab como exemplo, mostrarei como automatizar o processo de lançamento de funções sem servidor atualizando-as automaticamente no repositório git. Passamos de jogos para o desenvolvimento prático em sem servidor.
O que é um bot do gitlab?
Imagine que você precisa automatizar o processo de reação para criar tarefas / bugs no seu rastreador, por exemplo, Gitlab (Issues) ou Jira. Pode ser necessário adicionar automaticamente um artista, dependendo das tags, mover a tarefa para um marco específico, adicionar um comentário ou apenas fechar o bug desagradável. Tudo isso é feito com muita facilidade usando funções sem servidor. Como exemplo, adicionaremos um comentário (nota na terminologia do Gitlab) a uma tarefa recém-criada (problema).
E como o bot pode mudar com frequência, automatizaremos seu lançamento sincronizando automaticamente a função com o repositório git onde ele está.
Configuração do ambiente
Primeiro, precisamos criar um projeto no Gitlab. Se você não possui uma conta Gitlab, pode criar uma
aqui . Você pode criar um novo projeto público, por exemplo, bifurcando meu projeto
https://gitlab.com/bbelky/gitbotswf clicando no botão
Forquilha no canto superior direito.
Para poder editar o código bot, você precisa cloná-lo localmente. De fato, para os fins deste guia, podemos fazer isso online, mas estaremos mais próximos da vida real. Abra seu terminal e clone o repositório git. O link pode ser encontrado no canto superior direito do seu projeto
Clone >
Clone com HTTPS . Salve-o como um
URL do Gitlab , será útil.
git clone <link to your repo> cd gitbotswf/ ls README.md main.go
Há um arquivo main.go no repositório clonado. Este é o nosso bot escrito em golang. O bot é muito simples: ele recebe um webhook do Gitlab no evento de criação de uma nova tarefa (Problema) e adiciona um comentário (observação na terminologia do Gitlab) à tarefa criada. Existem comentários no main.go para ajudá-lo a descobrir como o bot funciona. Não vamos nos aprofundar nisso com mais detalhes.
Não feche o terminal - um pouco mais tarde, precisaremos editar o arquivo
main.go.Também precisamos criar a API do Gitlab Token para acessar a API do hitlab.
- Vá para o seu perfil do Gitlab> Configurações > Tokens de Acesso.
- Crie um novo token com escopo da API.
- Copie-o e salve como GITLABTOKEN .
O bot
Hora de criar o bot em si. Vamos criar uma função sem servidor com o código do nosso bot com base na plataforma sem servidor
Swifty . Se você ainda não tem uma conta no Rusonyx Swifty,
crie-o . Queremos automatizar o processo de implantação de uma nova função, portanto, faça a seguinte sequência: conecte nosso repositório git, crie uma função baseada no código do git e coloque o token da api do gitlab em um armazenamento seguro.
- Entre no Swifty e selecione Repositórios
- Clique em Anexar repositório , selecione o tipo de URL do Git e cole seu URL do Gitlab .
- Lembre-se de selecionar a opção Repositório espelho automaticamente e clique em Concluído.
Agora, o Swifty sincroniza automaticamente com seu repositório (git pull) a cada 30 minutos. Agora crie a própria função:
- Vá para a guia Funções > Nova Função > Do repositório (Modelos) .
- Selecione o repositório adicionado recentemente, por exemplo, gitlab.com/bbelky/gitbotswf.git . Agora você vê os arquivos do seu repositório.
- Selecione o arquivo main.go , clique em Avançar.
- Selecione a opção Sincronizar com Repositório , digite o nome da função gitbotswf e clique em Criar .
Agora precisamos de um gatilho da API HTTP, quando chamado, a função será acionada:
- Vá para a guia Acionadores > Adicionar acionador > API REST (URL) .
- Copie o URL resultante e salve-o como BOT_URL .
Ótimo, agora temos um repositório e uma função que sincronizam com ele automaticamente. Agora adicione nosso token da API do Gitlab às contas Swifty - um repositório seguro e criptografado para senhas e tokens.
- Vá para Contas > Criar conta .
- Selecione um tipo genérico .
- Nomeie GITLABTOKEN e copie seu token. Salve.
Agora adicione o token à função:
- Vá para Funções > função gitbotswf > Acesso e clique em Adicionar .
- Selecione o tipo Contas , GITLABTOKEN e clique em Adicionar .
Ativar webhook
No último estágio, precisamos criar um webhook no Gitlab que será acionado toda vez que um novo problema for criado. Vamos para o Gitlab.
- Selecione seu projeto> Configurações > Integrações .
- Adicione o BOT_URL salvo anteriormente ao campo URL .
- Marque a caixa ao lado de Eventos de problemas e clique em Adicionar webhook .
Teste
Vamos ao projeto no Gitlab, na guia
Issues e crie um novo
Issue . Verifique os comentários. Sim! Se tudo funcionou bem, veremos o comentário
"Obrigado por relatar um novo problema!" . Se ocorreu um erro em algum lugar, pergunte-nos aqui ou faça uma pergunta em um
slot .
Atualização e liberação automática do bot
E se precisarmos atualizar nosso bot? Graças à integração com o git, tudo o que você precisa fazer é atualizar seu código (alterar o texto da nota, por exemplo), executar o código no Gitlab e o Swifty atualizará automaticamente sua função!
Então, abra o arquivo
main.go no terminal e altere a variável
note :
note := "Comments%20changed!"
Atualizar git:
git add * git commit -m "changes" git push origin master
Vá sem servidor!