Você pode montar um repositório do GitHub no contêiner da sua sessão e conectar-se ao GitHub MCP para criar pull requests.
Os repositórios do GitHub são armazenados em cache, portanto sessões futuras que usam o mesmo repositório iniciam mais rapidamente.
Todas as requisições da API de Managed Agents requerem 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 GitHub MCP. 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-7}' \
--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 clone do repositório e não é exibido 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 de granularidade fina 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",
},
]Após a criação de uma sessão, você pode listar seus recursos de repositório e rotacionar seus tokens de autorização. Cada recurso possui um id retornado no momento da criação da sessão (ou via resources.list) que você usa para atualizações. Os repositórios ficam anexados durante o tempo de vida da sessão; para alterar quais repositórios estão montados, crie uma nova sessão.
# List resources on the session
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Rotate the authorization token
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Com o servidor GitHub MCP, 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.",
},
],
},
],
)Was this page helpful?