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.

Uso de la API de registro de auditoría para la empresa

Puedes recuperar eventos empresariales mediante programación con la API de REST o GraphQL.

Who can use this feature

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

Utilizar la API de bitácoras de auditoría

Puedes interactuar con el registro de auditoría mediante GraphQL API o la API de REST.

Las marcas de tiempo y los campos de fecha de la respuesta de la API se miden en milisegundos desde la época UTC.

Consulta de GraphQL API del registro de auditoría

Para garantizar que la propiedad intelectual está segura y que mantiene el cumplimiento para la empresa, puede usar GraphQL API del registro de auditoría para de mantener copias de los datos del registro auditoría y la supervisión: * Acceso a la configuración de la organización o el repositorio

  • Cambios en los permisos
  • Usuarios agregados o quitados de una organización, un repositorio o un equipo
  • Usuarios ascendidos a administradores
  • Cambios a los permisos de una GitHub App

Tenga en cuenta que no puede recuperar eventos de Git mediante la API de registro de auditoría.

La respuesta de GraphQL puede incluir datos de hasta 90 a 120 días.

Ejemplo 1: Miembros agregados o quitados de organizaciones de una empresa

La consulta siguiente captura los registros de auditoría de la empresa avocado-corp y devuelve las primeras 10 organizaciones de la empresa, donde las únicas acciones realizadas han sido agregar o quitar un miembro de una organización. Se devuelven las primeras 20 entradas del registro de auditoría de cada organización.

Esta consulta usa el campo auditlog del objeto Organization y los objetos OrgAddMemberAuditEntry y OrgRemoveMemberAuditEntry. La cuenta de GitHub que consulta el registro de auditoría de la empresa debe ser propietaria en cada organización dentro de la empresa.

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

GraphQL API devolverá como máximo 100 nodos por consulta. Para recuperar resultados adicionales, tendrá que implementar la paginación. Para más información, vea "Limitaciones de recursos" en la documentación de GraphQL API y Paginación en la documentación oficial de GraphQL.

Ejemplo 2: Eventos de una organización, para una fecha y un actor específicos

Puede especificar varias frases de búsqueda, como created y actor, si las separa en la cadena de consulta con un espacio.

La consulta siguiente captura todos los registros de auditoría de la empresa avocado-corp relacionados con la organización octo-org, donde el usuario octocat ha realizado las acciones el 1 de enero de 2022 o después. Se devuelven las primeras 20 entradas del registro de auditoría, con la más reciente en primer lugar.

Esta consulta usa la interfaz AuditEntry. La cuenta de GitHub que consulta el registro de auditoría de la empresa debe ser propietaria de la organización 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
                }
              }
            }
          }
        }
      }
    }
  }
}

Para obtener más ejemplos de consultas, vea el repositorio platform-samples.

Consulta de la API REST del registro de auditoría

Para garantizar que la propiedad intelectual está segura y que mantiene el cumplimiento para la empresa, puede usar la API REST del registro de auditoría para de mantener copias de los datos del registro auditoría y la supervisión: * Acceso a la configuración de la organización o el repositorio

  • Cambios en los permisos
  • Usuarios agregados o quitados de una organización, un repositorio o un equipo
  • Usuarios ascendidos a administradores
  • Cambios a los permisos de una GitHub App

El registro de auditoría muestra los eventos que desencadenan las actividades que afectan a la empresa. Los registros de auditoría de GitHub Enterprise Server se conservan indefinidamente, a menos que un propietario de la empresa haya configurado un período de retención diferente. Para más información, consulta "Configuración del registro de auditoría para la empresa".

De forma predeterminada, solo se muestran los eventos de los últimos tres meses. Para ver eventos anteriores, debe especificar un intervalo de fechas con el parámetro created. Para más información, vea "Descripción de la sintaxis de búsqueda".

Para más información sobre la API REST del registro de auditoría, vea "Administración de la empresa" y "Organizaciones".

Ejemplo 1: Todos los eventos de una empresa, para una fecha específica, con paginación

Puedes usar la paginación basada en páginas o la basada en cursores. Para obtener más información sobre la paginación, consulta "Uso de la paginación en la API de REST".

Ejemplo de paginación basada en páginas

La consulta siguiente busca eventos de registro de auditoría creados el 1 de enero de 2022 en la empresa avocado-corp y devuelve la primera página con un máximo de 100 elementos por página mediante paginación. Para obtener más información sobre la paginación, consulta "Uso de la paginación en la API de 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"

Ejemplo de paginación basada en cursores

La consulta siguiente busca eventos de registro de auditoría creados el 1 de enero de 2022 en la empresa avocado-corp y devuelve la primera página con un máximo de 100 elementos por página mediante paginación. Para obtener más información sobre la paginación, consulta "Uso de la paginación en la API de REST". La marca --include hace que se devuelvan los encabezados junto con la respuesta.

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"

Si hay más de 100 resultados, el encabezado link incluirá direcciones URL para capturar las páginas siguientes, primera y anteriores de los resultados.

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"

Copia el vínculo de paginación correspondiente en la siguiente solicitud. Por ejemplo:

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

Ejemplo 2: Eventos para solicitudes de incorporación de cambios en una empresa, para una fecha y un actor específicos

Puede especificar varias frases de búsqueda, como created y actor, si las separa en la dirección URL formada con el símbolo + o el código de caracteres ASCII %20.

La consulta siguiente busca eventos de registro de auditoría para las solicitudes de incorporación de cambios, donde el evento se ha producido el 1 de enero de 2022 o después en la empresa avocado-corp y la acción la ha realizado el usuario 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"