传递给 createTokenAuth 的令牌不是字符串:octokit、auth-token

Token passed to createTokenAuth is not a string : octokit, auth-token

我正在尝试构建一个 GitHub 应用程序并关注 https://probot.github.io/docs/ and https://octokit.github.io/rest.js/v17#authentication。它基本上是一个 nodejs 应用程序。

我没有使用 nodejs 或 typescript 的经验,甚至没有使用 probot 框架的经验。

PRIVATE_KEY_PATH在.env文件中如下:

PRIVATE_KEY_PATH=my-app.2020-04-03.private-key.pem

.pem文件在项目根目录

typeof 打印字符串: --------------令牌类型----字符串

index.js

/**
 * This is the main entrypoint to your Probot app
 * @param {import('probot').Application} app
 */



        const{Octokit} = require("@octokit/rest");
        const{createAppAuth} = require("@octokit/auth-token");

         console.log('PRIVATE_KEY',process.env.PRIVATE_KEY_PATH);
         console.log('-------------TypeOf token ----', typeof process.env.PRIVATE_KEY_PATH)

         const appOctokit = new Octokit({
           authStrategy:createAppAuth,
           auth:{
             id:12345,
             privateKey: process.env.PRIVATE_KEY_PATH,
            //  privateKey: 'token ${process.env.PRIVATE_KEY_PATH}'
            }
         });

我总是遇到以下错误:

10:52:51.166Z ERROR probot: [@octokit/auth-token] Token passed to createTokenAuth is not a string

无法在 Internet 上找到有关此主题的太多帮助。我什至尝试浏览 octokit https://github.com/octokit/auth-token.js/blob/master/src/index.ts 的代码,看起来我的代码没有做错任何事。

除了文档外,GitHub 应用程序或 probot 框架的问题可参考的资源不多。 Whosebug 也有大约 20-30 个与 GitHub 应用程序或 probot 框架相关的问题。

编辑 1:开始

运行 下面的代码:

/**
 * This is the main entrypoint to your Probot app
 * @param {import('probot').Application} app
 */

 const{Octokit} = require("@octokit/rest");

 const{createAppAuth} = require("@octokit/auth-token");

 console.log('PRIVATE_KEY',process.env.PRIVATE_KEY_PATH);
 console.log('-------------TypeOf token ----', typeof process.env.PRIVATE_KEY_PATH)

产生以下错误:

ERROR probot: appFn is not a function
  TypeError: appFn is not a function

编辑 1:结束

如果您使用 Probot,则无需加载您自己的 @octokit/rest 或任何 @octokit/auth-* 软件包,它们都内置于 Probot

您是否尝试过 https://probot.github.io/

上显示的示例代码
module.exports = app => {
  app.on('issues.opened', async context => {
    const params = context.issue({
      body: 'Hello World!'
    })
    await context.github.issues.createComment(params)
  })
}

Probot 会自动读取您的 .env 文件的内容,查找 PRIVATE_KEY_PATH 环境变量,读取该位置的文件内容,并设置 JWT/installation为您认证