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. Weitere Informationen findest du unter 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.
- Überwachungsprotokollereignisse für Ihre Enterprise
- Überwachungsprotokollereignisse für deine Organisation
- Sicherheitsprotokollereignisse
Ü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. Weitere Informationen findest du unter 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"