Github V4 GraphQL API - запрос журнала аудита - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь взаимодействовать с github api v4, я хочу запрашивать события журнала аудита на основе схем, доступных в API.Я могу найти документальный фильм о github api здесь и увидеть доступные схемы здесь , но нет рабочих примеров того, как запрашивать различные схемы.

Если здесь есть кто-то, кто имеет опыт работы с этим API, особенно со схемами журнала аудита, мне нужен рабочий пример, чтобы начать взаимодействие со схемами журнала аудита ...

например, я хочу запросить всех членов организации, добавить члена вгрупповые события, предположим, что они находятся в схеме TeamAddMemberAuditEntry, или удалите участника из org OrgRemoveMemberAuditEntry

Пока я пытался запросить его с помощью node.js:

require('isomorphic-fetch');

fetch('https://api.github.com/graphql', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json',
             'Authorization': 'bearer <token>',
             'Accept': 'application/vnd.github.audit-log- preview+json'},
  body: JSON.stringify({ query: '{ TeamAddMemberAuditEntry }' }),
})
  .then(res => res.json())
  .then(res => console.log(res.data));

1 Ответ

0 голосов
/ 28 мая 2019

Если кто-то здесь будет искать решение, после просмотра общедоступной схемы это выглядит так, как запрос ищет объекты журнала аудита, конечно, без заголовков и префикса запроса.

AuditLog - этотип объединения, вы можете получить несколько событий аудита, добавив еще один блок "... on".например, здесь я получаю все события orginvitemembers

{
  organization(login:"<your-org>") {
    auditLog(first:2) {
      edges {
        node {
          __typename
          ... on OrgInviteMemberAuditEntry {
            action
            actorIp
            actorLogin
            createdAt
            userLogin
            actorLocation{
              country
              city
            }
          }
        }       
      }
    }
  }
}
...