15 pontos por ironlung 2024-01-18 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Processo e método de desenvolvimento de um Slackbot que publica conteúdo automaticamente em um blog técnico
  • Processo de desenvolvimento
      1. Planejamento da automação
      • Primeiro, ao publicar conteúdo no blog técnico, decidiu-se integrar em uma nova ferramenta (Slackbot) as ferramentas já utilizadas anteriormente (Notion, GitLab). O objetivo era fazer com que os membros se adaptassem de forma fácil e rápida ao novo sistema de publicação
      • Segundo, decidiu-se usar um framework TypeScript. TypeScript é amplamente utilizado e, por ser uma linguagem de tipagem estática, permite um desenvolvimento mais estável. Isso ajuda a manter o novo sistema de publicação de forma fácil e conveniente
      • Terceiro, oferecer uma interação amigável ao usuário
      • Motivos para escolher o Slackbot
        • O Slackbot atende a todos esses princípios
        • O Slackbot oferece um framework chamado Bolt. Ele dá suporte não apenas a JavaScript, Java e Python, mas também conta com boa documentação. Com isso como referência, fica fácil desenvolver uma ferramenta de automação para a publicação do blog técnico. Mesmo executando em ambiente local, é possível testar a ferramenta no aplicativo do Slack
        • O Slack oferece suporte para projetar a interface visível ao usuário com o recurso Block Kit. Ao desenhar o fluxo de telas em JSON e processar os dados com funções, é possível criar interações intuitivas
      1. Desenhando as telas
      • O Slack oferece mensagens e modais para uso em interações com o usuário
      • O fluxo de trabalho para publicar conteúdo no blog técnico foi implementado com modais
      • Processo de publicação no blog técnico usando o Slackbot
        • Publicação no blog: escolher qual conteúdo será publicado e onde ele será publicado
        • Validação do blog: verificar se o conteúdo a ser publicado contém todos os elementos necessários para o frontend, como metadados e imagem de capa
        • Verificação de issue/MR no GitLab: etapa de criação de issue e MR no GitLab. Se a issue e o MR já existirem, faz commit naquele MR
        • Mensagem de conclusão: quando a publicação termina, é deixada uma mensagem com o link do conteúdo original no Notion e o link do MR no GitLab
      1. Projetando e criando o bot
      • A intenção era fazer com que um único bot interagisse com outros serviços, como Notion e GitLab
      • Ao criar um pipeline de CI/CD no GitLab para publicar a aplicação ou modificar o bot, avaliou-se que essa abordagem seria mais vantajosa
      • No desenvolvimento do bot, foram usados a linguagem TypeScript e o framework Bolt, suportado pelo Slack
      • A estrutura de pastas foi adotada com inspiração no NestJS
        • workflow.ts : define a tela e o fluxo de dados, sendo o ponto de partida de todo o workflow
        • service.ts : define a lógica de negócio
        • model.ts : define os tipos de dados para Slack ou APIs de terceiros
        • modal.ts : define as telas de interação com o usuário
      1. Como o bot funciona
      • Ao inserir um comando em qualquer canal do Slack, o bot é chamado
      • Nesse momento, o usuário escolhe o título do conteúdo no Notion e o canal onde o conteúdo será publicado e, ao clicar no botão “Enviar”, o bot verifica automaticamente se todos os metadados obrigatórios foram preenchidos
      • GitLab ID, nome do autor, nome do arquivo md, imagem de capa, <!--truncate--> etc. são metadados obrigatórios; se faltar qualquer um deles, o conteúdo não pode ser publicado
      • Se todos os metadados obrigatórios estiverem preenchidos, é possível clicar no botão “Continuar” para avançar para a próxima etapa
      • Nesse momento, a issue e o MR desse conteúdo são criados automaticamente no GitLab
      • Labels também são adicionadas automaticamente ao MR, e até o pipeline de publicação do conteúdo é executado automaticamente
      • Quando a execução do pipeline é concluída, é possível verificar previamente o estado da publicação do conteúdo pelo GitLab Review App
  • Resultados da adoção
    • A frequência com que technical writers e engenheiros criam MRs para publicar conteúdo no blog técnico aumentou cerca de 30%
    • Publicação do conteúdo em menos de 1 minuto com um único clique
    • A taxa de falha do pipeline caiu para menos de 5%

Ainda não há comentários.

Ainda não há comentários.