Olha só isso: GitHub dentro do seu agente, sem gambiarra

Sabe aquele setup clássico? Você coloca um Personal Access Token no .env, escreve umas chamadas REST na mão e reza pra não comentar no PR errado às 2 da manhã. Funciona… até não funcionar mais.

O pacote @github-tools/eve-extension vira esse jogo. Em vez de você montar auth e permissões na unha, você registra uma extensão com connector que gera tokens curtos e com escopo em tempo de execução. Toda tool de escrita já vem com aprovação obrigatória por padrão. E o melhor: tudo em UM arquivo dentro de agent/extensions/.

Se você curte automação séria em repositórios, dá uma olhada nesse case da Spotify que automatizou 240 migrações de dataset em 6 meses — mesma filosofia, escala gigante.

O que você ganha de graça

  • Auth via connector: você passa um connector do Vercel Connect e a extensão emite tokens de curta duração, com escopo, na hora.
  • Presets que delimitam o toolset: code-review, issue-triage, repo-explorer, ci-ops e maintainer mapeiam automaticamente para os escopos do Connect. O token carrega só o que a tool precisa.
  • Regras de aprovação viajam com o config: toda tool de escrita exige aprovação por padrão. Você pode gatear tools individuais com always, once ou um predicado que depende do input.
  • Namespaced e versionado: o nome do arquivo vira o namespace, então as tools aparecem como github__addPullRequestComment. Sobe a versão do pacote e ganha tools novas — e o schema do config é validado no import.

Developer configuring GitHub tools extension inside an AI agent code editor Development Concept Image

Passo 1 — Instala o pacote

# Adiciona a extensão no seu projeto de agente eve
pnpm add @github-tools/eve-extension

Passo 2 — Registra a partir de um arquivo em agent/extensions/

Cria um arquivo (qualquer nome — o nome do arquivo vira o namespace) dentro de agent/extensions/. Por exemplo, agent/extensions/github.ts:

// agent/extensions/github.ts
import githubExtension from '@github-tools/eve-extension'

export default githubExtension({
  // Referencia um connector do Vercel Connect já criado
  connector: 'github/my-connector',

  // Delimita o toolset pro que esse agente precisa
  preset: 'code-review',

  // Gate nas tools de escrita. Aqui: exige aprovação pra
  // comentar fora da sua org, mas libera dentro dela.
  requireApproval: {
    addPullRequestComment: ({ toolInput }) =>
      toolInput?.owner !== 'vercel-labs',
  },
})

Pronto. Um arquivo registra o toolset inteiro de code-review, ligado a um connector do Connect, com um predicado que deixa sua org passar direto e marca comentários externos pra revisão humana.

Passo 3 — Confere se as tools apareceram

Depois do restart, seu agente expõe as tools sob o namespace github__. Você deve ver algo assim:

github__addPullRequestComment
github__listPullRequests
github__getFileContents
...

O namespace vem do nome do arquivo — renomeia pra gh-tools.ts e as tools viram gh-tools__addPullRequestComment. Mantém previsível pra não quebrar seus prompts.

Cola das regras de aprovação

RegraComportamento
alwaysToda chamada exige aprovação humana
onceA primeira chamada da sessão exige aprovação; as próximas passam
Função predicadoAprova só quando ({ toolInput }) => boolean retorna true

O default é conservador — tools de escrita exigem aprovação a menos que você afrouxe. Não afrouxe sem motivo.

Terminal screenshot showing pnpm add @github-tools/eve-extension install command Coding Session Visual

Limites e pegadinhas ⚠️

  • Você ainda precisa de um connector do Vercel Connect. A extensão não cria um pra você. Se pular esse passo, o agente quebra na hora de emitir o token com erro de connector não encontrado.
  • Os presets são opinativos. code-review não vai te dar capacidades de repo-explorer por mágica. Se precisar de tools de vários presets, registra várias extensões ou confere se o preset cobre seu caso.
  • Predicados rodam no client. O requireApproval executa no runtime do seu agente, não no lado da Vercel. Não coloca segredo dentro do closure do predicado — é só config.
  • Validação de schema no import. Se o formato do config estiver errado, a extensão lança erro no import. Isso é uma feature, não bug — mas significa que um typo em requireApproval pode travar o boot do agente inteiro.
  • Colisão de namespace. Dois arquivos com o mesmo basename colidem. Mantém nomes únicos em agent/extensions/.

Próximos passos

Depois de plugar as tools do GitHub, o passo natural é cuidar do input que seu agente recebe. Se você tá montando algo user-facing em cima dessas tools — tipo um fluxo de demo onde o stakeholder clica em login → PR → review — dá uma olhada nesse tutorial de fluxo de login com ProtoPie, que mostra como prototipar essa UX sem escrever código.

AI agent dashboard displaying approval rule prompt before posting a GitHub PR comment Software Concept Art

Resumão

  • pnpm add @github-tools/eve-extension e joga um arquivo em agent/extensions/.
  • Usa um connector do Vercel Connect pra tokens curtos e com escopo.
  • Escolhe um preset (code-review, issue-triage, repo-explorer, ci-ops, maintainer) pra limitar permissões automaticamente.
  • Gateia tools de escrita com always, once ou predicado — o default já é seguro.
  • Tools são namespaced pelo nome do arquivo e versionadas pelo pacote.

Se você já roda agentes eve contra repos de verdade, esse é o jeito mais simples de adicionar capacidade do GitHub sem inventar sua própria camada de auth. Começa com o preset code-review, mantém as regras de aprovação default, e só abre o escopo quando tiver um motivo concreto.

Fonte: Changelog da Vercel — GitHub tools eve extension

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.