Apa itu GitHub Apps?
Di sini, kita membahas apa itu Aplikasi GitHub, cara kerjanya, dan bagaimana Anda dapat menggunakannya untuk meningkatkan alur kerja Anda. Baik Anda mengadopsi solusi yang dibangun oleh orang lain atau mengembangkannya untuk memenuhi kebutuhan Anda, selalu ada ruang untuk meningkatkan proses Anda.
Memperluas platform melalui API GitHub
GitHub menyediakan API canggih yang memungkinkan pengembang untuk melakukan hampir semua hal di platform. API diekspos melalui titik akhir REST, sehingga mudah untuk diintegrasikan dengan dari platform atau bahasa pemrograman apa pun. Namun, akses API tidak berdiri sendiri. Pengembang yang ingin berbagi fitur mereka dengan orang lain masih perlu mengemasnya sebagai aplikasi dan menerbitkannya sebelum siapa pun dapat menggunakannya.
Ada beberapa faktor yang perlu dipertimbangkan saat memilih antara menggabungkan aplikasi OAuth atau Aplikasi GitHub ke dalam alur kerja Anda. Di bagian ini, kami memperkenalkan Anda ke Aplikasi GitHub dan Aplikasi OAuth, perbedaan penggunaan dan izinnya, dan langganan peristiwa.
Saat menyesuaikan alur kerja GitHub, Anda memiliki beberapa fitur yang tersedia. Seperti, menulis skrip kustom, membuat dan mengotorisasi Aplikasi OAuth Anda sendiri, atau menginstal Aplikasi GitHub yang tersedia dari pasar GitHub. Secara umum, Anda dapat menggunakan skrip terbaik untuk tugas satu kali tersebut. Untuk tindakan yang dijalankan lebih sering, otomatisasi Aplikasi OAuth dan GitHub dapat membantu Anda dan tim Menghemat waktu, sambil mempertahankan tingkat keamanan yang optimal dalam alur kerja Anda. Ada banyak perbedaan yang memengaruhi cara Anda memutuskan antara menggunakan Aplikasi GitHub atau Aplikasi OAuth. Memahami perbedaan ini sebelumnya dapat mengurangi beberapa sakit kepala dan mengerjakan ulang di jalan, dan membantu Anda menemukan aplikasi terbaik untuk kasus penggunaan spesifik Anda dalam alur kerja Anda.
Di akhir bagian ini, Anda harus memiliki pemahaman yang baik tentang perbedaan antara Aplikasi GitHub dan Aplikasi OAuth, dan tahu cara terbaik memilih aplikasi untuk situasi yang tepat.
Memberikan akses dan izin
Salah satu pertimbangan terpenting untuk memungkinkan aplikasi mengakses repositori GitHub adalah izin yang diperlukan untuk beroperasi. Beberapa aplikasi mudah dipercaya, tetapi yang lain mungkin dicurigai. Selalu pastikan Anda merasa nyaman dengan izin yang Anda berikan pada aplikasi.
Catatan
Setiap aplikasi menggunakan kunci API unik untuk membuat permintaan data di repositori Anda. Saat Anda mengotorisasi akses, itu adalah kunci yang Anda otorisasi. Anda dapat mencabut akses ke kunci aplikasi kapan saja dari pengaturan repositori Anda.
Aplikasi Oauth
Aplikasi OAuth menyediakan cara untuk mengakses data GitHub atas nama pengguna. Karena bertindak atas nama pengguna, penting untuk dicatat bahwa ia menggunakan lisensi GitHub. Anda dapat membuat dan mendaftarkan Aplikasi OAuth di akun pribadi Anda atau di tingkat organisasi jika Anda memiliki akses administratif. Aplikasi OAuth yang terintegrasi dengan GitHub mengungkapkan jenis akses ke organisasi atau repositori yang diperlukan. Pengguna mengotorisasi Aplikasi OAuth, yang memberi aplikasi kemampuan untuk bertindak sebagai pengguna yang diautentikasi, seperti membaca atau memodifikasi data. Pendekatan ini pada dasarnya adalah cara otomatis untuk membaca, menulis, atau mengedit data GitHub sebagai pengguna. Penting juga untuk dicatat bahwa otorisasi terbatas pada sumber daya yang dapat diakses oleh pengguna. Namun, Aplikasi OAuth juga mendapatkan akses ke semua sumber daya yang tersedia untuk pengguna.
Catatan
Tingkat akses dibatasi oleh cakupan token (pengguna, organisasi, repositori).
Untuk organisasi dengan pembatasan akses Aplikasi OAuth, Administrator dapat memberikan persetujuan untuk menggunakan aplikasi. Dengan langganan Peristiwa, Aplikasi OAuth merespons aktivitas saat terjadi.
Aplikasi GitHub
Sebaliknya, Aplikasi GitHub diinstal di akun pribadi Anda, organisasi yang Anda miliki, atau repositori tertentu tempat Anda memiliki akses admin. Aplikasi GitHub diinstal dan berinteraksi dengan GitHub sebagai layanan, bukan pengguna individu seperti dengan Aplikasi OAuth. Salah satu manfaat GitHub Apps adalah bahwa, tidak seperti aplikasi OAuth, GitHub Apps tidak menggunakan lisensi GitHub.
Aplikasi GitHub mengakses data atas nama aplikasi itu sendiri melalui Kunci Privat yang digunakan untuk menandatangani JSON Web Token. Karena diinstal pada repositori tertentu, pengguna dapat memilih repositori apa yang dapat diakses aplikasi, yang membatasi jumlah data yang dapat diakses aplikasi. Izin menentukan sumber daya apa yang dapat diakses GitHub App melalui API. Tidak seperti Aplikasi OAuth, GitHub Apps memiliki izin yang dapat disesuaikan untuk data repositori, masalah, dan permintaan pull. Kustomisasi memungkinkan Anda untuk memberikan izin yang lebih terperinci, membatasi aplikasi untuk membaca dan menulis hanya di repositori yang Anda izinkan untuk diakses. Hanya pemilik organisasi yang dapat mengelola pengaturan GitHub Apps di organisasi.
Anda dapat menemukan dan menginstal Aplikasi GitHub dari GitHub Marketplace. Saat Anda mencari Aplikasi GitHub, perlu diingat bahwa beberapa Aplikasi memiliki lencana terverifikasi. Lencana terverifikasi menunjukkan hal berikut tentang aplikasi dan organisasi yang memilikinya:
- Kepemilikan organisasi atas domain mereka diverifikasi.
- Dukungan GitHub mengonfirmasi alamat email untuk organisasi.
- Organisasi memerlukan autentikasi dua faktor.
- Administrator dapat memberikan izin mengenai administrasi repositori, pemeriksaan, konten repositori, penyebaran, dan masalah (Perubahan administrator memerlukan penerimaan pengguna)
- Administrator dapat memberikan izin pengguna aplikasi untuk memblokir pengguna lain, email, pengikut, Kunci GPG, Kunci Git SSH, yang dibintangi, menonton (Perubahan administrator memerlukan penerimaan pengguna)
- Langganan Peristiwa: Penasihat keamanan, Rangkaian pemeriksaan, Buat, Penyebaran, Fork, Label, Anggota, Check in, Komentar penerapan, Hapus, Status penyebaran, Milestone, Keanggotaan, Organisasi (Administrator mengonfigurasi di Antarmuka Pengguna Aplikasi GH dan dapat diubah)
Pilih antara GitHub Apps dan Aplikasi OAuth
Meskipun GitHub Apps adalah cara ideal untuk mengintegrasikan ke dalam alur kerja Anda dalam beberapa situasi, organisasi yang lebih besar dapat merasa sulit untuk melakukan transisi dari penggunaan tradisional Aplikasi OAuth untuk otomatisasi. Misalnya, pembatasan kebijakan keamanan mungkin juga membatasi opsi administrator dalam memilih untuk menggunakan alat-alat ini.
Catatan
Sebagai Administrator Sistem, Anda harus bekerja dengan pengembang Anda untuk menemukan opsi yang paling cocok untuk otomatisasi dengan menggunakan aplikasi ini sambil tetap mengikuti kebijakan keamanan Anda.
Untuk menentukan aplikasi mana yang merupakan solusi yang tepat untuk situasi Anda, berikut adalah beberapa pertanyaan penting yang perlu dipertimbangkan:
- Apakah saya ingin aplikasi bertindak sebagai pengguna?
- Berapa batas tarif yang diperlukan?
- Akses apa yang saya inginkan untuk dimiliki aplikasi di organisasi dan repositori?
- Apakah aplikasi ini mematuhi kebijakan keamanan kami?
Berikut adalah beberapa karakteristik dan perbedaan utama yang perlu dipertimbangkan saat memilih antara Aplikasi GitHub atau Aplikasi OAuth.
| Aplikasi GitHub | Aplikasi Oauth |
|---|---|
| Menginstal GitHub Apps memberi aplikasi akses ke repositori yang dipilih pengguna atau akun organisasi. | Mengotorisasi Aplikasi OAuth memberikan akses aplikasi ke sumber daya pengguna yang mudah diakses; misalnya, repositori yang dapat mereka akses. |
| Token akses penginstalan terbatas pada repositori tertentu dengan izin yang dipilih oleh pembuat aplikasi. | Token akses OAuth dibatasi melalui cakupan. |
| Token penginstalan mengidentifikasi aplikasi sebagai bot GitHub Apps. | Token akses mengidentifikasi aplikasi sebagai pengguna yang memberikan token ke aplikasi. |
| Aplikasi GitHub menggunakan izin yang ditargetkan yang memungkinkan mereka meminta akses hanya ke apa yang mereka butuhkan. | Aplikasi OAuth tidak dapat menggunakan izin terperinci. |
| GitHub Apps tidak tunduk pada kebijakan aplikasi organisasi. Aplikasi GitHub hanya memiliki akses ke repositori yang diberikan pemilik organisasi. | Jika kebijakan aplikasi organisasi aktif, hanya pemilik organisasi yang dapat mengotorisasi penginstalan Aplikasi OAuth. Jika diinstal, Aplikasi OAuth mendapatkan akses ke apa pun yang terlihat oleh token yang dimiliki pemilik organisasi dalam organisasi yang disetujui. |
| Peningkatan batas tarif dapat diberikan baik di tingkat aplikasi GitHub (memengaruhi semua penginstalan) dan pada tingkat penginstalan individual. | Kenaikan batas tarif diberikan per Aplikasi OAuth. Setiap token yang diberikan kepada Aplikasi OAuth tersebut mendapatkan peningkatan batas. |
| GitHub Apps dapat mengautentikasi atas nama pengguna, yang disebut permintaan pengguna-ke-server. Alur untuk mengotorisasi sama dengan alur otorisasi Aplikasi OAuth. Token pengguna-ke-server dapat kedaluwarsa dan diperbarui dengan token refresh. | Alur OAuth yang digunakan oleh Aplikasi OAuth mengotorisasi Aplikasi OAuth atas nama pengguna. Alur ini sama dengan yang digunakan dalam otorisasi pengguna-ke-server Aplikasi GitHub. |
| GitHub Apps meminta izin konten repositori dan menggunakan token penginstalan Anda untuk mengautentikasi melalui Git berbasis HTTP. | Aplikasi OAuth meminta cakupan write:public_key dan Membuat kunci penyebaran melalui API. Anda kemudian dapat menggunakan kunci tersebut untuk melakukan perintah Git. |
Akses dan izin aplikasi
Salah satu pertimbangan terpenting untuk memungkinkan aplikasi mengakses repositori GitHub adalah izin yang diperlukan untuk beroperasi. Beberapa aplikasi mudah dipercaya, tetapi yang lain mungkin dicurigai. Selalu pastikan Anda merasa nyaman dengan izin yang Anda berikan pada aplikasi.
Membuat keputusan untuk menggunakan aplikasi GitHub atau aplikasi OAuth mungkin bergantung pada tingkat akses yang Anda inginkan untuk diakses aplikasi. Secara umum, Anda harus mendorong tim Anda untuk menggunakan alat ini dengan cakupan terkecil untuk menyelesaikan tugas. Aplikasi OAuth memiliki akses ke semua sumber daya pengguna atau pemilik organisasi.
- Aplikasi OAuth dapat memiliki akses baca atau tulis ke data GitHub Anda
- Anda dapat memberikan akses aplikasi GitHub ke satu akun tanpa diberi akses ke akun lain
Keamanan aplikasi
Saat Anda menemukan kerentanan di aplikasi Anda, itu harus menjadi prioritas dan di dalam kebijakan keamanan Anda untuk memberi tahu pengguna proyek Anda. Mengomunikasikan masalah keamanan dengan cepat dapat berarti perbedaan antara pengguna Anda dapat mencabut token yang disusupi atau memiliki data sensitif yang terekspos. Meskipun token jauh lebih aman daripada kata sandi, keamanan masih dapat disusupi, dan penting bagi organisasi Anda untuk mempersiapkan diri.
Selain file README.md, sebaiknya tambahkan file SECURITY.md ke repositori Anda. File SECURITY.md menyoroti informasi terkait keamanan untuk repositori. File harus menyertakan kontak keamanan, kebijakan organisasi Anda, dan merinci respons yang anda rencanakan untuk diambil ketika kerentanan ditemukan.
Bereaksi terhadap acara
GitHub Apps dirancang agar pasif. Mereka menunggu sesuatu terjadi, dan kemudian bereaksi, biasanya melalui API GitHub. Saat menunggu peristiwa terjadi di GitHub, ada dua pendekatan: webhook dan polling.
Catatan
GitHub Apps tidak terbatas pada bekerja dengan data GitHub. Anda dapat dengan mudah menunggu peristiwa yang terjadi dari sumber lain atau melakukan tindakan yang memperbarui layanan lain.
Menggunakan webhook GitHub
Webhook adalah pendekatan yang disukai untuk penanganan peristiwa. Ketika sesuatu terjadi di GitHub dalam cakupan webhook, peristiwa segera dinaikkan. Pemberitahuan push webhook yang dapat didengarkan dan diproses oleh aplikasi Anda secara real time. Anda dapat mengonfigurasi webhook di pengaturan repositori Anda, termasuk jenis peristiwa, autentikasi, dan cara pemberitahuan HTTP dikirimkan.
Jajak Pendapat
Terkadang webhook bukanlah pilihan. Aplikasi Anda mungkin perlu tinggal di belakang firewall perusahaan di mana GitHub tidak dapat langsung menjangkaunya. Dalam kasus ini, alternatifnya adalah melakukan polling untuk data yang Anda lacak dengan menggunakan API GitHub.
Relai webhook
Alternatif untuk polling untuk aplikasi di belakang firewall adalah menggunakan layanan penerusan webhook, seperti smee.io. Dengan pendekatan ini, layanan publik berlangganan webhook repositori, lalu menyampaikan data masuk ke layanan klien yang berjalan di belakang firewall. Layanan klien tersebut kemudian mendorong pemberitahuan ke aplikasi Anda yang sedang berjalan seolah-olah mereka berasal dari sumber asli.