GitLab.comの設定

このPagesには、GitLab SaaSの顧客が利用できるGitLab.comで使用される設定に関する情報が含まれています。

これらの設定の一部は、GitLab.comのインスタンス設定ページでご覧ください。

メール確認

GitLab.comには以下のものがあります:

パスワードの条件

GitLab.comでは、新規アカウントやパスワード変更時のパスワードについて、以下の要件を設けています:

  • 最低文字数 8文字
  • 最大文字数128文字。
  • すべての文字が使用できます。例:~,!,@,#,$,%,^,&,*,(),[],_,+,=,-.

SSHキーの制限

GitLab.comはデフォルトのSSHキー制限を使用しています。

SSHホストキーの指紋

現在のインスタンス設定に移動して、GitLab.com上のSSHホストキーの指紋を確認します。

  1. GitLab にサインインします。
  2. 左のサイドバーでHelp({question-o}) >Helpを選択します。
  3. Help]ページで、[Check the current instance configuration]を選択します。

インスタンス設定で、SSHホストキーのフィンガープリントが表示されます:

アルゴリズムMD5 (非推奨)SHA256
ECDSAf1:d0:fb:46:73:7a:70:92:5a:ab:5d:ef:43:e2:1c:35HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw
ED255192e:65:6a:c8:cf:bf:b2:8b:9a:bd:6d:9f:11:5c:12:16eUXGGm1YGsMAS7vkcx6JOJdOGHPem5gQp4taiCfCLB8
アールエスエーb6:03:0e:39:97:9e:d0:e7:24:ce:a3:77:3e:01:42:09ROQFvPThGrW4RuWLoL9tq9I9zJ42fK4XywyRtbOz/EQ

GitLab.com リポジトリに初めて接続すると、これらの鍵のいずれかが出力に表示されます。

SSHknown_hosts エントリ

SSH で手動指紋確認をスキップするには、.ssh/known_hosts に以下を追加します:

gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=

メール設定

GitLab.comはMailgunを使って mg.gitlab.com ドメインからメールを送信しており、専用のIPアドレスを持っています:

  • 161.38.202.219
  • 159.135.226.146
  • 192.237.158.143
  • 198.61.254.136
  • 23.253.183.236
  • 69.72.35.190

mg.gitlab.com の IP アドレスは随時変更される可能性があります。

サービスデスクエイリアスメールアドレス

GitLab.com では、Service Desk 用にcontact-project+%{key}@incoming.gitlab.com というメールアドレスのメールボックスが設定されています。このメールボックスを使うには、プロジェクト設定でカスタムサフィックスを設定します。

バックアップ

バックアップ戦略をご覧ください。

GitLab.com上のプロジェクト全体をバックアップするには、以下のいずれかの方法でエクスポートします:

  • UI から
  • APIを通して。API を使用して、エクスポートを Amazon S3 などのストレージ・プラットフォームにプログラムでアップロードすることもできます。

エクスポートでは、プロジェクトのエクスポートに含まれるものと含まれないものに注意してください。

GitLabはGitで構築されているので、プロジェクトのリポジトリだけを別のコンピュータにクローンしてバックアップすることができます。同様に、プロジェクトの Wiki をクローンしてバックアップすることもできます。2020年8月22日以降にアップロードされたすべてのファイルがクローンに含まれます。

グループ削除の遅延

2023年5月8日以降、すべてのグループの削除遅延がデフォルトで有効になります。

グループは7日間の遅延の後、完全に削除されます。

Freeティアをご利用の場合、グループは即座に削除され、復元することはできません。

プロジェクトの遅延削除

2023年5月8日以降、すべてのグループでプロジェクトの削除遅延がデフォルトで有効になります。

プロジェクトは、7日間の遅延の後、完全に削除されます。

Freeティアをご利用の場合、プロジェクトは即座に削除され、復元することはできません。

非アクティブプロジェクトの削除

GitLab.comでは、非アクティブプロジェクトの削除が無効になっています。

代替SSHポート

