我需要从组织中删除某个成员,但我只有该用户的电子邮件ID和组织名称。
我找到的一个解决方案是获取组织的所有成员,找到匹配电子邮件的用户,然后使用用户名从组织中删除该用户。
非常感谢任何直接解决此问题的方法。
答案 0 :(得分:0)
您可以使用GraphQL API V4
获取所有组织成员的公共电子邮件/登录信息{
organization(login: "your-org") {
members(first: 100) {
pageInfo {
endCursor
hasNextPage
}
edges {
node {
login
email
}
}
}
}
}
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:user
或user:email
然后,您可以使用Rest API v3
删除成员资格curl -X DELETE -H "Authorization: Token $access_token" "https://api.github.com/orgs/$org/members/the-user-to-remove"
请注意,如果用户的个人资料中没有公开电子邮件,则无法找到该用户