
Compartilhar:
Nahrin foi Educadora de Desenvolvedores na Vonage. Ela é apaixonada por construir comunidades inclusivas, atender às necessidades do mundo real com soluções de software pragmáticas e criar conteúdo técnico acessível a todos os níveis de conhecimento.
12 bots para melhorar seu projeto de código aberto
Tempo de leitura: 5 minutos
Quanto mais tempo um projeto de código aberto existe e cresce, mais problemas e pull requests não incorporados ele acumula. Acompanhar as novas contribuições, especialmente se ainda houver problemas não resolvidos do passado, não é tarefa fácil.
Que entrem os bots! Automatizar e terceirizar tarefas para os bots alivia a carga de trabalho dos mantenedores, liberando tempo para tarefas mais impactantes.
Esta postagem abordará 12 maneiras de melhorar seu projeto de código aberto com Probot (GitHub Apps) e GitHub Actions— dois projetos distintos com o objetivo comum de capacitar e dar autonomia aos desenvolvedores para ampliar seus fluxos de trabalho e personalizar o funcionamento do GitHub.
Se você quiser saber mais sobre as diferenças entre os projetos, a excelente postagem no blog sobre o assunto pode ajudar. Aqui está a comparação que ele faz entre os dois:
github apps vs actions
Agora, vamos começar a destacar as ferramentas de automação que facilitarão sua vida como mantenedor de projetos. Sem mais delongas, aqui estão os bots que vão melhorar seu projeto de código aberto!
Probot (Aplicativos do GitHub)
Solicitar informações
Solicita mais informações sobre issues e pull requests com título padrão ou corpo vazio.
O Request-Info solicita mais informações sobre Pull Requests e Issues recém-abertos que contenham títulos padrão ou cuja descrição esteja em branco. Para isso, ele utiliza os dados do arquivo .github/config.yml.
Request-Info bot
Sem resposta
Encerra os tickets nos quais o autor não respondeu a uma solicitação de mais informações.
Muitas vezes, os tickets são abertos sem informações suficientes para que possam ser devidamente investigados. Quando isso acontece, os mantenedores podem marcar uma solicitação como “necessitando de mais informações do autor original”. Se o autor não fornecer as informações necessárias em tempo hábil, a solicitação é automaticamente encerrada pelo bot. Se o autor original retornar e fornecer mais informações, o bot “No Response” remove a marcação, e a solicitação é automaticamente reaberta, se necessário.
No response bot
Combinável
Impedir a fusão de Pull Requests com base em configurações.
Torne suas solicitações de pull “mergeáveis” somente quando termos específicos não estiverem presentes no título ou na etiqueta, o marco da solicitação de pull corresponder ao que está configurado e houver pelo menos n revisões aprovadas, sendo que n é configurável.
Atribuição automática
Adicionar revisores/responsáveis às solicitações de pull no momento em que elas forem abertas.
Quando a solicitação de pull for aberta, este bot adicionará automaticamente revisores/responsáveis à solicitação de pull. Se o número de revisores/responsáveis for especificado, ele adicionará revisores/responsáveis aleatoriamente à solicitação de pull. Se o título da solicitação de pull contiver uma palavra-chave específica, o bot não adicionará revisores/responsáveis à solicitação de pull.
Vencido
Fechar automaticamente as Issues e Pull Requests inativas que tendem a se acumular durante um projeto.
Após um período de inatividade, será aplicada uma etiqueta para marcar uma issue como inativa e, opcionalmente, será publicado um comentário para notificar os colaboradores de que a issue ou a pull request será encerrada. Se a issue ou a pull request for atualizada, ou se alguém comentar, a etiqueta de inatividade será removida, e nenhuma outra ação será realizada até que ela volte a ficar inativa. Se não houver mais atividade, a issue ou pull request será automaticamente fechada com um comentário opcional.
Stale bot
Pessoas que vêm pela primeira vez
Cria tarefas iniciais para ajudar na integração de novos colaboradores de código aberto.
O processo de criação de uma solicitação de pull é o maior obstáculo para novos colaboradores. O First Timers simplifica o processo, criando issues fáceis de entender e voltadas para colaboradores, com o objetivo de ajudar a integrar mais pessoas para que se tornem colaboradores de código aberto pela primeira vez.
GitHub Actions
Fiapos
Exibir e corrigir automaticamente erros de linting em diversas linguagens de programação.
O Lint exibe erros de linting em commits e PRs do GitHub, permite a correção automática de problemas e é compatível com diversos linters e formatadores.
Lint Action
Limite de tamanho
Compara o custo real de execução da sua aplicação ou biblioteca JS para garantir um bom desempenho em cada pull request.
Esta ação utiliza o Size Limit (ferramenta de orçamento de desempenho para JavaScript) para calcular o custo real do seu JavaScript para os usuários finais. As principais funcionalidades desta ação são comentar em pull requests com a comparação dos resultados do Size Limit e rejeitar um pull request caso o custo exceda o limite.
Size limit action
LibreSelery
Distribuição contínua de recursos financeiros aos colaboradores e às dependências do seu projeto.
O LibreSelery é uma ferramenta para distribuir recursos financeiros em projetos livres e de código aberto. Com um novo modelo de financiamento, ele oferece uma remuneração transparente, automatizada e adaptável aos colaboradores. O objetivo é substituir, na medida do possível, os intermediários na distribuição de doações por um algoritmo livre e transparente. Ao contrário da maioria dos outros sistemas de doações, o LibreSelery oferece apenas uma ferramenta descentralizada, e não uma plataforma.
Bloquear tópicos
O Locks encerra issues e pull requests após um período de inatividade.
A ação utiliza o qualificador de pesquisa atualizado do GitHub para determinar a inatividade. Qualquer alteração em uma issue ou pull request é considerada uma atualização, incluindo comentários, alteração de rótulos, aplicação ou remoção de marcos ou envio de commits. O “Lock Threads” é uma ação do GitHub que bloqueia issues e pull requests fechadas após um período de inatividade.
Lock Threads Action
Rotulador de pull requests
Etiqueta automaticamente uma solicitação de pull com base nos arquivos confirmados.
Ao fazer o push, a ação será acionada e procurará por arquivos confirmados naquele ramo. Ela aplica as etiquetas configuradas sempre que encontrar um arquivo cujo nome corresponda à expressão regular associada.
PR Labeler Action
alex
Identifica textos que demonstram falta de sensibilidade e consideração.
O Alex ajuda você a identificar expressões no texto que sejam sexistas, polarizadoras, relacionadas à raça, que não levem em conta a religião ou que de alguma outra forma promovam a desigualdade.
Próximos passos
Existem muitas outras ferramentas de automação disponíveis que podem melhorar seu fluxo de trabalho como mantenedor. Recomendo que você explore mais opções ou tente criar a sua própria!
Os aplicativos do Probot podem ser criados, implantados e compartilhados. Muitos dos aplicativos Probot mais populares são hospedados, portanto, você não precisa se preocupar com implantação nem gerenciamento. Você também pode criar suas próprias ações ou personalizar as ações compartilhadas pela comunidade do GitHub com a ajuda de tutoriais.
Quais são suas ferramentas de automação de código aberto favoritas? Você já criou alguma? Conte para a gente na seção de comentários abaixo, no Twitterou na Slack da Comunidade de Desenvolvedores da Vonage!
Recursos adicionais
A Vonage está muito animada por ser parceira do Hacktoberfest 2020. Nós não somos novatos no mundo do código aberto, já que nossas bibliotecas, trechos de código e demonstrações estão todos no GitHub. Para mergulhar de cabeça nas comemorações, não deixe de conferir nossa página do Hacktoberfest para saber mais sobre tudo o que planejamos.
Você também pode conferir abaixo mais posts do nosso blog relacionados ao código aberto:
Compartilhar:
Nahrin foi Educadora de Desenvolvedores na Vonage. Ela é apaixonada por construir comunidades inclusivas, atender às necessidades do mundo real com soluções de software pragmáticas e criar conteúdo técnico acessível a todos os níveis de conhecimento.