github
Catatan teknis seputar web development, DevOps, dan integrasi AI.
10 artikel
- 05.30security
Jaringan Keamanan Mekanis yang Dirancang untuk Diam
Hook rahasia yang membedakan temuan dari error, CI yang mengumpulkan temuan tanpa merahkan build, dan ZAP mingguan yang skip dengan rapi.
TL;DR: Hook gitleaks suka bikin commit gagal cuma gara-gara error lingkungan, bukan bocoran beneran. Solusinya: blokir cuma kalau exit 1 plus laporan JSON valid, sisanya cukup peringatan. CI dan ZAP mingguan juga kalem, cuma ngumpulin temuan buat direview, nggak asal bikin build merah tanpa bukti nyata.
#security#gitleaks#github-actions - 23.04backend
CI merah karena schema kosong: migrasi dulu, baru pytest
Pipeline CI gagal pada database service yang masih kosong; satu baris alembic upgrade head sebelum pytest menyelaraskan kontrak CI dengan container produksi.
TL;DR: Pipeline CI jadi merah gara-gara database kosong, bukan karena kode error—ternyata migrasi nggak pernah jalan di CI. Solusinya gampang, tinggal tambahin alembic upgrade head sebelum pytest biar urutannya sama kayak produksi: schema dulu, baru tes. Sekarang error yang muncul beneran nunjukin bug kode, bukan tabel yang belum dibuat, jadi debugging nggak buang waktu lagi.
#ci#alembic#pytest - 16.58database
Satu Dump per Tag: Backup Database yang Bisa Dijawab
Cron harian nggak bisa jawab dump mana yang cocok sama versi yang live. Satu dump per tag rilis di folder .docs/BACKUPDB bikin rollback berhak nebak.
TL;DR: Saya pernah apes restore dump harian cron ternyata skemanya nggak cocok sama kode. Sekarang tiap rilis bikin annotated tag dan dump mariadb-dump dengan nama sama jadi jelas pasangannya. Tiap dump dites restore ke container kosong biar yakin bisa dipake pas darurat.
#backup#mariadb#git - 15.30security
Gitleaks Crash Pas Commit Multi-File, Lahir Gerbang Supply Chain
Hook pemindai secret crash saat commit multi-file. Ternyata satu flag hilang di definisi hook, dan ujungnya CI diikat checksum.
TL;DR: Commit multi-file mendadak gagal gara-gara hook gitleaks-system crash karena lupa set pass_filenames false. Bugnya emang ada di file upstream, cuma hook golang sama docker yang bener. Akhirnya gue pindah ke hook lokal yang checksum-nya dicek plus CI cuma pake checkout yang di-pin SHA.
#github-actions#security#ci-cd - 20.29devops
Pindah Deploy ke Vercel: Kuncinya di Luar Kode
Diff-nya cuma dokumentasi, tapi migrasi deploy Cloudflare Workers ke Vercel tetap terjadi. Kabelnya ada di dashboard Vercel dan settings GitHub, bukan di dalam repo.
TL;DR: Gara-gara satu baris di CLAUDE.md, penulis sadar migrasi dari Cloudflare Workers ke Vercel nggak ninggalin jejak di repo, karena settingnya ada di dashboard, bukan Git. Production branch di Vercel dipilih pas impor dan bisa diatur lewat Branch Tracking, jadi default branch GitHub beda hal. Alur Git tetap sama, tapi env vars mesti didaftarkan ulang dan rollback modelnya tunjuk deployment.
#vercel#cloudflare#git - 02.24devops
Subtree Split atau Snapshot Rsync: Memilih Mekanisme Publish
Satu folder atau banyak path tersebar? Bentuk include set menentukan kapan subtree split aman dan kapan rsync snapshot lebih masuk akal.
#git#rsync#forgejo - 22.23devops
WordPress Full vs View: Dua Repo Git, Dua Isu Berbeda
Satu WordPress, dua repo Git: repo full di Forgejo untuk pemulihan, repo view di GitHub hanya untuk sumber yang saya tulis sendiri.
#wordpress#git#github - 20.22devops
Dual-Push, Pull Mirror, dan Aturan Main Forgejo+GitHub
Ritual dual-push tiap commit ternyata lebih jujur daripada pull mirror yang diam-diam membuang branch 631 MB yang tak pernah ada di GitHub.
#git#forgejo#github - 16.17devops
Forgejo Secondary Git Host untuk File yang Ditolak GitHub
Limit file GitHub bikin bundle 631 MB nyaris gagal push. Jawabannya: self-host Forgejo sebagai secondary git host dengan pola mirror yang benar.
#git#forgejo#github