首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用github rest api通过邮件找到用户名?

如何使用github rest api通过邮件找到用户名?
EN

Stack Overflow用户
提问于 2018-01-24 00:15:19
回答 1查看 302关注 0票数 1

我需要从组织中删除一个成员,但我只有用户的电子邮件id和组织名称。

我找到的一个解决方案是获取组织的所有成员,找到具有匹配电子邮件的用户,然后使用用户名将该用户从组织中删除。

对这个问题的任何直接的解决方案都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-01-24 07:16:43

您可以使用GraphQL API V4获取所有组织成员的公共电子邮件/登录信息:

代码语言:javascript
复制
{
  organization(login: "your-org") {
    members(first: 100) {
      pageInfo {
        endCursor
        hasNextPage
      }
      edges {
        node {
          login
          email
        }
      }
    }
  }
}

然后过滤电子邮件,例如使用curl & jq

代码语言:javascript
复制
org="your-org"
email="your-mail@gmail.com"
access_token="YOUR_ACCESS_TOKEN"

curl -s -H "Authorization: bearer $access_token" \
     -X POST \
     -d '{ "query": "query { organization(login: \"'"$org"'\") { members(first: 100) { pageInfo { endCursor hasNextPage } edges { node { login email } } } } }" }' \
     https://api.github.com/graphql | \
     jq -r --arg email $email '.data.organization.members.edges[] | select(.node.email == $email) | .node.login'

在上面的示例中,您需要一个作用域为read:useruser:email的个人访问令牌

然后,可以使用Rest API v3删除成员资格

代码语言:javascript
复制
curl -X DELETE -H "Authorization: Token $access_token" "https://api.github.com/orgs/$org/members/the-user-to-remove"

请注意,如果电子邮件在用户的配置文件中不是公开的,则不会找到用户

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48406255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档