GitHub MCP

resmi

Server MCP resmi GitHub untuk pencarian repositori, isu, permintaan tarik, konteks kode, dan alur kerja GitHub di klien AI yang kompatibel dengan MCP.

Apa yang bisa Anda lakukan dengan GitHub MCP?

  • Eksplorasi repositori — Minta asisten Anda untuk menjelajahi repositori, mencari file, dan memahami struktur proyek menggunakan alat seperti get_file_contents.
  • Manajemen Issue & PR — Biarkan AI Anda membuat, memperbarui, dan menriase issue serta pull request, termasuk meninjau perubahan kode dan memelihara papan proyek.
  • Pemantauan CI/CD — Dapatkan wawasan tentang proses workflow GitHub Actions, analisis kegagalan build, dan kelola rilis melalui kueri bahasa alami.
  • Analisis keamanan kode — Periksa temuan keamanan, tinjau peringatan Dependabot, dan pahami pola kode di seluruh basis kode Anda.
  • Kolaborasi tim — Akses diskusi, kelola notifikasi, dan analisis aktivitas tim untuk menyederhanakan proses pengembangan.

Dokumentasi

Go Report Card

Server GitHub MCP

Server GitHub MCP menghubungkan alat AI secara langsung ke platform GitHub. Ini memberikan kemampuan kepada agen AI, asisten, dan chatbot untuk membaca repositori dan file kode, mengelola issue dan PR, menganalisis kode, serta mengotomatiskan alur kerja. Semua melalui interaksi bahasa alami.

Kasus Penggunaan

  • Manajemen Repositori: Jelajahi dan kueri kode, cari file, analisis commit, dan pahami struktur proyek di repositori mana pun yang Anda miliki aksesnya.
  • Otomatisasi Issue & PR: Buat, perbarui, dan kelola issue serta pull request. Biarkan AI membantu triase bug, meninjau perubahan kode, dan memelihara papan proyek.
  • Intelijen CI/CD & Alur Kerja: Pantau proses 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 alat AI mereka dengan konteks dan kemampuan GitHub, dari kueri bahasa alami sederhana hingga alur kerja agen multi-langkah yang kompleks.


Server GitHub MCP Jarak Jauh

Install in VS Code Install in VS Code Insiders Install in Visual Studio

Server GitHub MCP jarak jauh 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 Server GitHub MCP sebagai gantinya.

Prasyarat

  1. Host MCP yang kompatibel dengan dukungan server jarak jauh (VS Code 1.101+, Claude Desktop, Cursor, Windsurf, dll.)
  2. Kebijakan yang berlaku yang diaktifkan

Instal di VS Code

Untuk instalasi cepat, gunakan salah satu tombol instalasi satu-klik di atas. Setelah menyelesaikan alur tersebut, aktifkan mode Agen (terletak di dekat input teks Copilot Chat) dan server akan dimulai. Pastikan Anda menggunakan VS Code 1.101 atau 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 dan tambahkan ke konfigurasi host Anda:

Menggunakan OAuthMenggunakan PAT GitHub
VS Code (versi 1.101 atau lebih besar)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

Instal di host MCP lainnya

  • Copilot CLI - Panduan instalasi untuk GitHub Copilot CLI
  • GitHub Copilot di IDE lain - Instalasi untuk JetBrains, Visual Studio, Eclipse, dan Xcode dengan GitHub Copilot
  • Aplikasi Claude - Panduan instalasi untuk Claude Desktop dan Claude Code CLI
  • Codex - Panduan instalasi untuk OpenAI Codex
  • Cursor - Panduan instalasi untuk IDE Cursor
  • OpenCode - Panduan instalasi untuk agen terminal OpenCode
  • Windsurf - Panduan instalasi untuk IDE Windsurf
  • Zed - Panduan instalasi untuk editor Zed
  • 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 mana pun yang mendukung server MCP jarak jauh harus mendukung server GitHub jarak jauh dengan autentikasi PAT. Detail konfigurasi dan tingkat dukungan bervariasi menurut host. Pastikan untuk merujuk pada dokumentasi aplikasi host untuk informasi lebih lanjut.

Konfigurasi

Konfigurasi Toolset

Lihat Dokumentasi Server Jarak Jauh untuk detail lengkap tentang konfigurasi server jarak jauh, toolset, header, dan penggunaan lanjutan. File ini menyediakan instruksi dan contoh komprehensif untuk menghubungkan, menyesuaikan, dan menginstal Server GitHub MCP jarak jauh di VS Code dan host MCP lainnya.

Jika tidak ada toolset yang ditentukan, toolset default yang digunakan.

Mode Insiders

Coba fitur baru lebih awal! Server jarak jauh menawarkan versi insiders dengan akses awal ke fitur baru dan alat eksperimental.

Menggunakan Jalur URLMenggunakan Header
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/insiders"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "X-MCP-Insiders": "true"
      }
    }
  }
}

Lihat Dokumentasi Server Jarak Jauh untuk detail dan contoh lebih lanjut, dan Fitur Insiders untuk daftar lengkap yang tersedia.

GitHub Enterprise

GitHub Enterprise Cloud dengan residensi data (ghe.com)

GitHub Enterprise Cloud juga dapat memanfaatkan server jarak jauh.

Contoh untuk https://octocorp.ghe.com dengan token PAT GitHub:

{
    ...
    "github-octocorp": {
      "type": "http",
      "url": "https://copilot-api.octocorp.ghe.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    },
    ...
}

Catatan: Saat menggunakan OAuth dengan GitHub Enterprise di VS Code dan GitHub Copilot, Anda juga perlu mengonfigurasi pengaturan VS Code Anda untuk menunjuk ke instance GitHub Enterprise Anda - lihat Autentikasi dari VS Code

GitHub Enterprise Server

GitHub Enterprise Server tidak mendukung hosting server jarak jauh. Silakan merujuk ke GitHub Enterprise Server dan Enterprise Cloud dengan residensi data (ghe.com) dari konfigurasi server lokal.


Server GitHub MCP Lokal

Install with Docker in VS Code Install with Docker in VS Code Insiders Install with Docker in Visual Studio

Prasyarat

  1. Untuk menjalankan server dalam kontainer, Anda perlu menginstal Docker.

  2. Setelah Docker diinstal, Anda juga perlu memastikan Docker berjalan. Gambar Docker tersedia di ghcr.io/github/github-mcp-server. Gambar bersifat publik; jika Anda mendapatkan kesalahan saat menarik, Anda mungkin memiliki token yang kedaluwarsa dan perlu docker logout ghcr.io.

  3. Autentikasi. Di github.com Anda tidak perlu membuat apa pun di awal — tombol satu-klik di atas masuk dengan OAuth pada penggunaan pertama (alur berbasis browser; token hanya disimpan di memori). Tombol Docker memublikasikan port panggilan balik tetap (127.0.0.1:8085) sehingga panggilan balik login kontainer dapat dijangkau. Lihat Login OAuth Server Lokal untuk cara kerjanya, fallback headless/device-code, 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 alat AI Anda (untuk mempelajari lebih lanjut tentang token akses, silakan periksa dokumentasi).

Menangani PAT dengan Aman

Variabel Lingkungan (Direkomendasikan)

Untuk menjaga PAT GitHub Anda tetap aman dan dapat digunakan kembali di berbagai host MCP:

  1. Simpan PAT Anda dalam variabel lingkungan

    export GITHUB_PAT=your_token_here
    

    Atau buat file .env:

    GITHUB_PAT=your_token_here
    
  2. Lindungi file .env Anda

    # Add to .gitignore to prevent accidental commits
    echo ".env" >> .gitignore
    
  3. Rujuk 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 yang di-hardcode dalam file konfigurasi.

Praktik Terbaik Keamanan Token

  • Cakupan minimum: Hanya berikan izin yang diperlukan

    • repo - Operasi repositori
    • read:packages - Akses gambar 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 file: Batasi akses ke file konfigurasi yang berisi token

    chmod 600 ~/.your-app/config.json
    

GitHub Enterprise Server dan Enterprise Cloud dengan residensi data (ghe.com)

Bendera --gh-host dan variabel lingkungan GITHUB_HOST dapat digunakan untuk mengatur hostname untuk GitHub Enterprise Server atau GitHub Enterprise Cloud dengan residensi data.

  • Untuk GitHub Enterprise Server, awali hostname dengan skema URI https://. HTTPS diperlukan dan ditegakkan: host non-HTTPS ditolak sehingga kredensial tidak pernah dikirim melalui teks biasa (satu-satunya pengecualian adalah host loopback seperti http://localhost untuk pengembangan lokal).
  • Untuk GitHub Enterprise Cloud dengan residensi data, gunakan https://YOURSUBDOMAIN.ghe.com sebagai hostname.
"github": {
    "command": "docker",
    "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "-e",
    "GITHUB_HOST",
    "ghcr.io/github/github-mcp-server"
    ],
    "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
        "GITHUB_HOST": "https://<your GHES or ghe.com domain name>"
    }
}

