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