Git SSHオペレーションにおけるレート制限

GitLab 14.7 でrate_limit_gitlab_shellというフラグで導入。15.8からは機能フラグなしでデフォルトで利用可能。

GitLabはSSHを使用するGitオペレーションに対して、ユーザーアカウントとプロジェクトごとにレートリミットを適用します。レートリミットを超えると、GitLabはそのユーザーからのプロジェクトに対するそれ以降の接続要求を拒否します。

レートリミットはGitコマンド(配管)レベルで適用されます。各コマンドには1分あたり600のレート制限があります。例えば

  • git push は毎分600のレート制限があります。
  • git pull には毎分600のレート制限があります。

同じコマンドがgit-upload-packgit pullgit cloneで共有されているため、これらはレート制限を共有します。

セルフマネジメントGitLabのユーザーは、このレート制限を無効にすることができます。

GitLab Shellオペレーション制限の設定

GitLab 16.2 で導入されました

Git operations using SSH はデフォルトで有効です。デフォルトはユーザー毎分600。

  1. 左側のサイドバーで、「Your work(自分の仕事)」 > 「Admin Area(管理エリア)」を選択します。
  2. 左サイドバーで、「設定」 > 「ネットワーク」を選択します。
  3. Git SSHオペレーションレートリミットを展開します。
  4. 1分あたりの最大Gitオペレーション数に値を入力します。
  5. 変更を保存を選択します。