gpt4 book ai didi

github-api - GitHub API 如何检查用户是否具有存储库的写权限

转载 作者:行者123 更新时间:2023-12-02 23:35:21 25 4
gpt4 key购买 nike

我目前有一个机器人,可以自动执行一些 GitHub 操作,例如合并拉取请求、在打开 PR 时通知 Slack 上的工作人员等(这是一个自定义风格的 Hubot 实例)

当工作人员给他合并拉取请求的命令时,他首先检查他们是否属于对该存储库具有写入权限的团队。它可以工作,但代码不太好。

首先,他获取组织中的所有团队,循环遍历它们,获取分配给该团队的所有用户,如果他发现发出合并命令的用户,则他检查该团队是否具有写入权限。如果没有,则身份验证良好。

这是最好的方法吗?我觉得它可以简单得多。

最佳答案

更新:现在有一个 GitHub API 端点:

https://docs.github.com/en/rest/reference/collaborators#check-if-a-user-is-a-repository-collaborator

<小时/>

旧答案:目前没有更简单的方法可以做到这一点(但我同意,如果有一种更优雅的方法来获取此信息,那就太好了)。您也许可以通过获取 the user's teams 来减少请求数量。和 the list of teams which have access to the repository (并非组织中的所有团队)。我认为,这两个列表的交集应该可以让您回答这个问题。

(另外,在您的解决方案中,请注意,您不仅需要检查用户是否是推送访问团队的成员,还需要检查此推送访问团队 has access to the repository in question 。用户可以是无权访问相关存储库的推送访问团队的成员,也是有权访问相关存储库的拉取访问团队的成员。)

关于github-api - GitHub API 如何检查用户是否具有存储库的写权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com