我正在尝试构建一个GitHub应用程序,并遵循https://probot.github.io/docs/和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文件位于项目的根目录中
打印字符串的类型:-------------令牌类型----string
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
在互联网上找不到关于这个话题的太多帮助。我甚至试着浏览octokit的代码https://github.com/octokit/auth-token.js/blob/master/src/index.ts而且我的代码似乎没有做错什么。
除了文档之外,没有太多资源可以参考GitHub应用程序或probot框架的问题。StackOverflow也有大约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:结束
如果您使用Probet,您不需要加载自己的@octokit/rest
或任何@octokit/auth-*
包,它都内置在Probet 中
您是否尝试了上显示的示例代码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)
})
}
Probet将自动读取您的.env
文件的内容,查找PRIVATE_KEY_PATH
环境变量,读取该位置的文件内容,并为您的设置JWT/安装身份验证