GitHub API:获取组织所有成员的电子邮件地址

时间:2013-06-25 13:44:25

标签: api github github-api

GitHub API提供了获取组织members的方法。我是我的组织的管理员/所有者,我想获得所有用户的电子邮件地址。我尝试使用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"

奇怪的是,这包含了大量关于用户的信息,但不包含其中一个重要的信息,即用户的电子邮件地址。作为admin,我应该能够获得所有用户的电子邮件地址。

另一个user API仅返回我自己的电子邮件地址,即请求中使用auth-token的帐户的电子邮件地址。 API用法:

GET /user/emails

如何实现这一目标?周围有路吗?

3 个答案:

答案 0 :(得分:4)

您可以使用git存储库!里面有很多有趣的信息。

尝试运行:

git shortlog -s -n -e

您将看到包含电子邮件地址的提交者列表。

答案 1 :(得分:3)

使用GraphQL API v4,您不必为每个用户调用请求。以下内容将使组织成员的email(如果在公开个人资料中提供):

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

Try it in the explorer

答案 2 :(得分:1)

获取组织成员列表后,使用this API endpoint获取每个成员的信息:

/users/:user

这将返回您在请求网址中指定的用户的电子邮件地址。