GitHub adalah platform penting bagi pengembang di seluruh dunia, menyediakan ruang untuk kolaborasi, berbagi kode, dan kontrol versi. Meskipun antarmuka web GitHub menawarkan fungsionalitas yang kuat, ada banyak skenario di mana Anda mungkin ingin berinteraksi dengan GitHub secara terprogram. Di sinilah GitHub API berperan.
GitHub API memungkinkan pengembang untuk mengotomatiskan alur kerja, mengambil data, dan mengintegrasikan fitur-fitur canggih GitHub langsung ke dalam aplikasi mereka. Baik Anda ingin mengambil informasi pengguna, membuat daftar repositori, atau mengelola masalah dan permintaan tarik, GitHub API menyediakan cara yang fleksibel dan efisien untuk berinteraksi dengan GitHub secara terprogram, dan dalam panduan ini, kita akan belajar cara menggunakannya!
Prasyarat
Sebelum menyelami penggunaan GitHub API dengan Node.js, ada beberapa prasyarat yang perlu Anda siapkan. Bagian ini akan menguraikan persyaratan dasar dan pengetahuan yang Anda perlukan untuk mengikuti panduan ini.
1. Pengetahuan Dasar tentang JavaScript dan Node.js
Untuk menggunakan GitHub API secara efektif dengan Node.js, Anda harus memiliki pemahaman mendasar tentang JavaScript, khususnya pemrograman asinkron dan promises, karena konsep-konsep ini sering digunakan saat membuat permintaan HTTP. Keakraban dengan Node.js, termasuk menyiapkan proyek dan menginstal dependensi, juga penting.
2. Akun GitHub
Anda memerlukan akun GitHub untuk mengakses GitHub API. Jika Anda belum memilikinya, Anda dapat mendaftar secara gratis di GitHub. Selain itu, Anda perlu membuat token akses pribadi untuk mengautentikasi permintaan Anda. Kita akan membahas cara menghasilkan token ini di bagian selanjutnya.
3. Node.js Terinstal di Sistem Anda
Pastikan Anda telah menginstal Node.js di mesin Anda. Jika Anda belum menginstalnya, Anda dapat mengunduh versi terbaru dari situs web resmi Node.js. Tutorial ini akan menggunakan Node.js, jadi menginstalnya sangat penting untuk menjalankan contoh kode yang disediakan.
4. Pemahaman Dasar tentang RESTful API
Karena GitHub API adalah RESTful API, memiliki pemahaman dasar tentang cara kerja REST API akan bermanfaat. Ini termasuk memahami metode HTTP (GET, POST, PUT, DELETE), kode status, dan cara menangani respons JSON.
5. Editor Kode
Editor kode atau lingkungan pengembangan terintegrasi (IDE) seperti Visual Studio Code, Sublime Text, atau Atom akan membantu Anda menulis dan mengelola kode Anda secara efisien. Editor kode apa pun yang Anda kuasai akan berfungsi dengan baik untuk tutorial ini.
Menyiapkan Lingkungan Anda
Sebelum kita dapat mulai membuat permintaan ke GitHub API, kita perlu menyiapkan lingkungan pengembangan kita. Di bagian ini, kita akan membahas langkah-langkah untuk menyiapkan Node.js, menginisialisasi proyek baru, dan menginstal pustaka yang diperlukan.
Langkah 1: Instal Node.js
Jika Anda belum menginstal Node.js, unduh versi terbaru dari situs web resmi Node.js. Ikuti petunjuk instalasi yang khusus untuk sistem operasi Anda. Untuk memverifikasi bahwa Node.js telah diinstal dengan benar, buka terminal atau command prompt Anda dan jalankan:
node -v
Perintah ini akan menampilkan nomor versi Node.js yang terinstal di mesin Anda.
Langkah 2: Inisialisasi Proyek Node.js Baru
Selanjutnya, kita akan membuat direktori baru untuk proyek kita dan menginisialisasinya dengan npm (Node Package Manager). Buka terminal Anda dan jalankan perintah berikut:
mkdir github-api-tutorial
cd github-api-tutorial
npm init -y
Perintah npm init -y
membuat file package.json
dengan pengaturan default, yang diperlukan untuk mengelola dependensi proyek.
Langkah 3: Instal Pustaka yang Diperlukan
Untuk berinteraksi dengan GitHub API, kita membutuhkan express dan pustaka klien HTTP. Dalam tutorial ini, kita akan menggunakan axios
, klien HTTP berbasis promise untuk Node.js. Instal axios
dengan menjalankan:
npm install express axios
Selain itu, kita mungkin memerlukan dotenv
untuk mengelola variabel lingkungan dengan aman. Paket ini memungkinkan kita untuk memuat variabel lingkungan dari file .env
ke dalam process.env
, yang berguna untuk menyimpan informasi sensitif seperti token API. Instal dotenv
dengan menjalankan:
npm install dotenv
Langkah 4: Buat File .env
Buat file .env
di root direktori proyek Anda untuk menyimpan token akses pribadi GitHub Anda. File ini tidak boleh di-commit ke kontrol versi untuk menjaga keamanan informasi sensitif Anda.
GITHUB_TOKEN=your_personal_access_token_here
Ganti your_personal_access_token_here
dengan token akses pribadi GitHub Anda yang sebenarnya. Kita akan membahas cara menghasilkan token ini di bagian selanjutnya.
Langkah 5: Siapkan Struktur Proyek
Buat file baru bernama index.js
di direktori root proyek Anda. File ini akan berfungsi sebagai titik masuk utama untuk aplikasi Node.js kita.
Anda juga dapat menyiapkan struktur folder dasar jika Anda berencana untuk memperluas proyek Anda lebih lanjut. Struktur sederhana mungkin terlihat seperti ini:
github-api-tutorial/
├── node_modules/
├── .env
├── index.js
├── package.json
└── package-lock.json
Membuat Token Akses Pribadi GitHub
Untuk mengakses titik akhir yang diautentikasi dan meningkatkan batas laju API Anda, Anda memerlukan token akses pribadi GitHub. Github memiliki panduan keren tentang cara membuat token akses, yang dapat Anda temukan di bawah ini;

