为 subject_type GitHub 用户 API 获取 subject_id
Getting the subject_id for the subject_type GitHub User API
通过 Octokit.js 使用 GitHub API 并查看 getContextForUser
(https://docs.github.com/en/rest/users/users#get-contextual-information-for-a-user) 的文档,它提到在指定 subject_type
你还需要指定subject_id
。对于 subject_id
,它声明“使用您指定的 subject_type 的 ID。”
我不知道你从哪里得到 subject_type
的相关 subject_id
。我搜索了高低但没有成功。有人知道在哪里可以找到显示 subject_type
的 ID 的地图吗?
subject_id
是您想要了解其信息的事物的 ID。例如,如果您想获得有关存储库的信息(在本例中为主题类型),则必须传递您想要了解其信息的存储库的 ID。
在我看来,API 文档说这必须是一个字符串,而它通常是一个数字 ID,这有点令人困惑。
存储库示例
让我们来看一个例子:假设我们想知道存储库 torvalds/linux
上 Torvald 的气垫卡是什么。首先,我们需要获取存储库的 ID:
> curl https://api.github.com/repos/torvalds/linux
{
"id": 2325298,
# ...
有了这个ID,我们可以查询主题类型repository
:
> curl "https://api.github.com/users/torvalds/hovercard?subject_type=repository&subject_id=2325298"
{
"contexts": [
{
"message": "Owns this repository",
"octicon": "repo"
},
{
"message": "Committed to this repository in the past day",
"octicon": "git-commit"
}
]
}
拉取请求示例
同样,你可以获取pull request的ID。
你需要小心你使用的是哪个 ID:虽然存储库中的拉取请求通常用一个小数字标识(你在 URL 中看到的那个),API 有问题的没有存储库的上下文,因此您需要传递全局 ID。
> curl "https://api.github.com/repos/torvalds/linux/pulls/486"
{
"url": "https://api.github.com/repos/torvalds/linux/pulls/486",
"id": 150630598,
# ...
然后使用主题类型pull_request
获取Linus在其中的角色:
curl "https://api.github.com/users/torvalds/hovercard?subject_type=pull_request&subject_id=150630598"
{
"contexts": [
{
"message": "Owns this repository",
"octicon": "repo"
},
{
"message": "Committed to this repository in the past day",
"octicon": "git-commit"
}
]
}
请注意,获取上下文信息的端点需要身份验证,因此您必须向 curl 示例添加 header。
如果您经常尝试使用 GitHub API,我建议安装 GitHub CLI,因为它允许您像这样 运行 验证查询:
> gh api /repos/torvals/linux
通过 Octokit.js 使用 GitHub API 并查看 getContextForUser
(https://docs.github.com/en/rest/users/users#get-contextual-information-for-a-user) 的文档,它提到在指定 subject_type
你还需要指定subject_id
。对于 subject_id
,它声明“使用您指定的 subject_type 的 ID。”
我不知道你从哪里得到 subject_type
的相关 subject_id
。我搜索了高低但没有成功。有人知道在哪里可以找到显示 subject_type
的 ID 的地图吗?
subject_id
是您想要了解其信息的事物的 ID。例如,如果您想获得有关存储库的信息(在本例中为主题类型),则必须传递您想要了解其信息的存储库的 ID。
在我看来,API 文档说这必须是一个字符串,而它通常是一个数字 ID,这有点令人困惑。
存储库示例
让我们来看一个例子:假设我们想知道存储库 torvalds/linux
上 Torvald 的气垫卡是什么。首先,我们需要获取存储库的 ID:
> curl https://api.github.com/repos/torvalds/linux
{
"id": 2325298,
# ...
有了这个ID,我们可以查询主题类型repository
:
> curl "https://api.github.com/users/torvalds/hovercard?subject_type=repository&subject_id=2325298"
{
"contexts": [
{
"message": "Owns this repository",
"octicon": "repo"
},
{
"message": "Committed to this repository in the past day",
"octicon": "git-commit"
}
]
}
拉取请求示例
同样,你可以获取pull request的ID。
你需要小心你使用的是哪个 ID:虽然存储库中的拉取请求通常用一个小数字标识(你在 URL 中看到的那个),API 有问题的没有存储库的上下文,因此您需要传递全局 ID。
> curl "https://api.github.com/repos/torvalds/linux/pulls/486"
{
"url": "https://api.github.com/repos/torvalds/linux/pulls/486",
"id": 150630598,
# ...
然后使用主题类型pull_request
获取Linus在其中的角色:
curl "https://api.github.com/users/torvalds/hovercard?subject_type=pull_request&subject_id=150630598"
{
"contexts": [
{
"message": "Owns this repository",
"octicon": "repo"
},
{
"message": "Committed to this repository in the past day",
"octicon": "git-commit"
}
]
}
请注意,获取上下文信息的端点需要身份验证,因此您必须向 curl 示例添加 header。
如果您经常尝试使用 GitHub API,我建议安装 GitHub CLI,因为它允许您像这样 运行 验证查询:
> gh api /repos/torvals/linux