Saya mencoba menerapkan Cek ke aplikasi GitHub saya. Aplikasi saya dibangun dengan probot.

Saya hanya tidak dapat menerapkan pemeriksaan. Saya telah mencoba melalui dokumentasi yang menunjukkan contoh Ruby yang mencakup beberapa pengaturan berbeda (tidak yakin apakah diperlukan dengan probot). Saya hanya bingung dengan contoh di sana.

Di bawah ini adalah kode yang berada di index.js saya:

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

Saya mendapatkan kesalahan di bawah ini

 ERROR probot: Cannot read property 'map' of undefined
  TypeError: Cannot read property 'map' of undefined

Log kesalahan mengeluh tentang index.js:24:35, yang merupakan metode createdi baris await context.github.checks.create

Apakah kode di atas cukup untuk membuat centang test-check-1 atau apakah saya perlu mengurus hal-hal lain juga. Saya sudah mengaktifkan opsi "Pemeriksaan status yang diperlukan sebelum penggabungan" di bawah pengaturan perlindungan cabang dari repo saya. Dan bagian tersebut menampilkan Maaf, kami tidak dapat menemukan pemeriksaan status apa pun dalam minggu terakhir untuk repositori ini.

Tidak yakin bagaimana menghubungkan semuanya.

EDIT 1 : MULAI

Di bawah ini adalah kode setelah memasukkan params yang diperlukan seperti yang disarankan oleh @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"
      })
  })

Sayangnya, saya masih mendapatkan kesalahan yang sama pada baris dan kolom yang sama persis.

EDIT 1 : SELESAI

EDIT 2 : MULAI

Di bawah ini adalah kode kerja terakhir setelah menyertakan koreksi untuk parameter mediaType :

Harap dicatat ada satu kesalahan lagi yang harus saya perbaiki dan itu adalah param pemilik nilai. Cara yang benar adalah dengan menentukan context.payload.repository.owner.login dan ini adalah sesuatu yang baru-baru ini saya pelajari dari postingan StackOverflow ini

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

EDIT 2 : SELESAI

1
Asif Kamran Malick 15 Mei 2020, 04:17

1 menjawab

Jawaban Terbaik

Mungkinkah Anda perlu meneruskan pemilik dan repositori ke metode context.github.checks.create()? Saya pikir itu adalah properti yang diperlukan: https://octokit.github.io/rest.js /v17#cek

Selain itu, pastikan Aplikasi Github memiliki izin berikut: checks:write(https://developer.github.com/v3/activity/events/types/#checkrunevent)


Selain itu, memeriksa cuplikan kode Anda, tampaknya Anda tidak menggunakan mediaType dengan benar. Jika Anda memeriksa definisi tipe, mediaType memiliki struktur berikut:

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

Referensi di sini: https://octokit.github.io/rest.js/v17#previews

Bisakah Anda mencobanya dengan ini?

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

Sebagai umpan balik umum, saya sarankan Anda untuk mencoba TypeScript, masalah ini akan terlihat menggunakannya :)

1
OscarDOM 17 Mei 2020, 17:05