GitLab Shell 프로세스

새 버전 릴리스

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

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

  • raw 버전은 버전 번호입니다. 예를 들어 15.2.8입니다.
  • 태그 버전은 raw 버전 앞에 v가 붙은 버전입니다. 예를 들어 v15.2.8입니다.

GitLab Shell의 새 버전을 릴리스하고 해당 버전을 Rails 애플리케이션에서 사용 가능하게하려면 다음을 수행합니다:

  1. 태그 버전으로 CHANGELOGraw 버전으로 VERSION 파일을 업데이트하는 Merge Request을 생성합니다.
  2. 메인테이너에게 리뷰 및 Merge을 요청합니다. 이미 메인테이너인 경우 추가적인 리뷰가 필요하지 않습니다.
  3. 태그 버전으로 새 Git 태그를 추가합니다.
  4. Rails 애플리케이션의 GITLAB_SHELL_VERSIONraw 버전으로 업데이트합니다.

    note
    이는 별도의 Merge Request으로 수행하거나, 최신 GitLab Shell 변경 사항을 사용하는 Merge Request에서 수행할 수 있습니다.

보안 릴리스

GitLab Shell은 GitLab으로 생성하는 패키지에 포함됩니다. 각 GitLab 버전은 GITLAB_SHELL_VERSION 파일에서 사용하는 GitLab Shell 버전을 지정합니다. 이 사양 때문에 GitLab Shell의 보안 수정은 GitLab 패치 릴리스 워크플로에 엄격하게 결합됩니다.

GitLab Shell의 보안 수정을 위해 두 세트의 Merge Request이 필요합니다:

  1. gitlab-org/security/gitlab-shell 리포지터리에서 수정 자체와 GitLab Shell 이전 버전에 대한 백포트가 필요합니다.
  2. gitlab-org/security/gitlab 리포지터리에서 GitLab 패치 릴리스에 포함되는 GitLab Shell 버전을 변경하는 Merge Request이 필요합니다.

첫 번째 단계는 gitlab-org/security/gitlab-shellmain을 대상으로 한 수정을 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/gitlabGITLAB_SHELL_VERSION을 업데이트할 수 있도록 합니다. GitLab Merge Request은 일반적인 GitLab 패치 릴리스 프로세스에 의해 처리됩니다.

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