JSPM

  • Created
  • Published
  • Downloads 467
  • Score
    100M100P100Q136942F
  • License MIT

n8n community node for GitHub Copilot CLI integration

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (n8n-nodes-github-copilot) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    n8n-nodes-github-copilot

    GitHub Copilot n8n License

    Este é um community node para n8n que integra o GitHub Copilot CLI diretamente nos seus workflows de automação, permitindo gerar código, explicar funcionalidades e obter sugestões de comandos shell usando IA.

    🎯 Funcionalidades

    • Sugestões de Código: Gere código em múltiplas linguagens de programação
    • Explicação de Código: Obtenha explicações detalhadas sobre funcionalidades de código
    • Comandos Shell: Receba sugestões de comandos para Git, Docker, NPM e muito mais
    • Múltiplas Linguagens: Suporte para JavaScript, TypeScript, Python, Ruby, Java, C#, Go, PHP, C++, Rust, SQL, HTML, CSS
    • Integração Nativa: Usa o GitHub Copilot CLI oficial por baixo dos panos

    📋 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. GitHub CLI Instalado

    O node usa o GitHub CLI (gh) e a extensão Copilot:

    Linux/Ubuntu:

    # Instalar GitHub CLI
    curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
    sudo apt update
    sudo apt install gh
    
    # Instalar extensão Copilot
    gh extension install github/gh-copilot
    
    # Autenticar
    gh auth login

    macOS:

    # Usando Homebrew
    brew install gh
    
    # Instalar extensão Copilot
    gh extension install github/gh-copilot
    
    # Autenticar
    gh auth login

    Windows:

    # Usando Chocolatey
    choco install gh
    
    # Ou usando Scoop
    scoop install gh
    
    # Instalar extensão Copilot
    gh extension install github/gh-copilot
    
    # Autenticar
    gh auth login

    3. Token de Acesso GitHub

    Crie um Personal Access Token no GitHub com as seguintes permissões:

    • read:user
    • user:email
    • Acesso ao GitHub Copilot (incluído automaticamente se você tem assinatura)

    🚀 Instalação

    Opção 1: Via npm (Recomendado)

    npm install n8n-nodes-github-copilot

    Opção 2: Via Interface do n8n

    1. Vá para Settings > Community Nodes
    2. Clique em Install a community node
    3. Digite: n8n-nodes-github-copilot
    4. Clique em Install

    Opção 3: Instalação Manual

    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

    1. Configurar Credenciais

    1. No n8n, vá para Settings > Credentials
    2. Clique em Create New Credential
    3. Selecione GitHub API
    4. Insira seu Personal Access Token
    5. Teste a conexão

    2. Adicionar o Node

    1. Crie um novo workflow
    2. Procure por GitHub Copilot na lista de nodes
    3. Arraste para o canvas
    4. Configure as credenciais criadas anteriormente

    🎮 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

    ├── credentials/
    │   └── GitHubApi.credentials.ts
    ├── nodes/
    │   └── GitHubCopilot/
    │       ├── GitHubCopilot.node.ts
    │       └── githubcopilot.svg
    ├── 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