GitLab.comには、git+ssh別のSSHポートを使ってアクセスすることができます。

設定
Hostnamealtssh.gitlab.com
Port443

~/.ssh/config の例を以下に示します:

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

GitLab Pages

GitLab Pagesのいくつかの設定は、セルフマネージドインスタンスのデフォルトとは異なります:

設定GitLab.com
ドメイン名gitlab.io
IPアドレス35.185.44.232
カスタムドメインのサポート {チェックサークル}はい
TLS証明書のサポート {チェックサークル}はい
最大サイトサイズ1 GB
GitLab Pagesウェブサイトごとのカスタムドメイン数150

Pagesサイトの最大サイズは、GitLab CI/CDの一部である最大アーティファクトサイズに依存します。

GitLab Pagesにもレート制限があります。

GitLab CI/CD

以下はGitLab CI/CDに関する現在の設定です。ここに記載されていない設定や機能制限は、関連ドキュメントに記載されているデフォルトを使用しています。

設定GitLab.comデフォルト(自己管理)
アーティファクトの最大サイズ(圧縮)1 GB 最大アーティファクトサイズを参照してください。
アーティファクトの有効期限 2020年6月22日以降、特に指定がない限り30日後に削除(それ以前に作成されたアーティファクトには有効期限はありません)。 デフォルトのアーティファクトの有効期限を参照してください。
パイプラインCronのスケジュール*/5 * * * * パイプラインスケジュールの詳細設定を参照してください。
アクティブなパイプラインの最大ジョブ数 500 Free層では1000 、すべてのトライアル層では20000 、Premium層では100000 、Ultimate層では 。 アクティブなパイプラインのジョブ数を参照してください。
プロジェクトに対するCI/CDサブスクリプションの最大数2プロジェクトに対するCI/CDサブスクリプション数を参照してください。
プロジェクト内のパイプライントリガーの最大数 25000 無料ティアでは無制限、すべての有料ティアでは無制限 パイプライントリガーの数を制限するを参照してください。
プロジェクトでのパイプラインスケジュールの最大値 10 無料ティアの場合、50 すべての有料ティアの場合 パイプラインのスケジュール数をご覧ください。
スケジュールごとの最大パイプライン数 24 無料ティアの場合、288 すべての有料ティアの場合 1日にパイプラインスケジュールで作成されるパイプラインの数を制限するを参照してください。
各セキュリティポリシープロジェクトに定義されるスケジュールルールの最大数すべての有料ティアで無制限 各セキュリティポリシープロジェクトに定義されたスケジュールルールの数を参照してください。
スケジュールされたジョブのアーカイブ3ヶ月(2020年6月22日から)。それ以前に作成されたジョブは、2020年9月22日以降にアーカイブされます。決して
単体テストレポートあたりの最大テストケース数500000無制限。
最大登録ランナー数無料ティア:50 グループごと/ 50プロジェクトごと
すべての有料ティア:1000 グループごと/ 1000プロジェクトごと
スコープごとの登録ランナー数を参照してください。
dotenv変数の制限数無料ティア 50 / Premium ティア: 100 / アルティメット・ティア150 dotenv変数の制限を参照してください。
作成者トークンの持続時間 (分)15カスタム値を設定するには、RailsコンソールでApplicationSetting.last.update(container_registry_token_expire_delay: <integer>) を実行します。<integer> は希望の分数です。

パッケージのレジストリ制限

GitLabパッケージレジストリにアップロードされるパッケージの最大ファイルサイズはフォーマットによって異なります:

パッケージタイプGitLab.com
Conan5 GB
汎用5 GB
Helm5 MB
Maven5 GB
npm5 GB
NuGet5 GB
PyPI5 GB
Terraform1 GB

アカウントと制限の設定

GitLab.comでは、以下のアカウント制限が有効になっています。設定が一覧にない場合、デフォルト値はセルフマネージドインスタンスと同じです:

