Este projeto é um bot para Slack desenvolvido em Deno/TypeScript com comportamento humanizado (tempos de resposta variáveis, mensagens personalizadas e integração com GitHub).
- 🗨️ Respostas Humanizadas: Tempos de resposta dinâmicos baseados no tamanho da mensagem
- 🌍 Suporte Multi-idioma: Inglês, Português, Espanhol e Francês
- 😄 Variações de Tom: Mensagens engraçadas, formais e curtas
- 🔗 Integração GitHub: Crie issues diretamente do Slack
- ⏱️ Timeout Inteligente: Resposta de "pensando..." após 30 segundos
-
Clone o repositório:
git clone https://github.com/slack-samples/deno-github-functions.git cd deno-github-functions -
Configure as variáveis de ambiente (
.env):SLACK_BOT_TOKEN=xoxb-your-token SLACK_SIGNING_SECRET=your-signing-secret GITHUB_TOKEN=ghp-your-token GITHUB_REPO_OWNER=seu-usuario GITHUB_REPO_NAME=seu-repositorio -
Instale as dependências:
deno task start
-
Execute o bot:
slack run
| Comando | Descrição | Exemplo |
|---|---|---|
/hello @usuario |
Saudação rápida (0.5-2s) | /hello @john |
/hello @usuario --lang=en |
Saudação em inglês | /hello @john --lang=en |
/hello @usuario --msg="Oi!" |
Mensagem personalizada | /hello @john --msg="E aí!" |
/github-issue "Título" "Descrição" |
Criar issue no GitHub | /github-issue "Bug" "Não funciona" |
| Tipo de Mensagem | Tempo | Exemplo |
|---|---|---|
| Curta (≤ 20 chars) | 0.5-2 segundos | "Oi!" |
| Média (21-50 chars) | 2-5 segundos | "Olá! Como posso ajudar?" |
| Longa (> 50 chars) | 5-10 segundos | "Gostaria de saber como configurar..." |
| Timeout | 30 segundos | "Desculpe, precisei pensar um pouco..." |
Execute os testes com:
deno test tests/test_hello.ts --allow-readdeno-github-functions/
├── functions/
│ ├── hello.ts # Função de saudação humanizada
│ └── github_issue.ts # Função de criação de issues
├── triggers/
│ ├── hello_trigger.ts
│ └── github_issue_trigger.ts
├── workflows/
│ ├── hello_workflow.ts
│ └── github_issue_workflow.ts
├── tests/
│ └── test_hello.ts # Testes unitários
└── manifest.ts # Configuração do Slack
Os logs são exibidos no console com timestamps:
[INFO] 2024-01-15T10:30:00.000Z - Iniciando processamento para usuário: U123456
[DEBUG] 2024-01-15T10:30:00.005Z - Texto recebido: "Oi" (2 caracteres)
[INFO] 2024-01-15T10:30:00.010Z - Tempo de resposta calculado: 1200ms
[INFO] 2024-01-15T10:30:01.215Z - Resposta enviada em 1215ms
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
MIT License - veja LICENSE para detalhes.