Instalasi

Instal di GitHub Copilot di VS Code

Untuk instalasi cepat, gunakan salah satu tombol instalasi satu-klik di atas. Setelah menyelesaikan alur tersebut, aktifkan mode Agen (terletak di dekat input teks Copilot Chat) dan server akan dimulai.

Pelajari lebih lanjut tentang menggunakan alat server MCP di dokumentasi mode agen VS Code.

Instal di GitHub Copilot di IDE lain (JetBrains, Visual Studio, Eclipse, dll.)

Tambahkan salah satu blok JSON berikut ke pengaturan MCP IDE Anda.

Masuk dengan OAuth (tidak ada token yang perlu dibuat atau disimpan). Di github.com gambar 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 panggilan balik tetap yang dipublikasikan ke loopback sehingga panggilan balik login kontainer dapat dijangkau:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-p",
          "127.0.0.1:8085:8085",
          "-e",
          "GITHUB_OAUTH_CALLBACK_PORT",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_OAUTH_CALLBACK_PORT": "8085"
        }
      }
    }
  }
}

Lihat Login OAuth Server Lokal untuk alur biner asli (tidak perlu port tetap), fallback headless/device-code, GitHub Enterprise Server / ghe.com, dan membawa OAuth atau GitHub App Anda sendiri.

Untuk penerapan stdio non-interaktif, lihat Autentikasi GitHub App.

Atau autentikasi dengan Token Akses Pribadi. Atur GITHUB_PERSONAL_ACCESS_TOKEN sebagai gantinya (ini lebih diutamakan daripada OAuth):

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

Secara opsional, Anda dapat menambahkan contoh serupa (yaitu tanpa kunci mcp) ke file bernama .vscode/mcp.json di ruang kerja Anda. Ini akan memungkinkan Anda berbagi konfigurasi dengan aplikasi host lain yang menerima format yang sama.

Contoh blok JSON tanpa kunci MCP yang disertakan
{
  "inputs": [
    {
      "type": "promptString",
      "id": "github_token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ],
  "servers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
      }
    }
  }
}

Instal di Host MCP Lainnya

Untuk aplikasi host MCP lainnya, silakan merujuk ke panduan instalasi kami:

Untuk gambaran lengkap semua opsi instalasi, lihat Indeks Panduan Instalasi.

Catatan: Aplikasi host apa pun yang mendukung server MCP lokal seharusnya dapat mengakses server GitHub MCP lokal. Namun, proses konfigurasi spesifik, sintaks, dan stabilitas integrasi akan bervariasi tergantung pada aplikasi host. Meskipun banyak yang mungkin mengikuti format yang mirip dengan contoh di atas, hal ini tidak dijamin. Silakan merujuk ke dokumentasi aplikasi host Anda untuk sintaks konfigurasi MCP yang benar dan proses pengaturannya.

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 yang diatur ke token Anda. Untuk menentukan lokasi output dari build, gunakan flag -o. Anda harus mengonfigurasi server Anda untuk menggunakan executable yang telah dibangun sebagai command. Contohnya:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/github-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}

Konfigurasi Alat

Server GitHub MCP mendukung mengaktifkan atau menonaktifkan grup fungsionalitas tertentu melalui flag --toolsets. Ini memungkinkan Anda untuk mengontrol kemampuan API GitHub mana yang tersedia untuk alat AI Anda. Mengaktifkan hanya toolset yang Anda butuhkan dapat membantu LLM dalam pemilihan alat dan mengurangi ukuran konteks.

Toolset tidak terbatas pada Alat. Sumber Daya MCP dan Prompt yang relevan juga disertakan jika berlaku.

Ketika tidak ada toolset yang ditentukan, toolset default yang digunakan.

Mencari contoh? Lihat Panduan Konfigurasi Server untuk resep umum seperti pengaturan minimal, mode hanya-baca, dan menggabungkan alat dengan toolset.

Menentukan Toolset

Untuk menentukan toolset yang ingin Anda sediakan untuk LLM, Anda dapat memberikan daftar yang diizinkan dengan dua cara:

  1. Menggunakan Argumen Baris Perintah:

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. Menggunakan Variabel Lingkungan:

    GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
    

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 toolset untuk kontrol yang lebih terperinci.

  1. Menggunakan Argumen Baris Perintah:

    github-mcp-server --tools get_file_contents,issue_read,create_pull_request
    
  2. Menggunakan Variabel Lingkungan:

    GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server
    
  3. Menggabungkan dengan Toolset (aditif):

    github-mcp-server --toolsets repos,issues --tools get_gist
    

    Ini mendaftarkan semua alat dari toolset repos dan issues, ditambah get_gist.

Catatan Penting:

  • Alat dan toolset dapat digunakan bersama
  • Mode hanya-baca memiliki prioritas: alat tulis dilewati jika --read-only diatur, bahkan jika diminta secara eksplisit melalui --tools
  • Nama alat harus cocok persis (misalnya, get_file_contents, bukan getFileContents). Nama alat yang tidak valid akan menyebabkan server gagal saat startup dengan pesan kesalahan
  • Ketika alat diubah namanya, nama lama dipertahankan sebagai alias untuk kompatibilitas mundur. Lihat Penggantian Nama Alat untuk detailnya.

Menggunakan Toolset dengan Docker

Saat menggunakan Docker, Anda dapat meneruskan toolset sebagai variabel lingkungan:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
  ghcr.io/github/github-mcp-server

Menggunakan Alat dengan Docker

Saat menggunakan Docker, Anda dapat meneruskan alat tertentu sebagai variabel lingkungan. Anda juga dapat menggabungkan alat dengan toolset:

# Tools only
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
  ghcr.io/github/github-mcp-server

# Tools combined with toolsets (additive)
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues" \
  -e GITHUB_TOOLS="get_gist" \
  ghcr.io/github/github-mcp-server

Toolset Khusus

Toolset "all"

Toolset khusus all dapat diberikan untuk mengaktifkan semua toolset yang tersedia terlepas dari konfigurasi lainnya:

./github-mcp-server --toolsets all

Atau menggunakan variabel lingkungan:

GITHUB_TOOLSETS="all" ./github-mcp-server

Toolset "default"

Toolset default default adalah konfigurasi yang diteruskan ke server jika tidak ada toolset yang ditentukan.

Konfigurasi default adalah:

  • context
  • repos
  • issues
  • pull_requests
  • users

Untuk mempertahankan konfigurasi default dan menambahkan toolset tambahan:

GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server

Mode Insiders

Server GitHub MCP lokal menawarkan versi insiders dengan akses awal ke fitur baru dan alat eksperimental.

  1. Menggunakan Argumen Baris Perintah:

    ./github-mcp-server --insiders
    
  2. Menggunakan Variabel Lingkungan:

    GITHUB_INSIDERS=true ./github-mcp-server
    

Saat menggunakan Docker:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_INSIDERS=true \
  ghcr.io/github/github-mcp-server

Toolset yang Tersedia

Kumpulan alat berikut tersedia:

ToolsetDeskripsi
personcontextSangat disarankan: Alat yang menyediakan konteks tentang pengguna saat ini dan konteks GitHub tempat Anda beroperasi
workflowactionsAlur kerja GitHub Actions dan operasi CI/CD
code-squarecode_qualityAlat terkait Kualitas Kode GitHub
codescancode_securityAlat terkait keamanan kode, seperti GitHub Code Scanning
copilotcopilotAlat terkait Copilot
copilotcopilot_issue_intentsAlat penugasan masalah Copilot yang diikutsertakan secara opsional yang membawa metadata niat (alasan, keyakinan, saran)
dependabotdependabotAlat Dependabot
comment-discussiondiscussionsAlat terkait GitHub Discussions
logo-gistgistsAlat terkait GitHub Gist
git-branchgitAlat terkait GitHub Git API untuk operasi Git tingkat rendah
issue-openedissuesAlat terkait GitHub Issues
taglabelsAlat terkait GitHub Labels
bellnotificationsAlat terkait GitHub Notifications
organizationorgsAlat terkait GitHub Organization
projectprojectsAlat terkait GitHub Projects
git-pull-requestpull_requestsAlat terkait GitHub Pull Request
reporeposAlat terkait GitHub Repository
shield-locksecret_protectionAlat terkait perlindungan rahasia, seperti GitHub Secret Scanning
shieldsecurity_advisoriesAlat terkait security advisories
starstargazersAlat terkait GitHub Stargazers
peopleusersAlat terkait GitHub User

Toolset Tambahan di Server GitHub MCP Jarak Jauh

ToolsetDeskripsi
copilotAlat terkait Copilot (misalnya Copilot Coding Agent)
copilot_spacesAlat terkait Copilot Spaces
github_support_docs_searchCari dokumen untuk menjawab pertanyaan produk dan dukungan GitHub

Alat

