Skip to main content

Verwenden der Überwachungsprotokoll-API für dein Unternehmen

Du kannst Unternehmensereignisse programmgesteuert über die REST-API abrufen.

Wer kann dieses Feature verwenden?

Enterprise owners can use the audit log API.

Verwenden der Überwachungsprotokoll-API

Hinweis: Webhooks sind für bestimmte Anwendungsfälle möglicherweise eine gute Alternative zum Überwachungsprotokoll oder API-Abruf. Webhooks sind eine Möglichkeit für GitHub, Ihren Server zu benachrichtigen, wenn bestimmte Ereignisse für ein Repository, eine Organisation oder ein Enterprise auftreten. Im Vergleich zu der API oder dem Durchsuchen des Überwachungsprotokolls können Webhooks effizienter sein, wenn Sie nur erfahren und möglicherweise protokollieren möchten, wann bestimmte Ereignisse in Ihrem Enterprise, Ihrer Organisation oder ihrem Repository auftreten. Weitere Informationen finden Sie unter Webhooks-Dokumentation.

Sie können die Compliance für Ihr Unternehmen und Ihr geistiges Eigentum sichern, indem Sie mit dem Überwachungsprotokoll mithilfe der REST-API interagieren. Weitere Informationen zu den spezifischen Ereignissen, auf die Sie über die Überwachungsprotokoll-API zugreifen können, finden Sie in den folgenden Artikeln.

Im Überwachungsprotokoll werden Ereignisse aufgelistet, die durch Aktivitäten ausgelöst werden, die sich auf dein Unternehmen auswirken innerhalb der letzten 180 Tage. Das Überwachungsprotokoll behält Git-Ereignisse sieben Tage lang bei.

Standardmäßig werden nur Ereignisse aus den letzten drei Monaten angezeigt. Um ältere Ereignisse anzuzeigen, musst du einen Datumsbereich mit dem created-Parameter angeben. Weitere Informationen findest du unter Grundlagen der Suchsyntax.

Zeitstempel und Datumsfelder in der API-Antwort werden in UTC-Epochenmillisekunden gemessen.

Sie können den read:audit_log-Bereich verwenden, um über die API auf das Überwachungsprotokoll zuzugreifen.

Jeder Endpunkt der Überwachungsprotokoll-API weist eine Ratenbegrenzung von 1.750 Abfragen pro Stunde für eine bestimmte Kombination aus Benutzer*in und IP-Adresse auf. Um Ratenbegrenzungen zu vermeiden, sollten Integrationen, die die Überwachungsprotokoll-API abfragen, maximal 1.750 Abfragen pro Stunde ausführen. Wenn deine Integration außerdem einen Fehler in Bezug auf die Ratenbegrenzung erhält (in der Regel eine 403- oder 429-Antwort), sollte sie warten, bevor sie eine weitere Anforderung an die API sendet. Weitere Informationen findest du unter Ratenbegrenzungen für die REST-API und Bewährte Methoden für die Verwendung der REST-API.

Weitere Informationen zur REST-API für das Überwachungsprotokoll findest du unter REST-API-Endpunkte für Enterprise-Überwachungsprotokolle und REST-API-Endpunkte für Organisationen.

Beispiel 1: Alle Ereignisse in einem Unternehmen, für ein bestimmtes Datum, mit Paginierung

Du kannst cursorbasierte Paginierung verwenden. Weitere Informationen zur Paginierung findest du unter Verwenden der Paginierung in der REST-API.

Die folgende Abfrage sucht nach Überwachungsprotokollereignissen, die am 1. Januar 2022 im Unternehmen avocado-corp erstellt wurden, und gibt die erste Seite mit maximal 100 Elementen pro Seite mithilfe der Paginierung zurück. Weitere Informationen zur Paginierung findest du unter Verwenden der Paginierung in der REST-API. Das Flag --include bewirkt, dass die Header zusammen mit der Antwort zurückgegeben werden.

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"

Wenn mehr als 100 Ergebnisse vorhanden sind, enthält der link-Header URLs zum Abrufen der nächsten, ersten und vorherigen Ergebnisseiten.

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"

Kopiere den entsprechenden Paginierungslink in deine nächste Anforderung. Beispiel:

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="

Beispiel 2: Ereignisse bei Pullanforderungen in einem Unternehmen, für ein bestimmtes Datum und einen bestimmten Akteur

Du kannst mehrere Suchbegriffe wie z. B. created und actor angeben, indem du sie in deiner formatierten URL mit dem Symbol + oder dem ASCII-Zeichencode %20 trennst.

Die folgende Abfrage sucht nach Überwachungsprotokollereignissen für Pullanforderungen, bei denen das Ereignis am oder nach dem 1. Januar 2022 im avocado-corp Unternehmen eingetreten ist und die Aktion vom Benutzer octocat ausgeführt wurde:

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"

Beispiel 3: Ereignisse für Git-Aktivitäten in einem Unternehmen, für ein bestimmtes Datum und einen bestimmten Akteur

Sie können in einem Unternehmen nach Git-Ereignissen suchen, z. B. Klonen, Fetchen und Pushing, indem Sie include=git als Parameter in der URL hinzufügen. Alternativ können Sie auch include=all verwenden, um sowohl nach Web-Ereignissen als auch nach Git-Ereignissen zu suchen.

Die folgende Abfrage sucht nach Überwachungsprotokollereignissen für Git-Aktivitäten, bei denen das Ereignis nach dem 1. Januar 2024 im avocado-corp Unternehmen eingetreten ist und die Aktion vom Benutzer octocat ausgeführt wurde.

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"