1 poin oleh GN⁺ 4 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Forgejo v16.0 yang dirilis pada 16 Juli 2026 memperluas kontrol notifikasi per repositori, progres migrasi, review pull request, serta fitur Actions dan API
  • Dengan memblokir pengalihan HTTP pada mirror Git, pertahanan SSRF diperkuat, dan repositori jarak jauh yang nama atau pemiliknya berubah harus memperbarui alamat mirror secara langsung
  • Jika menggunakan autentikasi reverse proxy di kontainer, Anda harus menentukan rentang alamat proxy tepercaya, dan sebagian konfigurasi lama yang mengekspos port web default ke jaringan yang tidak tepercaya tidak lagi berfungsi
  • Ditambahkan review multi-baris, pelacakan posisi komentar berbasis git blame --reverse, prioritas eksekusi Actions, Authorized Integrations berbasis JWT, serta API log workflow, artefak, dan pembatalan
  • v16.0 adalah rilis non-LTS yang didukung hingga 29 Oktober 2026, dan sebelum upgrade Anda harus membuat cadangan penuh serta memeriksa semua perubahan kompatibilitas

Rilis dan upgrade

Perubahan kompatibilitas dan penguatan keamanan

  • Pertahanan SSRF pada mirror Git

    • Masalah yang membuat [migrations].ALLOWED_DOMAINS, LOCKED_DOMAINS, dan ALLOW_LOCALNETWORKS tidak diterapkan dengan benar dalam beberapa kondisi pengecualian telah diperbaiki
    • Diterapkan http.followRedirects=false agar Git tidak dapat mengikuti pengalihan saat mengakses repositori HTTP(S) dan melewati konfigurasi
    • Untuk repositori Forgejo jarak jauh yang namanya berubah atau dipindahkan ke pemilik baru, pengalihan kini diperlakukan sebagai kesalahan, sehingga mirror yang ada harus diperbarui ke alamat repositori baru
  • Penghapusan fitur pembersihan EXIF avatar

    • Fitur penghapusan metadata EXIF dari gambar avatar yang ditambahkan pada v13.0 dihapus karena masalah lisensi akibat penggunaan pustaka AGPL yang keliru
    • Fitur tersebut dihapus sementara pendekatan implementasi lain ditinjau, agar kepatuhan lisensi dipulihkan
  • Pengaturan proxy tepercaya pada kontainer

    • Kontainer Forgejo sebelumnya menggunakan REVERSE_PROXY_TRUSTED_PROXIES = * sebagai nilai default
    • Jika semua kondisi berikut terpenuhi, pengguna yang tidak berwenang dapat menyamar sebagai pengguna lain melalui header X-WebAuth-User
      • Dideploy sebagai kontainer berbasis Docker atau Podman
      • Diatur dengan [service].ENABLE_REVERSE_PROXY_AUTHENTICATION=true
      • Tidak mengubah nilai default * pada [security].REVERSE_PROXY_TRUSTED_PROXIES
      • Port web default :3000 terekspos ke jaringan yang tidak tepercaya sehingga reverse proxy autentikasi dapat dilewati
    • v16 tidak lagi menghormati konfigurasi reverse proxy seperti ini, sehingga Anda harus menentukan rentang alamat proxy tepercaya tempat trafik masuk
    • Contoh pengaturan variabel lingkungan: FORGEJO__security__REVERSE_PROXY_TRUSTED_PROXIES=127.0.0.0/8,::1/128,172.16.X.X/X
    • Di app.ini, atur daftar alamat yang sama pada REVERSE_PROXY_TRUSTED_PROXIES di bawah [security]