workflow Actions
  • actions_get - Dapatkan detail sumber daya GitHub Actions (alur kerja, proses alur kerja, pekerjaan, dan artefak)

    • Cakupan Tantangan OAuth: repo
    • method: Metode yang akan dieksekusi (string, wajib)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
    • resource_id: Pengidentifikasi unik dari 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 (misalnya ci.yaml) untuk metode 'get_workflow'.
      • Berikan ID proses 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, wajib)
  • actions_list - Daftarkan alur kerja GitHub Actions dalam repositori

    • Cakupan Tantangan OAuth: repo
    • method: Tindakan yang akan dilakukan (string, wajib)
    • owner: Pemilik repositori (string, wajib)
    • page: Nomor halaman untuk paginasi (default: 1) (angka, opsional)
    • per_page: Hasil per halaman untuk paginasi (default: 30, maks: 100) (angka, opsional)
    • repo: Nama repositori (string, wajib)
    • resource_id: Pengidentifikasi unik dari 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 (misalnya ci.yaml) untuk metode 'list_workflow_runs', atau abaikan untuk mendaftarkan semua proses alur kerja dalam repositori.
      • Berikan ID proses alur kerja untuk metode 'list_workflow_jobs' dan 'list_workflow_run_artifacts'. (string, opsional)
    • workflow_jobs_filter: Filter untuk pekerjaan alur kerja. HANYA digunakan ketika metode adalah 'list_workflow_jobs' (objek, opsional)
    • workflow_runs_filter: Filter untuk proses alur kerja. HANYA digunakan ketika metode adalah 'list_workflow_runs' (objek, opsional)
  • actions_run_trigger - Picu tindakan alur kerja GitHub Actions

    • Cakupan Tantangan OAuth: repo
    • inputs: Input yang diterima oleh alur kerja. Hanya digunakan untuk metode 'run_workflow'. (objek, opsional)
    • method: Metode yang akan dieksekusi (string, wajib)
    • owner: Pemilik repositori (string, wajib)
    • ref: Referensi git untuk alur kerja. Referensi dapat berupa nama cabang atau tag. Diperlukan untuk metode 'run_workflow'. (string, opsional)
    • repo: Nama repositori (string, wajib)
    • run_id: ID dari proses alur kerja. Diperlukan untuk semua metode kecuali 'run_workflow'. (angka, opsional)
    • workflow_id: ID alur kerja (numerik) atau nama file alur kerja (misalnya, main.yml, ci.yaml). Diperlukan untuk metode 'run_workflow'. (string, opsional)
  • get_job_logs - Dapatkan log pekerjaan alur kerja GitHub Actions

    • Cakupan Tantangan OAuth: repo
    • failed_only: Ketika true, dapatkan log untuk semua pekerjaan yang gagal dalam proses alur kerja yang ditentukan oleh run_id. Memerlukan run_id untuk disediakan. (boolean, opsional)
    • job_id: Pengidentifikasi unik dari pekerjaan alur kerja. Diperlukan saat mendapatkan log untuk satu pekerjaan. (angka, opsional)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
    • return_content: Mengembalikan konten log yang sebenarnya alih-alih URL (boolean, opsional)
    • run_id: Pengidentifikasi unik dari proses alur kerja. Diperlukan ketika failed_only adalah true untuk mendapatkan log untuk semua pekerjaan yang gagal dalam proses. (angka, opsional)
    • tail_lines: Jumlah baris yang akan dikembalikan dari akhir log (angka, opsional)
code-square Kualitas Kode
  • get_code_quality_finding - Mendapatkan temuan kualitas kode
    • OAuth Challenge Scopes: repo
    • findingNumber: Nomor temuan. (number, wajib)
    • owner: Pemilik repositori. (string, wajib)
    • repo: Nama repositori. (string, wajib)
codescan Keamanan Kode
  • get_code_scanning_alert - Mendapatkan peringatan pemindaian kode

    • OAuth Challenge Scopes: security_events
    • alertNumber: Nomor peringatan. (number, wajib)
    • owner: Pemilik repositori. (string, wajib)
    • repo: Nama repositori. (string, wajib)
  • list_code_scanning_alerts - Mendaftar peringatan pemindaian kode

    • OAuth Challenge Scopes: 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)
    • 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. Defaultnya adalah open (string, opsional)
    • tool_name: Nama alat yang digunakan untuk pemindaian kode. (string, opsional)
person Konteks
  • get_me - Mendapatkan profil pengguna saya

    • Tidak ada parameter yang diperlukan
  • get_team_members - Mendapatkan anggota tim

    • OAuth Challenge Scopes: read:org
    • org: Login organisasi (pemilik) yang berisi tim. (string, wajib)
    • team_slug: Slug tim (string, wajib)
  • get_teams - Mendapatkan tim

    • OAuth Challenge Scopes: read:org
    • user: Nama pengguna untuk mendapatkan tim. Jika tidak disediakan, menggunakan pengguna yang terautentikasi. (string, opsional)