Langkah-langkahnya juga diuraikan di bawah ini agar Anda dapat dengan mudah mengikutinya :)
- Masuk ke akun GitHub Anda dan navigasikan ke Pengaturan.
- Di bilah sisi kiri, klik Pengaturan pengembang.
- Klik Token akses pribadi lalu Token (klasik).
- Klik tombol Hasilkan token baru.
- Berikan catatan untuk menjelaskan tujuan token (mis., "Tutorial GitHub API").
- Pilih cakupan atau izin yang ingin Anda berikan ke token ini. Untuk tutorial ini, pilih
repo
(untuk akses repositori) danuser
(untuk mengakses informasi pengguna). Anda dapat menyesuaikan cakupan berdasarkan kebutuhan spesifik Anda. - Klik Hasilkan token.
- Salin token yang dihasilkan dan simpan di file
.env
Anda seperti yang dijelaskan sebelumnya. Catatan: Perlakukan token ini seperti kata sandi dan jangan pernah membagikannya secara publik.
Menyiapkan Aplikasi Express dengan Rute untuk Permintaan GitHub API
Mari kita buat server Express dasar dengan dua rute: satu untuk mengambil profil pengguna GitHub dan yang lainnya untuk mengambil repositori mereka.
Berikut tampilan file index.js
Anda:
// Impor modul yang diperlukan
require('dotenv').config();
const express = require('express');
const axios = require('axios');
const app = express();
// Middleware untuk mengurai data JSON dan URL-encoded
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Rute untuk mengambil profil pengguna GitHub
app.get('/user/profile', async (req, res) => {
try {
const response = await axios.get('https://api.github.com/user', {
headers: {
'Authorization': `Bearer ${process.env.GITHUB_TOKEN}`
}
});
res.json(response.data); // Kirim data profil pengguna sebagai respons JSON
} catch (error) {
res.status(500).json({ error: 'Error fetching user profile', details: error.message });
}
});
// Rute untuk mengambil repositori pengguna GitHub
app.get('/user/repos', async (req, res) => {
const username = req.query.username || 'irorochad'; // Default ke 'irorochad' jika tidak ada username yang diberikan
try {
const response = await axios.get(`https://api.github.com/users/${username}/repos`, {
headers: {
'Authorization': `Bearer ${process.env.GITHUB_TOKEN}`
}
});
res.json(response.data); // Kirim data repositori pengguna sebagai respons JSON
} catch (error) {
res.status(500).json({ error: 'Error fetching user repositories', details: error.message });
}
});
// Mulai server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server berjalan di http://localhost:${PORT}`);
});
Anda bahkan dapat mempertimbangkan untuk menggunakan controllers untuk membuatnya lebih mudah dibaca.
Penjelasan Kode:
Impor Modul yang Diperlukan:
- Kita mengimpor
dotenv
untuk memuat variabel lingkungan dari file.env
,express
untuk membuat server, danaxios
untuk membuat permintaan HTTP ke GitHub API.
Siapkan Middleware:
- Middleware
express.json()
danexpress.urlencoded()
digunakan untuk mengurai permintaan masuk dengan payload JSON dan data URL-encoded.
Buat Rute:
GET /user/profile
: Rute ini mengambil profil pengguna GitHub yang diautentikasi menggunakan pustakaaxios
. Data profil dikembalikan sebagai respons JSON.GET /user/repos
: Rute ini mengambil repositori publik dari pengguna GitHub yang ditentukan. Nama pengguna diberikan sebagai parameter kueri (mis.,/user/repos?username=irorochad
). Jika tidak ada nama pengguna yang ditentukan, defaultnya adalah'irorochad'
.
Penanganan Kesalahan:
- Jika terjadi kesalahan selama permintaan API, server merespons dengan kode status 500 dan objek JSON yang berisi detail kesalahan.
Mulai Server:
- Server mendengarkan pada port yang ditentukan (default ke 3000 jika tidak diatur di lingkungan) dan mencatat pesan saat dimulai.
3. Perbarui File .env
Anda
Pastikan file .env
Anda berisi yang berikut:
GITHUB_TOKEN=your_personal_access_token_here
PORT=3000
Ganti your_personal_access_token_here
dengan token akses pribadi GitHub Anda yang sebenarnya.
4. Menjalankan Aplikasi Anda
Untuk menjalankan aplikasi Express Anda, gunakan perintah berikut:
node index.js
Server Anda sekarang seharusnya berjalan di http://localhost:3000
, dan sekarang saatnya untuk menguji titik akhir kita!!!
- Ambil Profil Pengguna: Kunjungi
http://localhost:3000/user/profile
untuk mendapatkan profil pengguna yang diautentikasi. - Ambil Repositori Pengguna: Kunjungi
http://localhost:3000/user/repos?username=<GitHubUsername>
(ganti<GitHubUsername>
dengan nama pengguna GitHub yang diinginkan) untuk mendapatkan repositori pengguna.
Menguji Titik Akhir Kita Menggunakan Apidog

