1

我无法使用 Octokit/rest 作为应用程序进行身份验证,并且文档失败了...

这是我的身份验证例程:

async function getGithub({payload}) {
  const auth = createAppAuth({
    id: parseInt(process.env.APP_ID, 10),
    privateKey: getPrivateKey()
  })

  const installationAuth = await auth({
    type: 'installation',
    installationId: payload.installation.id,
  })

  return new Octokit(installationAuth)
}

有人能指出我正确的方向吗?

当我向客户端发出请求时,我只收到 404。我知道存储库存在,并且 Github 的文档指出,如果客户端无权访问,未经授权的请求可能会导致 404。

4

1 回答 1

2

我已经解决了!

我没有将正确的信息传递给机器人。工作函数如下所示。

async getGithub(context) {
  const auth = createAppAuth({
    id: parseInt(process.env.APP_ID, 10),
    privateKey: getPrivateKey()
  })

  const installationAuth = await auth({
    type: 'installation',
    installationId: context.payload.installation.id,
  })

  return new Octokit({
    auth: installationAuth.token // directly pass the token
  })
}

很近!

于 2020-08-05T12:00:34.773 回答