設定GitLab.comデフォルト
LFSを含むリポジトリサイズ10 GB
最大インポートサイズ5 GB
外部オブジェクトストレージからのインポートの最大リモートファイルサイズ10 GB
ソースGitLabインスタンスから直接転送でインポートする場合の最大ダウンロードファイルサイズ5 GB
最大添付ファイルサイズ100 MB
インポートアーカイブの最大解凍ファイルサイズ25 GB

リポジトリサイズの上限が近いか超えている場合は、Gitを使ってリポジトリサイズを小さくするか、追加のストレージを購入することができます。

note
git push Git LFS と GitLab プロジェクトのインポートは、Cloudflare 経由のリクエストごとに 5 GB に制限されます。Git LFS とファイルのアップロード以外のインポートは、この制限の影響を受けません。リポジトリの制限は、公開プロジェクトと非公開プロジェクトの両方に適用されます。

デフォルトのインポートソース

GitLab 16.0で導入された新しいGitLabセルフマネージドインストールでは、デフォルトですべてのインポートを無効にします。

デフォルトで利用可能なインポートソースは、利用するGitLabによって異なります:

  • GitLab.com: 利用可能なインポートソースは全てデフォルトで有効になっています。
  • GitLab 自己管理: デフォルトではインポートソースは有効になっておらず、有効にする必要があります。
インポートソースGitLab.comデフォルトGitLab 自己管理デフォルト
Bitbucket クラウド {チェックサークル}はい {点線円}いいえ
Bitbucket サーバー {チェックサークル}はい {点線円}いいえ
FogBugz {チェックサークル}はい {点線円}いいえ
Gitea {チェックサークル}はい {点線円}いいえ
直接転送によるGitLab {チェックサークル}はい {点線円}いいえ
ファイルエクスポートを使用するGitLab {チェックサークル}はい {点線円}いいえ
GitHub {チェックサークル}はい {点線円}いいえ
マニフェスト・ファイル {チェックサークル}はい {点線円}いいえ
URLによるリポジトリ {チェックサークル}はい {点線円}いいえ

その他のインポートも可能です。

IPレンジ

GitLab.comは、Web/APIフリートからのトラフィックにIPレンジ34.74.90.64/2834.74.226.0/24 。この範囲全体がGitLabだけに割り当てられています。Webhookやリポジトリミラーリングからの接続がこれらのIPから来ることを予想し、許可することができます。

GitLab.comはCloudflareによってフロントされています。GitLab.comへの着信接続については、CloudflareのCIDRブロック(IPv4と IPv6)を許可する必要があるかもしれません。

CI/CDランナーからの発信接続については、静的IPアドレスを提供していません。すべてのGitLab.com共有ランナーは、us-east1 のGoogle Cloud Platform(GCP) にデプロイされています。IPベースのファイアウォールは、GCPのIPアドレス範囲やCIDRブロックを調べることで設定できます。

ホスト名リスト

ローカルの HTTP(S) プロキシや、エンドユーザーコンピュータを管理するその他のウェブブロックソフトウェアで許可リストを設定するときに、これらのホスト名を追加してください。GitLab.comのページは、これらのホスト名からコンテンツを読み込みます:

  • gitlab.com
  • *.gitlab.com
  • *.gitlab-static.net
  • *.gitlab.io
  • *.gitlab.net

docs.gitlab.comabout.gitlab.com で提供されるドキュメントや会社のページも、特定のページの内容を一般的な公開CDNのホスト名から直接読み込みます。

Webhook

Webhookには以下の制限があります。

レート制限

Webhook が 1 分間に呼び出される回数、1 つのトップレベル名前空間あたり。制限は、ご利用のプランとサブスクリプションのシート数によって異なります。

PlanGitLab.comのデフォルト
無料500
Premium 99 シート以下:1,600
100-399 シート:2,800
400 シート以上:4,000
究極のオープンソース 999 シート以下:6,000
1,000-4,999 シート:9,000
5,000 シート以上:13,000

その他の制限

設定GitLab.comのデフォルト
Webhook数 100 プロジェクトあたり、50 グループあたり (サブグループの Webhook は親グループの制限にはカウントされません)
最大ペイロードサイズ25 MB
タイムアウト10秒

