- Forgejo v16.0, ra mắt ngày 16/7/2026, mở rộng các tính năng kiểm soát thông báo theo từng kho lưu trữ, tiến độ migration, review pull request, Actions và API
- Tăng cường phòng vệ SSRF bằng cách chặn HTTP redirect của Git mirror; các kho lưu trữ từ xa đã đổi tên hoặc đổi chủ sở hữu cần được cập nhật trực tiếp địa chỉ mirror
- Nếu sử dụng xác thực reverse proxy trong container, cần chỉ định dải địa chỉ proxy đáng tin cậy; một số cấu hình cũ để lộ cổng web mặc định ra mạng không đáng tin cậy sẽ không còn hoạt động
- Bổ sung review nhiều dòng, theo dõi vị trí bình luận dựa trên
git blame --reverse, ưu tiên chạy Actions, Authorized Integrations dựa trên JWT, cùng API cho log workflow, artifact và hủy workflow - v16.0 là bản phát hành không LTS, được hỗ trợ đến ngày 29/10/2026; trước khi nâng cấp cần tạo bản sao lưu đầy đủ và kiểm tra toàn bộ thay đổi tương thích
Phát hành và nâng cấp
- Forgejo v16.0 là nền tảng cộng tác mã nguồn tự host nhẹ, do cộng đồng phát triển, được phát hành ngày 16/7/2026
- Có thể xem danh sách thay đổi đầy đủ trong ghi chú phát hành, đồng thời cũng có instance thử nghiệm riêng
- Trước khi nâng cấp, cần tạo bản sao lưu đầy đủ theo hướng dẫn nâng cấp và kiểm tra toàn bộ thay đổi tương thích
- Việc nâng cấp được thực hiện bằng cách thay thế binary hoặc image container bằng phiên bản tương ứng v16.0
- Cung cấp binary Forgejo v16.0.0 và image container
- Khi dùng tag
16.0của container, có thể tự động theo các bản vá16.0.Ymới nhất
Thay đổi tương thích và tăng cường bảo mật
-
Phòng vệ SSRF cho Git mirror
- Sửa lỗi khiến
[migrations].ALLOWED_DOMAINS,LOCKED_DOMAINS,ALLOW_LOCALNETWORKSkhông được áp dụng đúng trong một số trường hợp ngoại lệ - Áp dụng
http.followRedirects=falseđể Git không thể đi theo redirect khi truy cập kho HTTP(S) và vượt qua cấu hình - Với các kho Forgejo từ xa đã đổi tên hoặc chuyển sang chủ sở hữu mới, redirect sẽ bị xử lý như lỗi, nên cần cập nhật mirror hiện có sang địa chỉ kho mới
- Sửa lỗi khiến
-
Xóa tính năng loại bỏ EXIF của avatar
- Tính năng loại bỏ metadata EXIF khỏi ảnh avatar được thêm ở v13.0 đã bị xóa do vấn đề giấy phép vì sử dụng sai thư viện AGPL
- Tính năng này được gỡ bỏ trong khi xem xét cách triển khai khác, nhằm khôi phục trạng thái tuân thủ giấy phép
-
Cấu hình proxy đáng tin cậy trong container
- Các container Forgejo trước đây dùng
REVERSE_PROXY_TRUSTED_PROXIES = *làm giá trị mặc định - Nếu đồng thời thỏa mãn các điều kiện sau, người dùng chưa được phê duyệt có thể dùng header
X-WebAuth-Userđể mạo danh người dùng khác- Triển khai bằng container dựa trên Docker hoặc Podman
- Thiết lập
[service].ENABLE_REVERSE_PROXY_AUTHENTICATION=true - Không thay đổi giá trị mặc định
*của[security].REVERSE_PROXY_TRUSTED_PROXIES - Cổng web mặc định
:3000bị lộ ra mạng không đáng tin cậy, cho phép đi vòng qua reverse proxy xác thực
- v16 không còn tuân theo cấu hình reverse proxy kiểu này, nên cần chỉ định dải địa chỉ proxy đáng tin cậy nơi lưu lượng đi vào
- Ví dụ thiết lập biến môi trường là
FORGEJO__security__REVERSE_PROXY_TRUSTED_PROXIES=127.0.0.0/8,::1/128,172.16.X.X/X - Trong
app.ini, đặt cùng danh sách địa chỉ vàoREVERSE_PROXY_TRUSTED_PROXIESdưới[security]
- Các container Forgejo trước đây dùng
Khả năng sử dụng kho lưu trữ và tổ chức
- Có thể đăng ký nhận thông báo kho lưu trữ theo ba danh mục: Issues, Pull requests, Releases
- Backend thông báo được thiết kế lại sẽ là nền tảng để hỗ trợ các thiết lập chi tiết hơn trong tương lai
- Mục tiêu là trao quyền kiểm soát thông báo cho người dùng mà không phơi bày quá nhiều tùy chọn
- Màn hình migration kho lưu trữ hiển thị tiến độ khi chuyển issues và pull requests từ nguồn theo từng batch, giúp kiểm tra liệu tác vụ kéo dài có bị dừng hay không
- Kích thước batch mặc định là 45 mục, và số mục tối thiểu để hiển thị tiến độ cũng là 45
- Ở những vị trí không cần kích thước đầy đủ, hệ thống tạo hai avatar thu nhỏ để giảm mức dùng băng thông và thời gian tải
- Có thể mở hộp thoại trực tiếp từ danh sách thành viên tổ chức để thêm thành viên mới và gán vào nhiều team cùng lúc
- Git kiểm tra và từ chối nhiều điểm không nhất quán trong các object nhận vào, ngăn kho lưu trữ rơi vào trạng thái không nhất quán hoặc bị hỏng
- Kho lưu trữ backend không còn tạo các file hook mẫu của Git, và các Git hook dùng chung cho instance cũng được lưu tập trung thay vì sao chép vào từng kho
- Tiết kiệm khoảng 20KiB cho mỗi kho
- Các file mẫu và file tự động tạo trùng lặp trong kho hiện có có thể được xóa theo hướng dẫn nâng cấp
- Sửa lỗi từ sau v7.0.0 khiến hướng dẫn kích hoạt thêm tính năng kho lưu trữ không hiển thị với người dùng mới, đồng thời làm cho thiết lập tắt hướng dẫn dễ tìm hơn
- Hướng dẫn “Enable more” chỉ xuất hiện khi quản trị viên hoặc chủ sở hữu kho đã vô hiệu hóa rõ ràng một số tính năng kho lưu trữ
Pull request và review mã nguồn
- Danh sách commit trên trang pull request được đổi sang layout mới dễ đọc hơn và thích ứng tốt hơn với kích thước màn hình
- Hiện chỉ áp dụng cho trang pull request, và dự kiến sẽ dần mở rộng sang các màn hình danh sách commit khác
- Hỗ trợ review nhiều dòng, cho phép liên kết nhiều dòng đã thay đổi vào một bình luận review
- Nhấn giữ
Shift, bấm nút dấu cộng cạnh dòng đầu tiên rồi kéo đến dòng cuối cùng để liên kết các dòng được chọn vào một bình luận
- Nhấn giữ
- Sửa lỗi bình luận review xuất hiện ở diff hoặc vị trí màn hình sai, hoặc mất liên kết với diff
git blamehiện có có thể xác định sai vị trí nếu đoạn mã được bình luận bị di chuyển trong các commit sau đó- Nội bộ sử dụng
git blame --reverseđể theo dõi thay đổi mã đến vị trí hiện tại - Vị trí bình luận được tính không chỉ theo HEAD của pull request hiện tại, mà còn dựa trên base và head mà reviewer thực sự đang xem, cũng như commit của mã đang hiển thị
- Với các dòng đã xóa, hệ thống tìm thời điểm xóa và kiểm tra xem tại cùng vị trí trong diff hiện tại dòng đó có còn ở trạng thái đã xóa hay không, rồi đặt bình luận hoặc đánh dấu là bình luận cũ
Forgejo Actions và tích hợp JWT
-
Ưu tiên chạy và quản lý workflow
- Có thể chỉ định thủ công từng lần chạy workflow là đối tượng ưu tiên xử lý, và Forgejo Actions sẽ xử lý chúng trước các lần chạy thông thường
- Khi có thể, Forgejo tự đánh giá điều kiện
ifvà không gửi job đến Forgejo Runner, giúp bắt đầu chạy nhanh hơn - Có thể xóa các lần chạy workflow đã hoàn tất cùng log và artifact qua UI hoặc HTTP API
- Chỉ quản trị viên kho lưu trữ hoặc access token có quyền
write:repositorymới có thể xóa
- Chỉ quản trị viên kho lưu trữ hoặc access token có quyền
- Biểu thức
cronhỗ trợ cả định dạngCRON_TZhiện có lẫn cú pháp chỉ định múi giờ kiểu GitHub - Các check bị bỏ qua vốn được hiển thị là thành công ở phiên bản trước sẽ được hiển thị là skipped từ v16
-
Authorized Integrations
- Tiếp nối tính năng tạo JWT để hệ thống bên ngoài dùng cho xác thực được thêm ở v15, v16 cung cấp Authorized Integrations để xác thực truy cập Forgejo API và Git bằng JWT
- Có thể dùng trong Forgejo Actions cục bộ, hoặc cấu hình quy tắc để Forgejo xác minh JWT tùy ý
- Khi cần quyền truy cập vượt quá quyền thông thường của
${{ forgejo.token }}, không cần thiết lập access token tĩnh rồi thay thế trong tương lai - Không phơi bày tính năng cho phép người viết workflow tự cấp các quyền ngoài dự kiến
- Có thể dùng trên nhiều kho Forgejo
- Các hệ thống bên ngoài đáp ứng yêu cầu kỹ thuật có thể truy cập trực tiếp Forgejo API và kho Git thông qua Authorized Integration của người dùng, mà không cần secret tĩnh giữa các hệ thống
- Ví dụ gồm Amazon Web Services, GitHub Actions, GitLab CI/CD
Actions và API quản trị
- Bổ sung API lấy log của toàn bộ lần chạy workflow hoặc từng job riêng lẻ
- Cung cấp endpoint để liệt kê, tải xuống và xóa artifact
- Endpoint được tài liệu hóa để upload artifact vẫn nằm trong danh sách công việc tương lai
- Bổ sung API hủy từng lần chạy workflow
/actions/runtrả về thông tin lần chạy workflow mà token tự độngFORGEJO_TOKENthuộc về- Các thay đổi API khác gồm:
- Thêm thời điểm tạo vào model tổ chức do nhiều endpoint trả về
- Có thể lọc tìm kiếm pull request theo tên branch base và head
- Quản trị viên instance có thể liệt kê, phát hành và xóa access token của người dùng
- Có thể lọc danh sách người dùng theo trạng thái 2FA
Thời gian hỗ trợ và bản build thử nghiệm
- Bản phát hành lớn được phát hành mỗi 3 tháng, còn bản vá được phân phối thường xuyên hơn tùy theo mức độ nghiêm trọng của lỗi hoặc bản sửa bảo mật đi kèm
- v16.0 là bản phát hành không LTS, được hỗ trợ đến ngày 29/10/2026
- v11.0 LTS kết thúc hỗ trợ vào ngày 16/7/2026
- v15.0 LTS được hỗ trợ đến ngày 15/7/2027
- v17.0 dự kiến phát hành ngày 15/10/2026 và dự kiến được hỗ trợ đến ngày 28/1/2027
- Các thay đổi mới nhất trên nhánh phát triển
v16.0/forgejođược dùng để tạo bản build hằng ngày16.0-testvà triển khai lên instance thử nghiệm- Cung cấp root OCI image, rootless OCI image, và binary
- Tên build được giữ nguyên nhưng được thay thế bằng build mới mỗi ngày
1 bình luận
Các ý kiến trên Lobste.rs
@pushcx, liên kết suggest đã đi đâu rồi? Tôi định đề xuất thẻ
vcs, nhưng giờ không thấy liên kết này trong bất kỳ bài nào nữaCảm ơn tất cả những người đóng góp, đặc biệt là nhóm merge. Cá nhân tôi tự hào vì đã đóng góp cho bản sửa tại https://forgejo.org/2026-07-release-v16-0/#repository-units-hint
Trong vài ngày qua tôi đã cấu hình và tinh chỉnh một Forge cá nhân tại https://forge.l3x.in, đồng thời chuyển dần từ GitHub sang; tự host Forgejo là một trải nghiệm rất hài lòng và tôi rất khuyến nghị
Tôi cũng nghe nói SourceHut tốt, nhưng chưa trực tiếp dùng thử, và hiện tôi đang tập trung vào Forgejo
Rất vui khi có tính năng review nhiều dòng và chỉ định vị trí bình luận review. Ở
$JOBkhông có review code nên tôi không quen lắm; khi nhận review cho các bản vá gửi tới dự án phần mềm tự do/mã nguồn mở, đã vài lần tôi hiểu nhầm bình luận đang chỉ vào khối code nàoTôi rất mong chờ thiết lập đăng ký chi tiết. Đây là tính năng tôi dùng trên GitHub nên đã thấy rất thiếu trên Forgejo
Ngay cả trên GitHub, từ lâu tôi cũng mong có chức năng đăng ký khi issue và PR mới được tạo. Vì như vậy có thể theo dõi tình hình phát triển của những dự án chỉ thỉnh thoảng đóng góp mà không phải tự hủy đăng ký 90% thông báo không quan tâm
Tôi đã đăng yêu cầu tính năng trong kho lưu trữ Forgejo: https://codeberg.org/forgejo/forgejo/issues/13494
Tôi đã vận hành Forgejo trong homelab một thời gian và rất hài lòng. Tôi đã chuyển khoảng 500 kho lưu trữ từ Github.com sang, quá trình gần như không có bất tiện gì, và hiện đang chạy Forgejo cùng runner trong k8s
Việc Forgejo Runner dùng định nghĩa workflow giống GitHub Actions đặc biệt tiện lợi; tôi chỉ cần tạo đúng các label trên runner cục bộ
Tôi vẫn chưa quyết định sẽ để GitHub ở chế độ chỉ đọc, xóa đi, hay duy trì như một mirror ngang hàng. Dù chọn cách nào, giờ tôi push trực tiếp lên instance Forgejo thay vì GitHub, và mọi thao tác đều nhanh hơn nhiều, chỉ tính bằng vài giây