GitHub API: получение адресов электронной почты всех членов организации

GitHub API обеспечивает способ получить члены организации. Я админ/владелец для моей организации, и я хотел бы получить адреса электронной почты всех пользователей. Я пробовал с members API, но он не возвращает адреса электронной почты.

использование curl с моим администратором auth-token:

GET /orgs/my-org/members

Я получаю ответ, который выглядит так(для одного из пользователей)

"login": "auny",
    "id": some-number,
    "avatar_url": "https://secure.gravatar.com/avatar/6579d09c459f1adad8a60463f47eadd3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
    "gravatar_id": "6579d09c459f1adad8a60463f47eadd3",
    "url": "https://api.github.com/users/auny",
    "html_url": "https://github.com/auny",
    "followers_url": "https://api.github.com/users/auny/followers",
    "following_url": "https://api.github.com/users/auny/following{/other_user}",
    "gists_url": "https://api.github.com/users/auny/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/auny/starred{/owner} 
     {/repo}",
    "subscriptions_url": "https://api.github.com/users/auny/subscriptions",
    "organizations_url": "https://api.github.com/users/auny/orgs",
    "repos_url": "https://api.github.com/users/auny/repos",
    "events_url": "https://api.github.com/users/auny/events{/privacy}",
    "received_events_url": 
    "https://api.github.com/users/auny/received_events",
    "type": "User"

как ни странно, это содержит богатство информации о пользователе, но не одной из важных.e адрес электронной почты пользователя. Быть admin Я должен иметь возможность получить адрес электронной почты всех моих пользователей.

другое пользовательский API только верните мой собственный адрес электронной почты i.e адрес электронной почты учетной записи, чей auth-token используется в запросе. Использование API:

GET /user/emails

как этого можно добиться? Есть ли способ обойти это?

3 ответов


после получения списка членов организации, получить информацию для каждого члена с помощью эта конечная точка API:

/users/:user

это вернет адрес электронной почты пользователя, указанного в URL-адресе запроса.


вместо этого вы можете использовать репозиторий git! Внутри много интересной информации.

пытаюсь запустить:

git shortlog -s -n -e

вы увидите список коммиттеров с адресом электронной почты.


используя GraphQL API v4, вам не нужно вызывать запрос для каждого пользователя. Следующие получат членов организации с их email (если указано в профиле) :

{
  organization(login: "my-org") {
    members(first: 100) {
      totalCount
      edges {
        node {
          login
          name
          email
        }
      }
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

попробуйте в проводнике