Skip to main content
Publicamos actualizaciones para la documentación con frecuencia y es posible que aún se esté traduciendo esta página. Para obtener la información más reciente, consulta la documentación en inglés.

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.

Quién puede usar esta característica

Enterprise owners 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. Puedes usar el ámbito read:audit_log para acceder al registro de auditoría a través de las API.

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 GraphQL API. Para recuperar eventos de Git, utiliza mejor la API de REST. Para obtener más información, consulta las acciones de categoría git en "Eventos de registro de auditoría de la empresa" y también los puntos de conexión de registro de auditoría "Administración de GitHub Enterprise" y "Las organizaciones " en la documentación de la API REST.

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, consulta "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 * Eventos de Git, como clonación, captura e inserción

El registro de auditoría muestra los eventos que desencadenan las actividades que afectan a la empresa dentro del mes actual y hasta los seis meses anteriores. El registro de auditoría retiene eventos de Git durante siete días.

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 obtener más información, vea «Entender la sintaxis de búsqueda».

Para obtener más información sobre la API REST del registro de auditoría, consulta "Administración de GitHub Enterprise" y "Las organizaciones".

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

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

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"