传递给 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为您认证
我正在尝试构建一个 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为您认证