Kegunaan repositori dan organisasi

  • Notifikasi repositori kini dapat dilanggan dengan membaginya ke dalam tiga kategori: Issues, Pull requests, Releases
    • Backend notifikasi yang didesain ulang menjadi fondasi untuk mendukung pengaturan yang lebih rinci di masa depan
    • Tujuannya adalah memberi pengguna kendali atas notifikasi tanpa mengekspos terlalu banyak opsi
  • Layar migrasi repositori menampilkan progres pemindahan issue dan pull request dari sumber per batch, sehingga dapat diketahui apakah pekerjaan yang memakan waktu lama terhenti
    • Ukuran batch default adalah 45, dan jumlah item minimum agar progres ditampilkan juga 45
  • Untuk lokasi yang tidak memerlukan ukuran penuh, dua avatar versi kecil akan dibuat untuk mengurangi penggunaan bandwidth dan waktu muat
  • Dari daftar anggota organisasi, Anda dapat langsung membuka dialog untuk menambahkan anggota baru dan menugaskannya ke beberapa tim sekaligus
  • Git memeriksa dan menolak berbagai ketidaksesuaian pada objek yang diterima untuk mencegah repositori menjadi dalam keadaan tidak konsisten atau rusak
  • Repositori backend tidak lagi membuat file hook contoh Git, dan hook Git umum untuk seluruh instance tidak lagi disalin ke setiap repositori melainkan disimpan secara terpusat
    • Menghemat sekitar 20KiB per repositori
    • File contoh dan file duplikat yang dibuat otomatis pada repositori lama dapat dihapus sesuai panduan upgrade
  • Memperbaiki bug sejak v7.0.0 yang membuat panduan untuk mengaktifkan lebih banyak fitur repositori tidak terlihat oleh pengguna baru, dan pengaturan untuk mematikannya juga dibuat lebih mudah ditemukan
    • Panduan “Enable more” hanya akan muncul jika admin atau pemilik repositori secara eksplisit menonaktifkan sebagian fitur repositori

Pull request dan code review

  • Daftar commit pada halaman pull request diubah ke layout baru yang lebih mudah dibaca dan lebih responsif terhadap ukuran layar
    • Saat ini hanya diterapkan pada halaman pull request dan direncanakan akan diperluas bertahap ke layar daftar commit lain
  • Kini mendukung review multi-baris yang menghubungkan beberapa baris perubahan ke satu komentar review
    • Dengan menahan Shift, tekan tombol plus di samping baris pertama lalu seret hingga baris terakhir agar baris yang dipilih terhubung ke satu komentar
  • Memperbaiki masalah yang membuat komentar review muncul pada diff atau posisi layar yang salah, atau kehilangan keterkaitan dengan diff
    • git blame sebelumnya bisa salah menemukan lokasi ketika kode target komentar dipindahkan pada commit berikutnya
    • Secara internal digunakan git blame --reverse untuk melacak perubahan kode hingga posisi saat ini
    • Posisi komentar dihitung berdasarkan base dan head yang benar-benar sedang dilihat reviewer, serta commit dari kode yang sedang ditampilkan, bukan hanya HEAD pull request saat ini
    • Baris yang dihapus akan dicari titik penghapusannya lalu diperiksa apakah pada lokasi yang sama di diff saat ini juga masih berstatus terhapus, sebelum komentar ditempatkan atau ditandai sebagai komentar lama

Forgejo Actions dan integrasi JWT

  • Prioritas eksekusi dan pengelolaan workflow

    • Eksekusi workflow individual dapat ditandai secara manual sebagai target prioritas, dan Forgejo Actions akan memprosesnya lebih dahulu daripada eksekusi biasa
    • Jika memungkinkan, kondisi if dievaluasi langsung oleh Forgejo sehingga pekerjaan tidak perlu dikirim ke Forgejo Runner, membuat eksekusi bisa dimulai lebih cepat
    • Eksekusi workflow yang sudah selesai beserta log dan artefaknya dapat dihapus dari UI atau HTTP API
      • Hanya admin repositori atau access token dengan izin write:repository yang dapat menghapusnya
    • Ekspresi cron kini mendukung sintaks penentuan zona waktu ala GitHub selain format CRON_TZ yang sudah ada
    • Pemeriksaan yang dilewati, yang pada versi sebelumnya ditandai sukses, mulai v16 ditampilkan sebagai skipped
  • Authorized Integrations

    • Setelah v15 menambahkan kemampuan membuat JWT yang dapat digunakan sistem eksternal untuk autentikasi, v16 menghadirkan Authorized Integrations yang mengautentikasi API dan akses Git Forgejo dengan JWT
    • Dapat digunakan pada Forgejo Actions lokal, atau diatur dengan aturan agar Forgejo memverifikasi JWT arbitrer
    • Saat membutuhkan akses yang melampaui izin biasa ${{ forgejo.token }}, Anda dapat mengatur access token statis tanpa perlu menggantinya di masa mendatang
    • Tidak mengekspos kemampuan bagi penulis workflow untuk memberi dirinya sendiri hak yang tidak diharapkan
    • Dapat digunakan lintas beberapa repositori Forgejo
    • Sistem eksternal yang memenuhi persyaratan teknis dapat langsung mengakses API Forgejo dan repositori Git melalui Authorized Integration milik pengguna tanpa nilai rahasia statis antar-sistem
      • Contohnya termasuk Amazon Web Services, GitHub Actions, dan GitLab CI/CD

