Me chamo Gabriel, e essa é a história de como um 'projeto de fim de semana' virou o OctoBot: um bot de Discord open source que me cutuca na DM quando algo no GitHub realmente precisa de mim.
Problema: Respostas a Review Requests
Eu era péssimo em responder review requests no GitHub. Não por má vontade, mas por causa de uma configuração complicada. Com PRs abertos em vários repositórios ao mesmo tempo, o sininho do GitHub me fazia perder tempo sem perceber. Então, decidi que era hora de mudar.
Solução: Notificações do GitHub
O OctoBot resolveu esse problema, substituindo as review requests no canal de DMs do GitHub por notificações no Discord. A ideia inicial era simples: o bot do Discord notificaria quando algo no GitHub precisava de minha atenção.
Webhook: A Primeira Parede
O primeiro passo foi configurar um webhook no GitHub. Mas a configuração era complicada, pois eu não era administrador em muitos repositórios. Então, decidi criar uma API personalizada para notificar o bot sobre as notificações do GitHub.
Conditional Requests: A Segunda Parede
A segunda parede foi a necessidade de fazer solicitações condicionais. O GitHub responde com um ETag, que o OctoBot usa para evitar solicitações desnecessárias. Isso reduziu significativamente o uso de recursos e o rate limit.
Privacidade e Segurança
A terceira parede foi a questão de privacidade. O OctoBot é um bot read-only, que lê notificações do GitHub sem acesso aos repositórios. O token do usuário é criptografado e nunca salvo em logs. Além disso, o bot usa OAuth e state único para garantir segurança.
Conclusão
O OctoBot é uma solução eficaz para a necessidade de notificações do GitHub no Discord. Ele responde a notificações do GitHub sem precisar de acesso aos repositórios, mantendo a privacidade e a segurança do usuário.