Skip to main content

Verwenden der Überwachungsprotokoll-API für dein Unternehmen

Erfahren Sie, wie Sie Unternehmensereignisse programmgesteuert über die REST-API abrufen können.

Wer kann dieses Feature verwenden?

Enterprise owners

Note

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“.

Wahren Sie die Compliance und schützen Sie geistiges Eigentum mit Endpunkten, die sich auf das Überwachungsprotokoll beziehen. Siehe „REST-API-Endpunkte für Enterprise-Überwachungsprotokolle“ und „REST-API-Endpunkte für Organisationen“.

Weitere Informationen zu den spezifischen Ereignissen, auf die Sie über die Überwachungsprotokoll-Endpunkte zugreifen können, finden Sie in den folgenden Artikeln.

Überwachungsprotokolldetails

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 finden Sie 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.

Ratenbegrenzung

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. Siehe „Ratenbegrenzungen für die REST-API“ und „Bewährte Methoden für die Verwendung der REST-API“.

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"