Usando a API do log de auditoria
É possível interagir com o log de auditoria usando a API REST. É possível usar o escopo read:audit_log
para acessar o log de auditoria por meio da API.
Os carimbos de data e hora e os campos de data na resposta da API são medidos em milissegundos de época UTC.
Para garantir que a sua propriedade intelectual esteja segura e que você está mantendo a conformidade na sua empresa, use a API REST do log de auditoria para manter cópias dos seus dados de log de auditoria e monitore: - O acesso às configurações da organização ou do repositório
- As alterações nas permissões
- Os usuários adicionados ou removidos em uma organização, um repositório ou uma equipe
- Os usuários promovidos para administradores
- Alterações nas permissões de um GitHub App
- Solicitações de API (devem ser habilitadas)
- Eventos Git, como clonagem, busca e envio por push
O log de auditoria lista os eventos disparados por atividades que afetam sua empresa dentro do mês atual e até os seis meses anteriores. O log de auditoria mantém os eventos do Git por sete dias.
Por padrão, são exibidos apenas os eventos dos últimos três meses. Para ver eventos mais antigos, você deve especificar um intervalo de datas com o parâmetro created
. Para obter mais informações, confira "Noções básicas de sintaxe de pesquisa".
Cada ponto de extremidade da API de log de auditoria tem um limite de taxa de 1.750 consultas por hora para uma determinada combinação de endereço IP e usuário. Para evitar a limitação de taxa, as integrações que consultam a API de log de auditoria devem consultar em uma frequência máxima de 1.750 consultas por hora. Além disso, se a sua integração receber um erro de limite de taxa (normalmente uma resposta 403 ou 429), ela deverá aguardar antes de fazer outra solicitação à API. Para obter mais informações, confira "Recursos na API REST" e "Práticas recomendadas para usar a API REST".
Para saber mais sobre a API REST do log de auditoria, confira "Administração do GitHub Enterprise" e "Organizações".
Exemplo 1: todos os eventos em uma empresa, para uma data específica, com paginação
Você pode usar a paginação baseada em cursor. Para saber mais sobre paginação, confira "Como usar paginação na API REST".
A consulta abaixo procura eventos de log de auditoria criados em 1º de janeiro de 2022 na empresa avocado-corp
e retorna a primeira página com no máximo 100 itens por página usando paginação. Para saber mais sobre paginação, confira "Como usar paginação na API REST". O sinalizador --include
faz com que os cabeçalhos sejam retornados junto com a resposta.
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"
Se houver mais de 100 resultados, o cabeçalho link
incluirá URLs para buscar a primeira e a próxima páginas de resultados, bem como a anterior.
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"
Copie o link de paginação correspondente na próxima solicitação. Por exemplo:
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="
Exemplo 2: eventos para solicitações de pull em uma empresa, para uma data e um ator específicos
Você pode especificar várias frases de pesquisa, como created
e actor
, separando-as na URL formada com o símbolo +
ou o código de caractere ASCII %20
.
A consulta abaixo pesquisa eventos de log de auditoria para solicitações de pull, em que o evento ocorreu em 1º de janeiro de 2022 ou após essa data na empresa avocado-corp
e em que a ação foi executada pelo usuário 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"