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 rapidamente.
Todas as requisições à Managed Agents API exigem o cabeçalho beta managed-agents-2026-04-01. O SDK define o cabeçalho beta automaticamente.
Primeiro, crie um agente que declare 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 \
--name "Code Reviewer" \
--model '{id: claude-opus-4-8}' \
--system "You are a code review assistant with access to GitHub." \
--mcp-server '{type: url, name: github, url: https://api.githubcopilot.com/mcp/}' \
--tool '{type: agent_toolset_20260401}' \
--tool '{type: mcp_toolset, mcp_server_name: github}' \
--transform id --raw-output)Em seguida, crie uma sessão que monte 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",
},
],
)O resources[].authorization_token autentica a operação de clonagem do repositório e não é retornado nas respostas da API.
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 |
Use tokens de acesso pessoal refinados (fine-grained) com as permissões mínimas necessárias. Evite usar tokens com acesso amplo à sua conta do GitHub.
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",
},
]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 ficam 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",
)Com o servidor MCP do GitHub, o agente pode criar branches, fazer commit de alterações e enviá-las via push:
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.",
},
],
},
],
)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?