Como Criar um Bot do Discord para Buscar Todas as Issues de um Repositório do GitHub

Danilo Assis
2 min readMar 29, 2023

--

O Discord é uma plataforma popular para comunicação entre equipes e comunidades e também fornece APIs para construir chatbots que podem automatizar várias tarefas. Neste tutorial, criaremos um bot do Discord usando Node.js que pode recuperar todas as issues de um repositório do GitHub usando a lib Octokit REST.

Pré-requisitos

Para seguir este tutorial, você deve ter o seguinte:

  • Uma conta no Discord e um servidor do Discord onde você tenha permissão para criar um bot e adicioná-lo ao servidor.
  • Uma conta no GitHub e um token de acesso pessoal que tenha permissões para acessar o repositório do qual você deseja buscar problemas.
  • Node.js e npm instalados em sua máquina.

Criando o Bot do Discord

Primeiro, precisamos criar um novo aplicativo de bot do Discord e obter seu token. Você pode fazer isso acessando o Portal do Desenvolvedor do Discord, criando um novo aplicativo, adicionando um bot ao aplicativo e copiando seu token.

Em seguida, precisamos instalar as dependências necessárias usando o npm. Você precisará dos seguintes pacotes: discord.js para interagir com a API do Discord, octokit/rest para fazer chamadas à API do GitHub e dotenv para gerenciar variáveis de ambiente. Você pode instalar esses pacotes executando o seguinte comando em seu terminal:

npm install discord.js octokit/rest dotenv

Em seguida, crie um novo arquivo JavaScript e exija os módulos necessários no topo do arquivo:

const Discord = require('discord.js');
const { Octokit } = require('@octokit/rest');
require('dotenv').config();

Depois que o cliente fizer login, ouça as mensagens e responda aos comandos. Neste caso, queremos ouvir um comando específico (por exemplo, !get-issues) e responder buscando todas as issues no repositório GitHub especificado:

client.on('message', async (message) => {
if (message.content === '!get-issues') {
const octokit = new Octokit({ auth: process.env.GITHUB_PERSONAL_ACCESS_TOKEN });
const issues = await octokit.issues.listForRepo({
owner: 'owner-name',
repo: 'repository-name',
});
message.channel.send(`Found ${issues.data.length} issues in the repository.`); }
});

Este código cria uma nova instância Octokit usando um token de acesso pessoal para autenticação do GitHub, busca todos os problemas do repositório especificado e envia uma mensagem de volta para o canal do Discord com o número de issues encontradas.

Finalmente, inicie o bot executando o arquivo JavaScript usando o Node.js:

node discord-bot.js

Conclusão

Neste tutorial, aprendemos como criar um bot do Discord usando Node.js que pode recuperar todas as issues de um repositório do GitHub usando a biblioteca Octokit REST. Com esse conhecimento, você pode construir bots mais complexos que podem automatizar várias tarefas e tornar o fluxo de trabalho de sua equipe mais eficiente.

Veja a versão em inglês aqui

Sigam-me no Twitter

Se gosta e quer apoiar o meu trabalho seja meu patreon

Veja mais em daniloassis.dev

--

--

Danilo Assis

Tech Lead at Woovi; twitter @daniloab_; instagram @danassis_