GitLab シェルのプロセス
新しいバージョンのリリース
GitLab ShellはGitタグによってバージョン管理されており、Railsアプリケーションで使われるバージョンはGITLAB_SHELL_VERSION
。
各バージョンには、生のバージョンとタグのバージョンがあります:
-
生のバージョンはバージョン番号です。例えば、
15.2.8
. -
タグのバージョンは、生のバージョンの前に
v
を付けたものです。たとえば、v15.2.8
。
GitLab Shell の新バージョンをリリースし、そのバージョンを Rails アプリケーションで使えるようにするには
- マージリクエストを作成し、
CHANGELOG
をタグのバージョンで、VERSION
ファイルを生のバージョンで更新します。 - メンテナにマージリクエストのレビューとマージを依頼してください。あなたがすでにメンテナであれば、2人目のメンテナのレビューは必要ありません。
- 新しい Git タグをタグのバージョンと一緒に追加します。
-
Rails アプリケーションの
GITLAB_SHELL_VERSION
を生のバージョンに更新します。これは別のマージリクエストとして行うこともできますし、最新の GitLab Shell の変更を使ったマージリクエストとして行うこともできます。
セキュリティリリース
GitLab ShellはGitLab用に作成したパッケージに含まれています。GitLabの各バージョンは、GITLAB_SHELL_VERSION
ファイルで使用するGitLab Shellのバージョンを指定しています。この仕様のおかげで、GitLab Shellのセキュリティ修正はGitLabのセキュリティリリースのワークフローと密接に結びついています。
GitLab Shellのセキュリティ修正には、2組のマージリクエストが必要です:
-
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 のバージョンを調べるには、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/gitlab
のGITLAB_SHELL_VERSION
をバンプすることができます。GitLabマージリクエストは、一般的なGitLabセキュリティリリースプロセスで処理されます。
セキュリティリリースが完了したら、GitLab Shellのメンテナはタグとmain
をgitlab-org/gitlab-shell
リポジトリに同期する責任があります。