Skip to content
Apothem
Keamanan

Proteksi branch

Proteksi branch Apothem pada main: aturan proteksi yang aktif, pemeriksaan status wajibnya, dan pemeriksaan yang menunggu untuk ditambahkan.

Branch main Apothem dilindungi oleh aturan proteksi branch GitHub klasik. Repositori tidak memiliki ruleset. Proteksi ini menegakkan disiplin set-perubahan yang dideklarasikan di rules/production-ready-prs.md dan memasok pemeriksaan Branch-Protection dan Code-Review OpenSSF Scorecard.

Halaman ini mencatat pengaturan yang aktif secara persis, sebagaimana terakhir dibaca dari API GitHub pada 2026-10-07. Pengaturan yang dimaksudkan pemelihara tetapi belum diterapkan hanya muncul di bawah Perubahan pemelihara yang tertunda.

Pengaturan proteksi

PengaturanField APINilai aktifEfek
Wajibkan pull request sebelum mergerequired_pull_request_reviews (ada)✅Perubahan mencapai main melalui pull request.
Tinjauan persetujuan yang diwajibkanrequired_approving_review_count0Pull request di-merge tanpa tinjauan yang menyetujui. Lihat Model pemelihara tunggal.
Buang persetujuan usang pada commit barudismiss_stale_reviews✅Persetujuan yang diberikan sebelum push baru tidak lagi dihitung.
Wajibkan tinjauan dari Code Ownersrequire_code_owner_reviews❌Mengaktifkan ini sebelum pemelihara kedua bergabung membuat pull request pemelihara tunggal menemui jalan buntu.
Wajibkan persetujuan atas push terbaru yang dapat ditinjaurequire_last_push_approval❌GitHub mewajibkan persetujuan itu datang dari orang selain pelaku push, yang tidak dapat disediakan oleh pemelihara tunggal.
Wajibkan pemeriksaan status lulusrequired_status_checks✅12 konteks yang tercantum di bawah Pemeriksaan status wajib harus lulus.
Wajibkan branch dalam keadaan terkini sebelum mergerequired_status_checks.strict❌Pull request dapat di-merge ketika pemeriksaan wajibnya lulus terhadap main yang lebih lama. Alur kerja yang berjalan pada push ke main kemudian menguji hasil merge tersebut.
Wajibkan resolusi percakapan sebelum mergerequired_conversation_resolution✅Thread tinjauan yang terbuka memblokir merge.
Wajibkan commit yang ditandatanganirequired_signatures❌Commit rilis ditandatangani secara lokal. Penegakan menunggu hingga dokumentasi onboarding kontributor menjelaskan penyiapan penandatanganan SSH atau GPG.
Wajibkan riwayat linearrequired_linear_history✅Menjaga riwayat publik main tetap satu garis.
Kunci branchlock_branch❌main menerima merge.
Jangan izinkan melewati pengaturan di atasenforce_admins❌Pengaturan di atas tidak mengikat admin repositori. Admin dapat melakukan merge tanpa pemeriksaan wajib atau push langsung ke main.
Izinkan force pushallow_force_pushes❌Force push ke main diblokir untuk semua orang, termasuk admin.
Izinkan penghapusanallow_deletions❌Tidak ada yang dapat menghapus main, termasuk admin.

Model pemelihara tunggal

Repositori memiliki satu pemelihara. GitHub menyatakan: "Penulis pull request tidak dapat menyetujui pull request mereka sendiri." Karena itu, jumlah persetujuan wajib di atas 0 akan memblokir setiap pull request pemelihara. Aturan aktif mewajibkan pull request dengan 0 persetujuan dan membiarkan enforce_admins nonaktif.

Bagi siapa pun tanpa izin admin, merge tetap memerlukan pemeriksaan status wajib yang hijau, percakapan tinjauan yang terselesaikan, dan riwayat linear. Force push dan penghapusan main tetap diblokir untuk setiap akun.

