我很困惑。 这是我想要的唯一数据请求,可以正常工作:
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 的速率限制”。
要通过 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 的速率限制,尤其是在几次失败的尝试之后。并确保您尝试访问的项目确实是公开的。