nodeJS (ProBot) を使用して github 用のコード レビュー アプリを構築しています
関連ファイルを取得してテストを実行するために作成された check_suite から pull_request データを取得しようとしていますが、context.payload.pull_request は空です。
イベントpull_request.createdも聞いてみましたが、必要なデータはありますが、context.github.checks.update()/context.github.checks.create()はチェックのステータスを更新しません。 in_progress は永遠に続きます。
ここに私のコードがあります:
module.exports = app => {
app.on([
'check_suite.requested',
'check_run',
'pull_request.opened',
], check)
async function check (context) {
const startTime = new Date()
if (context.payload.check_suite) {
const { head_branch: headBranch, head_sha: headSha } = context.payload.check_suite
return context.github.checks.create(context.repo({
name: 'SoftaCheck',
head_branch: headBranch,
head_sha: headSha,
status: 'in_progress',
started_at: startTime,
}))
}
const payload = {head_branch: context.payload.pull_request? context.payload.pull_request.base.ref : context.payload.check_run.pull_requests[0].base.ref ,head_sha : context.payload.pull_request? context.payload.pull_request.base.sha : context.payload.check_run.pull_requests[0].base.sha }
const { head_branch, head_sha } = payload
if (context.payload.pull_request) {
//some async code here in order to decide conclusion...
context.github.checks.create(context.repo({
name: 'SoftaCheck',
head_branch,
head_sha,
status: 'completed',
conclusion:'success'
started_at: startTime,
}))
}
}
// アプリの構築に関する詳細情報: // https://probot.github.io/docs/
// GitHub に対してアプリを実行するには、次を参照してください: // https://probot.github.io/docs/development/ }