GitLab Shell 프로세스

새로운 버전 릴리즈

GitLab Shell은 Git 태그로 버전 관리되며, Rails 애플리케이션에서 사용하는 버전은 GITLAB_SHELL_VERSION에 저장됩니다.

각 버전에는 원시 버전과 태그 버전이 있습니다:

  • 원시 버전은 버전 번호입니다. 예를 들어, 15.2.8입니다.
  • 태그 버전은 원시 버전에 v가 접두어로 붙은 것입니다. 예를 들어, v15.2.8입니다.

GitLab Shell의 새 버전을 릴리즈하고 이 버전을 Rails 애플리케이션에서 사용할 수 있도록 하려면:

  1. CHANGELOG태그 버전으로 업데이트하는 병합 요청과 VERSION 파일을 원시 버전으로 업데이트하는 병합 요청을 생성합니다.

  2. 유지 관리자에게 병합 요청을 검토하고 병합해 달라고 요청합니다. 이미 유지 관리자라면 두 번째 유지 관리자 검토는 필요하지 않습니다.

  3. 태그 버전으로 새로운 Git 태그를 추가합니다.

  4. Rails 애플리케이션에서 GITLAB_SHELL_VERSION원시 버전으로 업데이트합니다.

    참고: 이는 별도의 병합 요청으로 할 수 있거나, 최신 GitLab Shell 변경 사항을 사용하는 병합 요청에서 할 수 있습니다.

보안 릴리즈

GitLab Shell은 우리가 GitLab을 위해 생성하는 패키지에 포함되어 있습니다. GitLab의 각 버전은 GITLAB_SHELL_VERSION 파일에 사용되는 GitLab Shell의 버전을 지정합니다. 이러한 사양 때문에, GitLab Shell의 보안 수정 사항은 GitLab 패치 릴리즈 워크플로우와 긴밀하게 연결되어 있습니다.

GitLab Shell에서 보안 수정이 필요한 경우, 두 세트의 병합 요청이 필요합니다:

  1. 수정 사항 자체가 gitlab-org/security/gitlab-shell 리포지토리에 있으며, 이전 버전의 GitLab Shell로의 백포트가 포함되어 있습니다.

  2. GitLab 패치 릴리즈에 포함된 GitLab Shell의 버전을 변경하는 병합 요청이 gitlab-org/security/gitlab 리포지토리에 있습니다.

첫 번째 단계는 gitlab-org/security/gitlab-shellmain을 대상으로 하는 수정 사항으로 병합 요청을 생성하는 것입니다. 유지 관리자에 의해 병합 요청이 승인되면, 이전 3버전의 GitLab Shell을 위한 백포트를 생성해야 합니다. 이 버전의 안정적인 브랜치는 존재하지 않을 수 있으므로, 유지 관리자에게 만들도록 요청해도 좋습니다. 안정적인 브랜치는 3개의 이전 GitLab 릴리즈에서 사용된 GitLab Shell 태그 또는 버전에서 생성해야 합니다.

특정 GitLab 안정 릴리즈에서 사용된 GitLab Shell 버전을 찾으려면 아래 명령을 실행하십시오. 13-9-stable-ee를 관심 있는 버전으로 바꿉니다. 이 명령은 13.9 버전의 GitLab에서 사용된 버전을 표시합니다:

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/gitlabGITLAB_SHELL_VERSION을 증분하는 것을 가능하게 합니다. GitLab 병합 요청은 일반 GitLab 패치 릴리즈 프로세스에 따라 처리됩니다.

패치 릴리즈가 완료된 후, GitLab Shell 유지 관리자는 gitlab-org/gitlab-shell 리포지토리의 태그와 main을 동기화하는 책임이 있습니다.