copilot Copilot
  • assign_copilot_to_issue - Menugaskan Copilot ke isu

    • OAuth Challenge Scopes: repo
    • base_ref: Referensi Git (misalnya, cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, defaultnya adalah cabang default repositori (string, opsional)
    • custom_instructions: Instruksi khusus opsional untuk memandu agen di luar isi isu. Gunakan ini untuk memberikan konteks tambahan, batasan, atau panduan yang tidak tercakup dalam deskripsi isu (string, opsional)
    • issue_number: Nomor isu (number, wajib)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
  • request_copilot_review - Meminta tinjauan Copilot

    • OAuth Challenge Scopes: repo
    • owner: Pemilik repositori (string, wajib)
    • pullNumber: Nomor pull request (number, wajib)
    • repo: Nama repositori (string, wajib)
copilot Intensi Isu Copilot
  • assign_copilot_to_issue_with_intent - Menugaskan Copilot ke isu dengan intensi
    • OAuth Challenge Scopes: repo
    • base_ref: Referensi Git (misalnya, cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, defaultnya adalah cabang default repositori. Diabaikan saat is_suggestion bernilai true (string, opsional)
    • confidence: Seberapa yakin Anda terhadap pilihan ini. 'HIGH' untuk sinyal yang jelas atau permintaan eksplisit dari pengguna, 'MEDIUM' untuk inferensi yang masuk akal dengan beberapa ambiguitas, 'LOW' untuk tebakan terbaik dengan sinyal terbatas. (string, wajib)
    • custom_instructions: Instruksi khusus opsional untuk memandu agen di luar isi isu. Diabaikan saat is_suggestion bernilai true (string, opsional)
    • is_suggestion: Jika true, mencatat intensi penugasan Copilot yang tertunda daripada meluncurkan agen. Persetujuan nanti menyediakan konteks peluncuran; base_ref dan custom_instructions diabaikan dalam kasus ini. (boolean, wajib)
    • issue_number: Nomor isu (number, wajib)
    • owner: Pemilik repositori (string, wajib)
    • rationale: Satu kalimat ringkas yang menjelaskan secara spesifik apa tentang isu tersebut yang menyebabkan pemilihan Copilot. Nyatakan sinyal konkretnya (misalnya 'Tugas dengan cakupan yang baik dan kriteria penerimaan yang jelas'). (string, wajib)
    • repo: Nama repositori (string, wajib)
dependabot Dependabot
  • get_dependabot_alert - Mendapatkan peringatan dependabot

    • OAuth Challenge Scopes: security_events
    • alertNumber: Nomor peringatan. (number, wajib)
    • owner: Pemilik repositori. (string, wajib)
    • repo: Nama repositori. (string, wajib)
  • list_dependabot_alerts - Mendaftar peringatan dependabot

    • OAuth Challenge Scopes: security_events
    • after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
    • owner: Pemilik repositori. (string, wajib)
    • perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
    • repo: Nama repositori. (string, wajib)
    • severity: Filter peringatan dependabot berdasarkan tingkat keparahan (string, opsional)
    • state: Filter peringatan dependabot berdasarkan status. Defaultnya adalah open (string, opsional)
comment-discussion Diskusi
  • discussion_comment_write - Mengelola komentar diskusi

    • OAuth Challenge Scopes: repo
    • 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; GitHub Discussions hanya mendukung satu tingkat penyarangan. (string, opsional)
    • discussionNumber: Nomor diskusi (wajib untuk metode 'add' dan 'reply') (number, opsional)
    • method: Operasi tulis yang akan dilakukan pada komentar diskusi. Opsinya adalah:
      • 'add' - menambahkan komentar tingkat atas baru ke diskusi.
      • 'reply' - membalas komentar diskusi tingkat atas (GitHub Discussions hanya mendukung satu tingkat penyarangan).
      • 'update' - memperbarui komentar diskusi yang ada.
      • 'delete' - menghapus komentar diskusi.
      • 'mark_answer' - menandai komentar diskusi sebagai jawaban (khusus Q&A).
      • 'unmark_answer' - menghapus penandaan komentar diskusi sebagai jawaban (khusus Q&A). (string, wajib)
    • owner: Pemilik repositori (wajib untuk metode 'add' dan 'reply') (string, opsional)
    • repo: Nama repositori (wajib untuk metode 'add' dan 'reply') (string, opsional)
  • get_discussion - Mendapatkan diskusi

    • OAuth Challenge Scopes: repo
    • discussionNumber: Nomor Diskusi (number, wajib)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
  • get_discussion_comments - Mendapatkan komentar diskusi

    • OAuth Challenge Scopes: repo
    • after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
    • discussionNumber: Nomor Diskusi (number, wajib)
    • includeReplies: Jika true, setiap komentar tingkat atas akan menyertakan balasannya yang disarangkan di dalamnya (hingga 100 balasan per komentar, yang merupakan maksimum API GitHub). Defaultnya adalah false. (boolean, opsional)
    • owner: Pemilik repositori (string, wajib)
    • perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
    • repo: Nama repositori (string, wajib)
  • list_discussion_categories - Mendaftar kategori diskusi

    • OAuth Challenge Scopes: repo
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori. Jika tidak disediakan, kategori diskusi akan ditanyakan di tingkat organisasi. (string, opsional)
  • list_discussions - Mendaftar diskusi

    • OAuth Challenge Scopes: 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 akan didaftarkan. (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) (number, opsional)
    • repo: Nama repositori. Jika tidak disediakan, diskusi akan ditanyakan di tingkat organisasi. (string, opsional)
logo-gist Gists
  • create_gist - Membuat Gist

    • OAuth Challenge Scopes: gist
    • content: Konten untuk pembuatan gist satu file sederhana (string, wajib)
    • description: Deskripsi gist (string, opsional)
    • filename: Nama file untuk pembuatan gist satu file sederhana (string, wajib)
    • public: Apakah gist bersifat publik (boolean, opsional)
  • get_gist - Mendapatkan Konten Gist

    • gist_id: ID gist (string, wajib)
  • list_gists - Mendaftar Gists

    • page: Nomor halaman untuk paginasi (min 1) (number, opsional)
    • perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
    • since: Hanya gist yang diperbarui setelah waktu ini (timestamp ISO 8601) (string, opsional)
    • username: Nama pengguna GitHub (abaikan untuk gist pengguna yang terautentikasi) (string, opsional)
  • update_gist - Memperbarui Gist

    • OAuth Challenge Scopes: 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-branch Git - **get_repository_tree** - Mendapatkan pohon repositori - **Cakupan Tantangan OAuth**: `repo` - `owner`: Pemilik repositori (nama pengguna atau organisasi) (string, wajib) - `path_filter`: Prefiks jalur opsional untuk memfilter hasil pohon (misalnya, 'src/' untuk hanya menampilkan file di direktori src) (string, opsional) - `recursive`: Menyetel 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)
issue-opened Issues
  • add_issue_comment - Menambahkan komentar ke issue atau pull request

    • Cakupan Tantangan OAuth: repo
    • body: Konten komentar. Wajib kecuali reaksi disediakan. (string, opsional)
    • comment_id: ID numerik dari komentar issue atau pull request yang akan diberi reaksi. Gunakan ini untuk reaksi pada komentar; hilangkan untuk memberi reaksi pada issue atau pull request itu sendiri. Tidak dapat digabungkan dengan body. (integer, opsional)
    • issue_number: Nomor issue atau pull request untuk dikomentari atau diberi reaksi. (number, wajib)
    • owner: Pemilik repositori (string, wajib)
    • reaction: Reaksi emoji yang akan ditambahkan. Wajib kecuali body disediakan. (string, opsional)
    • repo: Nama repositori (string, wajib)
  • get_label - Mendapatkan label tertentu dari repositori

    • Cakupan Tantangan OAuth: repo
    • name: Nama label. (string, wajib)
    • owner: Pemilik repositori (nama pengguna atau nama organisasi) (string, wajib)
    • repo: Nama repositori (string, wajib)
  • issue_read - Mendapatkan detail issue

    • Cakupan Tantangan OAuth: repo
    • issue_number: Nomor issue (number, wajib)
    • method: Operasi baca yang akan dilakukan pada satu issue. Opsinya adalah:
      1. get - Mendapatkan detail issue. Juga mengembalikan flag hierarki upaya terbaik (has_parent, has_children); parent dan sub_issues_summary adalah ringkasan hubungan opsional, dan closed_by_pull_requests merangkum pull request yang dikonfigurasi untuk menutup issue sebagai total_count plus hingga 5 references.
      2. get_comments - Mendapatkan komentar issue.
      3. get_sub_issues - Mendapatkan sub-issue (anak) dari issue.
      4. get_parent - Mendapatkan issue induk, jika issue ini adalah sub-issue dari issue lain.
      5. get_labels - Mendapatkan label yang ditetapkan ke issue. (string, wajib)
    • 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)
  • issue_write - Membuat atau memperbarui issue/pull request

    • Cakupan Tantangan OAuth: repo
    • assignees: Nama pengguna yang ditugaskan ke issue ini (string[], opsional)
    • body: Konten body issue (string, opsional)
    • duplicate_of: Nomor issue yang merupakan duplikat dari issue ini. Wajib ketika state_reason adalah 'duplicate'. (number, opsional)
    • issue_fields: Nilai bidang issue yang akan diatur atau dihapus. Setiap item memerlukan 'field_name' dan tepat satu dari 'value', 'field_option_name', atau 'delete: true'. (object[], opsional)
    • issue_number: Nomor issue yang akan diperbarui (number, opsional)
    • labels: Label yang akan diterapkan ke issue ini (string[], opsional)
    • method: Operasi tulis yang akan dilakukan pada satu issue. Opsinya adalah:
      • 'create' - membuat issue baru.
      • 'update' - memperbarui issue yang ada. (string, wajib)
    • milestone: Nomor milestone (number, opsional)
    • owner: Pemilik repositori (string, wajib)
    • parent_issue_number: Nomor issue dari issue induk. Hanya digunakan ketika metode adalah 'create' dan tidak dapat digabungkan dengan issue_fields. Issue baru dibuat dan dilampirkan ke induk ini dalam operasi yang sama. (number, opsional)
    • parent_owner: Pemilik repositori dari issue induk. Harus disediakan dengan parent_repo. Hilangkan keduanya untuk menggunakan owner dan repo. Hanya digunakan ketika metode adalah 'create' dan parent_issue_number disediakan. (string, opsional)
    • parent_repo: Nama repositori dari issue induk. Harus disediakan dengan parent_owner. Hilangkan keduanya untuk menggunakan owner dan repo. Hanya digunakan ketika metode adalah 'create' dan parent_issue_number disediakan. (string, opsional)
    • repo: Nama repositori (string, wajib)
    • state: State baru (string, opsional)
    • state_reason: Alasan untuk perubahan state. Diabaikan kecuali state diubah. (string, opsional)
    • title: Judul issue (string, opsional)
    • type: Tipe dari issue ini. Untuk pembaruan, berikan null untuk menghapus tipe saat ini. Hanya gunakan jika tipe issue diaktifkan untuk repositori ini. Gunakan list_issue_types untuk mendapatkan nilai tipe yang valid untuk repositori ini atau organisasi pemiliknya. Jika repositori tidak mendukung tipe issue, hilangkan parameter ini. (string | null, opsional)
  • list_issue_fields - Mendaftar bidang issue

    • Cakupan Tantangan OAuth: repo, read:org
    • owner: Pemilik akun dari repositori atau organisasi. Nama tidak peka huruf besar/kecil. (string, wajib)
    • repo: Nama repositori. Ketika disediakan, mengembalikan bidang untuk repositori spesifik ini (diwarisi dari organisasinya). Ketika dihilangkan, mengembalikan bidang tingkat organisasi secara langsung. (string, opsional)
  • list_issue_types - Mendaftar tipe issue yang tersedia

    • Cakupan Tantangan OAuth: repo, read:org
    • owner: Pemilik akun dari repositori atau organisasi. (string, wajib)
    • repo: Nama repositori. Ketika disediakan, mengembalikan tipe issue untuk repositori spesifik ini. Ketika dihilangkan, mengembalikan tipe issue tingkat organisasi secara langsung. (string, opsional)
  • list_issues - Mendaftar issue

    • Cakupan Tantangan OAuth: 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 issue kustom. Setiap entri mengambil field_name dan nilai; server mencari bidang dan mengonversi nilai ke tipe yang sesuai (nama opsi pilihan tunggal, teks, angka, atau tanggal YYYY-MM-DD). (object[], opsional)
    • fields: Subset bidang yang akan dikembalikan untuk setiap issue. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons ketika Anda hanya memerlukan bidang tertentu; menghilangkan 'body' dan 'field_values' khususnya menghapus data per-hasil terbesar. (string[], opsional)
    • labels: Filter berdasarkan label (string[], opsional)
    • orderBy: Urutkan issue 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) (number, opsional)
    • repo: Nama repositori (string, wajib)
    • since: Filter berdasarkan tanggal (timestamp ISO 8601) (string, opsional)
    • state: Filter berdasarkan state, secara default issue terbuka dan tertutup dikembalikan ketika tidak disediakan (string, opsional)
  • search_issues - Mencari issue

    • Cakupan Tantangan OAuth: repo
    • fields: Subset bidang yang akan dikembalikan untuk setiap hasil issue. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons ketika Anda hanya memerlukan bidang tertentu; menghilangkan 'body', 'reactions', dan 'labels' khususnya menghapus data per-hasil terbesar. (string[], opsional)
    • order: Urutan pengurutan (string, opsional)
    • owner: Pemilik repositori opsional. Jika disediakan dengan repo, hanya issue untuk repositori ini yang didaftarkan. (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, sebagai bahasa alami. Ketika pengguna memberikan kata-kata alternatif, sertakan sebagai kata biasa daripada menggabungkannya dengan OR. (string, wajib)
    • repo: Nama repositori opsional. Jika disediakan dengan owner, hanya issue untuk repositori ini yang didaftarkan. (string, opsional)
    • sort: Bidang pengurutan berdasarkan jumlah kecocokan kategori, default ke kecocokan terbaik (string, opsional)
  • sub_issue_write - Mengubah sub-issue

    • Cakupan Tantangan OAuth: repo
    • after_id: ID dari sub-issue yang akan diprioritaskan setelah (baik after_id ATAU before_id harus ditentukan) (number, opsional)
    • before_id: ID dari sub-issue yang akan diprioritaskan sebelum (baik after_id ATAU before_id harus ditentukan) (number, opsional)
    • issue_number: Nomor issue induk (number, wajib)
    • method: Tindakan yang akan dilakukan pada satu sub-issue Opsinya adalah:
      • 'add' - menambahkan sub-issue ke issue induk di repositori GitHub.
      • 'remove' - menghapus sub-issue dari issue induk di repositori GitHub.
      • 'reprioritize' - mengubah urutan sub-issue dalam issue induk di repositori GitHub. Gunakan 'after_id' atau 'before_id' untuk menentukan posisi baru. Menulis hierarki issue. Untuk memindahkan sub-issue 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: Ketika true, mengganti issue induk saat ini dari sub-issue. Gunakan dengan metode 'add' saja. (boolean, opsional)
    • repo: Nama repositori (string, wajib)
    • sub_issue_id: ID dari sub-issue yang akan ditambahkan. ID tidak sama dengan nomor issue (number, wajib)
tag Labels
  • get_label - Mendapatkan label tertentu dari repositori

    • Cakupan Tantangan OAuth: 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 Tantangan OAuth: repo
    • color: Warna label sebagai kode hex 6 karakter tanpa prefiks '#' (misalnya, '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 - Mendaftar label dari repositori

    • Cakupan Tantangan OAuth: repo
    • owner: Pemilik repositori (nama pengguna atau nama organisasi) - wajib untuk semua operasi (string, wajib)
    • repo: Nama repositori - wajib untuk semua operasi (string, wajib)
bell Notifications - **dismiss_notification** - Menutup notifikasi - **Cakupan Tantangan OAuth**: `notifications` - `state`: Status baru dari notifikasi (dibaca/selesai) (string, wajib diisi) - `threadID`: ID dari thread notifikasi (string, wajib diisi)
  • get_notification_details - Mendapatkan detail notifikasi

    • Cakupan Tantangan OAuth: notifications
    • notificationID: ID dari notifikasi (string, wajib diisi)
  • list_notifications - Mendaftar notifikasi

    • Cakupan Tantangan OAuth: notifications
    • before: Hanya tampilkan notifikasi yang diperbarui sebelum waktu yang diberikan (format ISO 8601) (string, opsional)
    • filter: Filter notifikasi, gunakan default kecuali ditentukan lain. Notifikasi yang dibaca adalah notifikasi yang telah diakui oleh pengguna. Notifikasi partisipasi adalah notifikasi yang melibatkan pengguna secara langsung, seperti isu atau pull request yang telah dikomentari atau dibuat oleh pengguna. (string, opsional)
    • owner: Pemilik repositori opsional. Jika disediakan bersama repo, hanya notifikasi untuk repositori ini yang ditampilkan. (string, opsional)
    • page: Nomor halaman untuk paginasi (min 1) (number, opsional)
    • perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
    • repo: Nama repositori opsional. Jika disediakan bersama owner, hanya notifikasi untuk repositori ini yang ditampilkan. (string, opsional)
    • since: Hanya tampilkan notifikasi yang diperbarui setelah waktu yang diberikan (format ISO 8601) (string, opsional)
  • manage_notification_subscription - Mengelola langganan notifikasi

    • Cakupan Tantangan OAuth: notifications
    • action: Tindakan yang akan dilakukan: abaikan, pantau, atau hapus langganan notifikasi. (string, wajib diisi)
    • notificationID: ID dari thread notifikasi. (string, wajib diisi)
  • manage_repository_notification_subscription - Mengelola langganan notifikasi repositori

    • Cakupan Tantangan OAuth: notifications
    • action: Tindakan yang akan dilakukan: abaikan, pantau, atau hapus langganan notifikasi repositori. (string, wajib diisi)
    • owner: Pemilik akun dari repositori. (string, wajib diisi)
    • repo: Nama dari repositori. (string, wajib diisi)
  • mark_all_notifications_read - Menandai semua notifikasi sebagai dibaca

    • Cakupan Tantangan OAuth: notifications
    • lastReadAt: Menjelaskan titik terakhir notifikasi diperiksa (opsional). Default: Sekarang (string, opsional)
    • owner: Pemilik repositori opsional. Jika disediakan bersama repo, hanya notifikasi untuk repositori ini yang ditandai sebagai dibaca. (string, opsional)
    • repo: Nama repositori opsional. Jika disediakan bersama owner, hanya notifikasi untuk repositori ini yang ditandai sebagai dibaca. (string, opsional)
organization Organisasi
  • search_orgs - Mencari organisasi
    • Cakupan Tantangan OAuth: read: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, wajib diisi)
    • sort: Bidang pengurutan berdasarkan kategori (string, opsional)
project Proyek
  • projects_get - Mendapatkan detail sumber daya GitHub Projects

    • Cakupan Tantangan OAuth: read:project
    • field_id: ID dari 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", "Prioritas"]). Diselesaikan di sisi server menjadi ID bidang — berikan ini alih-alih 'fields' ketika Anda hanya mengetahui nama yang dapat dibaca manusia. Saling eksklusif dengan 'fields' — berikan salah satu, bukan 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 baik 'fields' maupun 'field_names' tidak disediakan, hanya bidang judul yang disertakan. Saling eksklusif dengan 'field_names' — berikan salah satu, bukan keduanya. Hanya digunakan untuk metode 'get_project_item'. (string[], opsional)
    • item_id: ID dari item. Diperlukan untuk metode 'get_project_item'. (number, opsional)
    • method: Metode yang akan dijalankan (string, wajib diisi)
    • owner: Pemilik (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, opsional)
    • owner_type: Jenis pemilik (pengguna atau org). Jika tidak disediakan, akan dideteksi 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)
    • view_id: ID node dari tampilan proyek. Diperlukan untuk metode 'get_project_view'. (string, opsional)
  • projects_list - Mendaftar sumber daya GitHub Projects

    • Cakupan Tantangan OAuth: 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", "Prioritas"]). Diselesaikan di sisi server menjadi ID bidang — berikan ini alih-alih 'fields' ketika Anda hanya mengetahui nama yang dapat dibaca manusia. Nama yang gagal diselesaikan mengembalikan kesalahan terstruktur. Saling eksklusif dengan 'fields' — berikan salah satu, bukan 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, bukan keduanya. Hanya digunakan untuk metode 'list_project_items'. (string[], opsional)
    • method: Tindakan yang akan dilakukan (string, wajib diisi)
    • owner: Pemilik (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, wajib diisi)
    • owner_type: Jenis 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', 'list_project_views', 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 - Mengelola GitHub Projects

    • Cakupan Tantangan OAuth: project
    • body: Isi dari 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)
    • filter: Filter tampilan tersimpan; abaikan saat pembaruan untuk mempertahankannya, atau berikan null untuk menghapusnya. (string | null, 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 item_id, atau (item_owner + item_repo + issue_number) untuk menyelesaikan item berdasarkan isu. (number, opsional)
    • item_owner: Pemilik (pengguna atau organisasi) dari 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: Jenis item, baik issue atau pull_request. Diperlukan untuk metode 'add_project_item'. (string, opsional)
    • items: Item yang akan diperbarui dengan 'updated_field' tingkat atas. Diperlukan untuk 'update_project_items'; lebih disukai daripada memanggil 'update_project_item' dalam perulangan. Setiap entri harus cocok dengan tepat satu varian referensi: 'node_id', 'item_id' numerik, atau 'item_owner' + 'item_repo' + 'issue_number'. Batas: 50 item per panggilan. (object[], 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 saat Anda memerlukan iterasi dengan durasi bervariasi, jeda di antaranya, atau judul spesifik. Jika tidak, abaikan: GitHub otomatis membuat tiga iterasi dengan durasi 'iteration_duration' hari mulai dari 'start_date', yang merupakan pilihan tepat untuk sebagian besar kasus. (object[], opsional)
    • layout: Tata letak tampilan; diperlukan saat membuat tampilan. (string, opsional)
    • method: Metode yang akan dijalankan (string, wajib diisi)
    • name: Nama tampilan; diperlukan saat membuat tampilan. (string, opsional)
    • owner: Pemilik proyek (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, wajib diisi)
    • owner_type: Jenis pemilik (pengguna atau org). Diperlukan untuk metode 'create_project'. Jika tidak disediakan untuk metode lain, akan dideteksi 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 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 dari 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: Bidang/nilai yang akan diterapkan, menggunakan {"id": 123, "value": ...} atau {"name": "Status", "value": ...}; null menghapus bidang. Diperlukan untuk 'update_project_item' dan 'update_project_items', di mana satu bidang/nilai tingkat atas berlaku untuk setiap item dalam satu batch. Untuk bidang SINGLE_SELECT 'update_project_item', bentuk nama menerima nama opsi; bentuk ID mengharapkan ID opsi. (object, opsional)
    • view_id: ID node tampilan proyek untuk pembaruan atau penghapusan; harus dimiliki oleh owner/project_number. (string, opsional)
    • visible_field_names: Nama bidang proyek yang diurutkan untuk ditampilkan saat membuat atau mengganti saat pembaruan; abaikan saat pembaruan untuk mempertahankannya, atau berikan [] untuk mengatur ulang. Saling eksklusif dengan visible_fields. Roadmap hanya menerima []. (string[], opsional)
    • visible_fields: ID basis data bidang proyek yang diurutkan untuk ditampilkan saat membuat atau mengganti saat pembaruan; abaikan saat pembaruan untuk mempertahankannya, atau berikan [] untuk mengatur ulang. Saling eksklusif dengan visible_field_names. Roadmap hanya menerima []. (string[], opsional)
git-pull-request Pull Requests
  • add_comment_to_pending_review - Menambahkan komentar tinjauan ke tinjauan pull request tertunda terbaru dari peminta

    • OAuth Challenge Scopes: repo
    • body: Teks komentar tinjauan (string, wajib)
    • line: Baris blob di diff pull request yang menjadi sasaran komentar. Untuk komentar multi-baris, baris terakhir dari rentang tersebut (angka, opsional)
    • owner: Pemilik repositori (string, wajib)
    • path: Jalur relatif ke file yang memerlukan komentar (string, wajib)
    • pullNumber: Nomor pull request (angka, wajib)
    • repo: Nama repositori (string, wajib)
    • side: Sisi diff yang akan dikomentari. LEFT menunjukkan keadaan sebelumnya, RIGHT menunjukkan keadaan baru (string, opsional)
    • startLine: Untuk komentar multi-baris, baris pertama dari rentang yang menjadi sasaran komentar (angka, opsional)
    • startSide: Untuk komentar multi-baris, sisi awal diff yang menjadi sasaran komentar. LEFT menunjukkan keadaan sebelumnya, RIGHT menunjukkan keadaan baru (string, opsional)
    • subjectType: Tingkat di mana komentar ditargetkan (string, wajib)
  • add_reply_to_pull_request_comment - Menambahkan balasan ke komentar pull request

    • OAuth Challenge Scopes: repo
    • body: Teks balasan. Wajib kecuali reaksi diberikan. (string, opsional)
    • commentId: ID numerik dari komentar tinjauan pull request untuk dibalas atau diberi reaksi. Gunakan nomor dari jangkar #discussion_r..., bukan ID node thread GraphQL (PRRT_...). (angka, wajib)
    • owner: Pemilik repositori (string, wajib)
    • pullNumber: Nomor pull request. Wajib saat body diberikan. (angka, opsional)
    • reaction: Reaksi emoji untuk ditambahkan. Wajib kecuali body diberikan. (string, opsional)
    • repo: Nama repositori (string, wajib)
  • create_pull_request - Membuka pull request baru

    • OAuth Challenge Scopes: repo
    • base: Cabang untuk digabungkan (string, wajib)
    • body: Deskripsi PR (string, opsional)
    • draft: Buat sebagai PR draf (boolean, opsional)
    • head: Cabang yang berisi perubahan (string, wajib)
    • maintainer_can_modify: Izinkan edit oleh maintainer (boolean, opsional)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
    • reviewers: Nama pengguna GitHub atau peninjau tim ORG/team-slug untuk meminta tinjauan (string[], opsional)
    • title: Judul PR (string, wajib)
  • list_pull_requests - Mendaftar pull request

    • OAuth Challenge Scopes: repo
    • base: Filter berdasarkan cabang dasar (string, opsional)
    • direction: Arah pengurutan (string, opsional)
    • fields: Subset bidang yang akan dikembalikan untuk setiap pull request. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons saat Anda hanya memerlukan bidang tertentu; menghilangkan 'body' khususnya mengurangi data per-hasil terbesar. (string[], opsional)
    • head: Filter berdasarkan pengguna/org head dan cabang (string, opsional)
    • 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)
    • sort: Urutkan berdasarkan (string, opsional)
    • state: Filter berdasarkan status (string, opsional)
  • merge_pull_request - Menggabungkan pull request

    • OAuth Challenge Scopes: repo
    • commit_message: Detail tambahan untuk commit penggabungan (string, opsional)
    • commit_title: Judul untuk commit penggabungan (string, opsional)
    • merge_method: Metode penggabungan (string, opsional)
    • owner: Pemilik repositori (string, wajib)
    • pullNumber: Nomor pull request (angka, wajib)
    • repo: Nama repositori (string, wajib)
  • pull_request_read - Mendapatkan detail untuk satu pull request

    • OAuth Challenge Scopes: 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:
      1. get - Mendapatkan detail pull request tertentu.
      2. get_diff - Mendapatkan diff dari pull request.
      3. get_status - Mendapatkan status commit gabungan dari head commit di pull request.
      4. get_files - Mendapatkan daftar file yang diubah di pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
      5. get_commits - Mendapatkan daftar commit pada pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
      6. get_review_comments - Mendapatkan thread tinjauan pada pull request. Setiap thread berisi komentar tinjauan yang dikelompokkan secara logis pada lokasi kode yang sama selama tinjauan pull request. Mengembalikan thread dengan metadata (isResolved, isOutdated, isCollapsed) dan komentar terkaitnya. Gunakan paginasi berbasis kursor (perPage, after) untuk mengontrol hasil.
      7. get_reviews - Mendapatkan tinjauan pada pull request. Saat diminta komentar tinjauan, gunakan metode get_review_comments. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
      8. get_comments - Mendapatkan komentar pada pull request. Gunakan ini jika pengguna tidak secara khusus menginginkan komentar tinjauan. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
      9. get_check_runs - Mendapatkan check runs untuk head commit dari pull request. Check runs adalah pekerjaan dan pemeriksaan CI/CD individual yang berjalan pada PR. (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)
    • pullNumber: Nomor pull request (angka, wajib)
    • repo: Nama repositori (string, wajib)
  • pull_request_review_write - Operasi tulis (buat, kirim, hapus) pada tinjauan pull request

    • OAuth Challenge Scopes: repo
    • body: Teks komentar tinjauan (string, opsional)
    • commitID: SHA dari commit yang akan ditinjau (string, opsional)
    • event: Tindakan tinjauan yang akan dilakukan. (string, opsional)
    • method: Operasi tulis yang akan dilakukan pada tinjauan pull request. (string, wajib)
    • owner: Pemilik repositori (string, wajib)
    • pullNumber: Nomor pull request (angka, wajib)
    • repo: Nama repositori (string, wajib)
    • threadId: ID node dari thread tinjauan (misalnya, PRRT_kwDOxxx). Wajib untuk metode resolve_thread dan unresolve_thread. Dapatkan ID thread dari pull_request_read dengan metode get_review_comments. (string, opsional)
  • search_pull_requests - Mencari pull request

    • OAuth Challenge Scopes: repo
    • fields: Subset bidang yang akan dikembalikan untuk setiap hasil pull request. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons saat Anda hanya memerlukan bidang tertentu; menghilangkan 'body', 'reactions', dan 'labels' khususnya mengurangi data per-hasil terbesar. (string[], opsional)
    • order: Urutan pengurutan (string, opsional)
    • owner: Pemilik repositori opsional. Jika diberikan dengan repo, hanya pull request untuk repositori ini yang didaftarkan. (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 pull request GitHub (string, wajib)
    • repo: Nama repositori opsional. Jika diberikan dengan owner, hanya pull request untuk repositori ini yang didaftarkan. (string, opsional)
    • sort: Bidang pengurutan berdasarkan jumlah kecocokan kategori, default ke kecocokan terbaik (string, opsional)
  • update_pull_request - Mengedit pull request

    • OAuth Challenge Scopes: repo
    • base: Nama cabang dasar baru (string, opsional)
    • body: Deskripsi baru (string, opsional)
    • draft: Menandai pull request sebagai draf (true) atau siap untuk ditinjau (false) (boolean, opsional)
    • maintainer_can_modify: Izinkan edit oleh maintainer (boolean, opsional)
    • owner: Pemilik repositori (string, wajib)
    • pullNumber: Nomor pull request yang akan diperbarui (angka, wajib)
    • repo: Nama repositori (string, wajib)
    • reviewers: Nama pengguna GitHub atau peninjau tim ORG/team-slug untuk meminta tinjauan (string[], opsional)
    • state: Status baru (string, opsional)
    • title: Judul baru (string, opsional)
  • update_pull_request_branch - Memperbarui cabang pull request

    • OAuth Challenge Scopes: repo
    • expectedHeadSha: SHA yang diharapkan dari ref HEAD pull request (string, opsional)
    • owner: Pemilik repositori (string, wajib)
    • pullNumber: Nomor pull request (angka, wajib)
    • repo: Nama repositori (string, wajib)
repo Repositories
  • create_branch - Membuat cabang

    • OAuth Challenge Scopes: repo
    • branch: Nama untuk cabang baru (string, wajib)
    • from_branch: Cabang sumber (default ke default repositori) (string, opsional)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
  • create_or_update_file - Membuat atau memperbarui file

    • OAuth Challenge Scopes: repo, workflow
    • allow_symlink_write: Setel true untuk memperbarui tautan simbolik itu sendiri; konten harus berupa jalur target barunya. (boolean, opsional)
    • branch: Cabang untuk membuat/memperbarui file (string, wajib)
    • content: Konten file, persis seperti yang seharusnya muncul setelah ditulis. Jangan encode base64; server ini melakukannya sebelum memanggil REST API. (string, wajib)
    • message: Pesan commit (string, wajib)
    • owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
    • path: Jalur tempat membuat/memperbarui file (string, wajib)
    • repo: Nama repositori (string, wajib)
    • sha: SHA blob dari file yang diganti. Wajib jika file sudah ada. (string, opsional)
  • create_repository - Membuat repositori

    • OAuth Challenge Scopes: repo
    • autoInit: Inisialisasi dengan README (boolean, opsional)
    • description: Deskripsi repositori (string, opsional)
    • name: Nama repositori (string, wajib)
    • organization: Organisasi untuk membuat repositori (hilangkan untuk membuat di akun pribadi Anda) (string, opsional)
    • private: Apakah repositori harus privat. Default ke true (privat) saat dihilangkan. (boolean, opsional)
  • delete_file - Menghapus file

    • OAuth Challenge Scopes: repo, workflow
    • branch: Cabang untuk menghapus file (string, wajib)
    • message: Pesan commit (string, wajib)
    • owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
    • path: Jalur ke file yang akan dihapus (string, wajib)
    • repo: Nama repositori (string, wajib)
  • delete_repository - Hapus repositori

    • OAuth Challenge Scopes: delete_repo, repo
    • owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
    • repo: Nama repositori (string, wajib)
  • fork_repository - Fork repositori

    • OAuth Challenge Scopes: repo
    • organization: Organisasi tujuan fork (string, opsional)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
  • get_commit - Dapatkan detail commit

    • OAuth Challenge Scopes: 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, 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)
    • sha: SHA commit, nama cabang, atau nama tag (string, wajib)
  • get_file_contents - Dapatkan isi file atau direktori

    • OAuth Challenge Scopes: repo
    • fields: Subset bidang yang dikembalikan untuk setiap entri saat path adalah direktori. Jika dihilangkan, semua bidang dikembalikan. Diabaikan saat path adalah satu file. Gunakan ini untuk mengurangi ukuran respons saat mencantumkan direktori dan Anda hanya memerlukan bidang tertentu, misalnya hanya 'name' dan 'type'. (string[], opsional)
    • owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
    • path: Path ke file/direktori (string, opsional)
    • ref: Menerima ref git opsional seperti refs/tags/{tag}, refs/heads/{branch} atau refs/pull/{pr_number}/head (string, opsional)
    • repo: Nama repositori (string, wajib)
    • sha: Menerima SHA commit opsional. Jika ditentukan, akan digunakan sebagai pengganti ref (string, opsional)
  • get_latest_release - Dapatkan rilis terbaru

    • OAuth Challenge Scopes: repo
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
  • get_release_by_tag - Dapatkan rilis berdasarkan nama tag

    • OAuth Challenge Scopes: repo
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
    • tag: Nama tag (misalnya, 'v1.0.0') (string, wajib)
  • get_tag - Dapatkan detail tag

    • OAuth Challenge Scopes: repo
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
    • tag: Nama tag (string, wajib)
  • list_branches - Daftar cabang

    • OAuth Challenge Scopes: 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)
  • list_commits - Daftar commit

    • OAuth Challenge Scopes: repo
    • author: Nama pengguna atau alamat email penulis untuk memfilter commit (string, opsional)
    • fields: Subset bidang yang dikembalikan untuk setiap commit. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons saat Anda hanya memerlukan bidang tertentu, misalnya hanya 'sha' dan 'html_url'. (string[], opsional)
    • owner: Pemilik repositori (string, wajib)
    • page: Nomor halaman untuk paginasi (min 1) (number, opsional)
    • path: Hanya commit yang berisi path file ini yang akan dikembalikan (string, opsional)
    • perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
    • repo: Nama repositori (string, wajib)
    • sha: SHA commit, nama cabang atau tag untuk mencantumkan commit. Jika tidak disediakan, menggunakan cabang default repositori. Jika SHA commit disediakan, akan mencantumkan 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

    • OAuth Challenge Scopes: repo
    • fields: Subset bidang yang dikembalikan untuk setiap rilis. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons saat Anda hanya memerlukan bidang tertentu; menghilangkan 'body' khususnya menghapus data per rilis terbesar. (string[], opsional)
    • 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)
  • list_repository_collaborators - Daftar kolaborator repositori

    • OAuth Challenge Scopes: repo
    • affiliation: Filter berdasarkan afiliasi. Dapat berupa salah satu dari: 'outside' (kolaborator luar), 'direct' (semua dengan izin terlepas dari keanggotaan organisasi), 'all' (semua kolaborator). Default: 'all' (string, opsional)
    • owner: Pemilik repositori (string, wajib)
    • 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, wajib)
  • list_tags - Daftar tag

    • OAuth Challenge Scopes: 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

    • OAuth Challenge Scopes: repo, workflow
    • branch: Cabang tujuan dorong (string, wajib)
    • files: Array objek file yang akan didorong, setiap objek dengan path (string) dan konten (string) (object[], wajib)
    • message: Pesan commit (string, wajib)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
  • search_code - Cari kode

    • OAuth Challenge Scopes: repo
    • fields: Subset bidang yang dikembalikan untuk setiap hasil pencarian kode. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons saat Anda hanya memerlukan bidang tertentu; menghilangkan 'repository' dan 'text_matches' khususnya menghapus data per hasil terbesar. (string[], opsional)
    • 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)
    • sort: Bidang pengurutan ('indexed' saja) (string, opsional)
  • search_commits - Cari commit

    • OAuth Challenge Scopes: 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)
    • query: Kueri pencarian commit (REST pencarian commit GitHub). Mencari pesan commit hanya di cabang default. Batasi pencarian dengan repo:owner/repo, org:, atau user: (kueri tanpa kualifikasi lingkup cocok 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 committer (default ke pencocokan terbaik) (string, opsional)
  • search_repositories - Cari repositori

    • OAuth Challenge Scopes: repo
    • minimal_output: Kembalikan informasi repositori minimal (default: true). Saat 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)
    • query: Kueri pencarian repositori. Contoh: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Mendukung sintaks pencarian lanjutan untuk pemfilteran presisi. (string, wajib)
    • sort: Urutkan repositori berdasarkan bidang, default ke pencocokan terbaik (string, opsional)
