GitHub에서 Codeberg로 이전하기, 게으른 사람들을 위한 방법
4 hours ago
1
- 일부 프로젝트를 GitHub에서 Codeberg로 옮기며, 최소한의 노력으로 이전을 시작하는 방법을 정리
- Codeberg의 저장소 가져오기 기능을 통해 이슈·PR·릴리스까지 포함한 완전한 이전이 가능하며, UI와 워크플로가 GitHub과 유사
-
정적 페이지 호스팅은 codeberg.page로 대체할 수 있고, grebedoc.dev나 statichost.eu 같은 대안도 존재
- 가장 큰 어려움은 CI 환경 구축으로, GitHub의 macOS 러너와 무료 실행 용량을 포기해야 하며 Forgejo Actions나 Woodpecker CI로 대체 가능
- 이전 후에는 GitHub 저장소를 읽기 전용 아카이브로 유지하거나 미러링해, 오픈소스 생태계와의 연결을 완전히 끊지 않는 방식이 제시됨
GitHub에서 Codeberg로의 이전 과정
- 일부 저장소를 GitHub에서 Codeberg로 이전하기 시작한 경험을 기반으로, 실제 마이그레이션 과정의 난이도와 편의성을 설명
- Codeberg가 충분히 준비되지 않았다고 생각해 미뤄왔지만, 프로젝트에 따라 이전이 의외로 간단할 수 있음
- 목표는 완벽한 설정이 아니라 가장 쉽게 이전을 시작할 수 있는 방법을 찾는 것에 있음
-
저장소 및 이슈 이전
- Codeberg는 GitHub 저장소 가져오기(import) 기능을 제공하며, 이슈·PR·릴리스와 그 아티팩트를 함께 이전 가능
- 이 과정에서 이슈 번호, 라벨, 작성자 정보가 그대로 유지됨
- Codeberg의 UI는 GitHub과 거의 동일하며, 다른 이슈 트래커에서 GitHub로 옮길 때 필요한 복잡한 절차보다 훨씬 간단한 경험 제공
-
정적 페이지 호스팅
- GitHub Pages를 사용하던 경우 codeberg.page를 대체로 사용할 수 있음
- 공식적인 가용성 보장(SLO) 은 없지만, 실제로는 다운타임을 경험하지 않았다고 언급
- HTML을 브랜치에 푸시하는 방식으로, GitHub Pages와 유사한 구조
- 대안으로 grebedoc.dev 또는 statichost.eu도 사용 가능
-
CI(지속적 통합) 환경의 어려움
- 마이그레이션 중 가장 까다로운 부분은 CI 환경 구축
- GitHub는 무료 macOS 러너와 공개 저장소 무제한 실행 용량을 제공하지만, Codeberg에서는 이를 포기해야 함
- 해결책으로 언어별 크로스 컴파일과 Forgejo Actions 러너의 셀프 호스팅을 활용 가능
-
Forgejo Actions vs Woodpecker CI
- Codeberg에서는 Woodpecker CI가 더 안정적이지만, Forgejo Actions가 GitHub Actions 사용자에게 더 익숙한 환경 제공
- UI와 YAML 문법이 거의 동일하며, 기존 GitHub Actions 워크플로 대부분이 그대로 작동
- 예시로 GitHub Actions에서 uses: dtolnay/rust-toolchain을 사용하던 부분을
Forgejo Actions에서는 uses: https://github.com/dtolnay/rust-toolchain으로 변경하면 됨
- 현재 Codeberg의 Forgejo Actions 문서는 최신 상태가 아니며, 관련 PR이 존재함
-
macOS 러너가 필요한 경우
- macOS 빌드가 꼭 필요하다면 GitHub Actions을 계속 사용하고, Codeberg 저장소에서 GitHub로 커밋을 미러링하는 방법 가능
- Forgejo Actions가 GitHub API를 폴링하여 CI 상태를 Codeberg로 동기화하도록 설정 가능
- 다른 macOS 빌드 제공 CI 서비스도 시도했으나, Codeberg와의 통합이 GitHub Actions보다 단순하지 않음
-
GitHub 저장소의 처리 방식
- 이전 후 GitHub 저장소는 README를 수정하고 아카이브 처리
- Codeberg에서 GitHub로 커밋을 푸시하도록 설정할 수도 있지만, 이 경우 사용자가 여전히 PR 작성 및 이슈 코멘트 가능
- 일부는 GitHub 저장소의 이슈 기능을 비활성화하지만, 이 경우 모든 이슈가 404로 사라지고 PR은 비활성화 불가
- 예시로 libvirt/libvirt 저장소는 모든 PR을 자동으로 닫는 GitHub Action을 사용
- 이러한 접근은 자체 호스팅 및 오픈소스 생태계 전반에 부정적 영향을 줄 수 있음
- 사용자가 빌드 최적화나 릴리스 파일 다운로드 빈도를 개선할 동기를 잃게 됨
- 전환기 동안에는 읽기 전용 미러 유지나 GitHub Pages·Actions 병행 사용도 고려 가능
-
Homepage
-
개발자
- GitHub에서 Codeberg로 이전하기, 게으른 사람들을 위한 방법