【问题标题】:Find out who is the admin(s) for a git repo找出谁是 git repo 的管理员
【发布时间】:2020-02-05 21:36:48
【问题描述】:

我是一家公司 github 中 git repo 的贡献者。

我想找出贡献者中谁是管理员。

除了四处询问公司中的每个人之外,我如何找出谁是管理员?

【问题讨论】:

  • 不幸的是,我认为在 Github 上没有办法解决这个问题。

标签: git github


【解决方案1】:

如果你有这个仓库的推送权限,你可以使用 Github API 找到collaborators

您将需要一个access token,端点https://api.github.com/repos/ORG/REPO/collaborators 会为您提供所有协作者的列表以及每个协作者的权限类型列表:

"permissions": {
    "admin": true,
    "push": true,
    "pull": true
  }

您可以像这样使用curljq(解析JSON 响应):

curl https://api.github.com/repos/ORG/REPO/collaborators \
     -H "Authorization: Token ACCESS_TOKEN" | \
     jq '[ .[] | select(.permissions.admin == true) | .login ]'

【讨论】:

  • Def 不是我所期待的,但确实做到了。你统治@Bertrand Martel
  • 访问令牌需要什么范围?我没有看到 API 端点文档中指定的任何内容:developer.github.com/v3/repos/collaborators/#list-collaborators
  • @einnocent 更窄的范围是 public_repo 如果回购是公开的,请参阅 the list of scopes。如果 repo 是私有的,repo 范围是必要的
  • repo 范围添加到我的访问令牌中,以用于私人回购工作。
  • 请注意,?access_token=ACCESS_TOKEN 的这种用法已被弃用。详情请见developer.github.com/changes/…
【解决方案2】:

您也可以为此使用 v4 (GraphQL) API

query { 
  repository (owner:"ORG",name:"REPO") {
    collaborators (first:100) {
      totalCount
      edges {      
        permission
        node {
          login
          name  
        }
      }
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

并查找具有"permission": "ADMIN"的结果

【讨论】:

  • 我收到此错误:“必须具有推送访问权限才能查看存储库协作者。”知道如何解决这个问题,还是我根本不允许查看我无法推送的公共回购的合作者?
  • @majorBummer 似乎有办法解决这个问题here
  • @jnnnnn 该解决方法似乎只告诉您有关当前用户的信息。我可以确定我是否是管理员;这个问题是在我不是管理员时找出谁是管理员。
猜你喜欢
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 2019-07-26
  • 2023-01-04
  • 2012-05-14
  • 2022-10-21
相关资源
最近更新 更多