EN: Read in English
Dunia C4: Perisai Pipeline
Hak paling sedikit dengan permissions
Anda akan belajar: cara beri setiap job kunci yang ia perlukan sahaja dengan permissions.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Job release anda jadi merah dengan ralat ini:
HTTP 403: Resource not accessible by integration
Apa maksudnya?
Pilih satu jawapan.
Tengok
Setiap job dapat kad kunci: GITHUB_TOKEN: Kunci jangka pendek yang setiap job dapat. Ia tamat bila job selesai.. permissions: pilih pintunya. Buka hanya yang job perlukan. Itulah least privilege: Beri setiap pekerja kunci untuk stesennya sahaja. Tiada lebih. (hak paling sedikit).
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Tengok
permissions: {} di atas tak beri sebarang kunci. Kemudian setiap job minta kuncinya sendiri. Senaraikan sesetengah kunci, dan kunci lain jadi none.
Tekan baris yang benarkan job buat release.
0 daripada 1 dijumpai
Cuba
Push tag v1.4.0. Langkah release ditolak. Pilih pembaikan paling kecil yang jadikannya hijau.
Tali sawat merah. Betulkan baris kuning, kemudian run semula.
Fail workflow .github/workflows/release.yml
name: Release on: push: tags: ['v*'] permissions: contents: read jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - run: npm ci - run: npm test - run: gh release create "$GITHUB_REF_NAME" --generate-notes env: GH_TOKEN: ${{ github.token }}
Kuning: baris 5–6. Anda boleh ubah baris ini.
Tali sawat
Push tag v1.4.0 · v1.4.0
Petunjuk
Release tinggal bersama kod anda: contents.Teka
Job PR anda ada pull-requests: write. Orang asing buka PR dari fork. Ia jalan pada pull_request. Boleh ia komen?
Pilih satu jawapan.
Cuba
Bina ia. Fail hanya baca kod. Job tambah satu pintu: komen PR. Kunci job ganti kunci fail, jadi senaraikan kedua-duanya.
Tekan blok untuk tambah. Susun ikut urutan.
Blok
Workflow anda
Tekan satu blok di atas untuk mula.
Fail workflow .github/workflows/
name: PR report
Apa yang berjalan
Belum ada apa untuk dijalankan.
Petunjuk
Pencetus, kunci fail, job, kunci job, kemudian langkah.Anda berjaya!
Kini anda boleh beri setiap job kunci yang ia perlukan sahaja.
Nak tahu lebih (pilihan)
Tetapan repo juga pilih kunci lalai: baca sahaja, atau baca dan tulis. Jangan percaya nilai lalai. Tulis permissions: dalam setiap workflow. Tip: pecahkan release kepada job test dan job release. Hanya job release dapat contents: write. Latihan sebenar: tambah permissions: dengan contents: read pada satu workflow anda.
English
Your release job turns red with this error:
HTTP 403: Resource not accessible by integration
What does it mean?
Each job gets a key card: the GITHUB_TOKEN. permissions: picks its doors. Open only what the job needs. That is least privilege.
permissions: {} at the top gives no keys. Then each job asks for its own. List some keys, and every other key becomes none.
Push tag v1.4.0. The release step is refused. Pick the smallest fix that turns it green.
Your PR job has pull-requests: write. A stranger opens a PR from a fork. It runs on pull_request. Can it comment?
Build it. The file reads code only. The job adds one door: PR comments. Job keys replace the file’s keys, so list both.
You can now give each job only the keys it needs.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Workflow syntax: permissions · GITHUB_TOKEN · Secure use reference
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?