Запрос на перенос Probot check-js

Я создаю приложение для обзора кода для github, используя nodeJS (ProBot)

Я пытаюсь получить данные pull_request из check_suite, который был создан для получения соответствующих файлов и запуска моих тестов, но 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/}

1 ответ

Я не уверен, как вы пытаетесь реализовать check.createметод. Этот метод принимает несколько параметров (некоторые обязательные, некоторые необязательные), но вы передаете объект репо. Вместо этого вы должны передать имя репо.

Несколько замечаний:

  • ваше приложение GitHub должно иметь check:write разрешение

  • Также убедитесь, что ваш checks.createимеет необходимые свойства(свойства, которые являются обязательными). Например, владелец недвижимости не хватает в вашем случае.

Раньше я сталкивался с подобной проблемой.

Другие вопросы по тегам