GitLab Shell 프로세스
새 버전 릴리스
GitLab Shell은 Git 태그로 버전이 지정되며, Rails 애플리케이션이 사용하는 버전은 GITLAB_SHELL_VERSION
에 저장됩니다.
각 버전에는 raw 버전과 태그 버전이 있습니다:
-
raw 버전은 버전 번호입니다. 예를 들어
15.2.8
입니다. -
태그 버전은 raw 버전 앞에
v
가 붙은 버전입니다. 예를 들어v15.2.8
입니다.
GitLab Shell의 새 버전을 릴리스하고 해당 버전을 Rails 애플리케이션에서 사용 가능하게하려면 다음을 수행합니다:
-
태그 버전으로
CHANGELOG
및 raw 버전으로VERSION
파일을 업데이트하는 Merge Request을 생성합니다. - 메인테이너에게 리뷰 및 Merge을 요청합니다. 이미 메인테이너인 경우 추가적인 리뷰가 필요하지 않습니다.
- 태그 버전으로 새 Git 태그를 추가합니다.
-
Rails 애플리케이션의
GITLAB_SHELL_VERSION
을 raw 버전으로 업데이트합니다.이는 별도의 Merge Request으로 수행하거나, 최신 GitLab Shell 변경 사항을 사용하는 Merge Request에서 수행할 수 있습니다.
보안 릴리스
GitLab Shell은 GitLab으로 생성하는 패키지에 포함됩니다. 각 GitLab 버전은 GITLAB_SHELL_VERSION
파일에서 사용하는 GitLab Shell 버전을 지정합니다. 이 사양 때문에 GitLab Shell의 보안 수정은 GitLab 패치 릴리스 워크플로에 엄격하게 결합됩니다.
GitLab Shell의 보안 수정을 위해 두 세트의 Merge Request이 필요합니다:
-
gitlab-org/security/gitlab-shell
리포지터리에서 수정 자체와 GitLab Shell 이전 버전에 대한 백포트가 필요합니다. -
gitlab-org/security/gitlab
리포지터리에서 GitLab 패치 릴리스에 포함되는 GitLab Shell 버전을 변경하는 Merge Request이 필요합니다.
첫 번째 단계는 gitlab-org/security/gitlab-shell
의 main
을 대상으로 한 수정을 Merge Request으로 만드는 것입니다. Merge Request이 유지자에의해 승인되면 GitLab Shell의 이전 3개 버전에 대한 백포트를 작성해야 합니다. 해당 버전을 위한 stable 브랜치가 존재하지 않을 수 있으므로 유지자에게 해당 브랜치를 생성해달라고 요청할 수 있습니다. 이러한 stable 브랜치는 3개 이전의 GitLab 릴리스에서 사용된 GitLab Shell 태그나 버전을 기반으로 생성되어야 합니다.
특정 GitLab 안정 버전에서 사용된 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 패치 릴리스 직전에 유지자는 수정 및 백포트를 Merge하고 필요한 모든 GitLab Shell 버전을 만들어야 합니다. 이는 gitlab-org/security/gitlab
의 GITLAB_SHELL_VERSION
을 업데이트할 수 있도록 합니다. GitLab Merge Request은 일반적인 GitLab 패치 릴리스 프로세스에 의해 처리됩니다.
패치 릴리스가 완료되면 GitLab Shell 유지자는 태그 및 main
을 gitlab-org/gitlab-shell
리포지터리에 동기화하는 책임이 있습니다.