Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Utilisation de l’API de journal d’audit pour votre entreprise

Vous pouvez récupérer par programmation des événements d’entreprise avec l’API REST ou GraphQL.

Qui peut utiliser cette fonctionnalité

Enterprise owners and site administrators can use the audit log API.

Utilisation de l’API de journal d’audit

Vous pouvez interagir avec le journal d’audit à l’aide de l’API GraphQL ou de l’API REST.

Les horodatages et les champs de date de la réponse de l’API sont mesurés en millisecondes d’époque UTC.

Interrogation de l’API GraphQL de journal d’audit

Pour garantir la sécurité de votre propriété intellectuelle et assurer la conformité de votre entreprise, vous pouvez utiliser l’API GraphQL de journal d’audit pour conserver des copies de vos données de journal d’audit et superviser : * L’accès aux paramètres de votre organisation ou de votre dépôt.

  • Les modifications des autorisations.
  • Les utilisateurs ajoutés ou supprimés dans une organisation, un dépôt ou une équipe.
  • Les utilisateurs promus en administrateurs
  • Modifications apportées aux autorisations de GitHub App

Notez que vous ne pouvez pas récupérer les événements Git à l’aide de l’API de journal d’audit.

La réponse GraphQL peut inclure des données allant jusqu’à 90 à 120 jours.

Exemple 1 : Membres ajoutés ou supprimés dans des organisations d’une entreprise

La requête ci-dessous extrait les journaux d’audit de l’entreprise avocado-corp et retourne les 10 premières organisations de l’entreprise, où la seule action effectuée a été l’ajout ou la suppression d’un membre dans une organisation. Les 20 premières entrées du journal d’audit pour chaque organisation sont retournées.

Cette requête utilise le champ auditlog de l’objet Organization ainsi que les objets OrgAddMemberAuditEntry et OrgRemoveMemberAuditEntry. Le compte GitHub qui interroge le journal d’audit d’entreprise doit être propriétaire de chaque organisation au sein de l’entreprise.

{
  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
      }
    }
  }
}

L’API GraphQL retourne au maximum 100 nœuds par requête. Pour récupérer des résultats supplémentaires, vous devez implémenter la pagination. Pour plus d’informations, consultez « Limitations des ressources » dans la documentation sur l’API GraphQL et Pagination dans la documentation GraphQL officielle.

Exemple 2 : Événements dans une organisation pour une date et un acteur spécifiques

Vous pouvez spécifier plusieurs expressions de recherche, par exemple created et actor, en les séparant par un espace dans votre chaîne de requête.

La requête ci-dessous extrait tous les journaux d’audit de l’entreprise avocado-corp qui sont liés à l’organisation octo-org, où les actions ont été effectuées par l’utilisateur octocat à partir du 1er janvier 2022. Les 20 premières entrées du journal d’audit sont retournées, avec l’entrée la plus récente en premier.

Cette requête utilise l’interface AuditEntry. Le compte GitHub qui interroge le journal d’audit d’entreprise doit être propriétaire de l’organisation octo-org.

{
  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
                }
              }
            }
          }
        }
      }
    }
  }
}

Pour obtenir d’autres exemples de requêtes, consultez le dépôt platform-samples.

Interrogation de l’API REST de journal d’audit

Pour garantir la sécurité de votre propriété intellectuelle et assurer la conformité de votre entreprise, vous pouvez utiliser l’API REST de journal d’audit pour conserver des copies de vos données de journal d’audit et superviser : * L’accès aux paramètres de votre organisation ou de votre dépôt.

  • Les modifications des autorisations.
  • Les utilisateurs ajoutés ou supprimés dans une organisation, un dépôt ou une équipe.
  • Les utilisateurs promus en administrateurs
  • Modifications apportées aux autorisations de GitHub App

Le journal d’audit liste les événements déclenchés par les activités qui affectent votre entreprise. Les journaux d’audit pour GitHub Enterprise Server sont conservés indéfiniment, sauf si un propriétaire d’entreprise a configuré une période de conservation différente. Pour plus d’informations, consultez « Configuration du journal d’audit de votre entreprise ».

Par défaut, seuls les événements des trois derniers mois sont affichés. Pour voir les événements plus anciens, vous devez spécifier une plage de dates avec le paramètre created. Pour plus d’informations, consultez « Compréhension de la syntaxe de recherche ».

Pour plus d’informations sur l’API REST de journal d’audit, consultez « Administration de GitHub Enterprise » et « Organisations ».

Exemple 1 : Tous les événements d’une entreprise pour une date spécifique, avec pagination

Vous pouvez utiliser la pagination basée sur la page. Pour plus d’informations sur la pagination, consultez « Utilisation de la pagination dans l’API REST ».

La requête ci-dessous recherche les événements de journal d’audit créés le 1er janvier 2022 dans l’entreprise avocado-corp et retourne la première page avec un maximum de 100 éléments par page à l’aide de la pagination. Pour plus d’informations sur la pagination, consultez « Utilisation de la pagination dans l’API REST ».

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"

Exemple 2 : Événements pour les demandes de tirage (pull request) dans une entreprise pour une date et un acteur spécifiques

Vous pouvez spécifier plusieurs expressions de recherche, par exemple created et actor, en les séparant par le symbole + ou le code de caractère ASCII %20 dans votre URL formée.

La requête ci-dessous recherche les événements de journal d’audit pour les demandes de tirage, où l’événement s’est produit à partir du 1er janvier 2022 dans l’entreprise avocado-corp et où l’action a été effectuée par l’utilisateur 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"