如果我希望组织的所有内容都公开可用,那么 github api 使用什么令牌

问题描述 投票:0回答:1

我很困惑。 这是我想要的唯一数据请求,可以正常工作:

meta {
  name: Get an organization
  type: http
  seq: 1
}

get {
  url: {{host}}/orgs/propromo-software
  body: none
  auth: bearer
}

headers {
  X-GitHub-Api-Version: 2022-11-28
  Accept: application/vnd.github+json
}

auth:bearer {
  token: {{GITHUB_API_TOKEN}}
}

不知何故,这个返回一个空数组(组织中有公共项目,我是组织和项目的创建者和所有者,之前的请求工作正常):

meta {
  name: List organization projects
  type: http
  seq: 1
}

get {
  url: {{host}}/orgs/propromo-software/projects
  body: none
  auth: bearer
}

headers {
  X-GitHub-Api-Version: 2022-11-28
  Accept: application/vnd.github+json
}

auth:bearer {
  token: {{GITHUB_API_TOKEN}}
}

这两个:

{{host}}/projects/1/collaborators
{{host}}/projects/1/columns
和其他一些返回:

{
  "message": "Must have admin rights to Repository.",
  "documentation_url": "https://docs.github.com/rest/projects/cards#list-project-cards"
}

这很令人困惑,因为正如我所说:“我是组织及其中一切的创造者”。 读完后,我将自己添加为该存储库的协作者。还是不行。

我尝试过的:细粒度个人访问令牌(使用组织)和个人访问令牌(经典)(使用我的个人帐户,我用来创建组织的帐户)。

(我使用 bruno 进行请求测试)

根据 https://docs.github.com/de/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28:

,令牌类型也应该有效

注意:大多数情况下,您可以使用 Authorization: Bearer 或 Authorization: token 来传递令牌。但是,如果您传递 JSON Web 令牌 (JWT),则必须使用 Authorization: Bearer。

是的,我也尝试过使用curl。结果相同。 首先,我尝试了一个可以读取几乎所有内容的令牌,然后我尝试了一个具有所有可能权限的令牌。 我还使用我尝试获取数据的所有令牌进行了身份验证(https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28#basic-身份验证)。

如果这是问题所在...
在短时间内检测到多个具有无效凭据的请求后,API 将暂时拒绝该用户的所有身份验证尝试(包括具有有效凭据的请求),并返回 403 Forbidden 响应。有关更多信息,请参阅“REST API 的速率限制”。

rest authentication http github-api bruno
1个回答
0
投票

要通过 GitHub API 访问组织公开可用的所有内容,最好的方法是使用具有适当范围的个人访问令牌 (PAT)。从您的问题来看,您已经尝试过使用细粒度个人访问令牌和经典个人访问令牌。

不过,请确保您有

repo
admin:org
范围
(从经典令牌开始,用于测试)。
将请求中的
{{GITHUB_API_TOKEN}}
替换为您创建的 PAT。确保您在标头中使用正确的 GitHub API 版本

meta {
  name: List organization projects
  type: http
  seq: 1
}

get {
  url: {{host}}/orgs/propromo-software/projects
  body: none
  auth: bearer
}

headers {
  X-GitHub-Api-Version: 2022-11-28
  Accept: application/vnd.github+json
}

auth:bearer {
  token: <Your Personal Access Token>
}

考虑 GitHub 的速率限制,尤其是在几次失败的尝试之后。并确保您尝试访问的项目确实是公开的。

© www.soinside.com 2019 - 2024. All rights reserved.