GitLab 개발에 기여하기
GitLab v19.5요약
GitLab에 기여하는 데 관심을 가져 주셔서 감사합니다. 이 가이드는 GitLab 개발에 기여하는 방법을 설명합니다. 처음 기여하는 분을 위한 단계별 안내는 튜토리얼: GitLab에 기여하기를 참고합니다. 모든 기여는 영어로 제출해야 합니다.
GitLab에 기여하는 데 관심을 가져 주셔서 감사합니다. 새로운 기능, 코드나 프로세스 변경, 오탈자 수정, 인터페이스 문구 업데이트 등으로 기여할 수 있습니다.
이 가이드는 GitLab 개발에 기여하는 방법을 설명합니다.
처음 기여하는 분을 위한 단계별 안내는 튜토리얼: GitLab에 기여하기를 참고합니다.
기여하는 방법#
- 행동 강령을 읽습니다.
- 기여자 온보딩을 시작합니다.
- 작업할 이슈를 선택하거나 생성합니다.
- 개발 환경을 선택합니다.
- 변경 사항을 만들고 머지 리퀘스트를 엽니다
- 머지 리퀘스트가 분류와 리뷰를 거쳐 제품에 반영됩니다.
모든 기여는 영어로 제출해야 합니다. GitLab의 엔지니어링 작업은 영어로 이루어지며, 다른 언어로 작성된 머지 리퀘스트와 이슈는 리뷰하거나 수용할 수 없습니다.
GitLab 기술 스택#
GitLab은 Ruby on Rails 애플리케이션입니다. Haml과 Vue.js 기반의 JavaScript 프론트엔드를 사용합니다.
일부 위성 프로젝트는 Go를 사용합니다. 예를 들면 다음과 같습니다.
코딩 표준에 맞출 수 있도록 기술별 개발 스타일 가이드를 제공합니다.
웹사이트나 핸드북에 기여하려면 아무 페이지 하단으로 이동해 View page source를 선택하면 해당 페이지를 리포지터리에서 열 수 있습니다.
이슈 선택 또는 생성#
무엇을 작업할지 정하지 못했다면 기여자 플랫폼의
이슈 찾기로 이슈를 찾아 자신에게 할당할 수 있습니다.
quick win::first-time contributor 레이블이 붙은 이슈로 시작하는 방법을 권장합니다.
작업할 내용을 이미 정했다면 해당 이슈가 이미 있는지 확인합니다.
없다면 새 이슈를 엽니다.
적절한 템플릿을 선택하고 계획한 작업에 관한 필요한 정보를 모두 추가합니다.
이슈에서 @gitlab-bot help로 머지 리퀘스트 코치를 멘션하거나
기여자 플랫폼을 통해 이슈 검증에 도움을 받습니다.
시작하기 위해 이슈를 할당받아야 하는 것은 아닙니다.
이슈에 이미 담당자가 있다면 아직 작업 중인지, 함께 작업할 의사가 있는지 물어봅니다.
자세한 내용은 이슈 워크플로를 참고합니다.
커뮤니티 참여#
기여자 온보딩을 시작하면 기여자 경험을 개선하기 위해 GitLab 리포지터리에서 미러링한 포크 모음인 커뮤니티 포크에 접근할 수 있습니다. 온보딩을 시작하면 커뮤니티 온보딩 프로젝트에 온보딩 이슈가 생성됩니다. 자세한 내용은 Meta 리포지터리 README의 커뮤니티 포크 설명을 참고합니다.
또한 GitLab Discord 서버에 참여하기를 권장합니다. 이곳에서는 GitLab 팀원과 더 넓은 커뮤니티가 질문에 답하고 기여를 지원할 준비가 되어 있습니다.
개발 환경 선택#
코드를 로컬에서 작성하고 테스트하려면 로컬 개발 환경을 선택합니다.
-
GitLab Development Kit(GDK)은 GitLab Self-Managed 설치본, 샘플 프로젝트, 기능을 테스트할 수 있는 관리자 접근 권한을 포함한 로컬 개발 환경입니다.
-
GDK-in-a-box는 GDK를 사전 구성된 컨테이너 이미지로 패키징한 것으로, VS Code로 연결할 수 있습니다. GDK-in-a-box 구성에 따라 GDK-in-a-box를 설정합니다.
GDK와 의존성을 설치하려면 GDK 개발 환경 설치의 단계를 따릅니다.
변경 사항 만들기 및 머지 리퀘스트 열기#
- 커뮤니티 포크의 브랜치에서 코드를 변경합니다.
- 정본 리포지터리의 master 브랜치를 대상 브랜치로 하여 머지 리퀘스트를 생성합니다.
@gitlab-bot이 게시한 링크를 따라 레이블을 추가하거나 GitLab 팀에 리뷰를 요청합니다.
머지 리퀘스트를 열고 제출하는 전체 단계별 안내는 머지 리퀘스트 튜토리얼을 참고합니다.
궁금한 점이 있다면 다음을 참고합니다.
@gitlab-bot help로 GitLab 머지 리퀘스트 코치를 호출합니다. MR 코치에 관한 자세한 내용은 GitLab 머지 리퀘스트 코치의 지원 방식을 참고합니다.
커뮤니티 머지 리퀘스트 분류 방식#
머지 리퀘스트를 생성하면 머지 리퀘스트 코치가 적절한 리뷰어를 배정하거나, 가능한 경우 직접 리뷰를 안내합니다.
리뷰어가 배정된 뒤 일주일 안에 머지 리퀘스트를 리뷰하는 것을 목표로 합니다. 업무량이 많거나 휴일 등의 이유로 더 오래 걸리기도 합니다. 필요하다면 작성한 코드 유형을 전문으로 하는 머지 리퀘스트 코치를 찾아 머지 리퀘스트에서 멘션합니다. 예를 들어 프론트엔드 코드를 작성했다면 프론트엔드 머지 리퀘스트 코치를 멘션합니다. 코드가 여러 분야에 걸쳐 있다면 여러 머지 리퀘스트 코치를 멘션할 수 있습니다.
일정과 도움 요청 또는 머지 리퀘스트 에스컬레이션 방법에 관한 자세한 내용은 Wider Community Merge Request 가이드를 참고합니다.
머지 리퀘스트가 리뷰를 거쳐 머지되면 변경 사항이 GitLab.com에 배포되고 다음 릴리스에 포함됩니다.
리뷰 프로세스#
GitLab에 제출된 코드는 머지되는 것을 목표로 다룹니다. 다만 제출물을 꼼꼼히 검토하므로 시간이 걸립니다. 제출된 코드는 대개 머지 전에 두 명의 도메인 전문가가 검토합니다.
리뷰 후 리뷰어가 작성자에게 머지 리퀘스트 수정을 요청할 수 있습니다.
이 경우 리뷰어가 ~"workflow::in dev" 레이블을 설정합니다.
요청받은 변경을 머지 리퀘스트에 반영했다면 @gitlab-bot ready로 댓글을 달아 다시 리뷰할 준비가 되었음을 알립니다.
이 과정은 머지되기까지 여러 번 반복되기도 합니다.
처음 시작하기 전에 기여자를 위한 머지 리퀘스트 가이드라인을 읽습니다.
- 커밋 메시지 가이드라인을 반드시 따릅니다.
- 구현을 재현하는 단계를 포함해 설명을 충실히 작성합니다.
- 자동화된 테스트가 필요합니다. 시간을 들여 여러 테스트 수준을 이해하고 그에 맞게 적용합니다.
Enterprise Edition 라이선스로 Premium/Ultimate 기능에 기여#
유료 티어에 속한 GitLab 기능을 작업하려면, EE 디렉터리에 있는 코드에 GitLab Enterprise Edition 라이선스가 필요합니다. 문서화된 절차에 따라 Enterprise Edition Developers License를 요청합니다.
도움 받기#
GitLab 기여에 관한 도움을 받는 방법은 다음과 같습니다.
- 머지 리퀘스트나 이슈의 댓글에
@gitlab-bot help를 입력해 MR 코치를 호출합니다.- 자세한 내용은 GitLab 머지 리퀘스트 코치의 지원 방식을 참고합니다.
- GitLab Community Discord에 참여해
#contribute채널에서 도움을 요청합니다. - Contributor Success 팀에
contributors@gitlab.com으로 메일을 보냅니다.