Jelajahi dan cari repositori — Minta asisten Anda untuk menemukan file, membaca kode, atau menganalisis riwayat komit menggunakan alat dari kumpulan alat repos.
Kelola isu dan permintaan tarik — Buat, perbarui, dan urutkan isu atau PR dengan alat dari kumpulan alat issues dan pull_requests.
Pantau alur kerja CI/CD — Periksa status proses GitHub Actions, selidiki kegagalan build, dan kelola rilis melalui kumpulan alat actions.
Tinjau peringatan keamanan kode — Periksa temuan pemindaian kode, peringatan Dependabot, dan hasil pemindaian rahasia menggunakan kumpulan alat code_security, dependabot, dan secret_protection.
Berkolaborasi dalam diskusi dan proyek — Akses diskusi tim, kelola papan proyek, dan tangani notifikasi melalui kumpulan alat discussions, projects, dan notifications.
Dokumentasi
GitHub MCP Server
GitHub MCP Server menghubungkan perangkat AI langsung ke platform GitHub. Ini memberi agen AI, asisten, dan chatbot kemampuan untuk membaca repositori dan berkas kode, mengelola isu dan PR, menganalisis kode, dan mengotomatiskan alur kerja. Semuanya melalui interaksi bahasa alami.
Kasus Penggunaan
Manajemen Repositori: Jelajahi dan kueri kode, cari berkas, analisis komit, dan pahami struktur proyek di seluruh repositori yang dapat Anda akses.
Otomatisasi Isu & PR: Buat, perbarui, dan kelola isu dan pull request. Biarkan AI membantu triase bug, meninjau perubahan kode, dan memelihara papan proyek.
Intelijen CI/CD & Alur Kerja: Pantau jalannya alur kerja GitHub Actions, analisis kegagalan build, kelola rilis, dan dapatkan wawasan tentang pipeline pengembangan Anda.
Analisis Kode: Periksa temuan keamanan, tinjau peringatan Dependabot, pahami pola kode, dan dapatkan wawasan komprehensif tentang basis kode Anda.
Kolaborasi Tim: Akses diskusi, kelola notifikasi, analisis aktivitas tim, dan sederhanakan proses untuk tim Anda.
Dibangun untuk pengembang yang ingin menghubungkan perangkat AI mereka ke konteks dan kemampuan GitHub, dari kueri bahasa alami sederhana hingga alur kerja agen multi-langkah yang kompleks.
Remote GitHub MCP Server
Remote GitHub MCP Server dihosting oleh GitHub dan menyediakan metode termudah untuk memulai. Jika host MCP Anda tidak mendukung server MCP jarak jauh, jangan khawatir! Anda dapat menggunakan versi lokal GitHub MCP Server sebagai gantinya.
Prasyarat
Host MCP yang kompatibel dengan dukungan server jarak jauh (VS Code 1.101+, Claude Desktop, Cursor, Windsurf, dll.)
Untuk instalasi cepat, gunakan salah satu tombol instal sekali klik di atas. Setelah Anda menyelesaikan alur tersebut, alihkan mode Agent (terletak di dekat input teks Copilot Chat) dan server akan mulai. Pastikan Anda menggunakan VS Code 1.101 atau yang lebih baru untuk dukungan MCP jarak jauh dan OAuth.
Atau, untuk mengonfigurasi VS Code secara manual, pilih blok JSON yang sesuai dari contoh di bawah ini dan tambahkan ke konfigurasi host Anda:
Rovo Dev CLI - Panduan instalasi untuk Rovo Dev CLI
Catatan: Setiap aplikasi host MCP perlu mengonfigurasi GitHub App atau OAuth App untuk mendukung akses jarak jauh melalui OAuth. Aplikasi host apa pun yang mendukung server MCP jarak jauh seharusnya mendukung server GitHub jarak jauh dengan autentikasi PAT. Detail konfigurasi dan tingkat dukungan bervariasi menurut host. Pastikan untuk merujuk ke dokumentasi aplikasi host untuk info lebih lanjut.
Konfigurasi
Konfigurasi toolset
Lihat Dokumentasi Server Jarak Jauh untuk detail lengkap tentang konfigurasi server jarak jauh, toolset, header, dan penggunaan lanjutan. Berkas ini menyediakan instruksi dan contoh komprehensif untuk menghubungkan, menyesuaikan, dan menginstal Remote GitHub MCP Server di VS Code dan host MCP lainnya.
Ketika tidak ada toolset yang ditentukan, toolset default digunakan.
Mode Insiders
Coba fitur baru lebih awal! Server jarak jauh menawarkan versi insiders dengan akses awal ke fitur baru dan alat eksperimental.
Catatan: Saat menggunakan OAuth dengan GitHub Enterprise dengan VS Code dan GitHub Copilot, Anda juga perlu mengonfigurasi pengaturan VS Code Anda untuk menunjuk ke instans GitHub Enterprise Anda - lihat Autentikasi dari VS Code
Untuk menjalankan server dalam kontainer, Anda harus menginstal Docker.
Setelah Docker terinstal, Anda juga perlu memastikan Docker sedang berjalan. Image Docker tersedia di ghcr.io/github/github-mcp-server. Image ini bersifat publik; jika Anda mendapatkan kesalahan saat pull, Anda mungkin memiliki token kedaluwarsa dan perlu docker logout ghcr.io.
Autentikasi. Di github.com Anda tidak perlu membuat apa pun di awal — tombol sekali klik di atas memasukkan Anda dengan OAuth pada penggunaan pertama (alur berbasis browser; token hanya disimpan di memori). Tombol Docker mempublikasikan port callback tetap (127.0.0.1:8085) sehingga callback login kontainer dapat dijangkau. Lihat Login OAuth Server Lokal untuk cara kerjanya, fallback headless/kode-perangkat, dan membawa OAuth atau GitHub App Anda sendiri (diperlukan untuk GitHub Enterprise Server dan ghe.com).
Lebih suka token? Anda masih dapat mengautentikasi dengan Token Akses Pribadi GitHub dengan mengatur GITHUB_PERSONAL_ACCESS_TOKEN sebagai gantinya (ini lebih diutamakan daripada OAuth). Server MCP dapat menggunakan banyak API GitHub, jadi aktifkan izin yang Anda rasa nyaman untuk diberikan kepada perangkat AI Anda (untuk mempelajari lebih lanjut tentang token akses, silakan lihat dokumentasi).
Menangani PAT dengan Aman
Variabel Lingkungan (Direkomendasikan)
Untuk menjaga PAT GitHub Anda tetap aman dan dapat digunakan kembali di berbagai host MCP:
Simpan PAT Anda di variabel lingkungan
export GITHUB_PAT=your_token_here
Atau buat berkas .env:
GITHUB_PAT=your_token_here
Lindungi berkas .env Anda
# Add to .gitignore to prevent accidental commits
echo ".env" >> .gitignore
Referensikan token dalam konfigurasi
# CLI usage
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# In config files (where supported)
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT"
}
Catatan: Dukungan variabel lingkungan bervariasi menurut aplikasi host dan IDE. Beberapa aplikasi (seperti Windsurf) memerlukan token hardcode dalam berkas konfigurasi.
Praktik Terbaik Keamanan Token
Cakupan minimum: Hanya berikan izin yang diperlukan
repo - Operasi repositori
read:packages - Akses image Docker
read:org - Akses tim organisasi
Token terpisah: Gunakan PAT yang berbeda untuk proyek/lingkungan yang berbeda
Rotasi rutin: Perbarui token secara berkala
Jangan pernah commit: Jauhkan token dari kontrol versi
Izin berkas: Batasi akses ke berkas konfigurasi yang berisi token
chmod 600 ~/.your-app/config.json
GitHub Enterprise Server dan Enterprise Cloud dengan residensi data (ghe.com)
Flag --gh-host dan variabel lingkungan GITHUB_HOST dapat digunakan untuk mengatur
nama host untuk GitHub Enterprise Server atau GitHub Enterprise Cloud dengan residensi data.
Untuk GitHub Enterprise Server, awali nama host dengan skema URI https://, karena jika tidak, defaultnya adalah http://, yang tidak didukung oleh GitHub Enterprise Server.
Untuk GitHub Enterprise Cloud dengan residensi data, gunakan https://YOURSUBDOMAIN.ghe.com sebagai nama host.
Untuk instalasi cepat, gunakan salah satu tombol instal sekali klik di atas. Setelah Anda menyelesaikan alur tersebut, alihkan mode Agent (terletak di dekat input teks Copilot Chat) dan server akan mulai.
Instal di GitHub Copilot pada IDE lain (JetBrains, Visual Studio, Eclipse, dll.)
Tambahkan salah satu blok JSON berikut ke pengaturan MCP IDE Anda.
Login dengan OAuth (tidak perlu membuat atau menyimpan token). Di github.com, image resmi sudah menyertakan kredensial aplikasi, jadi Anda tidak perlu menyediakannya sendiri: ini menjalankan login berbasis browser pada penggunaan pertama dan menyimpan token yang dihasilkan hanya di memori. Di Docker, ini memerlukan port callback tetap yang dipublikasikan ke loopback agar callback login kontainer dapat dijangkau:
Lihat Login OAuth Server Lokal untuk alur biner asli (tidak perlu port tetap), fallback headless/kode-perangkat, GitHub Enterprise Server / ghe.com, dan membawa OAuth atau GitHub App Anda sendiri.
Atau autentikasi dengan Token Akses Pribadi. Atur GITHUB_PERSONAL_ACCESS_TOKEN sebagai gantinya (ini lebih diutamakan daripada OAuth):
Secara opsional, Anda dapat menambahkan contoh serupa (yaitu tanpa kunci mcp) ke berkas bernama .vscode/mcp.json di ruang kerja Anda. Ini akan memungkinkan Anda untuk berbagi konfigurasi dengan aplikasi host lain yang menerima format yang sama.
Catatan: Aplikasi host apa pun yang mendukung server MCP lokal seharusnya dapat mengakses server MCP GitHub lokal. Namun, proses konfigurasi spesifik, sintaks, dan stabilitas integrasi akan bervariasi menurut aplikasi host. Meskipun banyak yang mungkin mengikuti format serupa dengan contoh di atas, ini tidak dijamin. Silakan merujuk ke dokumentasi aplikasi host Anda untuk sintaks konfigurasi MCP dan proses pengaturan yang benar.
Build dari sumber
Jika Anda tidak memiliki Docker, Anda dapat menggunakan go build untuk membangun biner di direktori cmd/github-mcp-server, dan gunakan perintah github-mcp-server stdio dengan variabel lingkungan GITHUB_PERSONAL_ACCESS_TOKEN diatur ke token Anda. Untuk menentukan lokasi keluaran build, gunakan flag -o. Anda harus mengonfigurasi server Anda untuk menggunakan executable yang telah dibangun sebagai command-nya. Contoh:
Biner github-mcp-server menyertakan beberapa subperintah CLI yang berguna untuk debugging dan menjelajahi server.
github-mcp-server tool-search "<query>" mencari alat berdasarkan nama, deskripsi, dan nama parameter input. Gunakan --max-results untuk mengembalikan lebih banyak kecocokan.
Contoh (output warna memerlukan TTY; gunakan docker run -t (atau -it) saat berjalan di Docker):
GitHub MCP Server mendukung pengaktifan atau penonaktifan grup fungsionalitas tertentu melalui flag --toolsets. Ini memungkinkan Anda mengontrol kemampuan API GitHub mana yang tersedia untuk alat AI Anda. Hanya mengaktifkan set alat yang Anda butuhkan dapat membantu LLM dalam pemilihan alat dan mengurangi ukuran konteks.
Set alat tidak terbatas pada Alat. Resource dan Prompt MCP yang relevan juga disertakan jika berlaku.
Ketika tidak ada set alat yang ditentukan, set alat default digunakan.
Mencari contoh? Lihat Panduan Konfigurasi Server untuk resep umum seperti pengaturan minimal, mode hanya-baca, dan menggabungkan alat dengan set alat.
Menentukan Set Alat
Untuk menentukan set alat yang ingin Anda sediakan untuk LLM, Anda dapat memberikan daftar izin dengan dua cara:
Variabel lingkungan GITHUB_TOOLSETS lebih diutamakan daripada argumen baris perintah jika keduanya disediakan.
Menentukan Alat Individual
Anda juga dapat mengonfigurasi alat tertentu menggunakan flag --tools. Alat dapat digunakan secara independen atau dikombinasikan dengan set alat untuk kontrol yang lebih terperinci.
Ini mendaftarkan semua alat dari set alat repos dan issues, ditambah get_gist.
Catatan Penting:
Alat dan set alat dapat digunakan bersama
Mode hanya-baca lebih diutamakan: alat tulis dilewati jika --read-only diatur, bahkan jika diminta secara eksplisit melalui --tools
Nama alat harus cocok persis (mis., get_file_contents, bukan getFileContents). Nama alat yang tidak valid akan menyebabkan server gagal saat startup dengan pesan kesalahan
Ketika alat diganti namanya, nama lama dipertahankan sebagai alias untuk kompatibilitas mundur. Lihat Penggantian Nama Alat untuk detailnya.
Menggunakan Set Alat Dengan Docker
Saat menggunakan Docker, Anda dapat meneruskan set alat sebagai variabel lingkungan:
Sangat direkomendasikan: Alat yang menyediakan konteks tentang pengguna saat ini dan konteks GitHub tempat Anda beroperasi
actions
Alur kerja GitHub Actions dan operasi CI/CD
code_quality
Alat terkait Kualitas Kode GitHub
code_security
Alat terkait keamanan kode, seperti Pemindaian Kode GitHub
copilot
Alat terkait Copilot
dependabot
Alat Dependabot
discussions
Alat terkait Diskusi GitHub
gists
Alat terkait GitHub Gist
git
Alat terkait GitHub Git API untuk operasi Git tingkat rendah
issues
Alat terkait GitHub Issues
labels
Alat terkait Label GitHub
notifications
Alat terkait Notifikasi GitHub
orgs
Alat terkait Organisasi GitHub
projects
Alat terkait Proyek GitHub
pull_requests
Alat terkait Pull Request GitHub
repos
Alat terkait Repositori GitHub
secret_protection
Alat terkait perlindungan rahasia, seperti Pemindaian Rahasia GitHub
security_advisories
Alat terkait advisori keamanan
stargazers
Alat terkait Stargazers GitHub
users
Alat terkait Pengguna GitHub
Set Alat Tambahan di GitHub MCP Server Jarak Jauh
Set Alat
Deskripsi
copilot
Alat terkait Copilot (mis. Agen Pengkodean Copilot)
copilot_spaces
Alat terkait Copilot Spaces
github_support_docs_search
Cari dokumen untuk menjawab pertanyaan produk dan dukungan GitHub
Alat
Actions
actions_get - Dapatkan detail sumber daya GitHub Actions (alur kerja, eksekusi alur kerja, pekerjaan, dan artefak)
Cakupan OAuth yang Diperlukan: repo
method: Metode yang akan dieksekusi (string, diperlukan)
owner: Pemilik repositori (string, diperlukan)
repo: Nama repositori (string, diperlukan)
resource_id: Pengidentifikasi unik sumber daya. Ini akan bervariasi berdasarkan "metode" yang diberikan, jadi pastikan Anda memberikan ID yang benar:
Berikan ID alur kerja atau nama file alur kerja (mis. ci.yaml) untuk metode 'get_workflow'.
Berikan ID eksekusi alur kerja untuk metode 'get_workflow_run', 'get_workflow_run_usage', dan 'get_workflow_run_logs_url'.
Berikan ID artefak untuk metode 'download_workflow_run_artifact'.
Berikan ID pekerjaan untuk metode 'get_workflow_job'.
(string, diperlukan)
actions_list - Daftar alur kerja GitHub Actions di repositori
Cakupan OAuth yang Diperlukan: repo
method: Tindakan yang akan dilakukan (string, diperlukan)
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (default: 1) (number, opsional)
per_page: Hasil per halaman untuk paginasi (default: 30, maks: 100) (number, opsional)
repo: Nama repositori (string, diperlukan)
resource_id: Pengidentifikasi unik sumber daya. Ini akan bervariasi berdasarkan "metode" yang diberikan, jadi pastikan Anda memberikan ID yang benar:
Jangan berikan ID sumber daya apa pun untuk metode 'list_workflows'.
Berikan ID alur kerja atau nama file alur kerja (mis. ci.yaml) untuk metode 'list_workflow_runs', atau kosongkan untuk mendaftar semua eksekusi alur kerja di repositori.
Berikan ID eksekusi alur kerja untuk metode 'list_workflow_jobs' dan 'list_workflow_run_artifacts'.
(string, opsional)
workflow_jobs_filter: Filter untuk pekerjaan alur kerja. HANYA digunakan saat metode adalah 'list_workflow_jobs' (object, opsional)
workflow_runs_filter: Filter untuk eksekusi alur kerja. HANYA digunakan saat metode adalah 'list_workflow_runs' (object, opsional)
actions_run_trigger - Picu tindakan alur kerja GitHub Actions
Cakupan OAuth yang Diperlukan: repo
inputs: Input yang diterima alur kerja. Hanya digunakan untuk metode 'run_workflow'. (object, opsional)
method: Metode yang akan dieksekusi (string, diperlukan)
owner: Pemilik repositori (string, diperlukan)
ref: Referensi git untuk alur kerja. Referensi dapat berupa nama cabang atau tag. Diperlukan untuk metode 'run_workflow'. (string, opsional)
repo: Nama repositori (string, diperlukan)
run_id: ID eksekusi alur kerja. Diperlukan untuk semua metode kecuali 'run_workflow'. (number, opsional)
workflow_id: ID alur kerja (numerik) atau nama file alur kerja (mis., main.yml, ci.yaml). Diperlukan untuk metode 'run_workflow'. (string, opsional)
get_job_logs - Dapatkan log pekerjaan alur kerja GitHub Actions
Cakupan OAuth yang Diperlukan: repo
failed_only: Jika true, dapatkan log untuk semua pekerjaan yang gagal dalam eksekusi alur kerja yang ditentukan oleh run_id. Memerlukan run_id untuk disediakan. (boolean, opsional)
job_id: Pengidentifikasi unik pekerjaan alur kerja. Diperlukan saat mendapatkan log untuk satu pekerjaan. (number, opsional)
run_id: Pengidentifikasi unik eksekusi alur kerja. Diperlukan saat failed_only adalah true untuk mendapatkan log untuk semua pekerjaan yang gagal dalam eksekusi. (number, opsional)
tail_lines: Jumlah baris yang akan dikembalikan dari akhir log (number, opsional)
Kualitas Kode
- **get_code_quality_finding** - Dapatkan temuan kualitas kode
- **Cakupan OAuth yang Diperlukan**: `repo`
- `findingNumber`: Nomor temuan. (angka, wajib)
- `owner`: Pemilik repositori. (string, wajib)
- `repo`: Nama repositori. (string, wajib)
Keamanan Kode
get_code_scanning_alert - Dapatkan peringatan pemindaian kode
Cakupan OAuth yang Diperlukan: security_events
Cakupan OAuth yang Diterima: repo, security_events
alertNumber: Nomor peringatan. (angka, wajib)
owner: Pemilik repositori. (string, wajib)
repo: Nama repositori. (string, wajib)
list_code_scanning_alerts - Daftar peringatan pemindaian kode
Cakupan OAuth yang Diperlukan: security_events
Cakupan OAuth yang Diterima: repo, security_events
owner: Pemilik repositori. (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
ref: Referensi Git untuk hasil yang ingin Anda daftarkan. (string, opsional)
repo: Nama repositori. (string, wajib)
severity: Filter peringatan pemindaian kode berdasarkan tingkat keparahan (string, opsional)
state: Filter peringatan pemindaian kode berdasarkan status. Default ke terbuka (string, opsional)
tool_name: Nama alat yang digunakan untuk pemindaian kode. (string, opsional)
Konteks
get_me - Dapatkan profil pengguna saya
Tidak ada parameter yang diperlukan
get_team_members - Dapatkan anggota tim
Cakupan OAuth yang Diperlukan: read:org
Cakupan OAuth yang Diterima: admin:org, read:org, write:org
org: Login organisasi (pemilik) yang berisi tim. (string, wajib)
team_slug: Slug tim (string, wajib)
get_teams - Dapatkan tim
Cakupan OAuth yang Diperlukan: read:org
Cakupan OAuth yang Diterima: admin:org, read:org, write:org
user: Nama pengguna untuk mendapatkan tim. Jika tidak disediakan, menggunakan pengguna yang terautentikasi. (string, opsional)
Copilot
assign_copilot_to_issue - Tetapkan Copilot ke isu
Cakupan OAuth yang Diperlukan: repo
base_ref: Referensi Git (mis., cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, default ke cabang default repositori (string, opsional)
custom_instructions: Instruksi kustom opsional untuk memandu agen di luar isi isu. Gunakan ini untuk memberikan konteks, batasan, atau panduan tambahan yang tidak tercakup dalam deskripsi isu (string, opsional)
body: Konten komentar (wajib untuk metode 'add', 'reply', dan 'update') (string, opsional)
commentNodeID: ID Node dari komentar diskusi (wajib untuk metode 'reply', 'update', 'delete', 'mark_answer', dan 'unmark_answer'). Untuk 'reply', ini adalah komentar tingkat atas yang akan dibalas; Diskusi GitHub hanya mendukung satu tingkat penyarangan. (string, opsional)
discussionNumber: Nomor diskusi (wajib untuk metode 'add' dan 'reply') (angka, opsional)
method: Operasi tulis yang akan dilakukan pada komentar diskusi.
Pilihannya adalah:
'add' - menambahkan komentar tingkat atas baru ke diskusi.
'reply' - membalas komentar diskusi tingkat atas (Diskusi GitHub hanya mendukung satu tingkat penyarangan).
'update' - memperbarui komentar diskusi yang ada.
'delete' - menghapus komentar diskusi.
'mark_answer' - menandai komentar diskusi sebagai jawaban (hanya T&J).
after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
discussionNumber: Nomor Diskusi (angka, wajib)
includeReplies: Jika true, setiap komentar tingkat atas akan menyertakan balasannya yang tersarang di dalamnya (hingga 100 balasan per komentar, yang merupakan maksimum API GitHub). Default ke false. (boolean, opsional)
owner: Pemilik repositori (string, wajib)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
repo: Nama repositori (string, wajib)
list_discussion_categories - Daftar kategori diskusi
Cakupan OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori. Jika tidak disediakan, kategori diskusi akan dikueri di tingkat organisasi. (string, opsional)
list_discussions - Daftar diskusi
Cakupan OAuth yang Diperlukan: repo
after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
category: Filter opsional berdasarkan ID kategori diskusi. Jika disediakan, hanya diskusi dengan kategori ini yang dicantumkan. (string, opsional)
direction: Arah urutan. (string, opsional)
orderBy: Urutkan diskusi berdasarkan bidang. Jika disediakan, 'direction' juga perlu disediakan. (string, opsional)
owner: Pemilik repositori (string, wajib)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
repo: Nama repositori. Jika tidak disediakan, diskusi akan dikueri di tingkat organisasi. (string, opsional)
Gists
create_gist - Buat Gist
Cakupan OAuth yang Diperlukan: gist
content: Konten untuk pembuatan gist file tunggal sederhana (string, wajib)
description: Deskripsi gist (string, opsional)
filename: Nama file untuk pembuatan gist file tunggal sederhana (string, wajib)
public: Apakah gist bersifat publik (boolean, opsional)
get_gist - Dapatkan Konten Gist
gist_id: ID gist (string, wajib)
list_gists - Daftar Gists
page: Nomor halaman untuk paginasi (min 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
since: Hanya gist yang diperbarui setelah waktu ini (stempel waktu ISO 8601) (string, opsional)
username: Nama pengguna GitHub (hilangkan untuk gist pengguna yang terautentikasi) (string, opsional)
update_gist - Perbarui Gist
Cakupan OAuth yang Diperlukan: gist
content: Konten untuk file (string, wajib)
description: Deskripsi gist yang diperbarui (string, opsional)
filename: Nama file untuk diperbarui atau dibuat (string, wajib)
gist_id: ID gist yang akan diperbarui (string, wajib)
Git
get_repository_tree - Dapatkan pohon repositori
Cakupan OAuth yang Diperlukan: repo
owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
path_filter: Awalan jalur opsional untuk memfilter hasil pohon (mis., 'src/' untuk hanya menampilkan file di direktori src) (string, opsional)
recursive: Mengatur parameter ini ke true mengembalikan objek atau subpohon yang direferensikan oleh pohon. Default adalah false (boolean, opsional)
repo: Nama repositori (string, wajib)
tree_sha: Nilai SHA1 atau nama ref (cabang atau tag) dari pohon. Default ke cabang default repositori (string, opsional)
Isu
add_issue_comment - Tambahkan komentar ke isu atau pull request
comment_id: ID numerik dari komentar isu atau pull request untuk diberi reaksi. Gunakan ini untuk reaksi ke komentar; hilangkan untuk bereaksi ke isu atau pull request itu sendiri. Tidak dapat digabungkan dengan body. (angka, opsional)
issue_number: Nomor isu atau pull request untuk dikomentari atau diberi reaksi. (angka, wajib)
owner: Pemilik repositori (string, wajib)
reaction: Reaksi emoji untuk ditambahkan. Wajib kecuali body disediakan. (string, opsional)
repo: Nama repositori (string, wajib)
get_label - Dapatkan label tertentu dari repositori
Cakupan OAuth yang Diperlukan: repo
name: Nama label. (string, wajib)
owner: Pemilik repositori (nama pengguna atau nama organisasi) (string, wajib)
repo: Nama repositori (string, wajib)
issue_read - Dapatkan detail isu
Cakupan OAuth yang Diperlukan: repo
issue_number: Nomor isu (angka, wajib)
method: Operasi baca yang akan dilakukan pada satu isu.
Pilihannya adalah:
get - Dapatkan detail isu. Juga mengembalikan flag hierarki upaya terbaik (has_parent, has_children); parent dan sub_issues_summary adalah ringkasan hubungan opsional.
get_comments - Dapatkan komentar isu.
get_sub_issues - Dapatkan sub-isu (anak) dari isu.
get_parent - Dapatkan isu induk, jika isu ini merupakan sub-isu dari isu lain.
get_labels - Dapatkan label yang ditetapkan ke isu.
(string, wajib)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
repo: Nama repositori (string, wajib)
issue_write - Buat atau perbarui isu/pull request
Cakupan OAuth yang Diperlukan: repo
assignees: Nama pengguna yang akan ditugaskan ke isu ini (string[], opsional)
body: Konten isi isu (string, opsional)
duplicate_of: Nomor isu yang merupakan duplikat dari isu ini. Hanya digunakan jika state_reason adalah 'duplicate'. (angka, opsional)
issue_fields: Nilai bidang isu yang akan diatur atau dihapus. Setiap item memerlukan 'field_name' dan tepat salah satu dari 'value', 'field_option_name', atau 'delete: true'. (object[], opsional)
issue_number: Nomor isu yang akan diperbarui (angka, opsional)
labels: Label yang akan diterapkan ke isu ini (string[], opsional)
method: Operasi tulis yang akan dilakukan pada satu isu.
Pilihannya adalah:
'create' - membuat isu baru.
'update' - memperbarui isu yang sudah ada.
(string, wajib)
milestone: Nomor milestone (angka, opsional)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
state: Status baru (string, opsional)
state_reason: Alasan perubahan status. Diabaikan kecuali status diubah. (string, opsional)
title: Judul isu (string, opsional)
type: Tipe isu ini. Hanya gunakan jika tipe isu diaktifkan untuk repositori ini. Gunakan alat list_issue_types untuk mendapatkan nilai tipe yang valid untuk repositori ini atau organisasi pemiliknya. Jika repositori tidak mendukung tipe isu, abaikan parameter ini. (string, opsional)
list_issue_fields - Daftar bidang isu
Cakupan OAuth yang Diperlukan (salah satu dari): repo, read:org
Cakupan OAuth yang Diterima: admin:org, read:org, repo, write:org
owner: Pemilik akun repositori atau organisasi. Nama tidak peka huruf besar/kecil. (string, wajib)
repo: Nama repositori. Jika disediakan, mengembalikan bidang untuk repositori spesifik ini (diwarisi dari organisasinya). Jika dihilangkan, mengembalikan bidang tingkat organisasi secara langsung. (string, opsional)
list_issue_types - Daftar tipe isu yang tersedia
Cakupan OAuth yang Diperlukan (salah satu dari): repo, read:org
Cakupan OAuth yang Diterima: admin:org, read:org, repo, write:org
owner: Pemilik akun repositori atau organisasi. (string, wajib)
repo: Nama repositori. Jika disediakan, mengembalikan tipe isu untuk repositori spesifik ini. Jika dihilangkan, mengembalikan tipe isu tingkat organisasi secara langsung. (string, opsional)
list_issues - Daftar isu
Cakupan OAuth yang Diperlukan: repo
after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
direction: Arah urutan. Jika disediakan, 'orderBy' juga perlu disediakan. (string, opsional)
field_filters: Filter berdasarkan nilai bidang isu kustom. Setiap entri mengambil field_name dan value; server mencari bidang dan memaksa nilainya ke tipenya (nama opsi pilihan tunggal, teks, angka, atau tanggal YYYY-MM-DD). (object[], opsional)
labels: Filter berdasarkan label (string[], opsional)
orderBy: Urutkan isu berdasarkan bidang. Jika disediakan, 'direction' juga perlu disediakan. (string, opsional)
owner: Pemilik repositori (string, wajib)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
repo: Nama repositori (string, wajib)
since: Filter berdasarkan tanggal (stempel waktu ISO 8601) (string, opsional)
state: Filter berdasarkan status, secara default isu terbuka dan tertutup dikembalikan jika tidak disediakan (string, opsional)
search_issues - Cari isu
Cakupan OAuth yang Diperlukan: repo
order: Urutan pengurutan (string, opsional)
owner: Pemilik repositori opsional. Jika disediakan dengan repo, hanya isu untuk repositori ini yang dicantumkan. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
query: Kueri pencarian menggunakan sintaks pencarian isu GitHub (string, wajib)
repo: Nama repositori opsional. Jika disediakan dengan pemilik, hanya isu untuk repositori ini yang dicantumkan. (string, opsional)
sort: Urutkan bidang berdasarkan jumlah kecocokan kategori, default ke kecocokan terbaik (string, opsional)
sub_issue_write - Ubah sub-isu
Cakupan OAuth yang Diperlukan: repo
after_id: ID sub-isu yang akan diprioritaskan setelahnya (baik after_id ATAU before_id harus ditentukan) (angka, opsional)
before_id: ID sub-isu yang akan diprioritaskan sebelumnya (baik after_id ATAU before_id harus ditentukan) (angka, opsional)
issue_number: Nomor isu induk (angka, wajib)
method: Tindakan yang akan dilakukan pada satu sub-isu
Pilihannya adalah:
'add' - tambahkan sub-isu ke isu induk di repositori GitHub.
'remove' - hapus sub-isu dari isu induk di repositori GitHub.
'reprioritize' - ubah urutan sub-isu dalam isu induk di repositori GitHub. Gunakan 'after_id' atau 'before_id' untuk menentukan posisi baru.
Menulis hierarki isu. Untuk memindahkan sub-isu ke induk baru, gunakan add dengan replace_parent=true; tidak ada bidang induk yang dapat ditulis.
(string, wajib)
owner: Pemilik repositori (string, wajib)
replace_parent: Jika true, mengganti isu induk sub-isu saat ini. Hanya gunakan dengan metode 'add'. (boolean, opsional)
repo: Nama repositori (string, wajib)
sub_issue_id: ID sub-isu yang akan ditambahkan. ID tidak sama dengan nomor isu (angka, wajib)
Label
get_label - Dapatkan label tertentu dari repositori
Cakupan OAuth yang Diperlukan: repo
name: Nama label. (string, wajib)
owner: Pemilik repositori (nama pengguna atau nama organisasi) (string, wajib)
repo: Nama repositori (string, wajib)
label_write - Operasi tulis pada label repositori
Cakupan OAuth yang Diperlukan: repo
color: Warna label sebagai kode hex 6 karakter tanpa awalan '#' (mis., 'f29513'). Wajib untuk 'create', opsional untuk 'update'. (string, opsional)
description: Teks deskripsi label. Opsional untuk 'create' dan 'update'. (string, opsional)
method: Operasi yang akan dilakukan: 'create', 'update', atau 'delete' (string, wajib)
name: Nama label - wajib untuk semua operasi (string, wajib)
new_name: Nama baru untuk label (hanya digunakan dengan metode 'update' untuk mengganti nama) (string, opsional)
owner: Pemilik repositori (nama pengguna atau nama organisasi) (string, wajib)
repo: Nama repositori (string, wajib)
list_label - Daftar label dari repositori
Cakupan OAuth yang Diperlukan: repo
owner: Pemilik repositori (nama pengguna atau nama organisasi) - wajib untuk semua operasi (string, wajib)
repo: Nama repositori - wajib untuk semua operasi (string, wajib)
Notifikasi
dismiss_notification - Abaikan notifikasi
Cakupan OAuth yang Diperlukan: notifications
state: Status baru notifikasi (read/done) (string, wajib)
before: Hanya tampilkan notifikasi yang diperbarui sebelum waktu yang diberikan (format ISO 8601) (string, opsional)
filter: Filter notifikasi ke, gunakan default kecuali ditentukan. Notifikasi yang sudah dibaca adalah yang telah diakui oleh pengguna. Notifikasi partisipasi adalah yang melibatkan pengguna secara langsung, seperti isu atau pull request yang mereka komentari atau buat. (string, opsional)
owner: Pemilik repositori opsional. Jika disediakan dengan repo, hanya notifikasi untuk repositori ini yang dicantumkan. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
repo: Nama repositori opsional. Jika disediakan dengan pemilik, hanya notifikasi untuk repositori ini yang dicantumkan. (string, opsional)
since: Hanya tampilkan notifikasi yang diperbarui setelah waktu yang diberikan (format ISO 8601) (string, opsional)
action: Tindakan yang akan dilakukan: ignore, watch, atau delete langganan notifikasi repositori. (string, wajib)
owner: Pemilik akun repositori. (string, wajib)
repo: Nama repositori. (string, wajib)
mark_all_notifications_read - Tandai semua notifikasi sebagai telah dibaca
Cakupan OAuth yang Diperlukan: notifications
lastReadAt: Menjelaskan titik terakhir notifikasi diperiksa (opsional). Default: Sekarang (string, opsional)
owner: Pemilik repositori opsional. Jika disediakan dengan repo, hanya notifikasi untuk repositori ini yang ditandai sebagai telah dibaca. (string, opsional)
repo: Nama repositori opsional. Jika disediakan dengan pemilik, hanya notifikasi untuk repositori ini yang ditandai sebagai telah dibaca. (string, opsional)
Organisasi
search_orgs - Cari organisasi
Cakupan OAuth yang Diperlukan: read:org
Cakupan OAuth yang Diterima: admin:org, read:org, write:org
order: Urutan pengurutan (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
query: Kueri pencarian organisasi. Contoh: 'microsoft', 'location:california', 'created:>=2025-01-01'. Pencarian secara otomatis dibatasi ke type:org. (string, diperlukan)
sort: Urutkan bidang berdasarkan kategori (string, opsional)
Proyek
projects_get - Dapatkan detail sumber daya GitHub Projects
Cakupan OAuth yang Diperlukan: read:project
Cakupan OAuth yang Diterima: project, read:project
field_id: ID bidang. Diperlukan untuk metode 'get_project_field'. (number, opsional)
field_names: Daftar spesifik nama bidang untuk disertakan dalam respons saat mendapatkan item proyek (mis. ["Status", "Priority"]). Diselesaikan di sisi server menjadi ID bidang — gunakan ini alih-alih 'fields' jika Anda hanya mengetahui nama yang dapat dibaca manusia. Saling eksklusif dengan 'fields' — berikan salah satu, jangan keduanya. Hanya digunakan untuk metode 'get_project_item'. (string[], opsional)
fields: Daftar spesifik ID bidang untuk disertakan dalam respons saat mendapatkan item proyek (mis. ["102589", "985201", "169875"]). Jika 'fields' maupun 'field_names' tidak disediakan, hanya bidang judul yang disertakan. Saling eksklusif dengan 'field_names' — berikan salah satu, jangan keduanya. Hanya digunakan untuk metode 'get_project_item'. (string[], opsional)
item_id: ID item. Diperlukan untuk metode 'get_project_item'. (number, opsional)
method: Metode yang akan dieksekusi (string, diperlukan)
owner: Pemilik (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, opsional)
owner_type: Tipe pemilik (pengguna atau org). Jika tidak disediakan, akan terdeteksi secara otomatis. (string, opsional)
project_number: Nomor proyek. (number, opsional)
status_update_id: ID node dari pembaruan status proyek. Diperlukan untuk metode 'get_project_status_update'. (string, opsional)
projects_list - Daftar sumber daya GitHub Projects
Cakupan OAuth yang Diperlukan: read:project
Cakupan OAuth yang Diterima: project, read:project
after: Kursor paginasi maju dari pageInfo.nextCursor sebelumnya. (string, opsional)
before: Kursor paginasi mundur dari pageInfo.prevCursor sebelumnya (jarang). (string, opsional)
field_names: Nama bidang untuk disertakan saat mendaftar item proyek (mis. ["Status", "Priority"]). Diselesaikan di sisi server menjadi ID bidang — gunakan ini alih-alih 'fields' jika Anda hanya mengetahui nama yang dapat dibaca manusia. Nama yang gagal diselesaikan akan mengembalikan kesalahan terstruktur. Saling eksklusif dengan 'fields' — berikan salah satu, jangan keduanya. Hanya digunakan untuk metode 'list_project_items'. (string[], opsional)
fields: ID bidang untuk disertakan saat mendaftar item proyek (mis. ["102589", "985201"]). PENTING: Selalu berikan untuk mendapatkan nilai bidang. Tanpa ini (dan tanpa 'field_names'), hanya judul yang dikembalikan. Saling eksklusif dengan 'field_names' — berikan salah satu, jangan keduanya. Hanya digunakan untuk metode 'list_project_items'. (string[], opsional)
method: Tindakan yang akan dilakukan (string, diperlukan)
owner: Pemilik (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, diperlukan)
owner_type: Tipe pemilik (pengguna atau org). Jika tidak disediakan, akan otomatis mencoba keduanya. (string, opsional)
per_page: Hasil per halaman (maks 50) (number, opsional)
project_number: Nomor proyek. Diperlukan untuk metode 'list_project_fields', 'list_project_items', dan 'list_project_status_updates'. (number, opsional)
query: String filter/kueri. Untuk list_projects: filter berdasarkan teks judul dan status (mis. "roadmap is:open"). Untuk list_project_items: pemfilteran lanjutan menggunakan sintaks pemfilteran proyek GitHub. (string, opsional)
projects_write - Kelola GitHub Projects
Cakupan OAuth yang Diperlukan: project
body: Isi pembaruan status (markdown). Digunakan untuk metode 'create_project_status_update'. (string, opsional)
field_name: Nama bidang iterasi (mis. 'Sprint'). Diperlukan untuk metode 'create_iteration_field'. (string, opsional)
issue_number: Nomor isu. Diperlukan untuk 'add_project_item' saat item_type adalah 'issue'. Juga diterima oleh 'update_project_item' untuk menyelesaikan item berdasarkan nomor isu (gabungkan dengan item_owner dan item_repo). (number, opsional)
item_id: ID item proyek. Diperlukan untuk 'delete_project_item'. Untuk 'update_project_item', berikan salah satu item_id, atau (item_owner + item_repo + issue_number) untuk menyelesaikan item berdasarkan isu. (number, opsional)
item_owner: Pemilik (pengguna atau organisasi) repositori yang berisi isu atau pull request. Diperlukan untuk metode 'add_project_item'. Juga diterima oleh 'update_project_item' saat menyelesaikan item berdasarkan nomor isu. (string, opsional)
item_repo: Nama repositori yang berisi isu atau pull request. Diperlukan untuk metode 'add_project_item'. Juga diterima oleh 'update_project_item' saat menyelesaikan item berdasarkan nomor isu. (string, opsional)
item_type: Tipe item, baik issue atau pull_request. Diperlukan untuk metode 'add_project_item'. (string, opsional)
iteration_duration: Durasi dalam hari untuk iterasi bidang (mis. 7 untuk mingguan, 14 untuk dua mingguan). Diperlukan untuk metode 'create_iteration_field'. (number, opsional)
iterations: Iterasi kustom untuk metode 'create_iteration_field'. Hanya atur ini jika Anda memerlukan iterasi dengan durasi yang bervariasi, jeda di antaranya, atau judul spesifik. Jika tidak, abaikan: GitHub secara otomatis membuat tiga iterasi selama 'iteration_duration' hari dimulai pada 'start_date', yang merupakan pilihan tepat untuk sebagian besar kasus. (object[], opsional)
method: Metode yang akan dieksekusi (string, diperlukan)
owner: Pemilik proyek (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, diperlukan)
owner_type: Tipe pemilik (pengguna atau org). Diperlukan untuk metode 'create_project'. Jika tidak disediakan untuk metode lain, akan terdeteksi secara otomatis. (string, opsional)
project_number: Nomor proyek. Diperlukan untuk semua metode kecuali 'create_project'. (number, opsional)
pull_request_number: Nomor pull request (gunakan saat item_type adalah 'pull_request' untuk metode 'add_project_item'). Berikan salah satu issue_number atau pull_request_number. (number, opsional)
start_date: Tanggal mulai dalam format YYYY-MM-DD. Digunakan untuk metode 'create_project_status_update' dan 'create_iteration_field'. (string, opsional)
status: Status proyek. Digunakan untuk metode 'create_project_status_update'. (string, opsional)
target_date: Tanggal target pembaruan status dalam format YYYY-MM-DD. Digunakan untuk metode 'create_project_status_update'. (string, opsional)
title: Judul proyek. Diperlukan untuk metode 'create_project'. (string, opsional)
updated_field: Objek yang menjelaskan bidang yang akan diperbarui dan nilai barunya. Diperlukan untuk 'update_project_item'. Dua bentuk diterima: (1) berdasarkan ID — {"id": 123456, "value": "..."}; (2) berdasarkan nama — {"name": "Status", "value": "In Progress"}. Untuk bidang pilihan tunggal, resolusi nama opsi memerlukan bentuk berdasarkan nama; pada bentuk berdasarkan ID, berikan ID opsi. Atur value ke null untuk menghapus bidang. (object, opsional)
line: Baris blob dalam diff pull request yang berlaku untuk komentar. Untuk komentar multi-baris, baris terakhir dari rentang (number, opsional)
owner: Pemilik repositori (string, diperlukan)
path: Jalur relatif ke file yang memerlukan komentar (string, diperlukan)
pullNumber: Nomor pull request (number, diperlukan)
repo: Nama repositori (string, diperlukan)
side: Sisi diff yang akan dikomentari. LEFT menunjukkan status sebelumnya, RIGHT menunjukkan status baru (string, opsional)
startLine: Untuk komentar multi-baris, baris pertama dari rentang yang berlaku untuk komentar (number, opsional)
startSide: Untuk komentar multi-baris, sisi awal diff yang berlaku untuk komentar. LEFT menunjukkan status sebelumnya, RIGHT menunjukkan status baru (string, opsional)
subjectType: Tingkat di mana komentar ditargetkan (string, diperlukan)
add_reply_to_pull_request_comment - Tambahkan balasan ke komentar pull request
commentId: ID numerik komentar tinjauan pull request yang akan dibalas atau diberi reaksi. Gunakan nomor dari anchor #discussion_r..., bukan ID node utas GraphQL (PRRT_...). (number, diperlukan)
owner: Pemilik repositori (string, diperlukan)
pullNumber: Nomor pull request. Diperlukan saat body disediakan. (number, opsional)
reaction: Reaksi emoji yang akan ditambahkan. Diperlukan kecuali body disediakan. (string, opsional)
repo: Nama repositori (string, diperlukan)
create_pull_request - Buka pull request baru
Cakupan OAuth yang Diperlukan: repo
base: Cabang tujuan penggabungan (string, diperlukan)
body: Deskripsi PR (string, opsional)
draft: Buat sebagai PR draf (boolean, opsional)
head: Cabang yang berisi perubahan (string, diperlukan)
reviewers: Nama pengguna GitHub atau slug tim ORG/tim untuk meminta tinjauan (string[], opsional)
title: Judul PR (string, diperlukan)
list_pull_requests - Daftar pull request
Cakupan OAuth yang Diperlukan: repo
base: Filter berdasarkan cabang dasar (string, opsional)
direction: Arah pengurutan (string, opsional)
head: Filter berdasarkan pengguna/org kepala dan cabang (string, opsional)
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, diperlukan)
sort: Urutkan berdasarkan (string, opsional)
state: Filter berdasarkan status (string, opsional)
merge_pull_request - Gabungkan pull request
Cakupan OAuth yang Diperlukan: repo
commit_message: Detail tambahan untuk komit penggabungan (string, opsional)
commit_title: Judul untuk komit penggabungan (string, opsional)
merge_method: Metode penggabungan (string, opsional)
owner: Pemilik repositori (string, diperlukan)
pullNumber: Nomor pull request (number, diperlukan)
repo: Nama repositori (string, diperlukan)
pull_request_read - Dapatkan detail untuk satu pull request
Ruang Lingkup OAuth yang Diperlukan: repo
after: Kursor untuk paginasi, hanya digunakan oleh metode get_review_comments. Berikan endCursor dari PageInfo halaman sebelumnya untuk mengambil halaman berikutnya. (string, opsional)
method: Tindakan untuk menentukan data pull request apa yang perlu diambil dari GitHub.
Opsi yang mungkin:
get - Dapatkan detail pull request tertentu.
get_diff - Dapatkan diff dari pull request.
get_status - Dapatkan status commit gabungan dari commit kepala di pull request.
get_files - Dapatkan daftar file yang diubah di pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_commits - Dapatkan daftar commit di pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_review_comments - Dapatkan utas review di pull request. Setiap utas berisi komentar review yang dikelompokkan secara logis yang dibuat di lokasi kode yang sama selama review pull request. Mengembalikan utas dengan metadata (isResolved, isOutdated, isCollapsed) dan komentar terkaitnya. Gunakan paginasi berbasis kursor (perPage, after) untuk mengontrol hasil.
get_reviews - Dapatkan review di pull request. Saat diminta komentar review, gunakan metode get_review_comments. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_comments - Dapatkan komentar di pull request. Gunakan ini jika pengguna tidak secara spesifik menginginkan komentar review. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_check_runs - Dapatkan check runs untuk commit kepala dari pull request. Check runs adalah pekerjaan dan pemeriksaan CI/CD individual yang berjalan di PR.
(string, diperlukan)
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
pullNumber: Nomor pull request (number, diperlukan)
repo: Nama repositori (string, diperlukan)
pull_request_review_write - Operasi tulis (buat, kirim, hapus) pada review pull request
Ruang Lingkup OAuth yang Diperlukan: repo
body: Teks komentar review (string, opsional)
commitID: SHA dari commit yang akan direview (string, opsional)
event: Tindakan review yang akan dilakukan. (string, opsional)
method: Operasi tulis yang akan dilakukan pada review pull request. (string, diperlukan)
owner: Pemilik repositori (string, diperlukan)
pullNumber: Nomor pull request (number, diperlukan)
repo: Nama repositori (string, diperlukan)
threadId: ID node dari utas review (misalnya, PRRT_kwDOxxx). Diperlukan untuk metode resolve_thread dan unresolve_thread. Dapatkan ID utas dari pull_request_read dengan metode get_review_comments. (string, opsional)
search_pull_requests - Cari pull request
Ruang Lingkup OAuth yang Diperlukan: repo
order: Urutan pengurutan (string, opsional)
owner: Pemilik repositori opsional. Jika diberikan bersama repo, hanya pull request untuk repositori ini yang dicantumkan. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
organization: Organisasi untuk membuat repositori (hilangkan untuk membuat di akun pribadi Anda) (string, opsional)
private: Apakah repositori harus bersifat privat. Default ke true (privat) jika dihilangkan. (boolean, opsional)
delete_file - Hapus file
Ruang Lingkup OAuth yang Diperlukan: repo
branch: Cabang untuk menghapus file (string, diperlukan)
message: Pesan commit (string, diperlukan)
owner: Pemilik repositori (nama pengguna atau organisasi) (string, diperlukan)
path: Jalur ke file yang akan dihapus (string, diperlukan)
repo: Nama repositori (string, diperlukan)
fork_repository - Fork repositori
Ruang Lingkup OAuth yang Diperlukan: repo
organization: Organisasi tujuan fork (string, opsional)
owner: Pemilik repositori (string, diperlukan)
repo: Nama repositori (string, diperlukan)
get_commit - Dapatkan detail commit
Ruang Lingkup OAuth yang Diperlukan: repo
detail: Tingkat detail yang disertakan untuk file yang diubah. "none" menghilangkan statistik dan file sepenuhnya. "stats" (default) menyertakan metadata per file: nama file, status, dan jumlah baris kode (penambahan, penghapusan, perubahan), tanpa konten patch. "full_patch" juga menyertakan konten diff terpadu untuk setiap file dan bisa sangat besar. (string, opsional)
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, diperlukan)
sha: SHA commit, nama cabang, atau nama tag (string, diperlukan)
get_file_contents - Dapatkan konten file atau direktori
Ruang Lingkup OAuth yang Diperlukan: repo
owner: Pemilik repositori (nama pengguna atau organisasi) (string, diperlukan)
path: Jalur ke file/direktori (string, opsional)
ref: Menerima referensi git opsional seperti refs/tags/{tag}, refs/heads/{branch} atau refs/pull/{pr_number}/head (string, opsional)
repo: Nama repositori (string, diperlukan)
sha: Menerima SHA commit opsional. Jika ditentukan, akan digunakan alih-alih ref (string, opsional)
get_latest_release - Dapatkan rilis terbaru
Ruang Lingkup OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, diperlukan)
repo: Nama repositori (string, diperlukan)
get_release_by_tag - Dapatkan rilis berdasarkan nama tag
Ruang Lingkup OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, diperlukan)
repo: Nama repositori (string, diperlukan)
tag: Nama tag (misalnya, 'v1.0.0') (string, diperlukan)
get_tag - Dapatkan detail tag
Ruang Lingkup OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, diperlukan)
repo: Nama repositori (string, diperlukan)
tag: Nama tag (string, diperlukan)
list_branches - Daftar cabang
Ruang Lingkup OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, diperlukan)
list_commits - Daftar commit
Ruang Lingkup OAuth yang Diperlukan: repo
author: Nama pengguna atau alamat email penulis untuk memfilter commit (string, opsional)
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
path: Hanya commit yang berisi jalur file ini yang akan dikembalikan (string, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, diperlukan)
sha: SHA commit, cabang, atau nama tag untuk mendaftarkan commit. Jika tidak disediakan, menggunakan cabang default repositori. Jika SHA commit disediakan, akan mendaftarkan commit hingga SHA tersebut. (string, opsional)
since: Hanya commit setelah tanggal ini yang akan dikembalikan (format ISO 8601: YYYY-MM-DDTHH:MM:SSZ atau YYYY-MM-DD) (string, opsional)
until: Hanya commit sebelum tanggal ini yang akan dikembalikan (format ISO 8601: YYYY-MM-DDTHH:MM:SSZ atau YYYY-MM-DD) (string, opsional)
list_releases - Daftar rilis
Ruang Lingkup OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, diperlukan)
list_repository_collaborators - Daftar kolaborator repositori
Ruang Lingkup OAuth yang Diperlukan: repo
affiliation: Filter berdasarkan afiliasi. Dapat berupa salah satu dari: 'outside' (kolaborator luar), 'direct' (semua dengan izin terlepas dari keanggotaan org), 'all' (semua kolaborator). Default: 'all' (string, opsional)
owner: Pemilik repositori (string, diperlukan)
page: Nomor halaman untuk paginasi (default 1, min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (default 30, min 1, maks 100) (number, opsional)
repo: Nama repositori (string, diperlukan)
list_tags - Daftar tag
Cakupan OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
push_files - Dorong file ke repositori
Cakupan OAuth yang Diperlukan: repo
branch: Cabang tujuan dorong (string, wajib)
files: Array objek file yang akan didorong, setiap objek dengan path (string) dan content (string) (object[], wajib)
message: Pesan komit (string, wajib)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
search_code - Cari kode
Cakupan OAuth yang Diperlukan: repo
order: Urutan pengurutan hasil (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
query: Kueri pencarian (REST pencarian kode GitHub). AND implisit antar istilah; mendukung OR, NOT, dan "quoted phrase" untuk pencocokan tepat. Kualifikasi: repo:owner/repo, org:, user:, language:, path:dir (pencocokan awalan), filename:exact.ext, extension:, in:file, in:path, size:, is:archived, is:fork. Maks 256 karakter. Contoh: WithContext language:go org:github; "package main" repo:o/r; func extension:go path:cmd repo:o/r; NOT TODO language:go repo:o/r. (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
query: Kueri pencarian komit (REST pencarian komit GitHub). Hanya mencari pesan komit pada cabang default. Lingkup pencarian dengan repo:owner/repo, org:, atau user: (kueri tanpa kualifikasi lingkup akan mencocokkan di seluruh GitHub dan biasanya bukan yang Anda inginkan). Kualifikasi lain: author:, committer:, author-name:, committer-name:, author-email:, committer-email:, author-date:, committer-date: (mendukung rentang >, <, >=, <=, dan YYYY-MM-DD..YYYY-MM-DD), merge:true|false, hash:, tree:, parent:, is:public. Contoh: repo:owner/repo fix panic; org:github author:defunkt committer-date:>=2024-01-01; "refactor cache" repo:o/r; hash:abc1234 repo:o/r. (string, wajib)
sort: Urutkan berdasarkan tanggal penulis atau komiter (default ke kecocokan terbaik) (string, opsional)
search_repositories - Cari repositori
Cakupan OAuth yang Diperlukan: repo
minimal_output: Kembalikan informasi repositori minimal (default: true). Jika false, mengembalikan objek repositori API GitHub lengkap. (boolean, opsional)
order: Urutan pengurutan (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
Cakupan OAuth yang Diterima: repo, security_events
alertNumber: Nomor peringatan. (number, wajib)
owner: Pemilik repositori. (string, wajib)
repo: Nama repositori. (string, wajib)
list_secret_scanning_alerts - Daftar peringatan pemindaian rahasia
Cakupan OAuth yang Diperlukan: security_events
Cakupan OAuth yang Diterima: repo, security_events
owner: Pemilik repositori. (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori. (string, wajib)
resolution: Filter berdasarkan resolusi (string, opsional)
secret_type: Daftar tipe rahasia yang dipisahkan koma untuk dikembalikan. Semua pola rahasia default dikembalikan. Untuk mengembalikan pola generik, berikan nama token di parameter. (string, opsional)
state: Filter berdasarkan status (string, opsional)
Advisory Keamanan
get_global_security_advisory - Dapatkan advisory keamanan global
Cakupan OAuth yang Diperlukan: security_events
Cakupan OAuth yang Diterima: repo, security_events
ghsaId: ID Advisory Keamanan GitHub (format: GHSA-xxxx-xxxx-xxxx). (string, wajib)
list_global_security_advisories - Daftar advisory keamanan global
Cakupan OAuth yang Diperlukan: security_events
Cakupan OAuth yang Diterima: repo, security_events
affects: Filter advisory berdasarkan paket atau versi yang terpengaruh (mis. "package1,package2@1.0.0"). (string, opsional)
cveId: Filter berdasarkan ID CVE. (string, opsional)
cwes: Filter berdasarkan ID Common Weakness Enumeration (mis. ["79", "284", "22"]). (string[], opsional)
ecosystem: Filter berdasarkan ekosistem paket. (string, opsional)
ghsaId: Filter berdasarkan ID Advisory Keamanan GitHub (format: GHSA-xxxx-xxxx-xxxx). (string, opsional)
isWithdrawn: Apakah hanya mengembalikan advisory yang ditarik. (boolean, opsional)
modified: Filter berdasarkan tanggal publikasi atau pembaruan atau rentang tanggal (tanggal atau rentang ISO 8601). (string, opsional)
published: Filter berdasarkan tanggal publikasi atau rentang tanggal (tanggal atau rentang ISO 8601). (string, opsional)
severity: Filter berdasarkan tingkat keparahan. (string, opsional)
type: Tipe advisory. (string, opsional)
updated: Filter berdasarkan tanggal pembaruan atau rentang tanggal (tanggal atau rentang ISO 8601). (string, opsional)
list_org_repository_security_advisories - Daftar advisory keamanan repositori organisasi
Cakupan OAuth yang Diperlukan: security_events
Cakupan OAuth yang Diterima: repo, security_events
direction: Arah pengurutan. (string, opsional)
org: Login organisasi. (string, wajib)
sort: Kolom pengurutan. (string, opsional)
state: Filter berdasarkan status advisory. (string, opsional)
list_repository_security_advisories - Daftar advisory keamanan repositori
Cakupan OAuth yang Diperlukan: security_events
Cakupan OAuth yang Diterima: repo, security_events
direction: Arah pengurutan. (string, opsional)
owner: Pemilik repositori. (string, wajib)
repo: Nama repositori. (string, wajib)
sort: Kolom pengurutan. (string, opsional)
state: Filter berdasarkan status advisory. (string, opsional)
Pemberi Bintang
list_starred_repositories - Daftar repositori yang dibintangi
Cakupan OAuth yang Diperlukan: repo
direction: Arah pengurutan hasil. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
sort: Cara mengurutkan hasil. Bisa 'created' (kapan repositori dibintangi) atau 'updated' (kapan repositori terakhir didorong). (string, opsional)
username: Nama pengguna untuk mendaftar repositori yang dibintangi. Default ke pengguna yang terautentikasi. (string, opsional)
star_repository - Bintangi repositori
Cakupan OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
unstar_repository - Hapus bintang repositori
Cakupan OAuth yang Diperlukan: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
Pengguna
search_users - Cari pengguna
Cakupan OAuth yang Diperlukan: repo
order: Urutan pengurutan (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
sort: Urutkan pengguna berdasarkan jumlah pengikut atau repositori, atau kapan orang tersebut bergabung dengan GitHub. (string, opsional)
Alat Tambahan di Server GitHub MCP Jarak Jauh
Copilot
create_pull_request_with_copilot - Lakukan tugas dengan agen pengkodean GitHub Copilot
owner: Pemilik repositori. Anda dapat menebak pemiliknya, tetapi konfirmasikan dengan pengguna sebelum melanjutkan. (string, wajib)
repo: Nama repositori. Anda dapat menebak nama repositori, tetapi konfirmasikan dengan pengguna sebelum melanjutkan. (string, wajib)
problem_statement: Deskripsi rinci tugas yang akan dilakukan (mis., 'Implementasikan fitur yang melakukan X', 'Perbaiki bug Y', dll.) (string, wajib)
title: Judul untuk pull request yang akan dibuat (string, wajib)
base_ref: Referensi Git (mis., cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, default ke cabang default repositori (string, opsional)
Copilot Spaces
Catatan autentikasi
PAT fine-grained tidak disembunyikan oleh penyaringan cakupan PAT klasik, jadi alat ini mungkin masih muncul meskipun token tidak dapat menggunakannya.
Untuk ruang milik organisasi, PAT fine-grained harus diinstal pada organisasi pemilik dan menyertakan organization_copilot_spaces: read.
Jika ruang milik organisasi berisi sumber daya yang didukung repositori, token juga harus memiliki akses ke setiap repositori yang direferensikan atau ruang tersebut dapat dianggap tidak ditemukan.
get_copilot_space - Dapatkan Copilot Space
owner: Pemilik ruang. (string, wajib)
name: Nama ruang. (string, wajib)
list_copilot_spaces - Daftar Copilot Spaces
Pencarian Dokumen Dukungan GitHub
- **github_support_docs_search** - Mengambil dokumentasi yang relevan untuk menjawab pertanyaan produk dan dukungan GitHub. Topik dukungan meliputi: GitHub Actions Workflows, Autentikasi, Pertanyaan Dukungan GitHub, Praktik Pull Request, Pemeliharaan Repositori, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
- `query`: Masukan dari pengguna tentang pertanyaan yang perlu dijawab. Ini adalah pesan pengguna mentah terbaru yang belum diedit. Anda harus SELALU membiarkan pesan pengguna apa adanya, jangan pernah mengubahnya. (string, wajib)
Mode Hanya-Baca
Untuk menjalankan server dalam mode hanya-baca, Anda dapat menggunakan flag --read-only. Ini hanya akan menawarkan alat baca-saja, mencegah modifikasi apa pun pada repositori, isu, pull request, dll.
./github-mcp-server --read-only
Saat menggunakan Docker, Anda dapat meneruskan mode hanya-baca sebagai variabel lingkungan:
Mode lockdown membatasi konten yang akan ditampilkan server dari repositori publik. Saat diaktifkan, server memeriksa apakah penulis setiap item memiliki akses push ke repositori. Repositori privat tidak terpengaruh, dan kolaborator tetap memiliki akses penuh ke konten mereka sendiri.
./github-mcp-server --lockdown-mode
Saat menjalankan dengan Docker, atur variabel lingkungan yang sesuai:
Perilaku mode lockdown bergantung pada alat yang dipanggil.
Alat berikut akan mengembalikan kesalahan ketika penulis tidak memiliki akses push:
issue_read:get
pull_request_read:get
Alat berikut akan menyaring konten dari pengguna yang tidak memiliki akses push:
issue_read:get_comments
issue_read:get_sub_issues
pull_request_read:get_comments
pull_request_read:get_review_comments
pull_request_read:get_reviews
i18n / Menimpa Deskripsi
Deskripsi alat dapat ditimpa dengan membuat file
github-mcp-server-config.json di direktori yang sama dengan biner.
File tersebut harus berisi objek JSON dengan nama alat sebagai kunci dan deskripsi
baru sebagai nilai. Contoh:
{
"TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
"TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}
Anda dapat membuat ekspor terjemahan saat ini dengan menjalankan biner menggunakan
flag --export-translations.
Flag ini akan mempertahankan terjemahan/penimpaan yang telah Anda buat, sambil menambahkan
terjemahan baru yang telah ditambahkan ke biner sejak terakhir kali Anda
mengekspor.
Anda juga dapat menggunakan variabel ENV untuk menimpa deskripsi. Nama variabel
lingkungan sama dengan kunci di file JSON, diawali dengan
GITHUB_MCP_ dan semuanya huruf besar.
Misalnya, untuk menimpa alat TOOL_ADD_ISSUE_COMMENT_DESCRIPTION, Anda dapat
mengatur variabel lingkungan berikut:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
Menimpa Nama dan Judul Server
Mekanisme penimpaan yang sama dapat digunakan untuk menyesuaikan bidang name dan
title server MCP dalam respons inisialisasi. Ini berguna saat menjalankan
beberapa instans GitHub MCP Server (misalnya, satu untuk github.com dan satu untuk
GitHub Enterprise Server) sehingga agen dapat membedakannya.
Kunci
Variabel Lingkungan
Default
SERVER_NAME
GITHUB_MCP_SERVER_NAME
github-mcp-server
SERVER_TITLE
GITHUB_MCP_SERVER_TITLE
GitHub MCP Server
Misalnya, untuk mengonfigurasi instans server untuk GitHub Enterprise Server:
API Go yang diekspor dari modul ini saat ini harus dianggap tidak stabil, dan dapat mengalami perubahan yang merusak. Di masa mendatang, kami mungkin menawarkan stabilitas; silakan buat isu jika ada kasus penggunaan di mana ini akan bernilai.
Berkontribusi
Kontribusi sangat diterima. Sebelum membuka pull request, harap baca panduan berkontribusi untuk instruksi penyiapan, pengujian, linting, dan pembuatan dokumentasi.
Dukungan
Untuk bantuan menggunakan GitHub MCP Server, lihat panduan dukungan. Jika Anda menemukan bug atau ingin meminta fitur, silakan cari isu yang ada sebelum membuka yang baru.
Keamanan
Harap jangan melaporkan kerentanan keamanan melalui isu publik. Ikuti instruksi dalam kebijakan keamanan untuk melaporkan kerentanan secara bertanggung jawab.
Lisensi
Proyek ini dilisensikan di bawah ketentuan lisensi sumber terbuka MIT. Silakan merujuk ke MIT untuk ketentuan lengkapnya.