Acessando o GitHub
Conecte seu agente a repositórios do GitHub para clonar, ler e criar pull requests.
Você pode montar um repositório do GitHub no sandbox da sua sessão e conectar-se ao MCP do GitHub para criar pull requests.
Os repositórios do GitHub são armazenados em cache, então sessões futuras que usam o mesmo repositório iniciam mais rápido.
MCP do GitHub e recursos de sessão
Primeiro, crie um agente que declara o servidor MCP do GitHub. A definição do agente contém a URL do servidor, mas nenhum token de autenticação:
AGENT_ID=$(ant beta:agents create --transform id --raw-output < code-reviewer.agent.yaml)name: Code Reviewer
model:
id: claude-opus-5
system: You are a code review assistant with access to GitHub.
mcp_servers:
- type: url
name: github
url: https://api.githubcopilot.com/mcp/
tools:
- type: agent_toolset_20260401
- type: mcp_toolset
mcp_server_name: githubEm seguida, crie uma sessão que monta o repositório do GitHub:
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
resources=[
{
"type": "github_repository",
"url": "https://github.com/org/repo",
"mount_path": "/workspace/repo",
"authorization_token": "ghp_your_github_token",
},
],
)Um recurso github_repository aceita os seguintes campos:
| Campo | Descrição |
|---|---|
type | Obrigatório. Deve ser "github_repository". |
url | Obrigatório. A URL HTTPS do repositório no formato https://github.com/<owner>/<repo>, sem o sufixo .git. Outros formatos, incluindo URLs SSH, são rejeitados com um invalid_request_error. |
authorization_token | Obrigatório. O token do GitHub usado para clonar o repositório. Ele não é retornado nas respostas da API. Consulte Permissões de token. |
mount_path | Opcional. O diretório sob /workspace no qual clonar o repositório. O padrão é /workspace/<repo-name>. |
checkout | Opcional. Um branch ({"type": "branch", "name": "main"}) ou commit ({"type": "commit", "sha": "..."}) para fazer checkout. O padrão é o branch padrão do repositório. |
Montar um repositório também carrega quaisquer skills armazenadas em seu diretório raiz .claude/skills. As skills são descobertas uma vez por sessão, a partir do estado do repositório que foi feito checkout no início da sessão. Consulte Carregar skills de um repositório do GitHub.
Permissões de token
Ao fornecer um token do GitHub, use as permissões mínimas necessárias:
| Ação | Escopos necessários |
|---|---|
| Clonar repositórios privados | repo |
| Criar PRs | repo |
| Ler issues | repo (privado) ou public_repo |
| Criar issues | repo (privado) ou public_repo |
Múltiplos repositórios
Monte múltiplos repositórios adicionando entradas ao array resources:
resources = [
{
"type": "github_repository",
"url": "https://github.com/org/frontend",
"mount_path": "/workspace/frontend",
"authorization_token": "ghp_your_github_token",
},
{
"type": "github_repository",
"url": "https://github.com/org/backend",
"mount_path": "/workspace/backend",
"authorization_token": "ghp_your_github_token",
},
]Gerenciando repositórios em uma sessão em execução
Depois que uma sessão é criada, você pode listar seus recursos de repositório e rotacionar seus tokens de autorização. Cada recurso tem um id retornado no momento da criação da sessão (ou através de resources.list) que você usa para atualizações. Os repositórios são anexados durante todo o tempo de vida da sessão; para alterar quais repositórios estão montados, crie uma nova sessão.
# Listar recursos na sessão
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Rotacionar o token de autorização
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Criando pull requests
Com o servidor MCP do GitHub, o agente pode criar branches, fazer commit de alterações e enviá-las:
client.beta.sessions.events.send(
session.id,
events=[
{
"type": "user.message",
"content": [
{
"type": "text",
"text": "Fix the type error in src/utils.ts, commit it to a new branch, and push it.",
},
],
},
],
)Próximos passos
Faça streaming de eventos e direcione o agente enquanto ele abre o pull request
Conecte mais servidores MCP para dar ao agente ferramentas adicionais
Monte arquivos no sandbox junto com seus repositórios
Was this page helpful?