GitLab Shell 프로세스

새 버전 릴리스

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

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

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

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

  1. CHANGELOG태그 버전VERSION 파일을 원시 버전으로 업데이트하는 Merge Request을 생성하세요.
  2. 메인테이너에게 검토 및 Merge을 요청하세요. 이미 메인테이너인 경우, 두 번째 메인테이너 검토가 필요하지 않습니다.
  3. 태그 버전으로 새 Git 태그를 추가하세요.
  4. Rails 애플리케이션의 GITLAB_SHELL_VERSION원시 버전으로 업데이트하세요.

    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에 대한 백포트를 하는 Merge Request입니다.
  2. gitlab-org/security/gitlab 리포지터리에서 GitLab 보안 릴리스에 포함된 GitLab Shell 버전을 변경하는 Merge Request입니다.

첫 번째 단계는 gitlab-org/security/gitlab-shellmain을 대상으로 수정을 포함하는 Merge Request을 생성하는 것일 수 있습니다. Merge Request이 메인테이너에 의해 승인되면, 이전 3개 버전의 GitLab Shell에 대한 백포트를 생성해야 합니다. 해당 버전을 위한 stable 브랜치가 존재하지 않을 수 있으므로, 안심하고 메인테이너에게 해당 브랜치를 생성해달라고 요청하세요. 해당 stable 브랜치는 3개 이전의 GitLab 릴리스에서 사용하는 GitLab Shell 태그 또는 버전에서 생성해야 합니다.

특정 GitLab stable 릴리스에서 사용된 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 보안 릴리스가 가까워질수록, 메인테이너는 수정 및 백포트를 Merge하고 필요한 모든 GitLab Shell 버전을 릴리스해야 합니다. 이로써 gitlab-org/security/gitlabGITLAB_SHELL_VERSION을 업데이트할 수 있게 됩니다. GitLab Merge Request은 일반적인 GitLab 보안 릴리스 프로세스에 따라 처리됩니다.

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