我正在与Github API一起尝试检索特定分支的最后一次提交。确切地说,我定位的存储库是由组织管理的。我想用它为我的webapp生成一个build_id。为了托管具有相同状态的多个实例,这听起来不错。
首先,我使用我的个人帐户(设置/开发人员设置/个人访问令牌)创建一个个人访问令牌,并将其保存以用于我的脚本。由于我对目标存储库的正确访问,我认为我可以使用个人令牌来访问它。
不幸的是,那没有用。我可以轻松地为自己的存储库检索信息,但是当我尝试访问组织存储库时,Github API会向我返回404错误。小细节,我是目标组织的管理员。
在这里您可以找到我用来检索上一次提交sha的nodeJS代码。当我以自己的存储库为目标时,它可以完美工作,但是当我尝试访问组织存储库时,它返回404。
const Octokit = require('@octokit/rest');
const octokit = new Octokit({
auth: process.env.AUTH
});
const fetchCommits = async (owner, repo) => {
try {
const params = {
owner,
repo,
page: 1,
per_page: 1,
};
const { data } = await octokit.repos.listCommits(params);
console.log(data[0]);
} catch(e) {
console.error(e);
}
};
fetchCommits(process.argv[2], process.argv[3]);
Octokit是著名的nodeJS库,可与Github API通信。 repos.listCommits
方法针对此端点
https://api.github.com/repos/:owner/:repo/commits?page=1&per_page=1',
我并没有被迫使用Octokit,我可以根据需要创建自己的脚本来针对特定端点,但是我认为是访问权限问题而不是端点问题。
就像我之前提到的,我的脚本向我返回404错误。我想这是您没有正确的权限访问特定端点的出席行为。
我阅读了一些有关OAuth应用程序,Github应用程序或OAuth访问的帖子,但是我没有找到一种清晰的方法来实现我试图实现的目标。对于我来说,这似乎是当前的用例,因此令我沮丧的是,我没有找到正确的方法来实现自己的目标。
您有解锁我的想法吗?
谢谢!