{"eid":"gitlab","name":"GitLab","domain":"gitlab.com","resolved_by":"domain","topics":["ci-cd-runners","compute","storage"],"n_records":14,"best_vorder":0,"review":null,"aliases":["GitLab","GitLab CI Job Artifacts (GitLab.com Free)","GitLab CI on GitLab.com Free","GitLab Container Registry","GitLab Container Registry (gitlab.com)","GitLab Package Registry (generic / npm / Maven / PyPI / NuGet / Conan)","GitLab Pages (gitlab.io)","GitLab Runners","GitLab Snippets / GitLab.com projects","GitLab.com Git LFS","GitLab.com container registry","GitLab.com generic package registry","GitLab.com snippets","gitlab pages","gitlab.com"],"records":[{"rid":"storage/gitlab-com-container-registry","card":{"rid":"storage/gitlab-com-container-registry","eid":"gitlab","topic":"storage","slug":"gitlab-com-container-registry","provider":"GitLab.com container registry","url":"https://registry.gitlab.com","domain":"gitlab.com","category":"registry","tier":null,"verdict":"qualifies","vorder":0,"grp":"usable","confidence":"reported","binding":"none","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"oci","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":5,"usd_month":null,"usd_per_tb_month":null,"summary":"No published storage cap. Explicitly excluded from the per-project 10 GiB limit; unlimited container repositories per project is the practical reading.","duplicate_of":null,"n_unknown":6},"record":{"topic":"storage","slug":"gitlab-com-container-registry","provider":"GitLab.com container registry","url":"https://registry.gitlab.com","category":"registry","free_tier":{"stated":"No published storage cap. Explicitly excluded from the per-project 10 GiB limit; unlimited container repositories per project is the practical reading.","unit":"GiB","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"Free, Cloudflare + Google Cloud CDN. Blob requests 307-redirect to cdn.registry.gitlab-static.net with a signed URL — directly cacheable by an external Cloudflare zone.","metered":false},"interface":["oci"],"interface_detail":"oci","tooling":"Standard OCI Distribution v2. ORAS, skopeo, crane, docker. Auth flow is anonymous for public projects (`/jwt/auth` returns a token with auth_type=none).","chaining":"One OCI artifact per blob of any size -> unlimited projects x unlimited repositories x unlimited tags. This is the canonical 'OCI registry as object store' pattern (ORAS). Blob dedupe means the same chunk stored in N projects costs one copy but is addressable N times.","limits":[],"limits_note":"Auth token TTL 15 min on GitLab.com. Blob size limited only by the registry (manifest layers routinely are 100s of MB; no documented per-layer cap). Renaming a project with >1000 container repos is blocked. Public pulls are rate-limited loosely; anonymous token issuance works but each pull needs a token round-trip.","identity_cost":{"kind":"anonymous","detail":"derived from the record's prose, not from an identity field, and no signup was executed: er repos is blocked. Public pulls are rate-limited loosely; anonymous token issuance works but each pull needs a token round-trip. registry","country":null},"reliability_note":"GitLab has run garbage-collection and cleanup-policy tooling against registries since 2023; no automatic purge is documented, but stale-tag cleanup policies are a first-class feature other users may set on shared projects. Own projects are not touched.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-21","proved":"package/container registries excluded from the limit"},{"url":"https://registry.gitlab.com/v2/","date":"2026-10-21","proved":"probe: GET -> 401 with WWW-Authenticate: Bearer realm=\"https://gitlab.com/jwt/auth\",service=\"container_registry\"; Server: cloudflare; gitlab-sv: registry-us-east1-c"},{"url":"https://gitlab.com/jwt/auth?service=container_registry&scope=repository:gitlab-org/gitlab-runner:pull","date":"2026-10-21","proved":"probe: GET -> 200, JWT with \"auth_type\":\"none\" (anonymous pull token, no credentials)"},{"url":null,"date":"2026-10-21","proved":"probe: GET /v2/gitlab-org/gitlab-runner/manifests/latest with that token -> 200, application/vnd.oci.image.index.v1+json, digest sha256:f1c76f915d7f70d8b3e25cac58da3d87d3d10106dda82ee780409440e1dc1ccc, Server: cloudflare"},{"url":"https://cdn.registry.gitlab-static.net/","date":"2026-10-21","proved":"probe: GET /v2/gitlab-org/gitlab-runner/blobs/sha256:a60ef8ec184edb5ed91f5983f00261359fb2fe20f603e8d488b9477d32fcad70 -> 307 to ... (signed CDN URL, cacheable)"}],"verdict":"qualifies","verified_at":"2026-10-21T00:00:00.000Z","notes":"No published storage cap. Explicitly excluded from the per-project 10 GiB limit; unlimited container repositories per project is the practical reading.","extras":{},"binding":"none","binding_note":"no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.evidence[3].url","private-url"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/gitlab-com-generic-package-registry","card":{"rid":"storage/gitlab-com-generic-package-registry","eid":"gitlab","topic":"storage","slug":"gitlab-com-generic-package-registry","provider":"GitLab.com generic package registry","url":"https://gitlab.com","domain":"gitlab.com","category":"registry","tier":null,"verdict":"qualifies","vorder":0,"grp":"usable","confidence":"reported","binding":"per-object-cap","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":"rest,cli","egress_metered":0,"per_object_bytes":5000000000,"retention_days":30,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":5,"usd_month":null,"usd_per_tb_month":null,"summary":"5 GB maximum per uploaded file (Generic). No per-project or per-namespace package storage cap is documented; the package registry is explicitly excluded from...","duplicate_of":null,"n_unknown":3},"record":{"topic":"storage","slug":"gitlab-com-generic-package-registry","provider":"GitLab.com generic package registry","url":"https://gitlab.com","category":"registry","free_tier":{"stated":"5 GB maximum per uploaded file (Generic). No per-project or per-namespace package storage cap is documented; the package registry is explicitly excluded from the 10 GiB project storage limit.","unit":"GiB","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"5 GB maximum per upload","bytes":5000000000,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"Artifacts expire in 30 days, packages do not.","days":30,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"Free and Cloudflare-fronted. GitLab.com is behind Cloudflare and blobs are served from Google Cloud Storage / the GitLab CDN (cdn.registry.gitlab-static.net). No egress billing for public projects.","metered":false},"interface":["rest","cli"],"interface_detail":"rest","tooling":"GitLab REST API v4 (`PUT /projects/:id/packages/generic/:package_name/:version/:file_name`, `GET .../package_files/:id/download`), glab CLI, python-gitlab (has generic package support, merged), goreleaser pushes generic packages natively (PR #2745 merged). Works with plain curl — no special client needed.","chaining":"Unlimited projects per namespace (no project-count cap is documented on GitLab.com; the only new limits are 3 top-level *groups* for accounts created after 2026-01-27, and the personal namespace does not count). Each project is its own unbounded package bucket at 5 GB/file. N projects x unlimited package versions x 5 GB. Multiply again by additional free namespaces (3 groups + personal) and by unlimited free accounts.","limits":[{"kind":"per-object-cap","value":"5 GB per file","source":"https://docs.gitlab.com/user/storage_usage_quotas/"},{"kind":"retention-clamped","value":"expire in 30 days","source":"https://docs.gitlab.com/user/storage_usage_quotas/"}],"limits_note":"5 GB per file (Generic / Maven / npm / NuGet / PyPI / Conan); 10 GB for ML models (upload capped at 5 GB); 1 GB for Terraform state; Helm only 5 MB. Anonymous read of public project packages; writes need a token. Repository/LFS Git push limited to 5 GiB per request, irrelevant to packages.","identity_cost":{"kind":"institution","detail":"derived from the record's prose, not from an identity field, and no signup was executed: accounts. 5 GB per file (Generic / Maven / npm / NuGet / PyPI / Conan); 10 GB for ML models (upload capped at 5 GB); 1 GB for Terraform state; Helm only 5 MB. Anonymous read of publ","country":null},"reliability_note":"Snippets, packages and job artifacts count toward *namespace* storage as a display/billing figure but are not enforced as a cap — enforcement is per-project on repo+LFS only. GitLab could start enforcing namespace storage at any time; it has never done so for packages. Artifacts expire in 30 days, packages do not.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-21","proved":"'Only the project's repository and LFS are included in the storage limit. The container registry, package registry, and build artifacts are not included in the limit.' and 'Each project in a Free tier namespace on GitLab.com has 10 GiB of free storage.'"},{"url":"https://docs.gitlab.com/user/gitlab_com/","date":"2026-10-21","proved":"package registry max file size table: 'Generic | 5 GB'; also 'GitLab.com is fronted by Cloudflare'"},{"url":"https://docs.gitlab.com/user/free_user_limit/","date":"2026-10-21","proved":"top-level group limit of 3 applies only to accounts created after January 27, 2026, and 'Your personal namespace does not count toward this limit'"},{"url":"https://gitlab.com/api/v4/projects/gitlab-org%2Fcli/packages/27524971/package_files/139350290/download","date":"2026-10-21","proved":"probe: GET with Range: bytes=0-1023 -> 206 Partial Content, Content-Range: bytes 0-1023/9035444, Server: cloudflare, x-goog-stored-content-length 9035444 (anonymous public-package download, Cloudflare-served, range-capable) — no token sent"},{"url":"https://gitlab.com/api/v4/projects/gitlab-org%2Fcli/packages?per_page=5&package_type=generic","date":"2026-10-21","proved":"probe: GET -> 200, glab 1.44.1 last_downloaded_at 2026-10-21 (packages API anonymously listable)"}],"verdict":"qualifies","verified_at":"2026-10-21T00:00:00.000Z","notes":"5 GB maximum per uploaded file (Generic). No per-project or per-namespace package storage cap is documented; the package registry is explicitly excluded from the 10 GiB project storage limit.","extras":{},"binding":"per-object-cap","binding_note":"the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":5.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":5.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:retention-clamped","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/gitlab-container-registry","card":{"rid":"storage/gitlab-container-registry","eid":"gitlab","topic":"storage","slug":"gitlab-container-registry","provider":"GitLab Container Registry (gitlab.com)","url":"https://registry.gitlab.com","domain":"gitlab.com","category":"registry","tier":null,"verdict":"qualifies","vorder":0,"grp":"usable","confidence":"reported","binding":"none","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"oci,rclone","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":4,"usd_month":null,"usd_per_tb_month":null,"summary":"Not counted against any storage quota. GitLab docs: 'Only the project's repository and LFS are included in the storage limit. The container registry, package...","duplicate_of":null,"n_unknown":5},"record":{"topic":"storage","slug":"gitlab-container-registry","provider":"GitLab Container Registry (gitlab.com)","url":"https://registry.gitlab.com","category":"registry","free_tier":{"stated":"Not counted against any storage quota. GitLab docs: 'Only the project's repository and LFS are included in the storage limit. The container registry, package registry, and build artifacts are not included in the limit.' The 10 GiB Free limit therefore does not apply to OCI blobs.","unit":"GiB","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"No egress charge is published for gitlab.com registry pulls; anonymous pulls are served without auth beyond a JWT. Effectively unmetered for anonymous public projects.","metered":false},"interface":["oci","rclone"],"interface_detail":"oci","tooling":"ORAS / docker / skopeo / crane all work against registry.gitlab.com; rclone has no OCI backend but 'oras cp' + rclone covers push/pull. Public projects allow anonymous pull tokens.","chaining":"Unlimited projects per namespace x unlimited namespaces/accounts x 5 GB per layer (generic package max file is 5 GB; container layers see the same class of limit). Since blobs are outside the 10 GiB project quota, a single free account can host arbitrarily many OCI layers. Compare GHCR (already known) — the differentiator here is the explicit quota exemption, not the registry itself.","limits":[],"limits_note":"Container registry storage is visible but not capped in docs; individual blob uploads go through the standard Docker chunked path so layer size is bounded by the client, not by a documented per-file cap. Requires CI or a token for push; anonymous pull works on public projects.","identity_cost":{"kind":"anonymous","detail":"derived from the record's prose, not from an identity field, and no signup was executed: a documented per-file cap. Requires CI or a token for push; anonymous pull works on public projects. registry","country":null},"reliability_note":"Storage is reported under 'reduce container registry storage' but no hard cap or eviction is documented on Free; the risk is administrative cleanup of dormant projects rather than quota enforcement.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-21","proved":"'Only the project's repository and LFS are included in the storage limit. The container registry, package registry, and build artifacts are not included in the limit.'"},{"url":"https://about.gitlab.com/pricing/","date":"2026-10-21","proved":"'Purchased storage applies to Git repository size and LFS usage. It does not apply to other storage types, such as the container registry.'"},{"url":"https://gitlab.com/jwt/auth?service=container_registry&scope=repository:gitlab-org/gitlab-runner:pull","date":"2026-10-21","proved":"probe: GET -> {\"token\":\"eyJ...\"} anonymous pull token issued with no credentials"},{"url":"https://registry.gitlab.com/v2/gitlab-org/gitlab-runner/manifests/latest","date":"2026-10-21","proved":"probe: GET (Bearer token) -> 200, Content-Type: application/vnd.oci.image.index.v1+json, docker-content-digest: sha256:f1c76f91... (real OCI manifest served anonymously)"}],"verdict":"qualifies","verified_at":"2026-10-21T00:00:00.000Z","notes":"Not counted against any storage quota. GitLab docs: 'Only the project's repository and LFS are included in the storage limit. The container registry, package registry, and build artifacts are not included in the limit.' The 10 GiB Free limit therefore does not apply to OCI blobs.","extras":{},"binding":"none","binding_note":"no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/gitlab-package-registry","card":{"rid":"storage/gitlab-package-registry","eid":"gitlab","topic":"storage","slug":"gitlab-package-registry","provider":"GitLab Package Registry (generic / npm / Maven / PyPI / NuGet / Conan)","url":"https://gitlab.com","domain":"gitlab.com","category":"registry","tier":null,"verdict":"qualifies","vorder":0,"grp":"usable","confidence":"reported","binding":"per-object-cap","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":"rest,rclone","egress_metered":0,"per_object_bytes":5000000000,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":5,"usd_month":null,"usd_per_tb_month":null,"summary":"Explicitly EXCLUDED from the project storage quota. GitLab docs, verbatim: 'GitLab projects have a storage limit for their Git repository and Large File Stor...","duplicate_of":null,"n_unknown":4},"record":{"topic":"storage","slug":"gitlab-package-registry","provider":"GitLab Package Registry (generic / npm / Maven / PyPI / NuGet / Conan)","url":"https://gitlab.com","category":"registry","free_tier":{"stated":"Explicitly EXCLUDED from the project storage quota. GitLab docs, verbatim: 'GitLab projects have a storage limit for their Git repository and Large File Storage (LFS). Only the project's repository and LFS are included in the storage limit. The container registry, package registry, and build artifacts are not included in the limit.' The 10 GiB figure (pricing page: 'Storage 10 GiB') therefore applies only to git+LFS; package bytes are unquota'd. Per-file ceilings: Generic 5 GB, npm 5 GB, Maven 5 GB, NuGet 5 GB, PyPI 5 GB, Conan 5 GB, Terraform 1 GB, ML model 10 GB (uploads capped at 5 GB), Helm 5 MB.","unit":"GiB","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"5 GB per file","bytes":5000000000,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"Free and unmetered for downloads; no egress line item anywhere in GitLab pricing. Served through Cloudflare (probe returned Server: cloudflare).","metered":false},"interface":["rest","rclone"],"interface_detail":"rest","tooling":"Full REST API: PUT /api/v4/projects/:id/packages/generic/:package_name/:version/:file_name and GET the same path for download. Also native npm/maven/pypi/nuget/conan clients by pointing the client at the GitLab URL. No rclone backend, but the generic-package PUT/GET is a two-verb blob API — trivial to drive from curl or a 30-line Python loop. Deploy tokens with write_package_registry scope give scoped push credentials.","chaining":"UNBOUNDED on two axes: (a) unlimited free projects per account (GitLab Free has no project cap; only project *creation rate* is limited to 200/day/user) x 5 GB per file x unlimited files per project; (b) package bytes sit outside the 10 GiB quota entirely, so a single project is already a de-facto unlimited bucket and additional projects multiply it further. 10 TiB hot = 2,048 x 5 GB generic files, achievable in one project.","limits":[{"kind":"per-object-cap","value":"5 GB per file","source":"https://docs.gitlab.com/user/storage_usage_quotas/"}],"limits_note":"5 GB per file (generic). Package registry rate limits apply to the Packages API. Authenticated API traffic 2,000 req/min per user; unauthenticated 60 req/hr per IP. Project creation 200/day/user. No per-project package storage cap documented.","identity_cost":{"kind":"institution","detail":"derived from the record's prose, not from an identity field, and no signup was executed: ceilings: Generic 5 GB, npm 5 GB, Maven 5 GB, NuGet 5 GB, PyPI 5 GB, Conan 5 GB, Terraform 1 GB, ML model 10 GB (uploads capped at 5 GB), Helm 5 MB. Package registry is a real fea","country":null},"reliability_note":"Package registry is a real feature not a cache — no TTL, but a project cleanup policy can auto-delete package assets if configured, so leave it off. Anonymous pull must be enabled per project ('Allow anyone to pull from package registry'). NuGet group endpoints refuse anonymous pulls entirely.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-21","proved":"'the container registry, package registry, and build artifacts are not included in the limit'; 'Each project in a Free tier namespace on GitLab.com has 10 GiB of free storage'"},{"url":"https://docs.gitlab.com/user/gitlab_com/","date":"2026-10-21","proved":"per-format max file size table (Generic 5 GB, npm 5 GB, ML model 10 GB)"},{"url":"https://gitlab.com/api/v4/projects/34675721/packages/generic/glab/1.44.1/glab_1.44.1_Linux_x86_64.tar.gz","date":"2026-10-21","proved":"probe: GET (no auth) -> 200 OK, Content-Length: 9035444, Content-Type: application/gzip, Server: cloudflare"},{"url":"https://gitlab.com/api/v4/projects/gitlab-org%2Fcli/packages","date":"2026-10-21","proved":"probe: GET (no auth) -> 200 OK, JSON listing packages"},{"url":"https://docs.gitlab.com/user/packages/generic_packages/","date":"2026-10-21","proved":"'To interact with the package registry, you must authenticate' for upload; download paths documented as GET"}],"verdict":"qualifies","verified_at":"2026-10-21T00:00:00.000Z","notes":"Explicitly EXCLUDED from the project storage quota. GitLab docs, verbatim: 'GitLab projects have a storage limit for their Git repository and Large File Storage (LFS). Only the project's repository and LFS are included in the storage limit. The container registry, package registry, and build artifacts are not included in the limit.' The 10 GiB figure (pricing page: 'Storage 10 GiB') therefore applies only to git+LFS; package bytes are unquota'd. Per-file ceilings: Generic 5 GB, npm 5 GB, Maven 5 GB, NuGet 5 GB, PyPI 5 GB, Conan 5 GB, Terraform 1 GB, ML model 10 GB (uploads capped at 5 GB), Helm 5 MB.","extras":{},"binding":"per-object-cap","binding_note":"the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":5.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"ci-cd-runners/gitlab-ci","card":{"rid":"ci-cd-runners/gitlab-ci","eid":"gitlab","topic":"ci-cd-runners","slug":"gitlab-ci","provider":"GitLab CI on GitLab.com Free","url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","domain":"gitlab.com","category":"CI runner","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"request-rate","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"git,cli","egress_metered":1,"per_object_bytes":null,"retention_days":30,"verified_at":"2026-10-22T03:05:00.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"400 compute minutes a month per namespace; 5 users per top-level group; 10 GiB of repository storage","duplicate_of":null,"n_unknown":1},"record":{"topic":"ci-cd-runners","slug":"gitlab-ci","provider":"GitLab CI on GitLab.com Free","url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","category":"CI runner","free_tier":{"stated":"400 compute minutes a month per namespace; 5 users per top-level group; 10 GiB of repository storage","unit":"minutes","source_url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","read_on":"2026-10-22","metered_on":"wall-clock"},"per_object_cap":{"stated":"no published per-job cap on the small Linux runner; the binding limit is the monthly pool and the cost factor","bytes":null},"retention":{"stated":"artifacts expire per job configuration, default 30 days; compute minutes reset on the first of the month","days":30,"source_url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/"},"egress":{"terms":"the container registry is excluded from the namespace storage quota; storage beyond the purchased amount is billed","metered":true,"free_allowance":"10 GiB per namespace","price_per_tb":null,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/"},"interface":["git","cli"],"interface_detail":"a .gitlab-ci.yml pipeline; instance runners on GitLab.com; self-managed runners are free of the vendor cap","tooling":"the runner images; any shell; docker-in-docker on the Linux runners","chaining":"the only free pool here with a cost-factor discount that makes open-source work cheaper: 0.5 for a GitLab-for-Open-Source project and 0.008 for a public fork of one","limits":[{"kind":"request-rate","value":"400 compute minutes a month on Free; a job consumes duration divided by 60 times the cost factor","source":"https://docs.gitlab.com/ci/pipelines/compute_minutes/"},{"kind":"request-rate","value":"cost factor 1 for small Linux, 2 for medium, 3 for large, 6 for xlarge, 12 for 2xlarge, 6 for macOS M1","source":"https://docs.gitlab.com/ci/pipelines/compute_minutes/"},{"kind":"per-object-cap","value":"10 GiB of repository storage per namespace","source":"https://docs.gitlab.com/user/storage_usage_quotas/"}],"limits_note":"a 1,000-minute grace period exists before jobs are dropped when the quota is exceeded; the 300,000-minute cap applies only to the community-contribution programme","binding":"request-rate","identity_cost":{"kind":"email","detail":"email signup; identity verification is required for some namespaces","country":null},"reliability_note":"no reliability event recorded","confidence":"documented","confidence_note":"the compute-minutes doc and the storage-quota doc were read today.","evidence":[{"url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","date":"2026-10-22","proved":"'Free tier namespaces receive 400 compute minutes per month'; cost factors small 1, medium 2, large 3, xlarge 6, 2xlarge 12; public projects in GitLab for Open Source 0.5 and public forks 0.008; usage resets on the first day of the month"},{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-22","proved":"the container registry is excluded from the namespace repository quota"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-22T03:05:00.000Z","price_per_tb_month":null,"notes":"400 minutes is 6.7 hours, and a medium runner halves that. The open-source discount is the interesting part and it needs the project to be accepted into the programme, which is a review."},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[1].value","kind":"limit:request-rate","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[2].value","kind":"limit:per-object-cap","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.reliability_note","none-observed"]],"history":[],"drift":[]},{"rid":"ci-cd-runners/gitlab-container-registry","card":{"rid":"ci-cd-runners/gitlab-container-registry","eid":"gitlab","topic":"ci-cd-runners","slug":"gitlab-container-registry","provider":"GitLab Container Registry","url":"https://docs.gitlab.com/user/storage_usage_quotas/","domain":"gitlab.com","category":"container registry","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"request-rate","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"oci,rest","egress_metered":1,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T03:05:00.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":1,"usd_month":null,"usd_per_tb_month":null,"summary":"the registry is excluded from the 10 GiB namespace repository quota; no separate free cap is published","duplicate_of":null,"n_unknown":1},"record":{"topic":"ci-cd-runners","slug":"gitlab-container-registry","provider":"GitLab Container Registry","url":"https://docs.gitlab.com/user/storage_usage_quotas/","category":"container registry","free_tier":{"stated":"the registry is excluded from the 10 GiB namespace repository quota; no separate free cap is published","unit":"unlimited","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-22","metered_on":"stored-bytes"},"per_object_cap":{"stated":"no separate published cap; storage above the namespace's purchased amount is billed","bytes":null,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/"},"retention":{"stated":"tags expire per the project's cleanup policy if one is configured; nothing expires by default","days":null,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/"},"egress":{"terms":"no egress charge is published; storage is what is metered","metered":true,"free_allowance":null,"price_per_tb":null,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/"},"interface":["oci","rest"],"interface_detail":"the OCI distribution API at registry.gitlab.com; docker login with a deploy token or CI job token","tooling":"docker, podman, skopeo","chaining":"the only free registry here that does not count image layers against the same quota as the code","limits":[{"kind":"per-object-cap","value":"storage above the namespace purchased amount is billed; the registry is excluded from the 10 GiB repository quota","source":"https://docs.gitlab.com/user/storage_usage_quotas/"}],"limits_note":"the 10 GiB figure that circulates is the repository quota and not the registry quota; the two are different limits and the comparison literature conflates them","binding":"request-rate","identity_cost":{"kind":"email","detail":"a GitLab account","country":null},"reliability_note":"no reliability event recorded","confidence":"documented","confidence_note":"the storage-quota doc was read today and states the exclusion.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-22","proved":"the container registry is excluded from the namespace repository storage quota"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-22T03:05:00.000Z","price_per_tb_month":null,"notes":"An exclusion is not an allowance. The doc says the registry does not count against 10 GiB; it does not say the registry is free, and no separate free figure is published."},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.reliability_note","none-observed"]],"history":[],"drift":[]},{"rid":"compute/gitlab","card":{"rid":"compute/gitlab","eid":"gitlab","topic":"compute","slug":"gitlab","provider":"GitLab","url":"https://about.gitlab.com/solutions/open-source/join/","domain":"gitlab.com","category":"CI runner","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"write-gated","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":null,"egress_metered":null,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T00:00:00.000Z","verified_basis":"live","checked_on":"2026-10-22","stale_on":"2026-11-21","n_evidence":6,"usd_month":null,"usd_per_tb_month":null,"summary":"Quoted: 'Enroll in the GitLab for Open Source Program and receive features of GitLab Ultimate ..., including 50,000 compute minutes calculated at a program-s...","duplicate_of":null,"n_unknown":13},"record":{"topic":"compute","slug":"gitlab","provider":"GitLab","url":"https://about.gitlab.com/solutions/open-source/join/","category":"CI runner","free_tier":{"stated":"Quoted: 'Enroll in the GitLab for Open Source Program and receive features of GitLab Ultimate ..., including 50,000 compute minutes calculated at a program-specific cost factor.' Quoted from the compute-minutes page: 'Public projects in the GitLab for Open Source program' cost factor '0.5', '1 minute per 2 minutes of job time'. Quoted from the GPU runner page: 'Tier: Premium, Ultimate' with a single machine type of 4 vCPU, 15 GB, 50 GB disk and '1 NVIDIA Tesla T4 (or similar)' at 16 GB GPU memory. The default Linux runner is 2 vCPU / 8 GB / 30 GB; medium is 4 vCPU / 16 GB / 50 GB.","unit":"minutes","metered_on":"wall-clock","source_url":"https://about.gitlab.com/solutions/open-source/join/","read_on":"2026-10-22","notes":"reviewed-programme-grant"},"per_object_cap":{"stated":"not applicable","bytes":null,"source_url":"https://about.gitlab.com/solutions/open-source/join/","notes":null},"retention":{"stated":"not applicable","days":null,"source_url":"https://about.gitlab.com/solutions/open-source/join/","notes":null},"egress":{"terms":"not stated","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://about.gitlab.com/solutions/open-source/join/"},"interface":["unknown"],"interface_detail":"inferred from the tooling the provider documents; not probed","tooling":"not stated","chaining":"This is the only free lane in the survey that reaches a GPU through a CI system at a published price of zero: the OSS grant is Ultimate, and Ultimate unlocks the saas-linux-medium-amd64-gpu-standard T4 runner, so a reviewed open-source namespace composes into about 1,667 GPU-hours a month on the literal reading of the docs, or 238 GPU-hours if the programme factor and the runner factor multiply instead of substituting.","limits":[{"kind":"write-gated","value":null,"source":"https://about.gitlab.com/solutions/open-source/join/"}],"limits_note":null,"binding":"write-gated","binding_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"no reliability event recorded","confidence":"documented","evidence":[{"url":"https://about.gitlab.com/solutions/open-source/join/","date":"2026-10-22","proved":"receive features of GitLab Ultimate including 50,000 compute minutes at a program-specific cost factor; requirements are an OSI-approved licence on every project in the namespace, no profit-seeking, and public visibility; membership must be renewed annually"},{"url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","date":"2026-10-22","proved":"Free tier namespaces receive 400 compute minutes per month; project-type discount table: public projects in the GitLab for Open Source program cost factor 0.5, public forks of them 0.008, standard projects 1; runner cost factors small 1, medium 2, large 3, xlarge 6, 2xlarge 12, GPU standard 7, macOS M1 6"},{"url":"https://docs.gitlab.com/ci/runners/hosted_runners/gpu_enabled/","date":"2026-10-22","proved":"Tier: Premium, Ultimate; one GPU machine type saas-linux-medium-amd64-gpu-standard at 4 vCPU, 15 GB, 50 GB and one NVIDIA Tesla T4 with 16 GB"},{"url":"https://docs.gitlab.com/ci/runners/hosted_runners/linux/","date":"2026-10-22","proved":"saas-linux-small-amd64 is the untagged default at 2 vCPU, 8 GB, 30 GB; medium is 4 vCPU, 16 GB, 50 GB; large and above are Premium and Ultimate only"},{"url":"https://docs.gitlab.com/administration/cicd/limits/","date":"2026-10-22","proved":"The default maximum time that jobs can run for is 60 minutes, settable per project between 10 minutes and 1 month"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/351933","date":"2026-10-22","proved":"the 0.5 factor was introduced because projects migrating to the OSS plan were using more than 50,000 minutes per month, where 50,000 is the OSS and Ultimate monthly limit"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-22T00:00:00.000Z","notes":"The largest free-GPU number found, and it depends on one ambiguity I could not close. The docs formula is job duration divided by 60 times the cost factor, with project type and runner type in separate tables, and the project table says OSS public projects cost 0.5 with no runner qualifier. Read literally the GPU job also costs 0.5, so 50,000 divided by 0.5 is 100,000 job-minutes, or 1,667 GPU-hours a month. If instead the two factors multiply, 50,000 divided by 3.5 is 14,285 GPU-minutes, or 238 GPU-hours. The two readings differ by a factor of seven and only a run would settle it, which needs programme acceptance first. Recorded conservatively here and generously in the offer field, with the ambiguity stated rather than resolved. Also note this is not a same-shape substitute for GitHub: the default runner is 2 vCPU against GitHub's 4, a job is capped at 60 minutes against GitHub's 360, and the grant is a monthly pool rather than unlimited time.","extras":{"wave2":{"class":"ci-runner-capacity","free_tier_kind":"reviewed-programme-grant","shape":{"vcpu":2,"ram_gib":8,"gpu_class":"T4","gpu_count":1}}}},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":1.0,"unit":"minute","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.binding_note","withheld"],["$.egress.metered","egress-unknown"],["$.egress.terms","not-stated"],["$.identity_cost.detail","process"],["$.interface","interface-unknown"],["$.limits[0].value","withheld"],["$.limits_note","withheld"],["$.per_object_cap.notes","process"],["$.per_object_cap.stated","not-applicable"],["$.reliability_note","none-observed"],["$.retention.notes","process"],["$.retention.stated","not-applicable"],["$.tooling","not-stated"]],"history":[],"drift":[]},{"rid":"storage/gitlab-ci-job-artifacts","card":{"rid":"storage/gitlab-ci-job-artifacts","eid":"gitlab","topic":"storage","slug":"gitlab-ci-job-artifacts","provider":"GitLab CI Job Artifacts (GitLab.com Free)","url":"https://gitlab.com","domain":"gitlab.com","category":"paas","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":30,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"Not counted against the 10 GiB project storage limit ('build artifacts are not included in the limit'). 1 GB compressed maximum per artifact archive on GitLa...","duplicate_of":null,"n_unknown":6},"record":{"topic":"storage","slug":"gitlab-ci-job-artifacts","provider":"GitLab CI Job Artifacts (GitLab.com Free)","url":"https://gitlab.com","category":"paas","free_tier":{"stated":"Not counted against the 10 GiB project storage limit ('build artifacts are not included in the limit'). 1 GB compressed maximum per artifact archive on GitLab.com.","unit":"GiB","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"Default expiry 30 days, but `expire_in: never` is a valid documented value and the latest-successful-job artifact on every ref is exempt from expiry entirely","days":30,"source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"Free, anonymous for public projects. Verified a 321 MB anonymous download.","metered":false},"interface":["rest"],"interface_detail":"rest","tooling":"GET /projects/:id/jobs/artifacts/:ref/download?job=NAME, and GET /projects/:id/jobs/:job_id/artifacts (zip). No auth needed against a public project. Upload is automatic from .gitlab-ci.yml `artifacts:`.","chaining":"Unlimited jobs per project x 1 GB per artifact archive, uncounted against quota. Force permanence with `expire_in: never` or the 'Keep' button. Because 'artifacts from the latest pipeline for the ref' never expire regardless of expire_in, every branch/tag becomes a permanent shelf: unlimited branches x 1 GB.","limits":[],"limits_note":"1 GB compressed per archive. Default expiry 30 days, but `expire_in: never` is a valid documented value and the latest-successful-job artifact on every ref is exempt from expiry entirely. Free tier: 400 compute minutes/month, so bulk upload is compute-bound, not storage-bound.","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Expiry is enforced hourly and irreversible — anything not pinned with `never`/Keep silently vanishes. Treat as durable only when pinned.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/ci/yaml/","date":"2026-10-21","proved":"'artifacts:expire_in ... Valid values include ... never' and 'expire_in does not affect artifacts from the latest job'"},{"url":"https://docs.gitlab.com/user/gitlab_com/","date":"2026-10-21","proved":"'Artifacts maximum size (compressed) | 1 GB' and 'Artifacts expiry time | 30 days unless otherwise specified'"},{"url":"https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-foss/jobs/artifacts/master/download?job=setup-test-env","date":"2026-10-21","proved":"probe: curl -L -> 302 then 200, 321472291 bytes, no auth"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"Not counted against the 10 GiB project storage limit ('build artifacts are not included in the limit'). 1 GB compressed maximum per artifact archive on GitLab.com.","extras":{},"binding":"none","binding_note":"no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/gitlab-com-git-lfs","card":{"rid":"storage/gitlab-com-git-lfs","eid":"gitlab","topic":"storage","slug":"gitlab-com-git-lfs","provider":"GitLab.com Git LFS","url":"https://gitlab.com","domain":"gitlab.com","category":"registry","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"rest,git","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":5,"usd_month":null,"usd_per_tb_month":null,"summary":"10 GiB free storage PER PROJECT on the Free tier, and that 10 GiB explicitly covers 'the project's repository and Large File Storage (LFS)'. Premium/Ultimate...","duplicate_of":null,"n_unknown":7},"record":{"topic":"storage","slug":"gitlab-com-git-lfs","provider":"GitLab.com Git LFS","url":"https://gitlab.com","category":"registry","free_tier":{"stated":"10 GiB free storage PER PROJECT on the Free tier, and that 10 GiB explicitly covers 'the project's repository and Large File Storage (LFS)'. Premium/Ultimate: 500 GiB per project. CONFIRMED: LFS is IN the quota while containers, packages, build artifacts, snippets, uploads and wikis are OUT.","unit":"GiB","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"Unmetered — GitLab does not bill or publish any LFS bandwidth quota. The only transfer-side control is a rate limit: 'Git LFS requests are subject to authenticated web request rate limits ... 1000 requests per minute per user. Each Git LFS object uploaded or downloaded generates an HTTP request'.","metered":false},"interface":["rest","git"],"interface_detail":"git","tooling":"git-lfs. Also Oras-style raw access is not available; LFS is protocol-only. GitLab REST API v4 for project/namespace management (useful for automating project-per-shard).","chaining":"10 GiB per PROJECT, and projects are free and unlimited within a namespace — GitLab's own excess-storage example totals 30 GiB across three projects with no namespace-level cap. 50 projects = 500 GiB, 100 = 1 TiB. This is the cleanest 'trivially repeatable' LFS case because each project is an independent 10 GiB bucket behind the same account, unlike GitHub where the 10 GiB is per account.","limits":[],"limits_note":"At 10 GiB the project goes READ-ONLY: 'you can't push or add large files (LFS) to the project's repository.' Max push request 5 GiB (through Cloudflare) — this applies to git push; LFS object upload is a separate endpoint. Max attachment 100 MiB. Rate limit 1000 LFS req/min/user is the real throughput ceiling (~60k objects/hour, and one object = one request regardless of size).","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Read-only state is reversible only by purchasing storage, so a blown project is stuck. The 1000 req/min limit bites hard on many-small-files datasets during clone, and GitLab's own docs warn multi-file projects 'may encounter an HTTP rate limit error' in CI.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-21","proved":"'Only the project's repository and LFS are included in the storage limit. The container registry, package registry, and build artifacts are not included' + 'Each project in a Free tier namespace on GitLab.com has 10 GiB of free storage'"},{"url":"https://docs.gitlab.com/administration/settings/account_and_limit_settings/","date":"2026-10-21","proved":"'It includes repository files and Git LFS objects (even when stored in external object storage), but does not include: Artifacts, Containers, Packages, Snippets, Uploads, Wikis'"},{"url":"https://docs.gitlab.com/rate_limits/git/","date":"2026-10-21","proved":"'1000 requests per minute per user' for LFS"},{"url":"https://docs.gitlab.com/user/gitlab_com/","date":"2026-10-21","proved":"'Repository size including LFS | 10 GB'; 'Maximum push size | 5 GiB'"},{"url":"https://gitlab.com/gitlab-org/gitlab.git/info/lfs/objects/batch","date":"2026-10-21","proved":"probe: POST -> HTTP 200"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"10 GiB free storage PER PROJECT on the Free tier, and that 10 GiB explicitly covers 'the project's repository and Large File Storage (LFS)'. Premium/Ultimate: 500 GiB per project. CONFIRMED: LFS is IN the quota while containers, packages, build artifacts, snippets, uploads and wikis are OUT.","extras":{},"binding":"none","binding_note":"no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/gitlab-com-snippets","card":{"rid":"storage/gitlab-com-snippets","eid":"gitlab","topic":"storage","slug":"gitlab-com-snippets","provider":"GitLab.com snippets","url":"https://docs.gitlab.com/user/snippets/","domain":"gitlab.com","category":"registry","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"git,cli","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"No documented per-snippet storage cap; snippets are git-backed and unlimited in count, but contribute to namespace storage accounting","duplicate_of":null,"n_unknown":7},"record":{"topic":"storage","slug":"gitlab-com-snippets","provider":"GitLab.com snippets","url":"https://docs.gitlab.com/user/snippets/","category":"registry","free_tier":{"stated":"No documented per-snippet storage cap; snippets are git-backed and unlimited in count, but contribute to namespace storage accounting","unit":"unlimited","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"Free, Cloudflare-fronted like all of GitLab.com; snippets are cloneable and downloadable via API.","metered":false},"interface":["git","cli"],"interface_detail":"git","tooling":"Snippets API (POST /snippets), git clone of the snippet repo, glab CLI, VS Code extension. Rate limited to 300 creates/hour/authenticated user.","chaining":"Snippets are versioned git repos -> unlimited snippets x unlimited versions. The 300/hour creation limit is the only throttle, which is trivially high for a bulk loader. Storage counts toward namespace storage but is NOT enforced.","limits":[],"limits_note":"300 creations/hour/user, shared with the GraphQL createSnippet mutation. No documented file or snippet size cap found on the snippet docs page. Worth treating as 'unbounded but undocumented' rather than verified bulk capacity.","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Snippets are visible/searchable by other users when public; storage is accounted at namespace level so it is the most likely subject to be capped first if GitLab ever enforces namespace quotas.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-21","proved":"'The cost factor applies to the project repository, LFS objects, job artifacts, packages, snippets, and the wiki' (snippets are namespace-accounted)"},{"url":"https://docs.gitlab.com/api/snippets/","date":"2026-10-21","proved":"'Creating snippets is rate limited to 300 requests every hour for each authenticated user'"},{"url":"https://docs.gitlab.com/user/snippets/","date":"2026-10-21","proved":"'They can contain multiple files', 'use version control', 'clone ... and download'"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"No documented per-snippet storage cap; snippets are git-backed and unlimited in count, but contribute to namespace storage accounting","extras":{},"binding":"none","binding_note":"no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/gitlab-snippets-gitlab-com-projects","card":{"rid":"storage/gitlab-snippets-gitlab-com-projects","eid":"gitlab","topic":"storage","slug":"gitlab-snippets-gitlab-com-projects","provider":"GitLab Snippets / GitLab.com projects","url":"https://gitlab.com","domain":"gitlab.com","category":"paas","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"rest,git,rclone,cli","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":4,"usd_month":null,"usd_per_tb_month":null,"summary":"10 GiB free storage per project on GitLab.com Free tier (repo + LFS); snippet files up to 50 MB each (50,000,000-byte default admin limit); projects per acco...","duplicate_of":null,"n_unknown":7},"record":{"topic":"storage","slug":"gitlab-snippets-gitlab-com-projects","provider":"GitLab Snippets / GitLab.com projects","url":"https://gitlab.com","category":"paas","free_tier":{"stated":"10 GiB free storage per project on GitLab.com Free tier (repo + LFS); snippet files up to 50 MB each (50,000,000-byte default admin limit); projects per account and accounts are free.","unit":"GiB","metered_on":"stored-bytes","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/storage_usage_quotas/","notes":"not stated"},"egress":{"terms":"unmetered, served from gitlab.com; no egress line item exists on any GitLab.com plan.","metered":false},"interface":["rest","git","rclone","cli"],"interface_detail":"git","tooling":"glab CLI (glab snippet create), VS Code extension, REST /api/v4/snippets, plain git clone/push for project repos. rclone has a 'gitlab' backend (yes — rclone supports GitLab as a Git remote type via backend 'git').","chaining":"10 GiB free per project x unlimited projects per free account x unlimited free accounts. Snippets add a parallel 50 MB-per-object path that does not require a project. 10 TiB hot = ~1000 projects at 10 GiB, spread over accounts.","limits":[],"limits_note":"10 GiB per project then the project goes read-only (pushes rejected) until storage is purchased — a hard stop, not a warning; 50 MB per snippet; namespace storage updated every 90 minutes; 5 GiB per-file push limit on gitlab.com is not documented publicly, so shard files.","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Read-only lockout is automatic and immediate on exceeding 10 GiB, and it blocks pushes rather than deletes data. Snippets are counted in namespace storage, so they are not a separate free pool.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/storage_usage_quotas/","date":"2026-10-21","proved":"'Each project in a Free tier namespace on GitLab.com has 10 GiB of free storage', 'the project is set to a read-only state'"},{"url":"https://docs.gitlab.com/administration/snippets/","date":"2026-10-21","proved":"'The default limit is 52428800 bytes (50 MB)'"},{"url":"https://about.gitlab.com/pricing/","date":"2026-10-21","proved":"Free tier: '10 GiB adjustable storage'"},{"url":"https://gitlab.com/api/v4/snippets/public?per_page=2","date":"2026-10-21","proved":"probe: GET -> {\"message\":\"401 Unauthorized\"} (authenticated endpoints only; public snippet read via web returned 200)"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"10 GiB free storage per project on GitLab.com Free tier (repo + LFS); snippet files up to 50 MB each (50,000,000-byte default admin limit); projects per account and accounts are free.","extras":{},"binding":"none","binding_note":"no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"compute/gitlab-runners","card":{"rid":"compute/gitlab-runners","eid":"gitlab","topic":"compute","slug":"gitlab-runners","provider":"GitLab Runners","url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","domain":"gitlab.com","category":"CI runner","tier":"GitLab Free on GitLab.com, instance runners","verdict":"fails-identity","vorder":4,"grp":"rejected","confidence":"documented","binding":"write-gated","identity_kind":"card","identity_basis":"stated","needs_card":1,"needs_phone":1,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":null,"egress_metered":null,"per_object_bytes":null,"retention_days":0,"verified_at":"2026-10-24T04:00:19.000Z","verified_basis":"live","checked_on":"2026-10-25","stale_on":"2026-11-24","n_evidence":12,"usd_month":null,"usd_per_tb_month":null,"summary":"Quoted: 'The base monthly compute quota is determined by your subscription tier. Free tier namespaces receive 400 compute minutes per month.' The pricing pag...","duplicate_of":null,"n_unknown":5},"record":{"topic":"compute","per_object_cap":{"stated":"not applicable","bytes":null,"notes":null},"interface":["unknown"],"interface_detail":"a .gitlab-ci.yml pipeline; a runner with a shell","tooling":"a shell on an ephemeral runner; package managers; a checkout","chaining":"a real machine for the length of a job and nothing after it","limits":[{"kind":"volume-quota","value":"400 compute minutes a month on the Free tier, with a cost factor of 1 on the default `small` Linux x86-64 runner, 2 on `medium`, 3 on `large`, 6 on `xlarge`, 12 on `2xlarge`","source":"https://docs.gitlab.com/ci/pipelines/compute_minutes/"},{"kind":"retention-clamped","value":"Quoted: 'Jobs handled by hosted runners on GitLab.com time out after 3 hours, regardless of the timeout configured in a project.'","source":"https://docs.gitlab.com/ci/runners/hosted_runners/"},{"kind":"write-gated","value":"Quoted: 'Inbound communication from the public internet to the ephemeral VM is not allowed.' Firewall rules 'only allow outbound communication from the ephemeral VM to the public internet'.","source":"https://docs.gitlab.com/ci/runners/hosted_runners/"},{"kind":"write-gated","value":"A card gates the free minutes. Quoted: 'credit/debit card details are required if you choose to use GitLab.com shared runners. Credit/debit card details are not required if you bring your own runner or disable shared runners.' Verified by 'a one-dollar authorization transaction. No charge will be made and no money will transfer.'","source":"https://about.gitlab.com/pricing/"},{"kind":"volume-quota","value":"On quota exhaustion, instance runners stop processing new jobs; running jobs continue until the namespace is over quota by 1,000 compute minutes, then they are dropped","source":"https://docs.gitlab.com/ci/pipelines/instance_runner_compute_minutes/"}],"limits_note":"Three separate ceilings and the smallest is the card gate: 400 compute minutes a month, a 3-hour job timeout, and a card required to use the shared runners that the minutes are spent on. Bringing your own runner removes the card requirement and the minute quota at the same time, which is not an option for a client with no hardware.","reliability_note":"no reliability event recorded","confidence":"documented","verified_at":"2026-10-24T04:00:19.000Z","price_per_tb_month":null,"notes":"This corrects the corpus's own record, which said `paid-only` and `identity_cost.kind: email` on the strength of the pricing page's 'No credit card required' line. That line is true of the account and false of the thing the record is about. GitLab's own FAQ says the card is required 'if you choose to use GitLab.com shared runners', and shared runners are the only way a client with no hardware can spend the 400 minutes. So the kind is `card`, with a USD 1.00 authorisation hold and release. This is the answer to the operator's question about whether GitLab's free tier now requires identity verification: the risk-scored three-stage scheme exists and is documented, and separately and unconditionally the shared runners need a card. Not established: whether a new account from a given country lands in the medium-risk (phone) or high-risk (card) band, because the risk score is not published; and whether a debit or prepaid card passes the one-dollar authorisation, because no page says. The corpus's earlier `400 minutes` figure was right and is confirmed.","slug":"gitlab-runners","provider":"GitLab Runners","url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","category":"CI runner","free_tier":{"stated":"Quoted: 'The base monthly compute quota is determined by your subscription tier. Free tier namespaces receive 400 compute minutes per month.' The pricing page repeats it as '400 compute minutes per month'. A compute minute is not a wall-clock minute: the usage formula is 'Job duration / 60 * Cost factor', and the default `small` Linux x86-64 runner has cost factor 1, so 400 compute minutes is 400 wall-clock minutes on the default shape and less on any larger one. The card requirement is the finding: 'credit/debit card details are required if you choose to use GitLab.com shared runners', verified with 'a one-dollar authorization transaction'.","unit":"minutes","metered_on":"wall-clock","source_url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","read_on":"2026-10-24","notes":"400 compute minutes at cost factor 1 is 6 hours 40 minutes a month, which is 0.22 hours a day. The card gate is on the shared runners specifically, not on the account."},"retention":{"stated":"Quoted: 'Ephemeral runner VMs serve a single job and are deleted right after the job execution.' Nothing on the VM survives the job.","days":0,"source_url":"https://docs.gitlab.com/ci/runners/hosted_runners/","notes":"0 means the VM is deleted at job end"},"egress":{"terms":"not published on any page read: no egress quota, shaping tier or per-byte price is stated for GitLab.com hosted runners","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://docs.gitlab.com/ci/runners/hosted_runners/"},"identity_cost":{"kind":"card","detail":"A card, for the thing this record is about. The account itself is free and the pricing page says 'No credit card required' for the Free plan, but the free compute minutes sit behind a card: 'credit/debit card details are required if you choose to use GitLab.com shared runners'. The card is verified by 'a one-dollar authorization transaction' and 'No charge will be made and no money will transfer', so the hold is USD 1.00 authorised and released, not captured. GitLab's identity-verification page adds a second, independent gate that is risk-scored: 'All users - Email verification. Medium-risk users - Phone number verification. High-risk users - Credit card verification.' Whether a new account lands in the medium or high band is not published. Debit acceptance is not stated on any page read; the pages say 'credit/debit card' without distinguishing.","country":null},"evidence":[{"url":"https://about.gitlab.com/pricing/","date":"2026-10-02","proved":"a free tier with a monthly CI minute allowance; the runner is ephemeral per job"},{"url":"https://about.gitlab.com/pricing/","date":"2026-10-22","proved":"read live: free tier carries 400 compute minutes a month"},{"url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","date":"2026-10-24","proved":"quoted: 'The base monthly compute quota is determined by your subscription tier. Free tier namespaces receive 400 compute minutes per month. Paid tiers receive a higher monthly quota.'"},{"url":"https://docs.gitlab.com/ci/pipelines/compute_minutes/","date":"2026-10-24","proved":"cost-factor table quoted row by row: '| Linux x86-64 (default) | `small` | `1` |', '| Linux x86-64 | `medium` | `2` |', '`large` | `3`', '`xlarge` | `6`', '`2xlarge` | `12`'; formula quoted: 'Job duration / 60 * Cost factor'. This row is what makes 400 compute minutes 400 wall-clock minutes on the default shape."},{"url":"https://docs.gitlab.com/ci/runners/hosted_runners/linux/","date":"2026-10-24","proved":"quoted shape table: '`saas-linux-small-amd64` (default) | 2 | 8 GB | 30 GB' and '`saas-linux-medium-amd64` | 4 | 16 GB | 50 GB'"},{"url":"https://docs.gitlab.com/ci/runners/hosted_runners/","date":"2026-10-24","proved":"quoted: 'Each of your jobs runs in a newly provisioned VM, which is dedicated to the specific job.' and 'Jobs handled by hosted runners on GitLab.com time out after 3 hours, regardless of the timeout configured in a project.'"},{"url":"https://docs.gitlab.com/ci/runners/hosted_runners/","date":"2026-10-24","proved":"quoted: 'Firewall rules only allow outbound communication from the ephemeral VM to the public internet.' and 'Inbound communication from the public internet to the ephemeral VM is not allowed.' and 'Ephemeral runner VMs serve a single job and are deleted right after the job execution.'"},{"url":"https://about.gitlab.com/pricing/","date":"2026-10-24","proved":"quoted, the card gate: 'credit/debit card details are required if you choose to use GitLab.com shared runners. Credit/debit card details are not required if you bring your own runner or disable shared runners. When you provide the card, it will be verified with a one-dollar authorization transaction. No charge will be made and no money will transfer.'"},{"url":"https://about.gitlab.com/pricing/","date":"2026-10-24","proved":"quoted, the Free plan row: 'per user/month, No credit card required' with '5 users per top-level group', '400 compute minutes per month', '10 GiB adjustable storage'"},{"url":"https://about.gitlab.com/free-trial/","date":"2026-10-24","proved":"quoted, the same card gate from a second first-party page: 'A credit/debit card is not required for customers who do not use GitLab.com CI/CD, bring their own runners, or disable shared runners. However, credit/debit card details are required if you choose to use GitLab.com shared runners. This change was made to discourage abuse of the free compute minutes provided on GitLab.com to mine cryptocurrencies'"},{"url":"https://docs.gitlab.com/security/identity_verification/","date":"2026-10-24","proved":"quoted from the page's opening: 'Depending on your risk score, you might be required to perform up to' then 'three stages of verification to create a user account:' then the list items 'All users - Email verification.', 'Medium-risk users - Phone number verification.', 'High-risk users - Credit card verification.' Also quoted: 'GitLab does not store your card details directly or make any charges.'"},{"url":"https://docs.gitlab.com/ci/pipelines/instance_runner_compute_minutes/","date":"2026-10-24","proved":"quoted: 'When the compute quota is used for the current month, instance runners stop processing new jobs.' and 'Jobs running on instance runners can continue to run until the overall namespace usage goes over-quota by 1,000 compute minutes.'"}],"verdict":"fails-identity","extras":{"shape":{"vcpu":2,"ram_gib":8,"disk_gib":30,"gpu_class":null,"gpu_count":null,"note":"`saas-linux-small-amd64`, the default for untagged jobs. RAM and disk are the vendor's decimal GB, kept unconverted: 8 GB is about 7.5 GiB and 30 GB about 27.9 GiB. Quoted caveat: 'The storage is shared by the operating system, the container image with pre-installed software, and a copy of your cloned repository. This means that the available free disk space for your jobs to use is reduced.'"},"billing_model":"free","session_cap":{"wall_clock_min":180,"idle_reap_s":null,"restart_required":true,"note":"3 hours per job on GitLab.com hosted runners regardless of project setting, then the VM is deleted; 400 compute minutes a month is the other clock and it binds first"},"keep_rate":{"value":0.0,"basis":"the VM is deleted after the job and nothing is billed for it","source":"https://docs.gitlab.com/ci/runners/hosted_runners/"},"persistent_storage":{"included_gib":0,"price_gib_month":"not applicable: nothing on the runner survives","durability":"none: the ephemeral VM is deleted right after the job","survives_stop":false,"survives_destroy":false,"max_retention":"the job"},"network_out":{"allow_outbound":true,"allow_inbound_listen":false,"ports":"none inbound: 'Inbound communication from the public internet to the ephemeral VM is not allowed'","static_ip":false,"ipv6":null,"per_session_bytes":null},"free_tier_kind":"allowance","topic_note":"belongs to ci-cd-runners; recorded here to stop the double count","granularity":{"min_billed_s":60,"rounding_s":null},"burst_x":1.0,"term":"none","m10h_usd":null,"m24h_usd":null,"price_arithmetic":"400 compute minutes / cost factor 1 = 400 wall-clock minutes a month on the 2 vCPU default, which is 6 h 40 min, or 0.22 h a day. 10 h a day x 30 = 300 h needs 18,000 compute minutes, 45 times the quota. 24/7 x 30 = 730 h needs 43,800 compute minutes, 110 times the quota. No USD figure is given because no per-minute price was read on a page today.","concurrency":{"jobs_at_once":null,"note":"not published on any page read: no concurrent-job number for a Free namespace was found. The 400-minute monthly quota is the ceiling that matters at this size."},"units":"RAM and disk are the vendor's decimal GB, kept unconverted. 8 GB reads as 8, 30 GB as 30.","census_rows":["gitlab-runners"],"wave3":{"verified":["400 compute minutes a month on the Free tier","2 vCPU / 8 GB / 30 GB on the default saas-linux-small-amd64","3-hour job timeout on GitLab.com hosted runners","inbound is explicitly blocked","the ephemeral VM is deleted after the job"],"corrected":"verdict paid-only -> fails-identity, and identity_cost.kind email -> card. The card is required for GitLab.com shared runners, which is the only way to reach the free minutes without hardware.","new":"the risk-scored three-stage identity verification (email / phone / card) is documented and is a second, independent gate"}},"binding":"write-gated","binding_note":"the card is what fails, not the quota: 400 compute minutes is small but the free minutes cannot be reached at all without a payment instrument on file, so the machine is behind an identity gate the client does not want to pass. Even past the card, 400 minutes a month is 6 hours 40 minutes.","confidence_note":"the 400 minutes, the cost factors, the 2 vCPU / 8 GB / 30 GB shape, the 3-hour job timeout, the inbound block and the card requirement are each quoted from a first-party GitLab page read on 2026-10-24. The card requirement is quoted from about.gitlab.com's own FAQ twice, on the pricing page and on the free-trial page, with the same wording.","tier":"GitLab Free on GitLab.com, instance runners"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:volume-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[1].value","kind":"limit:retention-clamped","num":3.0,"unit":"hours","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[2].value","kind":"limit:write-gated","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[3].value","kind":"limit:write-gated","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[4].value","kind":"limit:volume-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.egress.metered","egress-unknown"],["$.interface","interface-unknown"],["$.per_object_cap.notes","process"],["$.per_object_cap.stated","not-applicable"],["$.reliability_note","none-observed"]],"history":[],"drift":[]},{"rid":"storage/gitlab-pages","card":{"rid":"storage/gitlab-pages","eid":"gitlab","topic":"storage","slug":"gitlab-pages","provider":"GitLab Pages (gitlab.io)","url":"https://gitlab.com/groups/pages","domain":"gitlab.com","category":"git","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"git,rclone","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":4,"usd_month":null,"usd_per_tb_month":null,"summary":"1 GB maximum site size on gitlab.com (tied to the 1 GB max artifact size); 200,000 file entries per site; unlimited projects.","duplicate_of":null,"n_unknown":8},"record":{"topic":"storage","slug":"gitlab-pages","provider":"GitLab Pages (gitlab.io)","url":"https://gitlab.com/groups/pages","category":"git","free_tier":{"stated":"1 GB maximum site size on gitlab.com (tied to the 1 GB max artifact size); 200,000 file entries per site; unlimited projects.","unit":"objects","metered_on":"unstated","source_url":"https://docs.gitlab.com/user/gitlab_com/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/gitlab_com/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://docs.gitlab.com/user/gitlab_com/","notes":"not stated"},"egress":{"terms":"No egress charge published; rate limits are 1,000 requests/50s per IP and 5,000 requests/10s per Pages domain — generous enough for real serving but a hard ceiling if sharded heavily onto one domain.","metered":false},"interface":["git","rclone"],"interface_detail":"git","tooling":"git push + a `pages` job in .gitlab-ci.yml (a 'pages' artifact); the git-pages v2 API also accepts a direct HTTP upload. No rclone backend.","chaining":"1 GB x unlimited projects x unlimited namespaces. 20 TiB = 20,480 projects. Per-project cap is 2x GitHub Pages but still fails a 500 GB unit test on its own.","limits":[],"limits_note":"1 GB site size and 1 GB max artifact; 200,000 files/dirs/symlinks per site; 150 custom domains; 1000 parallel deployments per top-level namespace; Pages rate limits 1,000 req/50s per IP.","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Self-managed default is a 100 MB Pages cap, but gitlab.com is 1 GB — do not confuse the two. CI minutes are free but shared runners now require a card on file for gitlab.com.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.gitlab.com/user/gitlab_com/","date":"2026-10-21","proved":"'Maximum site size | 1 GB', 'The maximum size of your Pages site depends on the maximum artifact size'"},{"url":"https://docs.gitlab.com/administration/instance_limits/","date":"2026-10-21","proved":"'total number of file entries (including directories and symlinks) is limited to 200,000 per GitLab Pages website'"},{"url":"https://docs.gitlab.com/user/gitlab_com/rate_limits/","date":"2026-10-21","proved":"'GitLab Pages requests for an IP address | 1,000 requests every 50 seconds'"},{"url":"https://gitlab-org.gitlab.io/gitlab-pages/","date":"2026-10-21","proved":"probe: curl -D - -> HTTP 302 chain, Server: cloudflare (live serving path)"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"1 GB maximum site size on gitlab.com (tied to the 1 GB max artifact size); 200,000 file entries per site; unlimited projects.","extras":{"dead_end":{"failure_class":"quota","why":"1 GB maximum site size on gitlab.com (tied to the 1 GB max artifact size); 200,000 file entries per site; unlimited projects.","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":1.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/gitlab-pages-2","card":{"rid":"storage/gitlab-pages-2","eid":"gitlab","topic":"storage","slug":"gitlab-pages-2","provider":"gitlab pages","url":"https://docs.gitlab.com/user/gitlab_com/","domain":"gitlab.com","category":"rejected-provider","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide con...","duplicate_of":null,"n_unknown":15},"record":{"topic":"storage","slug":"gitlab-pages-2","provider":"gitlab pages","url":"https://docs.gitlab.com/user/gitlab_com/","category":"rejected-provider","free_tier":{"stated":"Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide constant that an open GitLab issue a","unit":"none","metered_on":"none","source_url":"https://docs.gitlab.com/user/gitlab_com/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not recorded","bytes":null,"source_url":"https://docs.gitlab.com/user/gitlab_com/","notes":"not recorded"},"retention":{"stated":"not recorded","days":null,"source_url":"https://docs.gitlab.com/user/gitlab_com/","notes":null},"egress":{"terms":"not recorded","metered":false},"interface":["unknown"],"interface_detail":null,"tooling":"not recorded","chaining":"not recorded","limits":[],"limits_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide constant that an open GitLab issue a","confidence":"reported","confidence_note":null,"evidence":[{"url":"https://docs.gitlab.com/user/gitlab_com/","date":"2026-10-21","proved":"Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide constant that an open GitLab issue a"},{"url":"https://docs.gitlab.com/administration/instance_limits/","date":"2026-10-21","proved":"cited as the basis of the rejection: Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide constant that an open GitLab issue a"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/issues/426601","date":"2026-10-21","proved":"cited as the basis of the rejection: Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide constant that an open GitLab issue a"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide constant that an open GitLab issue a","extras":{"dead_end":{"failure_class":"quota","why":"Hard 1 GB maximum site size on GitLab.com regardless of tier, plus a 200,000 file-entry cap and a 150 custom-domain cap. The 1 GB limit is a product-wide constant that an open GitLab issue a","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":1.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.chaining","not-recorded"],["$.confidence_note","withheld"],["$.egress.terms","not-recorded"],["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.interface","interface-unknown"],["$.interface_detail","withheld"],["$.limits_note","process"],["$.per_object_cap.notes","not-recorded"],["$.per_object_cap.stated","not-recorded"],["$.retention.notes","process"],["$.retention.stated","not-recorded"],["$.tooling","not-recorded"]],"history":[],"drift":[]}]}