You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Octokit完成GitHub App认证并查询组织数据?

解决GitHub App调用API时的installationId认证错误

你的问题出在没有使用安装级别的octokit实例:直接用app.octokit发起请求时,它用的是App本身的身份认证,而访问组织仓库需要基于GitHub App的安装生成专用的访问令牌。

修正步骤:

  1. 用app.getInstallationOctokit(installationId)获取对应安装的octokit实例,这个实例会自动处理安装令牌的生成和刷新
  2. 移除请求参数里多余的installationId,因为令牌已经和安装绑定
  3. 移除不必要的clientSecret参数(GitHub App认证不需要这个,这是OAuth App的配置)

修正后的代码:

import { App } from 'octokit'

const app = new App({
  appId: 1234,
  privateKey: `-----BEGIN RSA PRIVATE KEY-----
  ...
  -----END RSA PRIVATE KEY-----`,
})

const main = async () => {
  try {
    // 获取绑定指定安装的octokit实例
    const octokit = await app.getInstallationOctokit(1234)
    
    // 发起分支查询请求
    const res = await octokit.request('GET /repos/{owner}/{repo}/branches', {
      owner: 'Owner',
      repo: 'Repo',
      headers: {
        'X-GitHub-Api-Version': '2022-11-28'
      }
    })
    
    console.log(res.data)
  } catch (err) {
    console.error(err.message)
  }
}

main()

额外说明:

  • 如果你需要查询组织下的所有仓库,可以先调用GET /orgs/{org}/repos接口获取仓库列表,再循环查询每个仓库的分支
  • getInstallationOctokit会自动处理令牌的过期刷新,无需手动维护令牌生命周期

内容的提问来源于stack exchange,提问作者Anthony Luzquiños

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:25:12