Push Tetap 403 Padahal Token Baru? Cara Mengatasi GitHub Personal Access Token Tidak Bekerja

Push ditolak dengan 403 padahal token GitHub baru biasanya bukan tokennya yang salah, melainkan Git masih memakai credential lama yang tersimpan di Windows Credential Manager atau macOS Keychain. Periksa remote, scope token, dan credential tersimpan sebelum membuat token ketiga atau keempat.

Penyebab GitHub Personal Access Token Tidak Bekerja

Git dan GitHub berperan beda di sini. Git menjalankan push, GitHub memeriksa izin token lewat HTTPS. Kalau salah satu tidak cocok, push gagal walau token masih baru.

  • Token kedaluwarsa atau dicabut: tanggal expiration lewat atau token sudah di-revoke.
  • Scope kurang: token classic tanpa scope repo, atau fine-grained PAT tanpa akses Contents: read and write ke repository tujuan.
  • SSO belum diotorisasi: repository organisasi memakai SAML SSO, tombol Authorize belum diklik.
  • Credential lama menimpa token baru: Git mengambil username dan token lama dari credential helper, bukan dari input manual.

Pesan error membantu mempersempit penyebab. 401 Bad credentials mengarah ke token salah atau kedaluwarsa. 403 Permission denied mengarah ke scope kurang atau bukan collaborator. Password authentication was removed berarti Git mengirim password akun, bukan PAT. Repository not found sering berarti token tidak punya akses ke repository private tersebut.

Bedakan juga jalur autentikasinya. Masalah PAT HTTPS tidak diperbaiki dengan key SSH atau perintah gh auth login, karena ketiganya menyimpan credential di tempat berbeda.

Tabel Troubleshooting Token GitHub

Cocokkan pesan yang muncul dengan baris berikut.

Gejala Penyebab Solusi
403 permission denied Scope kurang atau bukan collaborator Tambah akses repo, minta akses tulis
Password authentication removed Memakai password akun Ganti password dengan PAT
401 Bad credentials Token salah, kedaluwarsa, revoke Buat ulang token, update credential
Repository not found Token tanpa akses repo private Periksa owner, nama repo, akses token

Cara Memperbaiki PAT yang Ditolak GitHub

  1. pastikan remote memakai HTTPS, bukan SSH.
  2. Periksa masa berlaku, scope, dan status SSO token di pengaturan GitHub.
  3. Hapus credential GitHub lama dari Credential Manager atau Keychain.
  4. Tolak credential lama dari Git, lalu push ulang dengan token baru.
git remote -v
git credential reject
protocol=https
host=github.com

git push origin main

Saat Git meminta password, tempel PAT ke kolom password. Untuk token baru, simpan dengan placeholder seperti di catatan pribadi, jangan di commit atau README. Jika memakai fine-grained PAT, pilih hanya repository yang dibutuhkan.

FAQ

Kenapa token baru tetap ditolak saat push?

Git kemungkinan masih mengirim token lama dari credential helper, jadi hapus dulu credential tersimpan tersebut.

Apakah token lama harus dihapus setelah membuat token baru?

Ya, hapus dari credential helper dan revoke token lama di GitHub agar tidak tertukar.

Kapan harus revoke token GitHub?

Revoke segera kalau token bocor ke commit, log, screenshot, atau tidak lagi dipakai.