Github上一个组织的公共和私有仓库列表

8
我正在尝试使用Github API gem在我的Rails应用程序中获取与组织关联的所有存储库列表。我使用Omniauth对用户进行身份验证,然后能够访问他们的组织列表以及用户存储库列表,但我正在尝试获取用户所属组织(他们具有管理访问权限)的存储库列表。
stackoverflow上有一个 问题 看起来很有希望,并回答了我已经知道名称的组织存储库信息的问题,但是对于没有名称的存储库呢?
有什么想法可以使用Github API gem列出组织的所有存储库吗?
2个回答

11

你能否使用普通的curl获取信息?例如,请尝试:

curl -u "your_username" https://api.github.com/orgs/:your_organization/repos?type=private

(此处应只列出私有存储库,请将private替换为all以列出所有存储库,根据API文档:http://developer.github.com/v3/repos/#list-organization-repositories)。

如果这可行,那么您只是在使用Ruby库时遇到了麻烦吗?

如果您不知道用户属于哪些组织,请使用此API进行查询:http://developer.github.com/v3/orgs/#list-user-organizations


2
谢谢Ivan,你帮我找到了解决方案。Peter Murach在这里回答了如何使用gem来解决这个问题(https://github.com/peter-murach/github/issues/53)。在身份验证后,这将为您获取组织“org-name”的所有私有和公共存储库列表`github.repos.list:org =>'org-name'`。 - topher
在我们的组织中,我们有数百个代码库。为了清理它们,我们必须列出所有代码库的最后提交日期和提交者。这里提供了一个 Python 脚本来实现此功能(链接:https://gist.github.com/tilayealemu/56fd45aab4f6943fac8447cc2019595c)。 - tilish

2
我可以使用GitHub的GraphQL API实现这个功能:
{
  organization(login: "<my-org-name>") {
    repositories(first: 100) {
      totalCount
      edges {
        node {
          name
          isArchived
        }
      }
    }
  }
}

我发现GitHub的GraphQL Explorer非常有用,可以快速找到答案。
一种执行选项是使用GitHub的gh CLI运行此查询,然后您可以使用jq或其他工具操作输出。
请注意,您需要实现分页以获取超过100个存储库 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接