0

我希望我的 GitHub 应用代表用户执行操作,例如创建问题。

我以这种方式验证我的用户:

const { createOAuthAppAuth } = require('@octokit/auth-oauth-app');

const auth = createOAuthAppAuth({
  clientType: 'oauth-app',
  clientId: clientGithubID,
  clientSecret: clientSecretGithub,
});

const userAuthenticationFromWebFlow = await auth({
  type: 'oauth-user',
  code,
  state: userId,
});

// console.log(useAuthenticationFromWebFlow)
// {
//   "type": "token",
//   "tokenType": "oauth",
//   "clientType": "oauth-app",
//   "clientId": "Iv1.CLIENTID",
//   "clientSecret": "CLIENTSECRET",
//   "token": "ghu_bunchofchars",
//   "scopes": []
// }

看来我得到的令牌不错。

现在的问题是当我稍后在我的代码中尝试创建一个 Octokit 时,这不起作用

octokit = new Octokit({
  authStrategy: userAuthenticationFromWebFlow,
});
await octokit.issues.createComment({...props})

创建 Octokit 实例的正确方法是什么?

谢谢 !

4

1 回答 1

1

所以我才找到答案,

可能可以帮助某人。

const { createOAuthAppAuth } = require('@octokit/auth-oauth-app');

    octokit = new Octokit({
      authStrategy: createOAuthAppAuth,
      auth: userAuthenticationFromWebFlow.token,
    });

它有效!

于 2021-09-10T15:55:10.540 回答