如何使用Github API检索组织的存储库?

时间:2019-05-07 14:51:40

标签: github github-api

我正在与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访问的帖子,但是我没有找到一种清晰的方法来实现我试图实现的目标。对于我来说,这似乎是当前的用例,因此令我沮丧的是,我没有找到正确的方法来实现自己的目标。

您有解锁我的想法吗?

谢谢!

0 个答案:

没有答案