Documentation

n8n-nodes-github-copilot

GitHub Copilot
n8n
License

Este é um community node para n8n que integra o GitHub Copilot através do novo GitHub Copilot CLI em modo programático e da API oficial do GitHub Copilot, permitindo acesso direto aos modelos avançados de IA como GPT-5, Claude Sonnet 4.5, Gemini 2.5 Pro e muito mais usando seus créditos existentes do Copilot.

🚀 Nodes Disponíveis

1. GitHub Copilot CLI (Novo! ⭐ Modo Programático)

  • Modo Programático: Execute qualquer tarefa ou consulta do Copilot diretamente via copilot -p "prompt"
  • Agentic Capabilities: Copilot pode planejar e executar tarefas complexas automaticamente
  • Tool Approval: Controle fino sobre quais ferramentas o Copilot pode usar (shell, write, MCP servers)
  • Múltiplos Modelos: Claude Sonnet 4.5 (padrão), Claude Sonnet 4, GPT-5
  • Integração GitHub: Trabalhe com repositórios, issues, PRs diretamente da CLI
  • MCP Support: Suporte nativo para Model Context Protocol servers

2. GitHub Copilot Chat API

  • Chat Completion: Conversas diretas com modelos avançados de IA
  • Análise de Imagens: Processamento de imagens com modelos de visão
  • Modelos Disponíveis: GPT-5, GPT-5 Mini, Claude Opus 4.1, Gemini 2.5 Pro, Grok Code Fast 1, GPT-4.1 Copilot
  • Sem Custos Extras: Usa seus créditos existentes do GitHub Copilot

🎯 Funcionalidades

  • Novo Copilot CLI: Agente conversacional com modo programático
  • API oficial: Acesso direto aos modelos via API
  • Modelos Premium: GPT-5, Claude Sonnet 4.5, Gemini através de sua assinatura

📋 Pré-requisitos

1. Assinatura do GitHub Copilot

Você precisa ter uma assinatura ativa do GitHub Copilot:

  • GitHub Copilot Individual: $10/mês
  • GitHub Copilot Business: $19/usuário/mês
  • GitHub Copilot Enterprise: $39/usuário/mês

2. Novo GitHub Copilot CLI

O node agora usa o novo GitHub Copilot CLI standalone (não mais a extensão gh copilot que foi depreciada):

Linux/Ubuntu:

# Via install script
curl -fsSL https://gh.io/copilot-install | bash

# Ou via npm
npm install -g @github/copilot

# Autenticar (primeira vez)
copilot
# Use o comando /login quando solicitado

macOS:

# Usando Homebrew
brew install copilot-cli

# Ou via npm
npm install -g @github/copilot

# Autenticar
copilot

Windows:

# Usando npm
npm install -g @github/copilot

# Ou via WinGet
winget install GitHub.Copilot

# Autenticar
copilot

⚠️ IMPORTANTE: O antigo gh copilot (extensão do GitHub CLI) foi depreciado. Este node agora usa o novo copilot CLI standalone.

  1. Clone este repositório
  2. Execute npm run build
  3. Copie a pasta dist para o diretório de nodes do n8n

⚙️ Configuração

🔐 IMPORTANTE: Autenticação

GitHub Copilot CLI tem requisitos específicos de autenticação:

O que FUNCIONA:

  • Autenticação Local: gh auth login (recomendado para servidores)
  • Tokens do GitHub CLI: Gerados por gh auth token após fazer login

O que NÃO FUNCIONA:

  • Personal Access Tokens criados no site do GitHub
  • OAuth App Tokens de aplicações externas
  • GitHub App Tokens de aplicações personalizadas

🛠️ Configuração Recomendada:

Opção 1: Autenticação Local (Servidores)

# No servidor onde roda o n8n
gh auth login
gh extension install github/gh-copilot

# Testar se funciona
gh copilot explain "ls -la"

Opção 2: Token Manual (Para workflows específicos)

# Primeiro faça login local
gh auth login

# Depois obtenha o token
gh auth token
# Resultado: gho_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Use este token no campo "GitHub Token (Optional)" do node

1. Adicionar o Node

  1. Crie um novo workflow
  2. Procure por GitHub Copilot na lista de nodes
  3. Arraste para o canvas
  4. Deixe o campo token vazio (se o servidor tem gh auth login)
  5. OU insira um token gerado por gh auth token

2. Configuração para GitHub Copilot Chat API

Para usar o GitHub Copilot Chat API (com modelos GPT-5, Claude, etc.):

Opção A: OAuth2 Automático (Recomendado) ✅

  1. Use a nova credencial: Selecione "GitHub Copilot OAuth2 API"
  2. Clique em "Connect": Use o botão OAuth2 para autenticação automática
  3. Configure GitHub OAuth App:
    • Vá para GitHub → Settings → Developer settings → OAuth Apps
    • Clique em "New OAuth App"
    • Authorization callback URL: https://your-n8n-instance.com/rest/oauth2-credential/callback
    • Copie Client ID e Client Secret para a credencial N8N
  4. Vantagens: Botão de autenticação, renovação automática de tokens, interface padrão N8N

