Доступ к GitHub
Подключите вашего агента к репозиториям GitHub для клонирования, чтения и создания pull request'ов.
Вы можете смонтировать репозиторий GitHub в песочницу вашей сессии и подключиться к GitHub MCP для создания pull request'ов.
Репозитории GitHub кэшируются, поэтому будущие сессии, использующие тот же репозиторий, запускаются быстрее.
GitHub MCP и ресурсы сессии
Сначала создайте агента, который объявляет сервер GitHub MCP. Определение агента содержит URL сервера, но не токен аутентификации:
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: githubЗатем создайте сессию, которая монтирует репозиторий 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",
},
],
)Ресурс github_repository принимает следующие поля:
| Поле | Описание |
|---|---|
type | Обязательное. Должно быть "github_repository". |
url | Обязательное. HTTPS URL репозитория в форме https://github.com/<owner>/<repo>, без суффикса .git. Другие формы, включая SSH URL, отклоняются с ошибкой invalid_request_error. |
authorization_token | Обязательное. Токен GitHub, используемый для клонирования репозитория. Он не возвращается в ответах API. См. Разрешения токена. |
mount_path | Необязательное. Каталог внутри /workspace, в который клонируется репозиторий. По умолчанию /workspace/<repo-name>. |
checkout | Необязательное. Ветка ({"type": "branch", "name": "main"}) или коммит ({"type": "commit", "sha": "..."}) для извлечения. По умолчанию используется ветка репозитория по умолчанию. |
Монтирование репозитория также загружает все навыки (skills), хранящиеся в его корневом каталоге .claude/skills. Навыки обнаруживаются один раз за сессию, из состояния репозитория, извлечённого при запуске сессии. См. Загрузка навыков из репозитория GitHub.
Разрешения токена
При предоставлении токена GitHub используйте минимально необходимые разрешения:
| Действие | Требуемые области доступа |
|---|---|
| Клонирование приватных репозиториев | repo |
| Создание PR | repo |
| Чтение issues | repo (приватные) или public_repo |
| Создание issues | repo (приватные) или public_repo |
Несколько репозиториев
Смонтируйте несколько репозиториев, добавив записи в массив 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",
},
]Управление репозиториями в работающей сессии
После создания сессии вы можете получить список её ресурсов-репозиториев и выполнить ротацию их токенов авторизации. Каждый ресурс имеет id, возвращаемый при создании сессии (или через resources.list), который вы используете для обновлений. Репозитории подключены на всё время жизни сессии; чтобы изменить набор смонтированных репозиториев, создайте новую сессию.
# Вывести список ресурсов сессии
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Сменить токен авторизации
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Создание pull request'ов
С помощью сервера GitHub MCP агент может создавать ветки, фиксировать изменения и отправлять их:
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.",
},
],
},
],
)Следующие шаги
Получайте события в режиме потоковой передачи и направляйте агента, пока он открывает pull request
Подключите больше серверов MCP, чтобы предоставить агенту дополнительные инструменты
Монтируйте файлы в песочнице вместе с вашими репозиториями
Was this page helpful?