GitHub начал решать старую особенность Git, которая давно путала audit trail: поля author и committer сами по себе не доказывают, кто реально отправил commit в repository.
Клиент Git может записать в metadata практически любое имя и email. Поэтому пользователь с write access способен создать commit, который визуально выглядит так, будто его сделал другой разработчик.
Новый механизм Push Attribution хранит authenticated identity пользователя, который действительно сделал push.
Почему author и committer нельзя считать доказательством личности
Git commit содержит metadata, включая:
- author name;
- author email;
- committer name;
- committer email.
Эти значения формирует клиент.
Они полезны для истории разработки, но сами по себе не являются надёжным authentication layer.
Если злоумышленник получил доступ к low-privilege account с правом push, он может изменить metadata так, чтобы commit выглядел как работа trusted maintainer.
GitHub теперь отдельно хранит pusher identity
GitHub и раньше аутентифицировал сам push.
Новое изменение делает эту identity долговечной частью commit attribution на платформе.
То есть рядом с тем, что написано внутри Git metadata, появляется независимая информация:
Author: Alice
Committer: Alice
Authenticated pusher: Bob
В таком случае security team сразу видит несоответствие.
Что меняется в цепочке доверия
- Commit metadataAuthor и committer задаются клиентом
- AuthenticationGitHub знает, какой account выполнил push
- Pusher identityЭта identity сохраняется отдельно и долговечно
- RulesetМожно потребовать совпадение committer с authenticated pusher
- AuditРасследование не опирается только на неподтверждённые строки metadata
Новое правило Committer must match pusher
GitHub добавил repository rule condition:
Committer must match pusher
Если правило включено, push блокируется, когда committer metadata не соответствует ни одному verified email authenticated pusher.
Это закрывает сценарий, где account пытается отправить commit от имени другого человека только за счёт подмены email.
Почему это важно для review policies
Многие процессы доверяют не только коду, но и тому, кто считается автором изменения.
Например:
- trusted maintainer;
- release engineer;
- automation account;
- security team member.
Если identity можно подделать только metadata, audit и review становятся менее надёжными.
Authenticated pusher позволяет строить policy на реальной учётной записи, которая прошла GitHub authentication.
Это не заменяет signed commits
Push Attribution и cryptographic commit signing решают разные задачи.
Signed commit подтверждает, что commit object был подписан определённым ключом.
Pusher attribution подтверждает, какой GitHub account отправил commit в repository.
В сильной security-модели эти механизмы могут дополнять друг друга.
Что будет с automation и bots
Repository rule нужно тестировать перед обязательным включением.
CI, bots и release automation могут использовать специальные committer emails.
Если metadata не соответствует verified email authenticated account, строгий rule начнёт блокировать такие pushes.
Поэтому rollout лучше начинать с inventory существующей automation.
Можно быстрее расследовать подозрительный commit
Раньше security engineer мог увидеть имя maintainer и только потом идти в audit logs, чтобы понять, кто реально взаимодействовал с repository.
Теперь pusher identity видна там, где отображаются commits, и доступна через API.
Это уменьшает количество шагов при incident response.
Что должен сделать enterprise
Чек-лист для repositories с повышенными требованиями
- Понять, где author identity используется как сигнал доверия.
- Проверить automation accounts и их verified emails.
- Оценить новое правило Committer must match pusher.
- Не отказываться от signed commits там, где они уже обязательны.
- Обновить incident-response инструкции с учётом pusher identity.
- Проверить API/integrations, которые читают commit metadata.
Кому доступен preview
На момент анонса Push Attribution находится в limited public preview для GitHub Enterprise customers.
Для подключения GitHub предлагает обращаться к account team.
Поэтому это пока не глобальное изменение поведения для всех публичных repositories.
Почему нововведение особенно актуально сейчас
Количество автоматических commits растёт.
AI-agents, release bots и CI increasingly создают изменения без ручного git commit со стороны человека.
Чем больше automation, тем важнее разделять:
- кто логически указан author;
- кто сформировал commit;
- какой account реально отправил его на сервер.
Мы уже разбирали, как GitHub усиливает AI-поиск секретов и обновляет CodeQL. Push Attribution закрывает более базовый слой — доверие к identity самого изменения.
Практический вывод
Имя автора в Git теперь всё меньше стоит воспринимать как самостоятельное доказательство.
GitHub делает authenticated pusher отдельной сущностью и даёт возможность enforce совпадение committer metadata с реальным account.
Для enterprise repositories это заметно упрощает audit и уменьшает риск commit identity spoofing.
Официальный источник
GitHub Changelog — Push attribution for commits in limited public preview
Обсуждение
Вопросы и комментарии
Можно уточнить детали статьи или поделиться своим опытом. Первый комментарий проходит проверку.