セルフマネージド・インスタンスの制限については、以下を参照してください:

ランナーSaaS

Runner SaaSは、GitLab.comがホストするプロジェクトのCI/CDジョブを実行するために使用できる、ホストされたセキュアで管理されたビルド環境です。

詳細はRunner SaaSをご覧ください。

Puma

GitLab.comでは、Pumaのリクエストタイムアウトにデフォルトの60秒を使用しています。

レビュアーと担当者の最大数

  • GitLab 15.6 で導入された最大担当者数。
  • GitLab 15.9 で導入された最大レビュアー数。

マージリクエストはこれらの上限を強制します:

  • 担当者の最大数:200
  • 最大レビュアー数:200名

GitLab.com固有のレート制限

note
管理者向けドキュメントはレート制限をご覧ください。

リクエストがレート制限されると、GitLab は429 ステータスコードで応答します。クライアントはリクエストを再試行する前に待つ必要があります。このレスポンスには情報ヘッダも含まれます。

以下の表は、2021年1月の制限変更前と変更後のGitLab.comのレート制限について説明したものです:

料金制限2021-02-12より2022-02-03より
保護されたパス(指定されたIPアドレスの場合) 10リクエスト/分 10リクエスト/分
生のエンドポイントトラフィック(指定されたプロジェクト、コミット、ファイルパスの場合) 300リクエスト/分 300リクエスト/分
認証されていないトラフィック(指定されたIPアドレスから) 500リクエスト/分 500リクエスト/分
認証されたAPIトラフィック(特定のユーザーの場合) 2,000リクエスト/分 2,000リクエスト/分
認証された非API HTTPトラフィック(特定のユーザーの場合) 1,000リクエスト/分 1,000リクエスト/分
すべてのトラフィック(指定されたIPアドレスから) 2,000リクエスト/分 2,000リクエスト/分
イシュー作成 300リクエスト/分毎分200リクエスト
ノート作成(イシューとマージリクエストについて) 60リクエスト/分 60リクエスト/分
アドバンス、プロジェクト、グループ検索API(指定されたIPアドレスに対して) 10リクエスト/分 10リクエスト/分
GitLabページへのリクエスト(指定されたIPアドレスの場合)  1000リクエスト/50秒
GitLab Pagesのリクエスト数(GitLab Pagesドメインの場合)  5000リクエスト/10秒
GitLab PagesTLS 接続 (指定されたIP アドレスの場合)  1000リクエスト/50秒
GitLab PagesTLS 接続 (GitLab Pages ドメイン)  10秒あたり400リクエスト
パイプライン作成リクエスト (指定されたプロジェクト、ユーザー、コミット)  25リクエスト/分
アラートインテグレーションエンドポイントリクエスト(特定のプロジェクトに対して)  1時間あたり3600リクエスト

保護されたパスと 未加工エンドポイントのレート制限の詳細については、こちらをご覧ください。

GitLabはいくつかのレイヤーでリクエストをレート制限することができます。ここに記載されているレートリミットはアプリケーションで設定されます。これらの制限はIPアドレスごとに最も制限されます。GitLab.comのレート制限の詳細については、概要をご覧ください。

レスポンスのレート制限

速度制限応答については、こちらをご覧ください:

保護されたパスのスロットル

GitLab.com は、保護されたパスでの POST リクエストが IP アドレスあたり毎分10 リクエストを超えた場合、HTTP ステータスコード429 で応答します。

どのパスが保護されるかについては、以下のソースを参照してください。これには、ユーザー作成、ユーザー確認、ユーザーサインイン、パスワードリセットが含まれます。

ユーザーと IP レートの制限には、ブロックされたリクエストに応答するヘッダのリストが含まれます。

詳しくは保護されたパスを参照してください。

IPブロック

IPブロックは、GitLab.comが悪意のある可能性があるとみなす単一のIPアドレスから異常なトラフィックを受信した場合に発生する可能性があります。これはレートリミットの設定に基づくことがあります。異常なトラフィックがなくなった後、次のセクションで説明するように、ブロックの種類に応じてIPアドレスは自動的にリリースされます。