Ketika pemelihara kedua bergabung, pengaturan yang lebih kuat adalah setidaknya satu persetujuan wajib, persetujuan push terbaru, tinjauan CODEOWNERS, dan enforce_admins aktif. Seremoni merge pemelihara tunggal hanya berlaku untuk proteksi yang mensyaratkan persetujuan dan memberlakukannya bagi admin.

Pemeriksaan status wajib

Masing-masing dari 12 konteks ini diwajibkan, dengan GitHub Actions (app ID 15368) sebagai sumbernya:

quality / ubuntu-latest / py3.10
quality / ubuntu-latest / py3.11
quality / ubuntu-latest / py3.12
quality / ubuntu-latest / py3.13
quality / ubuntu-latest / py3.14
quality / windows-latest / py3.10
quality / windows-latest / py3.11
quality / windows-latest / py3.12
quality / windows-latest / py3.13
quality / windows-latest / py3.14
coverage
Require Signed-off-by
KonteksAlur kerja dan jobCara konteks melapor pada setiap pull request
quality / <os> / py<ver> (10)ci.yml, job qualityci.yml berjalan ketika pull request menyentuh jalur kode atau konfigurasi. ci-docs-stub.yml melaporkan konteks yang sama pada pull request yang hanya berisi dokumentasi.
coverageci.yml, job coverageSama seperti quality.
Require Signed-off-bydco.yml, job dcoPemicu pull request-nya tidak memiliki filter paths, sehingga berjalan pada setiap pull request ke main.

Sel prarilis quality / ubuntu-latest / py3.15 berjalan di ci.yml dengan continue-on-error dan tidak diwajibkan. Alur kerja lain mana pun, termasuk CodeQL, Scorecard, dan pip-audit, boleh melaporkan status, tetapi hasilnya tidak menggerbang merge kecuali konteksnya ditambahkan ke daftar ini.

Perubahan pemelihara yang tertunda

Pemelihara bermaksud menambahkan 25 konteks ini ke daftar wajib. Header setiap alur kerja mendeklarasikan job tersebut sebagai pemeriksaan wajib, dan pemicu pull request-nya tidak memiliki filter paths, sehingga berjalan pada setiap pull request ke main. Sampai sebuah konteks ditambahkan, kegagalan di dalamnya tidak memblokir merge.

clean-install-gate.yml, 7 konteks:

installer-shell-compat / ubuntu-latest
installer-shell-compat / macos-latest
installer-shell-compat / windows-latest
clean-install-gate / ubuntu-latest
clean-install-gate / windows-latest
wheel-smoke / ubuntu-latest
wheel-smoke / windows-latest

harness-matrix.yml, 17 konteks, satu matrix (<adapter>) per adapter dalam matriks job:

matrix (antigravity)
matrix (claude-code)
matrix (codebuddy)
matrix (codex)
matrix (cursor)
matrix (gemini-cli)
matrix (github-copilot)
matrix (glm)
matrix (hermes)
matrix (kimi-code)
matrix (kiro)
matrix (open-claw)
matrix (opencode)
matrix (qwen-code)
matrix (trae)
matrix (windsurf)
matrix (zed)

installer-lint.yml, 1 konteks:

installer-lint

Setelah konteks harness-matrix.yml diwajibkan, mendaftarkan adapter baru menambahkan konteks matrix (<adapter>), dan daftar wajib menerimanya dalam perubahan yang sama. "Wajibkan branch dalam keadaan terkini sebelum merge" tetap nonaktif. Ketika perubahan yang tertunda diterapkan, pindahkan perubahan itu ke bagian aktif di atas dalam perubahan yang sama.

Irama audit

Berkas ini ditinjau pada setiap audit keamanan dan pada setiap checkpoint rekayasa rilis. Penyimpangan antara berkas ini dan konfigurasi proteksi branch yang sebenarnya merupakan temuan dengan keparahan tinggi. Baca konfigurasi aktif dengan:

gh api repos/ahmed-g-gad/apothem/branches/main/protection
gh api repos/ahmed-g-gad/apothem/rulesets

Referensi

On this page