shield-lock Perlindungan Rahasia
  • get_secret_scanning_alert - Dapatkan peringatan pemindaian rahasia

    • OAuth Challenge Scopes: 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

    • OAuth Challenge Scopes: 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 jenis rahasia yang dipisahkan koma untuk dikembalikan. Semua pola rahasia default dikembalikan. Untuk mengembalikan pola generik, berikan nama token dalam parameter. (string, opsional)
    • state: Filter berdasarkan status (string, opsional)
shield Advisory Keamanan
  • get_global_security_advisory - Dapatkan advisory keamanan global

    • OAuth Challenge Scopes: security_events
    • ghsaId: ID Advisory Keamanan GitHub (format: GHSA-xxxx-xxxx-xxxx). (string, wajib)
  • list_global_security_advisories - Menampilkan daftar advisori keamanan global

    • OAuth Challenge Scopes: security_events
    • affects: Menyaring advisori berdasarkan paket atau versi yang terpengaruh (misalnya "package1,package2@1.0.0"). (string, opsional)
    • cveId: Menyaring berdasarkan ID CVE. (string, opsional)
    • cwes: Menyaring berdasarkan ID Common Weakness Enumeration (misalnya ["79", "284", "22"]). (string[], opsional)
    • ecosystem: Menyaring berdasarkan ekosistem paket. (string, opsional)
    • ghsaId: Menyaring berdasarkan ID GitHub Security Advisory (format: GHSA-xxxx-xxxx-xxxx). (string, opsional)
    • isWithdrawn: Apakah hanya mengembalikan advisori yang ditarik. (boolean, opsional)
    • modified: Menyaring berdasarkan tanggal publikasi atau pembaruan atau rentang tanggal (tanggal ISO 8601 atau rentang). (string, opsional)
    • published: Menyaring berdasarkan tanggal publikasi atau rentang tanggal (tanggal ISO 8601 atau rentang). (string, opsional)
    • severity: Menyaring berdasarkan tingkat keparahan. (string, opsional)
    • type: Jenis advisori. (string, opsional)
    • updated: Menyaring berdasarkan tanggal pembaruan atau rentang tanggal (tanggal ISO 8601 atau rentang). (string, opsional)
  • list_org_repository_security_advisories - Menampilkan daftar advisori keamanan repositori organisasi

    • OAuth Challenge Scopes: security_events
    • direction: Arah pengurutan. (string, opsional)
    • org: Login organisasi. (string, wajib)
    • sort: Bidang pengurutan. (string, opsional)
    • state: Menyaring berdasarkan status advisori. (string, opsional)
  • list_repository_security_advisories - Menampilkan daftar advisori keamanan repositori

    • OAuth Challenge Scopes: security_events
    • direction: Arah pengurutan. (string, opsional)
    • owner: Pemilik repositori. (string, wajib)
    • repo: Nama repositori. (string, wajib)
    • sort: Bidang pengurutan. (string, opsional)
    • state: Menyaring berdasarkan status advisori. (string, opsional)