GitLab.comへのすべてのリクエストに対して403 Forbidden エラーが表示される場合は、ブロックをトリガーしている可能性のある自動プロセスがないか確認してください。サポートが必要な場合は、影響を受けるIPアドレスなどの詳細をGitLabサポートまでご連絡ください。

Git とコンテナレジストリの認証禁止に失敗しました。

GitLab.comは、1つのIPアドレスから3分間に30回の認証失敗リクエストがあった場合、HTTPステータスコード403 で1時間応答します。

これは、Git リクエストとコンテナレジストリ (/jwt/auth) リクエスト (の組み合わせ) にのみ適用されます。

この制限は

  • 認証に成功したリクエストによってリセットされます。例えば、29回認証に失敗し、その後1回認証に成功し、さらに29回認証に失敗しても、BANのトリガーにはなりません。
  • gitlab-ci-token によって認証された JWT リクエストには適用されません。

レスポンス・ヘッダは提供されません。

ページネーションのレスポンスヘッダ

パフォーマンス上の理由から、クエリが10,000以上のレコードを返す場合、GitLabはいくつかのヘッダを除外します。

可視性の設定

GitLab.comでは、プロジェクト、グループ、スニペットの内部可視性設定が無効になっています。

SSH 最大接続数

GitLab.com では、認証されていない SSH 接続の最大同時接続数をMaxStartups 設定で定義しています。許可された最大数を超える接続が同時に発生した場合、接続は切断され、ユーザーは ssh_exchange_identification エラーを受け取ります。

エクスポートファイルのアップロードによるグループとプロジェクトのインポート

不正利用を避けるため、以下はレートが制限されています:

  • プロジェクトおよびグループのインポート。
  • ファイルを使用するグループとプロジェクトのエクスポート。
  • エクスポートのダウンロード。

詳細については

設定不可能な制限

GitLab.comでも使用されている設定不可能なレート制限については、設定不可能な制限をご覧ください。

GitLab.com固有のGitaly RPC同時実行数制限

リポジトリごとの Gitaly RPC の同時実行数やキューイング数の制限は、git clone のような Git のオペレーションごとに設定されます。これらの制限を超えると、fatal: remote error: GitLab is currently unable to handle this request due to load メッセージがクライアントに返されます。

管理者向けのドキュメントについては、RPC の同時実行数の制限を参照ください。

GitLab.com ロギング

ログの解析にはFluentdを使っています。Fluentd はログをStackdriver LoggingCloud Pub/Subに送ります。Stackdriver はログを Google Cold Storage(GCS)に長期保存するために使います。Cloud Pub/SubはログをElasticクラスターに転送するために使います。 pubsubbeat.

詳細については、以下のようなランブックをご覧ください:

ジョブのログ

デフォルトでは、GitLabはジョブログを期限切れにしません。ジョブログは無期限に保持され、GitLab.comで有効期限を設定することはできません。ジョブログはJobs APIを使って手動で消すか、パイプラインを削除することで消すことができます。

GitLab.com アットスケール

GitLab Enterprise Edition Linuxパッケージのインストールに加えて、GitLab.comはスケールを実現するために以下のアプリケーションと設定を使用しています。すべての設定はKubernetes設定や Chef cookbookとして公開されています。

Elasticクラスター

監視ソリューションの一部に Elasticsearch と Kibana を使用しています:

Fluentd

GitLabのログを統一するためにFluentdを使っています:

Prometheus

Prometheusは私たちの監視スタックを完成させました:

Grafana

モニタリングデータの可視化

セントリー

オープンソースのエラートラッキング:

Consul

サービスの発見:

HAProxy

高性能TCP/HTTPロードバランサー:

Sidekiq

GitLab.comはSidekiqをRubyジョブスケジューリング用の外部プロセスとして動かしています。

現在の設定はGitLab.comのKubernetesポッド設定にあります。