Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.
GitHub AE is currently under limited release.

Verwenden der Überwachungsprotokoll-API für dein Unternehmen

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

Who can use this feature

Enterprise owners can use the audit log API.

Verwenden der Überwachungsprotokoll-API

Du kannst mit dem Überwachungsprotokoll mithilfe der GraphQL-API oder der REST-API interagieren.

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

Abfragen der GraphQL-API des Überwachungsprotokolls

Zur Sicherstellung, dass dein geistiges Eigentum sicher ist und du die Compliance für dein Unternehmen aufrechterhältst, kannst du die GraphQL-API des Überwachungsprotokolls verwenden, um Kopien deiner Überwachungsprotokolldaten aufzubewahren und zu überwachen: * Zugriff auf Ihre Organisations- oder Repositoryeinstellungen

  • Änderungen an Berechtigungen
  • Hinzugefügte oder entfernte Benutzer*innen in einer Organisation, einem Repository oder einem Team
  • Benutzerinnen, die zu Administratorinnen ernannt werden
  • Änderungen an Berechtigungen einer GitHub App

Beachte, dass du Git-Ereignisse nicht mithilfe der Überwachungsprotokoll-API abrufen kannst.

Die GraphQL-Antwort kann Daten für bis zu 90 bis 120 Tage beinhalten.

Beispiel 1: Mitglieder, die in einem Unternehmen Organisationen hinzugefügt oder daraus entfernt wurden

Die folgende Abfrage ruft die Überwachungsprotokolle für das Unternehmen avocado-corp ab und gibt die ersten 10 Organisationen im Unternehmen zurück, in denen die einzigen ausgeführten Aktionen darin bestanden, ein Mitglied einer Organisation hinzuzufügen oder daraus zu entfernen. Die ersten 20 Überwachungsprotokolleinträge für jede Organisation werden zurückgegeben.

Diese Abfrage verwendet das Feld auditlog (Überwachungsprotokoll) aus dem Objekt „Organization“ sowie die Objekte OrgAddMemberAuditEntry und OrgRemoveMemberAuditEntry. Das GitHub-Konto, von dem das Überwachungsprotokoll für das Unternehmen abgefragt wird, muss ein Organisationsbesitzer für jede Organisation innerhalb des Unternehmens sein.

{
  enterprise(slug: "avocado-corp") {
    organizations(first: 10, orderBy: {field: LOGIN, direction: DESC}) {
      nodes {
        name
        auditLog(first: 20) {
          edges {
            node {
              ... on OrgAddMemberAuditEntry {
                action
                actorLogin
                createdAt
              }
              ... on OrgRemoveMemberAuditEntry {
                action
                actorLogin
                createdAt
              }
            }
          }
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}

Die GraphQL-API gibt maximal 100 Knoten pro Abfrage zurück. Zum Abrufen zusätzlicher Ergebnisse musst du die Paginierung implementieren. Weitere Informationen findest du in der GraphQL-API-Dokumentation unter Ressourcenbeschränkungen und in der offiziellen GraphQL-Dokumentation unter Paginierung.

Beispiel 2: Ereignisse in einer Organisation, 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 Abfragezeichenfolge durch ein Leerzeichen trennst.

Die folgende Abfrage ruft alle Überwachungsprotokolle für das Unternehmen avocado-corp ab, die sich auf die Organisation octo-org beziehen und bei denen die Aktionen vom Benutzer octocat am oder nach dem 1. Januar 2022 ausgeführt wurden. Die ersten 20 Überwachungsprotokolleinträge werden zurückgegeben, wobei der neueste Protokolleintrag zuerst angezeigt wird.

Diese Abfrage verwendet die Schnittstelle AuditEntry. Das Konto GitHub, von dem das Überwachungsprotokoll für das Unternehmen abgefragt wird, muss ein Besitzer der Organisation octo-org sein.

{
  enterprise(slug: "avocado-corp") {
    organizations(first: 1, query: "octo-org") {
      nodes {
        name
        auditLog(first: 20, query: "actor:octocat created:>=2022-01-01T00:00:00.000Z", orderBy: {field: CREATED_AT, direction: DESC}) {
          edges {
            node {
              ... on AuditEntry {
                action
                actorLogin
                createdAt
                user {
                  name
                }
              }
            }
          }
        }
      }
    }
  }
}

Weitere Abfragebeispiele findest du im Repository für Plattformbeispiele.

Abfragen der REST-API des Überwachungsprotokolls

Zur Sicherstellung, dass dein geistiges Eigentum sicher ist und du die Compliance für dein Unternehmen aufrechterhältst, kannst du die REST-API des Überwachungsprotokolls verwenden, um Kopien deiner Überwachungsprotokolldaten aufzubewahren und zu überwachen: * Zugriff auf Ihre Organisations- oder Repositoryeinstellungen

  • Änderungen an Berechtigungen
  • Hinzugefügte oder entfernte Benutzer*innen in einer Organisation, einem Repository oder einem Team
  • Benutzerinnen, die zu Administratorinnen ernannt werden
  • Änderungen an Berechtigungen einer GitHub App

Im Überwachungsprotokoll werden Ereignisse aufgelistet, die durch Aktivitäten ausgelöst werden, die sich auf dein Unternehmen auswirken. Überwachungsprotokolle für GitHub AE werden unbegrenzt beibehalten, es sei denn, eine Unternehmensbesitzerin hat einen anderen Aufbewahrungszeitraum konfiguriert. Weitere Informationen findest du unter Konfigurieren des Überwachungsprotokolls für dein Unternehmen.

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.

Weitere Informationen zur REST-API des Überwachungsprotokolls findest du unter Unternehmensverwaltung und Organisationen.

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

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

Beispiel mit seitenbasierter Paginierung

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.

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

Beispiel mit cursorbasierter Paginierung

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"