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-org/security/gitlab 리포지토리에서 GitLab 패치 릴리스에 포함된 GitLab Shell 버전을 변경하는 병합 요청.

첫 번째 단계는 gitlab-org/security/gitlab-shellmain을 대상으로 한 수정을 포함하는 병합 요청을 생성하는 것입니다. 병합 요청이 유지자에의해 승인되면, 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/gitlabGITLAB_SHELL_VERSION를 올리게 해줍니다. GitLab 병합 요청은 일반 GitLab 패치 릴리스 프로세스에 따라 처리됩니다.

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