GitHub Luncurkan Evergreen, Aplikasi Otomatis untuk Review Akses dan Arsip Repo
GitHub memperkenalkan Evergreen, sebuah GitHub App yang mengotomatisasi tinjauan akses kolaborator eksternal dan deteksi repo usang, memanfaatkan fitur native…
GitHub mengumumkan peluncuran Evergreen, sebuah GitHub App yang dirancang untuk mengotomatisasi kebersihan organisasi melalui dua alur kerja utama: tinjauan akses kolaborator eksternal setiap kuartal dan deteksi serta pengarsipan repositori yang tidak aktif. Aplikasi ini dibangun sepenuhnya dengan fitur native GitHub—GitHub App, scheduled actions, webhook, issues, custom properties, serta file JSON yang disimpan dalam repository kontrol.
Cara Kerja Evergreen
Evergreen dijalankan oleh server webhook kecil berbasis Go dalam container. Sebuah controller repo berfungsi sebagai jam dan memori aplikasi, memicu empat workflow GitHub Actions secara terjadwal setiap kuartal. Pada hari pertama, repositori yang tidak memiliki aktivitas manusia dalam jangka waktu tertentu ditandai dan dibuka issue peringatan. Pada hari kedelapan, dilakukan tinjauan akses kolaborator eksternal dengan membuka issue checklist per repo. Hari keenam belas menandai repositori yang masih tidak aktif untuk diarsipkan, dan pada hari kedua puluh tiga akses yang tidak ditanggapi otomatis dicabut.
Setiap perubahan status disimpan dalam file JSON di state/repos/.json pada controller repo, sehingga riwayat perubahan dapat dilacak melalui git log. Issue-ops menjadi antarmuka utama: pengguna hanya mencentang kolaborator yang tetap dipertahankan, menutup issue, dan Evergreen mencatat serta mengeksekusi revokasi yang tersisa.
Prinsip Keamanan dan Kebijakan
Evergreen menerapkan prinsip fail secure: bila tidak ada respons pada tinjauan, semua akses dicabut secara default. Sebaliknya, aplikasi tidak pernah menghapus repositori; repositori yang diarsipkan tetap dapat dipulihkan. Jika proses revokasi mengalami kegagalan API, issue tetap terbuka dan percobaan ulang dilakukan pada siklus berikutnya, memastikan tidak ada ketidakkonsistenan.
Implementasi Skala Besar
Dalam organisasi dengan lebih dari 1.400 Hubbers, Evergreen diuji dengan mode DRY_RUN yang mencatat semua aksi tanpa mengeksekusi perubahan. Komunikasi intensif dilakukan sebelum aktivasi, dan semua log dikirim ke indeks Splunk khusus untuk memantau kasus tepi. Pembatasan laju sekunder GitHub (80 permintaan menit, 500 jam) diatasi dengan pemrosesan batch dan jeda antar panggilan.
Penggunaan dan Penyesuaian
Organisasi dapat menonaktifkan tinjauan atau arsip dengan properti khusus evergreen_exempt_from_access_review atau evergreen_exempt_from_archive. Untuk memulai, pengguna dapat merujuk pada panduan membuat GitHub App di Creating GitHub Apps.
Evergreen menunjukkan bahwa otomatisasi kebersihan repositori dapat dicapai tanpa infrastruktur tambahan, hanya memanfaatkan primitif GitHub yang sudah ada.
Sumber
Naskah awal artikel ini disusun dengan bantuan AI dari sumber di atas, lalu ditinjau dan diperiksa faktanya oleh redaksi. Pedoman redaksi.