Ограниченные полномочия для GitHub
Статус: принято 27 июля 2026 года.
Контекст
В GigaLoom уже есть два намеренно разных GitHub-пути:
GitHubEnvironmentServiceвыполняет ограниченную read-only ориентацию по repository через reviewed-командыgh;GovernedEnvironmentPullRequestServiceсоздаёт один точный pull request только после approval, связанного с неизменным локальным и hosted state.
Ни один путь не приравнивает локальный git к hosted GitHub authority.
Локальный commit или branch имеет другие credentials, targets, enforcement и
side effects, чем authenticated GitHub API или CLI request.
GitHub CLI также разделяет active account/host и каждый API request. Команда
gh api может неявно изменить HTTP method при добавлении fields, поэтому
GigaLoom связывает grant с operation class и reviewed payload, а не доверяет
названию команды. GitHub REST permissions зависят от endpoint и иногда требуют
нескольких repository permissions.
Решение
gigaloom.runtime.github_access владеет schema version 1 для
семантической GitHub authority boundary. Она классифицирует:
local_gitкак отдельную, не-GitHub authority;github_apiиgithub_cliкак hosted GitHub authority;- read-only orientation отдельно от issue, comment, pull-request и release writes.
Каждый request связывает один канонический owner/repository, один operation
class, одну API/CLI surface и один opaque credential binding. Credential binding
содержит только класс владельца, host, hash principal, hash permission set и
expiry, если владелец credential его раскрывает. Tokens, account labels и пути
credential storage не попадают в requests, approvals или receipts.
Контракт не настраивает, не обновляет, не переключает, не печатает и никак
иначе не разрешает GitHub credentials. В частности, GigaLoom никогда не
вызывает token-revealing опции gh auth.
Read-only orientation
orientation.read не принимает и не расходует mutation authority. Поэтому
repository identity, pull-request state, counts issues/checks и recent Actions
доступны для ориентации без hosted write grant.
Для реального transport по-прежнему отдельно нужны admitted network/CLI execution. Контракт capability grants — только semantic authorization; он не обращается к GitHub и не ослабляет scoped-network controls.
Hosted writes
Issue, comment, pull-request и release writes требуют:
- точный Harness-enforced
AuthorityGrant; - operation lifetime вместо session или persisted write grant;
- неотозванный grant с явным expiry;
- те же repository, operation class, credential binding, content-free resource identity, payload byte count и payload SHA-256, что в reviewed preview;
- preview window не более пяти минут;
- повторную validation непосредственно перед dispatch.
Automatic retry не покрывается прежним grant. Retry, изменённый target, payload, credential identity или permission set, просроченный preview либо просроченный/отозванный grant требуют нового preview и решения.
Существующее создание pull request остаётся во владении immutable-state service. Контракт capability grants даёт общий semantic seam, но не переавторизует и не исполняет этот старый flow автоматически.
Audit и privacy
Receipts показывают repository, operation class, API/CLI surface, класс credential source, hashes, byte counts, policy source, reviewer class, expiry и outcome. Resource и reviewer identities хешируются.
Receipts не содержат credential material, raw principals, write bodies и direct personal, contact или payment data. Consumer обязан применить то же правило до передачи preview в общий Approval Center.
Последствия
GigaLoom может рассуждать о GitHub orientation и mutation без blanket-
переключателя «GitHub enabled». Само использование gh или создание approval
request не защищает mutation consumer: он обязан применить exact ticket при
dispatch и сохранить отдельную network boundary.
Само принятие решения не выполняет операции в GitHub, вход в учётную запись,
настройку учётных данных, push, изменение задач, комментариев и pull request,
публикацию выпусков или сетевые запросы.
Ссылки
- GitHub CLI
gh auth status - GitHub CLI
gh api - GitHub REST API permission troubleshooting
- Authority and approval schema: Полномочия и подтверждение операций.
- Контролируемый сетевой доступ.