Github 无法在我的集成中实现签入,获取';地图未定义';用于创建检查方法
我正在尝试对我的GitHub应用程序进行检查。我的应用程序是用probot构建的 我只是无法实施检查。我已经试着阅读了演示ruby示例的文档,该示例包括几个不同的设置(不确定probot是否需要)。 我只是对那里的例子感到困惑 下面是my index.js中的代码:Github 无法在我的集成中实现签入,获取';地图未定义';用于创建检查方法,github,github-api,probot,github-app,Github,Github Api,Probot,Github App,我正在尝试对我的GitHub应用程序进行检查。我的应用程序是用probot构建的 我只是无法实施检查。我已经试着阅读了演示ruby示例的文档,该示例包括几个不同的设置(不确定probot是否需要)。 我只是对那里的例子感到困惑 下面是my index.js中的代码: app.on('check_suite.requested', async context =>{ console.log('************------------ check suite request
app.on('check_suite.requested', async context =>{
console.log('************------------ check suite requested')
await context.github.checks.create({
mediaType:'application/vnd.github.antiope-preview+json',
name : 'test-check-1',
head_sha: context.payload.check_suite.after,
conclusion: "success"
})
})
我得到下面的错误
ERROR probot: Cannot read property 'map' of undefined
TypeError: Cannot read property 'map' of undefined
错误日志抱怨index.js:24:35,这正是wait context.github.checks.create
行中的create
方法
上述代码是否足以创建checktest-check-1,或者我是否还需要处理其他事情。我已经在回购协议的分支保护设置下启用了“合并前通过所需状态检查”选项。
该部分显示抱歉,我们在上周找不到此存储库的任何状态检查。
不知道如何连接所有东西
编辑1:开始
以下是包含@OscarDOM建议的所需参数后的代码:--
不幸的是,我仍然在完全相同的行和列中得到相同的错误
编辑1:END
编辑2:开始
以下是包含mediaType参数更正后的最终工作代码:
请注意,我还要纠正一个错误,那就是值所有者参数。正确的方法是指定context.payload.repository.owner.login,这是我最近学到的东西
编辑2:END是否需要将所有者和存储库传递给
context.github.checks.create()
方法?我认为它们是必需的属性:
另外,请确保Github应用程序具有以下权限:检查:write
()
另外,检查代码片段时,您似乎没有正确使用
mediaType
。如果检查类型定义,则mediaType具有以下结构:
媒体类型:{
格式?:字符串,
预览?:字符串[]
}
此处参考:
你能用这个试试吗
app.on('check_suite.requested',异步上下文=>{
console.log('************--------------检查请求的套件')
等待context.github.checks.create({
所有者:“”,
回购协议:,
mediaType:{previews:['antiope']},
名称:“test-check-1”,
head\u sha:context.payload.check\u suite.after,
结论:“成功”
})
})
作为一般反馈,我建议您尝试使用TypeScript,使用它可以发现这些问题:)当然。我必须使之成为可能。:)如果它说参数是必需的,那么就无法逃脱。错过了它,我感到很傻。但我确实提供了支票写权限。我将传递这些reqd参数,并与您分享我的发现。多谢各位@OscarDOM@AsifKamranMalick已编辑的响应,可能缺少需要应用的更改:)确定。我想我也这么做了,但这对我来说从来都不起作用。我将编辑我的OP,在“编辑1”部分中,我将提供在您提出第一个建议后对代码所做的更改。我认为唯一的区别是指定mediaType的方式。我也会尝试。但是请检查编辑,让我知道是否正确。其他看起来不错,但没有mediaType修复,您希望能够与API通信。让我们知道你的尝试成功后的情况。非常感谢。:)我可以在“支票”选项卡中找到它们。还有一件事我必须处理,即owner.login,而不仅仅是owner。
app.on('check_suite.requested', async context =>{
console.log('*****check suite requested*****')
context.github.checks.create({
owner:context.payload.repository.owner,
repo:context.payload.repository.name,
mediaType:'application/vnd.github.antiope-preview+json',
name : 'test-check-1',
head_sha: context.payload.check_suite.after,
conclusion: "success"
})
})
app.on('check_suite.requested', async context =>{
console.log('*****check suite requested*****')
context.github.checks.create({
owner:context.payload.repository.owner.login,
repo:context.payload.repository.name,
mediaType: { previews: ['antiope']},
name : 'test-check-1',
head_sha: context.payload.check_suite.after,
conclusion: "success"
})
})