Forgejo v16.0 출시 — 알림·PR 리뷰·Actions 기능 확장
요약
Forgejo v16.0이 출시되어 알림 제어, PR 리뷰, Actions 기능 등이 대폭 확장되었습니다. SSRF 방어 강화 및 컨테이너 환경의 역방향 프록시 인증 설정에 대한 보안 강화를 포함하며, 사용자는 업그레이드 전 백업과 호환성 변경 확인이 필수적입니다.
핵심 포인트
- 저장소별 알림 제어가 이슈/PR/릴리스로 세분화되어 사용자 편의성이 높아졌습니다.
- SSRF 방어 강화 및 리디렉션 처리 방식 변경으로 보안 수준이 향상되었습니다.
- 컨테이너 배포 시 신뢰할 프록시 주소 범위를 명시해야 하는 등 보안 설정이 엄격해졌습니다.
- 업그레이드 전 전체 백업과 호환성 검토가 필수적입니다.
2026년 7월 16일 출시된 Forgejo v16.0 은 저장소별 알림 제어, 마이그레이션 진행률, 풀 리퀘스트 리뷰, Actions 및 API 기능을 확장함
Git 미러의 HTTP 리디렉션을 차단해 SSRF 방어 를 강화했으며, 이름이나 소유자가 바뀐 원격 저장소는 미러 주소를 직접 갱신해야 함
컨테이너에서 역방향 프록시 인증을 사용한다면 신뢰할 프록시 주소 범위 를 명시해야 하며, 기본 웹 포트가 신뢰할 수 없는 네트워크에 노출된 일부 기존 구성은 더 이상 동작하지 않음
여러 줄 리뷰와 git blame --reverse
기반 댓글 위치 추적, Actions 실행 우선순위, JWT 기반 Authorized Integrations , 워크플로 로그·아티팩트·취소 API가 추가됨
v16.0은 비 LTS 릴리스 로 2026년 10월 29일까지 지원되며, 업그레이드 전에 전체 백업을 만들고 모든 호환성 변경을 확인해야 함
출시와 업그레이드
호환성 변경과 보안 강화
Git 미러의 SSRF 방어
[migrations].ALLOWED_DOMAINS
, LOCKED_DOMAINS
, ALLOW_LOCALNETWORKS
가 일부 예외 상황에서 제대로 적용되지 않던 문제를 수정함
Git이 HTTP(S) 저장소 접근 중 리디렉션을 따라가 설정을 우회하지 못하도록 http.followRedirects=false
를 적용함
이름이 바뀌었거나 새 소유자에게 이전된 원격 Forgejo 저장소는 리디렉션이 오류로 처리되므로, 기존 미러를 새 저장소 주소로 갱신 해야 함
아바타 EXIF 제거 기능 삭제
v13.0에서 추가한 아바타 이미지의 EXIF 메타데이터 제거 기능은 AGPL 라이브러리를 잘못 사용한 라이선스 문제로 삭제됨
다른 구현 방식을 검토하는 동안 해당 기능을 제거해 라이선스 준수 상태를 회복함
컨테이너의 신뢰할 프록시 설정
기존 Forgejo 컨테이너는 REVERSE_PROXY_TRUSTED_PROXIES = *
를 기본값으로 사용함
다음 조건이 모두 충족되면 승인되지 않은 사용자가 X-WebAuth-User
헤더를 이용해 다른 사용자를 가장할 수 있었음
Docker 또는 Podman 기반 컨테이너로 배포함
[service].ENABLE_REVERSE_PROXY_AUTHENTICATION=true
로 설정함
[security].REVERSE_PROXY_TRUSTED_PROXIES
의 기본값 *
를 변경하지 않음
기본 :3000
웹 포트가 신뢰할 수 없는 네트워크에 노출돼 인증 역방향 프록시를 우회할 수 있음
v16은 이런 구성의 역방향 프록시 설정을 더 이상 따르지 않으므로, 트래픽이 들어오는 신뢰할 프록시 주소 범위 를 명시해야 함
환경 변수 설정 예시는 FORGEJO__security__REVERSE_PROXY_TRUSTED_PROXIES=127.0.0.0/8,::1/128,172.16.X.X/X
임
app.ini
에서는 [security]
아래 REVERSE_PROXY_TRUSTED_PROXIES
에 같은 주소 목록을 설정함
저장소와 조직 사용성
저장소 알림을 이슈(Issues), 풀 리퀘스트(Pull requests), 릴리스(Releases) 세 범주로 나눠 구독할 수 있음
재설계된 알림 백엔드는 앞으로 더 세밀한 설정을 지원할 기반이 됨
지나치게 많은 옵션을 노출하지 않으면서 사용자에게 알림 제어권을 제공하는 것이 목표임
저장소 마이그레이션 화면은 원본의 이슈와 풀 리퀘스트를 배치 단위로 옮기는 진행률 을 표시해 장시간 작업이 멈췄는지 확인할 수 있음
기본 배치 크기는 45개이며, 진행률이 표시되는 최소 항목 수도 45개임
전체 크기가 필요하지 않은 위치에는 두 가지 축소 아바타를 생성해 대역폭 사용량과 로딩 시간 을 줄임
조직 구성원 목록에서 직접 대화상자를 열어 새 구성원을 추가하고 한 번에 여러 팀에 배정할 수 있음
Git이 수신 객체의 여러 불일치를 검사하고 거부해 저장소가 불일치하거나 손상된 상태 가 되는 것을 방지함
백엔드 저장소에는 Git 예제 훅 파일을 더 이상 생성하지 않으며, 인스턴스 공통 Git 훅도 저장소마다 복제하지 않고 중앙에 보관함
저장소당 약 20KiB 를 절약함
기존 저장소의 예제 및 중복 자동 생성 파일은 업그레이드 가이드 에 따라 삭제할 수 있음
저장소 기능을 더 활성화하라는 안내가 신규 사용자에게 보이지 않던 v7.0.0 이후의 버그를 수정하고, 안내를 끄는 설정도 찾기 쉽게 바꿈
“Enable more” 안내는 관리자나 저장소 소유자가 일부 저장소 기능을 명시적으로 비활성화한 경우에만 나타남
풀 리퀘스트와 코드 리뷰
풀 리퀘스트 페이지의 커밋 목록을 더 읽기 쉽고 화면 크기에 잘 대응하는 새 레이아웃 으로 변경함
현재는 풀 리퀘스트 페이지에만 적용되며 다른 커밋 목록 화면으로 점진적으로 확대할 계획임
변경된 여러 줄을 하나의 리뷰 댓글에 연결하는 다중 행 리뷰 를 지원함
Shift
를 누른 상태에서 첫 행 옆의 더하기 버튼을 누르고 마지막 행까지 드래그하면 선택한 행들이 한 댓글에 연결됨
리뷰 댓글이 잘못된 diff나 화면 위치에 나타나거나 diff 연결을 잃던 문제를 수정함
기존 git blame
은 댓글 대상 코드가 이후 커밋에서 이동하면 위치를 잘못 찾을 수 있었음
내부적으로 git blame --reverse
를 사용해 코드 변경을 현재 위치까지 추적함
현재 풀 리퀘스트의 HEAD뿐만 아니라 리뷰어가 실제로 보고 있는 base와 head, 표시 중인 코드의 커밋을 기준으로 댓글 위치를 계산함
삭제된 행은 삭제 시점을 찾고 현재 diff의 같은 위치에서도 삭제 상태인지 확인한 뒤, 댓글을 배치하거나 오래된 댓글로 표시함
Forgejo Actions와 JWT 통합
실행 우선순위와 워크플로 관리
개별 워크플로 실행을 수동으로 우선 처리 대상으로 지정할 수 있으며, Forgejo Actions는 이를 일반 실행보다 먼저 처리함
가능한 경우 if
조건을 Forgejo가 직접 평가해 Forgejo Runner로 작업을 보내지 않으므로 실행을 더 빠르게 시작할 수 있음
완료된 워크플로 실행과 로그·아티팩트를 UI 또는 HTTP API에서 삭제할 수 있음
저장소 관리자 또는 write:repository
권한이 있는 액세스 토큰만 삭제 가능함
cron
표현식은 기존 CRON_TZ
형식과 함께 GitHub 방식의 시간대 지정 문법 도 지원함
이전 버전에서 성공으로 표시하던 건너뛴 검사는 v16부터 skipped 로 표시됨
Authorized Integrations
v15에서 외부 시스템이 인증에 활용할 수 있는 JWT 생성 기능을 추가한 데 이어, v16은 JWT로 Forgejo API와 Git 접근을 인증하는 Authorized Integrations 를 제공함
로컬 Forgejo Actions에서 사용하거나, 규칙을 구성해 임의의 JWT를 Forgejo가 검증하도록 설정할 수 있음
${{ forgejo.token }}
의 일반 권한을 넘어서는 접근이 필요할 때 정적 액세스 토큰을 설정하고 향후 교체하지 않아도 됨
워크플로 작성자가 예상 밖의 권한을 스스로 부여하는 기능은 노출하지 않음
여러 Forgejo 저장소에 걸쳐 사용할 수 있음
기술 요구사항을 충족하는 외부 시스템은 시스템 간 정적 비밀값 없이 사용자의 Authorized Integration을 통해 Forgejo API와 Git 저장소에 직접 접근할 수 있음
예시로 Amazon Web Services, GitHub Actions, GitLab CI/CD가 포함됨
Actions와 관리 API
전체 워크플로 실행 또는 개별 작업의 로그를 가져오는 API 가 추가됨
아티팩트를 나열·다운로드·삭제하는 엔드포인트를 제공함
아티팩트 업로드용으로 문서화된 엔드포인트는 향후 작업 목록에 남아 있음
개별 워크플로 실행을 취소하는 API가 추가됨
/actions/run
은 자동 토큰 FORGEJO_TOKEN
이 속한 워크플로 실행 정보 를 반환함
그 밖의 API 변경 사항은 다음과 같음
여러 엔드포인트가 반환하는 조직 모델에 생성 시간이 추가됨
풀 리퀘스트 검색에서 base와 head 브랜치 이름으로 필터링할 수 있음
인스턴스 관리자가 사용자 액세스 토큰을 나열·발급·삭제할 수 있음
사용자 목록을 2FA 상태 로 필터링할 수 있음
지원 기간과 테스트 빌드
주요 릴리스는 3개월마다 나오며, 패치 릴리스는 포함된 버그나 보안 수정의 심각도에 따라 더 자주 배포됨
v16.0은 비 LTS 릴리스 로 2026년 10월 29일까지 지원됨
v11.0 LTS는 2026년 7월 16일 지원이 종료됨
v15.0 LTS는 2027년 7월 15일까지 지원됨
v17.0은 2026년 10월 15일 출시 예정이며 2027년 1월 28일까지 지원될 예정임
v16.0/forgejo
개발 브랜치의 최신 변경으로 16.0-test
일일 빌드 를 생성해 테스트 인스턴스 에 배포함
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기