Skip to main content

Использование API журнала аудита для предприятия

Вы можете программно извлекать корпоративные события с помощью REST API.

Кто эту функцию можно использовать?

Enterprise owners can use the audit log API.

Использование API журнала аудита

Примечание. Веб-перехватчики могут быть хорошей альтернативой журналу аудита или опросу API для определенных вариантов использования. Веб-перехватчики — это способ GitHub для уведомления сервера о конкретных событиях для репозитория, организации или предприятия. По сравнению с API или поиском в журнале аудита веб-перехватчики могут быть более эффективными, если вы просто хотите узнать и, возможно, журнал при возникновении определенных событий в организации, организации или репозитории. Дополнительные сведения см. в разделе Документация по веб-перехватчикам.

Вы можете обеспечить соответствие вашей организации и защитить интеллектуальную собственность, взаимодействуя с журналом аудита с помощью REST API. Дополнительные сведения о конкретных событиях, которые можно получить через API журнала аудита, см. в следующих статьях.

В журнале аудита перечисляются события, которые активируются действиями, влияющими на ваше предприятие за последние 180 дней. События Git хранятся в журнале аудита семь дней —

По умолчанию отображаются только события за последние три месяца. Чтобы увидеть старые события, необходимо указать диапазон дат с параметром created. Дополнительные сведения см. в разделе Основные сведения о синтаксисе поиска.

Метки времени и поля даты в ответе API измеряются в миллисекундах эпохи UTC.

Каждая конечная точка API журнала аудита имеет ограничение скорости в 1750 запросов в час для заданного сочетания пользовательского и IP-адреса. Чтобы избежать ограничения скорости, интеграции, запрашивающие API журнала аудита, должны запрашивать не более 1750 запросов в час. Кроме того, если интеграция получает ошибку ограничения скорости (обычно ответ 403 или 429), он должен ждать, прежде чем выполнять другой запрос к API. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Ограничения скорости для REST API](/rest/guides/best-practices-for-integrators)".

Дополнительные сведения о REST API журнала аудита см. в разделе "[AUTOTITLE" и "Конечные точки REST API для организаций](/rest/enterprise-admin/audit-log)".

Пример 1. Все события предприятия для определенной даты с разбиением на страницы

Можно использовать cursor based на страницы. Дополнительные сведения о разбиении на страницы см. в разделе "Использование разбиения на страницы в REST API".

Приведенный ниже запрос ищет события журнала аудита, созданные 1 января 2022 года в avocado-corp организации, и возвращает первую страницу с максимальной 100 элементами на страницу с помощью разбиения на страницы. Дополнительные сведения о разбиении на страницы см. в разделе "Использование разбиения на страницы в REST API". Флаг --include приводит к возврату заголовков вместе с ответом.

curl --include -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&per_page=100"

Если есть более 100 результатов, link заголовок будет содержать URL-адреса для получения следующих, первых и предыдущих страниц результатов.

link: <https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=MS42NjQzODMzNTk5MjdlKzEyfDloQzBxdURzaFdVbVlLWjkxRU9mNXc%3D&before=>; rel="next",
<https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=&before=>; rel="first",
<https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=&before=MS42Njc4NDA2MjM4MzNlKzEyfExqeG5sUElvNEZMbG1XZHA5akdKTVE%3D>; rel="prev"

Скопируйте соответствующую ссылку на страницы в следующий запрос. Например:

curl -I -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=MS42Njc4NDA2MjM5NDFlKzEyfHRYa3AwSkxUd2xyRjA5bWxfOS1RbFE%3D&before="

Пример 2. События для запросов на вытягивание в предприятии для определенной даты и субъекта

Можно указать несколько фраз для поиска, например created или actor, разделив их в сформированном URL-адресе символом + или кодом %20 символа ASCII.

Приведенный ниже запрос выполняет поиск событий журнала аудита для запросов на вытягивание, где событие произошло 1 января 2022 г. или после этой даты в предприятии avocado-corp, а действие выполнил пользователь octocat:

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat"

Пример 3. События для действий Git в организации для определенной даты и субъекта

Вы можете искать события Git в организации, например клонирование, получение и отправку, добавив include=git в URL-адрес в качестве параметра. Кроме того, можно использовать include=all для поиска веб-событий и событий Git.

В приведенном ниже запросе выполняется поиск событий журнала аудита для действия Git, где событие произошло после 1 января 2024 г. в avocado-corp организации, а действие было выполнено пользователем octocat .

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:>=2024-01-01+actor:octocat&include=git"