GitLab Shell 프로세스
새 버전 릴리스
GitLab Shell은 Git 태그로 버전이 지정되며, Rails 애플리케이션이 사용하는 버전은 GITLAB_SHELL_VERSION
에 저장됩니다.
각 버전마다 원시 버전과 태그 버전이 있습니다:
-
원시 버전은 버전 번호입니다. 예를 들어,
15.2.8
. -
태그 버전은
v
로 접두사가 붙은 원시 버전입니다. 예를 들어,v15.2.8
.
GitLab Shell의 새 버전을 릴리스하고 해당 버전을 Rails 애플리케이션에서 사용 가능하게 하려면 다음을 수행합니다:
-
CHANGELOG
를 태그 버전 및VERSION
파일을 원시 버전으로 업데이트하는 병합 요청을 생성합니다. - 유지자에게 리뷰 및 병합을 요청합니다. 이미 유지자인 경우, 추가 유지자 리뷰는 필요하지 않습니다.
- 태그 버전으로 새 Git 태그를 추가합니다.
-
Rails 애플리케이션의
GITLAB_SHELL_VERSION
을 원시 버전으로 업데이트합니다.참고: 이 작업은 별도의 병합 요청으로 수행하거나 최신 GitLab Shell 변경 사항을 사용하는 병합 요청에서 수행할 수 있습니다.
보안 릴리스
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
을 대상으로 한 수정을 포함하는 병합 요청을 생성하는 것입니다. 병합 요청이 유지자에의해 승인되면, GitLab Shell의 이전 3개 버전을 대상으로 하는 백포트를 생성해야 합니다. 이러한 버전에 대한 안정 분기가 존재하지 않을 수 있으므로 유지자에게 해당 안정 분기를 생성하도록 요청할 수 있습니다. 이러한 안정 분기는 이전 3개의 GitLab 버전에서 사용된 GitLab Shell 태그나 버전으로 생성되어야 합니다.
특정 GitLab 안정 버전에서 사용된 GitLab Shell 버전을 확인하려면 관련 버전으로 해당 명령을 실행하세요. 이 명령은 GitLab 13.9
버전에서 사용된 버전을 보여줍니다:
shell
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 유지자는 태그와 main
을 gitlab-org/gitlab-shell
리포지토리에 동기화하는 책임이 있습니다.