star Stargazers
  • list_starred_repositories - Menampilkan daftar repositori yang dibintangi

    • OAuth Challenge Scopes: 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. Dapat berupa 'created' (saat repositori dibintangi) atau 'updated' (saat repositori terakhir didorong). (string, opsional)
    • username: Nama pengguna untuk menampilkan daftar repositori yang dibintangi. Default ke pengguna yang terautentikasi. (string, opsional)
  • star_repository - Membintangi repositori

    • OAuth Challenge Scopes: repo
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
  • unstar_repository - Membatalkan bintang repositori

    • OAuth Challenge Scopes: repo
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
people Users
  • search_users - Mencari pengguna
    • OAuth Challenge Scopes: 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)
    • query: Kueri pencarian pengguna. Contoh: 'john smith', 'location:seattle', 'followers:>100'. Pencarian otomatis dibatasi ke type:user. (string, wajib)
    • sort: Mengurutkan pengguna berdasarkan jumlah pengikut atau repositori, atau saat orang tersebut bergabung dengan GitHub. (string, opsional)

Alat Tambahan di Remote GitHub MCP Server

Copilot
  • create_pull_request_with_copilot - Melakukan 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 terperinci tentang tugas yang akan dilakukan (misalnya, '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 (misalnya, cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, default ke cabang default repositori (string, opsional)
Copilot Spaces
  • Catatan autentikasi

    • PAT granular halus tidak disembunyikan oleh pemfilteran cakupan PAT klasik, sehingga alat ini mungkin tetap muncul bahkan ketika token tidak dapat menggunakannya.
    • Untuk ruang milik organisasi, PAT granular halus 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 diperlakukan sebagai tidak ditemukan.
  • get_copilot_space - Mendapatkan Copilot Space

    • owner: Pemilik ruang. (string, wajib)
    • name: Nama ruang. (string, wajib)
  • list_copilot_spaces - Menampilkan 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 tidak diedit. Anda HARUS SELALU membiarkan pesan pengguna apa adanya, Anda tidak boleh memodifikasinya. (string, wajib)

Mode Hanya-Baca

Untuk menjalankan server dalam mode hanya-baca, Anda dapat menggunakan flag --read-only. Ini hanya akan menawarkan alat hanya-baca, mencegah modifikasi apa pun pada repositori, masalah, pull request, dll.

./github-mcp-server --read-only

Saat menggunakan Docker, Anda dapat meneruskan mode hanya-baca sebagai variabel lingkungan:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_READ_ONLY=1 \
  ghcr.io/github/github-mcp-server

Mode Lockdown

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 pribadi tidak terpengaruh, dan kolaborator tetap memiliki akses penuh ke konten mereka sendiri.

Mode lockdown adalah filter konten upaya terbaik yang dimaksudkan untuk mengurangi risiko injeksi prompt dari konten repositori yang tidak tepercaya (masalah, pull request, komentar, commit, dll.). Ini bukan batas otorisasi: ini tidak mengubah apa yang dapat dibaca atau ditulis oleh kredensial GitHub yang mendasarinya, dan konten yang ditahan dari respons alat yang difilter mungkin masih dapat diakses melalui alat lain atau akses API GitHub langsung dengan kredensial yang sama.

Sebagai pengecualian yang disengaja, konten yang dibuat oleh sekumpulan kecil akun bot tepercaya (saat ini github-actions[bot] dan copilot) selalu diperlakukan sebagai aman, terlepas dari akses push. Ini menghindari pemfilteran keluaran otomatisasi rutin (misalnya commit atau komentar yang dihasilkan CI) yang seharusnya ditahan dalam mode lockdown.

./github-mcp-server --lockdown-mode

Saat berjalan dengan Docker, atur variabel lingkungan yang sesuai:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_LOCKDOWN_MODE=1 \
  ghcr.io/github/github-mcp-server

Dalam mode HTTP, flag ini (atau GITHUB_LOCKDOWN_MODE) adalah batas atas: header permintaan X-MCP-Lockdown dapat mengaktifkan mode lockdown ketika operator belum melakukannya, tetapi tidak dapat menonaktifkan mode lockdown yang telah diaktifkan operator. Lihat Panduan Konfigurasi Server untuk detailnya.

Perilaku mode lockdown tergantung pada alat yang dipanggil.

Alat-alat berikut akan mengembalikan kesalahan ketika penulis tidak memiliki akses push:

  • issue_read:get
  • pull_request_read:get
  • pull_request_read:get_diff
  • pull_request_read:get_files
  • pull_request_read:get_commits

Alat-alat berikut akan memfilter 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. Misalnya:

{
  "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 dengan flag --export-translations.

Flag ini akan mempertahankan terjemahan/timpaan yang telah Anda buat, sambil menambahkan terjemahan baru apa pun yang telah ditambahkan ke biner sejak terakhir kali Anda mengekspor.

./github-mcp-server --export-translations
cat github-mcp-server-config.json

Anda juga dapat menggunakan variabel ENV untuk menimpa deskripsi. Nama variabel lingkungan sama dengan kunci dalam file JSON, dengan awalan GITHUB_MCP_ dan semua 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 timpaan yang sama dapat digunakan untuk menyesuaikan bidang name dan title server MCP dalam respons inisialisasi. Ini berguna saat menjalankan beberapa instance GitHub MCP Server (misalnya, satu untuk github.com dan satu untuk GitHub Enterprise Server) sehingga agen dapat membedakannya.

KunciVariabel LingkunganDefault
SERVER_NAMEGITHUB_MCP_SERVER_NAMEgithub-mcp-server
SERVER_TITLEGITHUB_MCP_SERVER_TITLEGitHub MCP Server

Misalnya, untuk mengonfigurasi instance server untuk GitHub Enterprise Server:

{
  "SERVER_NAME": "ghes-mcp-server",
  "SERVER_TITLE": "GHES MCP Server"
}

Atau menggunakan variabel lingkungan:

export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"

Penggunaan Pustaka

API Go yang diekspor dari modul ini saat ini harus dianggap tidak stabil, dan dapat mengalami perubahan yang merusak. Di masa depan, kami dapat menawarkan stabilitas; silakan ajukan masalah jika ada kasus penggunaan di mana ini akan berharga.

Berkontribusi

Kontribusi diterima. Sebelum membuka pull request, silakan baca panduan kontribusi untuk instruksi pengaturan, 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 masalah yang ada sebelum membuka yang baru.

Keamanan

Jangan laporkan kerentanan keamanan melalui masalah publik. Ikuti instruksi dalam kebijakan keamanan untuk melaporkan kerentanan secara bertanggung jawab.

Lisensi

Proyek ini dilisensikan di bawah ketentuan lisensi open source MIT. Silakan merujuk ke MIT untuk ketentuan lengkap.