Actions dan API administrasi

  • Ditambahkan API untuk mengambil log eksekusi workflow penuh atau pekerjaan individual
  • Menyediakan endpoint untuk mencantumkan, mengunduh, dan menghapus artefak
    • Endpoint yang didokumentasikan untuk upload artefak masih berada dalam daftar pekerjaan mendatang
  • Ditambahkan API untuk membatalkan eksekusi workflow individual
  • /actions/run mengembalikan informasi eksekusi workflow tempat token otomatis FORGEJO_TOKEN berada
  • Perubahan API lainnya meliputi:
    • Waktu pembuatan ditambahkan ke model organisasi yang dikembalikan oleh beberapa endpoint
    • Pencarian pull request dapat difilter berdasarkan nama branch base dan head
    • Admin instance dapat mencantumkan, menerbitkan, dan menghapus access token pengguna
    • Daftar pengguna dapat difilter berdasarkan status 2FA

Masa dukungan dan build pengujian

  • Rilis utama hadir setiap 3 bulan, dan rilis patch didistribusikan lebih sering tergantung tingkat keparahan bug atau perbaikan keamanan yang disertakan
  • v16.0 adalah rilis non-LTS yang didukung hingga 29 Oktober 2026
    • Dukungan v11.0 LTS berakhir pada 16 Juli 2026
    • v15.0 LTS didukung hingga 15 Juli 2027
    • v17.0 dijadwalkan rilis pada 15 Oktober 2026 dan direncanakan didukung hingga 28 Januari 2027
  • Build harian 16.0-test dibuat dari perubahan terbaru pada branch pengembangan v16.0/forgejo dan dideploy ke instance pengujian

1 komentar

 
GN⁺ 4 jam lalu
Pendapat di Lobste.rs
  • @pushcx, ke mana tautan suggest? Saya mau menyarankan tag vcs, tetapi sekarang tautannya tidak terlihat di posting mana pun

    • Saya juga mengalami hal yang sama dan ingin tahu alasannya
    • Saat ini tautan suggest terlihat di posting ini dan sebagian besar posting di halaman depan, dan juga tidak ada riwayat tindakan terhadap akun di https://lobste.rs/moderations. Sepertinya ini bug
  • Terima kasih kepada semua kontributor, terutama tim merge. Secara pribadi saya bangga telah ikut berkontribusi pada perbaikan https://forgejo.org/2026-07-release-v16-0/#repository-units-hint

  • Selama beberapa hari saya menyiapkan dan menyesuaikan Forge pribadi di https://forge.l3x.in sambil bermigrasi secara bertahap dari GitHub, dan pengalaman self-hosting Forgejo sangat memuaskan, sangat saya rekomendasikan
    Saya juga dengar SourceHut bagus, tetapi belum pernah mencobanya sendiri, dan untuk saat ini saya fokus ke Forgejo

  • Senang melihat fitur ulasan multi-baris dan penentuan posisi komentar ulasan. Di $JOB saya tidak ada code review jadi saya tidak terbiasa, tetapi saat patch yang saya kirim ke proyek free/open source ditinjau, beberapa kali saya salah paham blok kode mana yang dirujuk komentarnya

  • Saya sangat menantikan pengaturan langganan yang lebih terperinci. Ini fitur yang saya pakai di GitHub dan sangat saya rindukan di Forgejo
    Di GitHub juga sudah lama saya berharap ada fitur untuk berlangganan saat issue dan PR baru dibuat. Dengan begitu saya bisa mengikuti perkembangan proyek yang hanya sesekali saya kontribusikan tanpa harus satu per satu berhenti berlangganan dari 90% notifikasi yang tidak saya minati
    Saya sudah membuat permintaan fitur di repositori Forgejo: https://codeberg.org/forgejo/forgejo/issues/13494

  • Saya sudah cukup lama menjalankan Forgejo di homelab dan sangat puas. Saya memindahkan sekitar 500 repositori dari Github.com, dan prosesnya juga hampir tanpa kendala, serta sekarang menjalankan Forgejo dan runner di dalam k8s
    Yang особенно praktis adalah Forgejo Runner menggunakan definisi workflow yang sama seperti GitHub Actions, jadi saya hanya perlu membuat label yang benar di runner lokal
    Saya masih belum memutuskan apakah GitHub akan dibiarkan read-only, dihapus, atau dipertahankan sebagai mirror setara. Apa pun pilihannya, sekarang saya push langsung ke instance Forgejo, bukan ke GitHub, dan semuanya terasa jauh lebih cepat dalam hitungan detik