Apidog meningkatkan keamanan API dengan menawarkan dokumentasi yang kuat, pengujian otomatis, dan pemantauan waktu nyata. Apidog juga membantu dalam kepatuhan terhadap standar industri seperti GDPR dan HIPAA, memastikan API Anda melindungi data pengguna secara efektif.
Selain itu, Apidog mendukung kolaborasi tim, mendorong lingkungan pengembangan yang berfokus pada keamanan. Dengan mengintegrasikan Apidog, Anda dapat membangun API yang aman, andal, dan sesuai, melindungi data dan pengguna Anda dari berbagai ancaman keamanan.
Setelah Anda menginstal Apidog atau versi web, Anda dapat mulai dengan membuat proyek baru
dan mengirim permintaan pertama Anda.
Menguji Titik Akhir Ambil Pengguna:
Sebelum kita dapat memanggil titik akhir ini, kita perlu memberi tahu Apidog bahwa titik akhir tersebut memerlukan token akses, dan kita perlu memberikan token akses ke Apidog untuk memungkinkannya membuat permintaan.
Kita dapat melakukannya dengan menavigasi ke bagian Auth dari halaman permintaan, dan memasukkan token di bidang yang diperlukan seperti yang ditunjukkan di bawah ini;

Seperti yang dapat Anda lihat dari tangkapan layar di atas, titik akhir ambil pengguna berfungsi dengan baik seperti yang diharapkan, dan itu karena server kita aktif dan berjalan, dan kita juga meneruskan token akses ke Apidog. Tanpa token akses, permintaan akan gagal, dan kita tidak akan dapat melihat respons tentang permintaan itu.
Menguji Titik Akhir Ambil Repo:

Sama seperti titik akhir ambil pengguna
, titik akhir ambil repo
juga memerlukan token akses untuk membuat panggilan.
Kesimpulan
Mengintegrasikan GitHub API dengan aplikasi Node.js membuka dunia kemungkinan bagi pengembang yang ingin mengotomatiskan alur kerja, menganalisis data, atau meningkatkan aplikasi mereka dengan fitur-fitur canggih GitHub. Dalam panduan ini, kita membahas proses menyiapkan server Express dan membuat rute untuk mengambil informasi profil pengguna dan repositori dari GitHub.
Dengan mengikuti langkah-langkah yang diuraikan, Anda sekarang memiliki pemahaman dasar tentang cara berinteraksi dengan GitHub API menggunakan Node.js dan Express. Anda dapat dengan mudah memperluas ini dengan menambahkan lebih banyak rute untuk menjelajahi titik akhir yang berbeda, seperti mengelola masalah, permintaan tarik, dan banyak lagi.