Невозможно реализовать проверку в моей интеграции, получаю "карта не определена" для метода создания проверок

Я пытаюсь внедрить проверки в свое приложение GitHub. Мое приложение построено с проботом.

Я просто не могу проводить проверки. Я пробовал просмотреть документацию, которая демонстрирует пример рубина, который включает несколько различных настроек (не уверен, требуется ли это с проботом). Я просто запутался там с примером.

Ниже приведен код, который находится в моем index.js:

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, что в точности соответствует createметод в строке await context.github.checks.create

Достаточно ли приведенного выше кода для создания проверки test-check-1 или мне нужно позаботиться и о других вещах. У меня уже есть опция "Обязательные проверки статуса перед объединением", включенная в настройках защиты веток моего репо. В этом разделе отображается Извините, мы не смогли найти никаких проверок статуса за последнюю неделю для этого репозитория.

Не уверен, как все подключить.

РЕДАКТИРОВАТЬ 1: НАЧАТЬ

Ниже приведен код после включения необходимых параметров, предложенных @OscarDOM:-

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"
      })
  })

К сожалению, я все еще получаю ту же ошибку в той же строке и столбце.

РЕДАКТИРОВАТЬ 1: КОНЕЦ

РЕДАКТИРОВАТЬ 2: НАЧАТЬ

Ниже приведен окончательный рабочий код после внесения исправлений в параметр mediaType:

Обратите внимание, что мне пришлось исправить еще одну ошибку - параметр value owner. Правильный способ - указать context.payload.repository.owner.login, и об этом я недавно узнал из этой публикации на Stackru.

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"
      })
  })

РЕДАКТИРОВАТЬ 2: КОНЕЦ

1 ответ

Решение

Можно ли передать владельца и репозиторий context.github.checks.create()метод? Я думаю, это обязательные свойства: https://octokit.github.io/rest.js/v17

Также убедитесь, что приложение Github имеет следующие разрешения: checks:write(https://developer.github.com/v3/activity/events/types/)


Кроме того, при проверке фрагмента кода выясняется, что вы не используете mediaTypeдолжным образом. Если вы проверите определение типа, mediaType имеет следующую структуру:

mediaTypes: {
   format?: string,
   previews?: string[]
}

Ссылка здесь: https://octokit.github.io/rest.js/v17

Вы можете попробовать это с этим?

app.on('check_suite.requested', async context =>{
        console.log('************------------ check suite requested')
        await context.github.checks.create({
            owner: '<YOUR_ORGANIZATION>',
            repo: '<YOUR_REPO>',
            mediaType: { previews: ['antiope']},
            name : 'test-check-1',
            head_sha: context.payload.check_suite.after,
            conclusion: "success"
        })
    })

В качестве общего отзыва я предлагаю вам попробовать TypeScript, эти проблемы были бы обнаружены с его помощью:)

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