Opção B: OAuth2 Manual (Compatibilidade)

  1. Use autenticação OAuth2: Selecione "GitHub OAuth2 API" (credencial padrão do n8n)
  2. Configure a credencial OAuth2:
    • Client ID: Seu GitHub OAuth App Client ID
    • Client Secret: Seu GitHub OAuth App Client Secret
    • Scope: copilot read:org repo user
  3. Crie uma GitHub OAuth App:
    • Vá para GitHub → Settings → Developer settings → OAuth Apps
    • Clique em "New OAuth App" e configure callback URL do n8n
  4. Vantagens: Autenticação segura, renovação automática de tokens, acesso organizacional

🎮 Como Usar

Operações Disponíveis

1. Suggest Code (Sugerir Código)

Gera sugestões de código em linguagens específicas.

Parâmetros:

  • Prompt: Descreva o que você quer criar
  • Language: Selecione a linguagem de programação
  • Additional Context: Contexto adicional (opcional)

Exemplo:

Prompt: "create a function to validate email addresses"
Language: "JavaScript"

2. Explain Code (Explicar Código)

Explica funcionalidades de código existente.

Parâmetros:

  • Prompt: Cole o código que quer explicar
  • Additional Context: Contexto adicional (opcional)

Exemplo:

Prompt: "function validateEmail(email) { return /\S+@\S+\.\S+/.test(email); }"

3. Shell Command (Comando Shell)

Sugere comandos shell para tarefas específicas.

Parâmetros:

  • Prompt: Descreva a tarefa que quer executar
  • Command Type: Tipo de comando (Git, Docker, NPM, etc.)
  • Additional Context: Contexto adicional (opcional)

Exemplo:

Prompt: "commit all changes with message"
Command Type: "Git Command"

Dados de Saída

O node retorna um objeto JSON com:

{
  "operation": "suggest",
  "prompt": "create a REST API endpoint",
  "language": "javascript",
  "suggestion": "// Código sugerido pelo Copilot",
  "rawOutput": "Saída completa do CLI",
  "timestamp": "2024-01-15T10:30:00.000Z"
}

🔧 Exemplo de Workflow

Gerador de Código Automático

Webhook (POST) → GitHub Copilot (Suggest) → HTTP Response

Payload do Webhook:

{
  "prompt": "create a login function",
  "language": "python",
  "context": "using Flask framework"
}

Bot de Ajuda para Comandos

Telegram Bot → GitHub Copilot (Shell) → Telegram Bot (Reply)

🐳 Docker

Dockerfile para n8n com GitHub Copilot

FROM n8nio/n8n:latest

USER root

# Instalar GitHub CLI
RUN apt-get update && apt-get install -y curl gnupg
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null
RUN apt-get update && apt-get install -y gh

# Instalar o community node
RUN npm install -g n8n-nodes-github-copilot

USER node

# Definir variáveis de ambiente
ENV GITHUB_TOKEN=""
ENV N8N_COMMUNITY_PACKAGES="n8n-nodes-github-copilot"

docker-compose.yml

version: '3.8'
services:
  n8n:
    build: .
    ports:
      - "5678:5678"
    environment:
      - GITHUB_TOKEN=${GITHUB_TOKEN}
      - N8N_COMMUNITY_PACKAGES=n8n-nodes-github-copilot
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

🔒 Segurança

  • Dados Sensíveis: Evite enviar informações confidenciais nos prompts
  • Rate Limiting: O GitHub Copilot tem limites de uso - monitore seu consumo
  • Tokens: Mantenha seus tokens seguros e com permissões mínimas necessárias
  • Logs: O node registra atividades para auditoria

🚨 Limitações

  • Requer Assinatura: Necessário ter GitHub Copilot ativo
  • Dependência CLI: Requer GitHub CLI instalado no sistema
  • Rate Limits: Sujeito aos limites de uso do GitHub Copilot
  • Contexto: Limitado pelo contexto que o Copilot CLI suporta

🛠️ Desenvolvimento

Construir do Código Fonte

# Clonar repositório
git clone https://github.com/sufficit/n8n-nodes-github-copilot.git
cd n8n-nodes-github-copilot

# Instalar dependências
npm install

# Construir
npm run build

# Lint
npm run lint

# Formatar código
npm run format

Estrutura do Projeto

├── nodes/
│   ├── GitHubCopilot/
│   │   ├── GitHubCopilot.node.ts
│   │   └── githubcopilot.svg
│   ├── GitHubCopilotChatAPI/
│   │   └── GitHubCopilotChatAPI.node.ts
│   └── GitHubCopilotChatModel/
│       └── GitHubCopilotChatModel.node.ts
├── shared/
│   └── models/
│       └── GitHubCopilotModels.ts
├── package.json
├── tsconfig.json
├── gulpfile.js
└── README.md

📄 Licença

MIT License - veja LICENSE para detalhes.

🤝 Contribuindo

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📞 Suporte

🙏 Agradecimentos


Feito com ❤️ pela equipe Sufficit

Discussion