【问题标题】:GitHub API Application list non public org membersGitHub API 应用程序列表非公共组织成员
【发布时间】:2015-06-21 06:49:16
【问题描述】:

我想编写一个小应用程序来验证 GitHub 组织的成员。

应用程序应将具体的 GitHub 组织成员与数据库相匹配。当某人不在数据库中时,应将其从 GitHub org 中删除,依此类推。

我在使用 GitHub API 时遇到的问题是,以下请求仅列出公共成员资格(因为我没有以用户身份进行身份验证,但我不想这样做)。

https://api.github.com/orgs/_orgname_/members?client_id=_client_id_&client_secret=_client_secret_

其中 orgname、_client_id_ 和 _client_secret_ 被替换为实际的组织名称和在该组织上注册的客户端 id/secret 对。

如何在不作为用户身份验证的情况下访问私有成员(仅作为应用程序 (server2server))?

【问题讨论】:

    标签: github github-api


    【解决方案1】:

    您不能——您需要以用户身份进行身份验证并拥有正确的权限。当您提供 client_id 和 client_secret 时,您仍在发出未经身份验证的请求:

    https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications

    并且未经身份验证的请求只能用于读取公开可用的信息。

    【讨论】:

    • 我就是这么想的。它是未经身份验证的,即未作为用户进行身份验证,但已作为应用程序进行身份验证。不幸的是,我没有找到 - 我认为没有 - 一种“授予应用程序权限”的方法
    • 这并不是因为应用程序本身无法执行任何操作,因为它们没有任何关联的权限。只有用户可以在 GitHub 上执行操作,因此应用程序通过获取具有某些特定权限的令牌代表他们执行操作。
    • 是的,对于我的用例,我需要应用程序权限。一种方法是分配一个虚拟用户,但这感觉很糟糕
    • 允许机器用户用于在组织内自动执行任务,这不是我认为的可怕的事情。我们在内部将 Hubot 用于此类目的,例如:github.com/hubot。您可以将这样的帐户添加到组织团队,并以这种方式仅授予其对某些存储库的访问权限,并且仅具有某些权限(读/写/管理员),此外还可以通过范围调节权限。
    猜你喜欢
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2013-12-13
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多