GitLab Shell 프로세스
GitLab v19.1GitLab Shell은 Git 태그로 버전을 관리하며, Rails 애플리케이션에서 사용하는 버전은 GITLAB_SHELL_VERSION에 저장됩니다. 각 버전에는 raw 버전과 태그 버전이 있습니다. raw 버전은 버전 번호입니다.
새 버전 릴리즈#
GitLab Shell은 Git 태그로 버전을 관리하며, Rails 애플리케이션에서 사용하는 버전은
GITLAB_SHELL_VERSION에 저장됩니다.
각 버전에는 raw 버전과 태그 버전이 있습니다.
-
raw 버전은 버전 번호입니다. 예:
15.2.8. -
태그 버전은 raw 버전 앞에
v를 붙인 것입니다. 예:v15.2.8.
GitLab Shell의 새 버전을 릴리즈하고 Rails 애플리케이션에서 해당 버전을 사용할 수 있게 하려면 다음 단계를 따르세요.
-
태그 버전으로
CHANGELOG를 업데이트하고, raw 버전으로VERSION파일을 업데이트하는 머지 리퀘스트를 생성합니다. -
메인테이너에게 머지 리퀘스트를 리뷰하고 머지해 달라고 요청합니다. 이미 메인테이너라면 두 번째 메인테이너 리뷰는 필요하지 않습니다.
-
태그 버전으로 새 Git 태그를 추가합니다.
-
Rails 애플리케이션의
GITLAB_SHELL_VERSION을 raw 버전으로 업데이트합니다.이 작업은 별도의 머지 리퀘스트로 진행하거나, 최신 GitLab Shell 변경 사항을 사용하는 머지 리퀘스트에 포함할 수 있습니다.
Gitaly와 관련된 GitLab Shell의 새 기능을 개발할 때는 Gitaly 버전 호환성 요구사항에 관한 가이드라인을 따라야 합니다.
보안 릴리즈#
GitLab Shell은 GitLab용으로 생성하는 패키지에 포함됩니다. 각 버전의 GitLab은
GITLAB_SHELL_VERSION 파일에서 사용하는 GitLab Shell 버전을 지정합니다.
이 명세로 인해 GitLab Shell의 보안 수정 사항은
GitLab 패치 릴리즈 워크플로와 긴밀하게 연계됩니다.
GitLab Shell의 보안 수정을 위해서는 두 가지 머지 리퀘스트 세트가 필요합니다.
-
gitlab-org/security/gitlab-shell리포지터리의 수정 자체와, 이전 버전의 GitLab Shell에 대한 백포트. -
gitlab-org/security/gitlab리포지터리에서 GitLab 패치 릴리즈에 포함된 GitLab Shell 버전을 변경하는 머지 리퀘스트.
첫 번째 단계로 gitlab-org/security/gitlab-shell의 main을 타깃으로 하는 수정 머지 리퀘스트를 생성할 수 있습니다.
메인테이너가 머지 리퀘스트를 승인하면, 이전 3개 버전의 GitLab Shell을 타깃으로 하는 백포트를 생성해야 합니다.
해당 버전의 stable 브랜치가 존재하지 않을 수 있으므로, 메인테이너에게 생성을 요청해도 됩니다.
stable 브랜치는 이전 3개 GitLab 릴리즈에서 사용되는 GitLab Shell 태그 또는 버전을 기반으로 생성되어야 합니다.
특정 GitLab stable 릴리즈에서 사용된 GitLab Shell 버전을 확인하려면,
13-9-stable-ee를 원하는 버전으로 교체하여 다음 명령어를 실행하세요.
이 명령어들은 GitLab 13.9 버전에서 사용된 버전을 표시합니다.
git fetch security 13-9-stable-ee
git show refs/remotes/security/13-9-stable-ee:GITLAB_SHELL_VERSION
GitLab 패치 릴리즈에 가까워지면, 메인테이너는 수정 사항과 백포트를 머지하고
필요한 모든 GitLab Shell 버전을 컷해야 합니다. 이를 통해 gitlab-org/security/gitlab의
GITLAB_SHELL_VERSION을 업데이트할 수 있습니다. GitLab 머지 리퀘스트는 일반적인 GitLab 패치 릴리즈 프로세스에 의해 처리됩니다.
패치 릴리즈가 완료되면, GitLab Shell 메인테이너는 gitlab-org/gitlab-shell 리포지터리에
태그와 main을 동기화할 책임이 있습니다.