GitLab
gitlab.com · Developer / Data APIs modeIntegrated
Last probed 2026-10-07 04:27 UTC · Provisional
GitLab — DevOps platform with source control and CI/CD.
Verdict: Discover, activate, and operate are only partly probed. Manage isn't probed yet.
- DiscoverIncomplete
- ActivateIncomplete
- OperateIncomplete
- ManageNot yet probed
Capability parity
Each stage answers one question about what an agent can do unattended. Stages are ordered by the credential-gateway dependency: Activate issues the keys that unlock Operate and Manage. A row marked “Not yet probed” means no probe has tried that capability yet — a different ledger from the “unassessed” properties under Findings, where no probe tier capable of catching that interrupt has run.
Discover
Can an agent find and read it, no account?
Assessment incomplete - not yet probed: Read pricing & limits without login.
- Be found by a retrieval agentEasy
Retrieval access present.
Evidence
- Path tried
- robots.txt / sitemap / discovery headers
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
retrieval_bot_access, sitemap_xml
- Read what it does and how to use itEasy
Machine-readable docs present.
Evidence
- Path tried
- llms.txt / AGENTS.md / schema.org / docs
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
llms_txt, markdown_content, schema_org_jsonld
- Read pricing & limits without loginNot yet probed
Public pricing was not confirmed - the page was absent, gated, or unreadable.
Activate
Can an agent sign up and walk away with the keys it needs?
Assessment incomplete - not yet probed: Obtain an API / MCP access credential; Obtain a management / admin key.
- Create an account self-serveEasy
Signup inspected — no blocker found.
Evidence
- Path tried
- signup flow
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Obtain an API / MCP access credentialNot yet probed
No self-serve credential signal detected - key issuance not yet probed.
- Obtain a management / admin keyNot yet probed
No scoped or administrative key path was confirmed after activation.
- Accept the terms without a bot-banEasy
No bot-prohibition signal found.
Evidence
- Path tried
- ToS / policy scan
- Where it stalled
- completed
- Evidence tier
- Tier 0 (passive scan)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
Operate
Can an agent do the service's actual jobs — call, transact, pay?
Assessment incomplete - not yet probed: Call the primary service over MCP / API.
- Call the primary service over MCP / APINot yet probed
No machine interface found by passive checks, and no live Tier-2 call attempted.
- Complete a transaction / checkoutNot applicable
Integrated tool — the API call is the transaction, no separate checkout.
- Pay via an agent rail (x402 / ACP / AP2)Easy
Agent-payment metadata present.
Evidence
- Path tried
- payment protocol / oauth metadata
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
oauth_metadata
Manage
Can an agent administer the account and provision resources?
No probe has attempted this stage yet: Provision / scale / tear down a service; Change account details / set budget / rotate keys; View usage & billing; Cancel / export / delete (offboard).
- Provision / scale / tear down a serviceNot yet probed
Not probed - provisioning is not part of the probe suite yet.
- Change account details / set budget / rotate keysNot yet probed
Not probed - account admin is not part of the probe suite yet.
- View usage & billingNot yet probed
Authenticated usage and billing access was not confirmed.
- Cancel / export / delete (offboard)Not yet probed
No self-serve cancellation, export, or deletion path was confirmed.
Findings
How scoring works →Interrupt tier: Low-Interrupt — no interrupts found; interrupt score 81 / 100 — the badge-driving metric. (range 50–100 · 10 unassessed)
Every tool starts at 100. Each interrupt found subtracts a penalty of base weight × timing × hardness × evidence — the multiplier values below come from the same rubric tables the score is computed with. New snapshots also provisionally subtract 50% of the full worst-case tax for each unassessed property and 25% for evidence-graded successes not live-verified by Tier 2.
Property coverage
A check only counts as clean when a probe tier capable of detecting that interrupt actually ran and found nothing. Not tested ≠ clean.
| Property | Stage | State | Evidence | Required |
|---|---|---|---|---|
| SSO-only signup, no API-key issuance | activate | partial | Some coverage exists, but the available evidence is incomplete. Tier 1 assesses this property. | no |
| Email OTP verification | activate | unassessed | Tier 1 (unauth probe) ran but did not gather enough evidence to claim clean. Tier 1 assesses this property. | no |
| SMS / phone OTP verification | activate | unassessed | Tier 1 (unauth probe) ran but did not gather enough evidence to claim clean. Tier 1 assesses this property. | no |
| Mandatory phone verification call | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Mailed physical code (postal) | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| “Contact sales” wall (no self-serve path) | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Manual approval queue | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Rate-limit-triggered manual review | manage | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| One-time account / payment-method provisioning | manage | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Identity / KYC verification | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Crypto wallet / key-custody setup | operate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| CAPTCHA / bot-challenge | activate | success | None found — checked at Tier 0 (passive scan) + Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 0 assesses this property. | no |
| ToS clause banning automated/bot access | discover | success | None found — checked at Tier 0 (passive scan) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 0 assesses this property. | no |
| Mandatory redirect to vendor’s own site | operate | success | None found — checked at Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 1 assesses this property. | no |
| No Machine Interface | operate | success | None found — checked at Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 1 assesses this property. | yes |
No interrupts found — no evidence penalties. Unassessed properties still contribute a provisional tax.
How we scored this
- Confidence: Provisional (0.55) — Based on Tier 0/1 evidence only (passive checks, no live transaction attempt) — treat the number as a triage signal, not a verified outcome.
- Machine-Readability sub-score: 56 / 100 (a separate integration-ease signal — it never enters the Interrupt Score or badge).
- Some capability stages are not yet probed — shown plainly in the spine above, never as a pass.
- Rubric, tiers, confidence model, and badge thresholds →
Machine-readability checks 56 / 100
Four check groups, equal weight: machine interfaces, browsing efficiency, element discoverability, and discovery/agent access. Each check carries an evidence grade (proven / plausible / emerging) — an honesty label that never weights the score. What these mean →
- llms.txtemergingFound — docs.gitlab.com/llms.txt (83.2 KB, 569 links)
- llms-full.txtemergingNot provided
- AGENTS.mdemergingNot provided
- A2A agent cardemergingNot provided
- MCP server (well-known or official registry)plausibleNot provided
- OpenAPI/Swagger specplausibleNot provided
- Rate-limit headersplausibleNot provided
- Structured JSON error responsesplausibleNot provided
- OAuth authorization-server metadata (RFC 8414)provenFound — gitlab.com/.well-known/oauth-authorization-server
- API catalog (RFC 9727) (emerging)emergingNot provided
- Agent-payment discovery (x402 / UCP) (emerging)emergingNot provided
- Lean HTML transfer sizeplausible220 KB raw HTML (threshold 488 KB)
- Manageable DOM sizeplausible1467 DOM nodes (threshold 1500)
- High content-to-markup densityplausible2.9% text/HTML (6593 chars in 220 KB, threshold 2%)
- Content readable without JS executionprovenraw HTML holds 112% of rendered text (6593 vs 5908 chars; threshold 40%)
- Clean-content alternate (RSS/Atom/feed/markdown)plausibleapplication/atom+xml
- Serves markdown on Accept: text/markdownplausiblereturned text/markdown; charset=utf-8
- Interactive elements are semanticplausibleNot provided
- Form fields have accessible namesplausible11/11 named (100%)
- Inputs carry autocomplete hintsplausibleNot provided
- WebMCP tools (modelContext API)emergingNot provided
- AI retrieval/search fetchers allowed (robots.txt)provenno retrieval-fetcher blocks in robots.txt
- Sitemap (indexability)plausibleFound — gitlab.com/sitemap.xml
- schema.org JSON-LD in raw HTMLplausible1 valid JSON-LD block(s) in raw (pre-JS) HTML
- Content-Signal directives (robots.txt)emergingNot provided
- Web Bot Auth key directory (emerging)emergingNot provided
- Discovery Link headers on homepage (emerging)emergingNot provided
- Pricing visible without loginNot provided
- robots.txt AI-crawler accessplausibleno AI-crawler blocks in robots.txt
- Unauthenticated API error is structured JSONplausibleNot provided
- Unauthenticated API returns auth guidance (401/403 or documented)plausibleFound — gitlab.com/api (HTTP 403)
- API exposes rate-limit headersplausibleNot provided
- API key obtainable without human interactionplausibleNot checked — API documentation host reachable (https://docs.gitlab.com/, https://developer.gitlab.com/) — reachability is not evidence of unattended key issuance
Evidence & history
Last probed 2026-10-07 04:27 UTC. The raw JSON is the archival record.
| Date | Score | Badge | Rubric version |
|---|---|---|---|
| 2026-10-07 04:27 UTC | 81 | Low-Interrupt (current) | rubric v2026.4 |
| 2026-09-07 01:50 UTC | 81 | Low-Interrupt | rubric v2026.4 |
| 2026-08-09 23:52 UTC | 81 | Low-Interrupt | rubric v2026.4 |
| 2026-08-09 23:52 UTC | 63 | Moderate-Interrupt | rubric v2026.4 |
| 2026-08-09 17:13 UTC | 63 | Moderate-Interrupt | rubric v2026.4 |
| 2026-08-09 05:41 UTC | 70 | Moderate-Interrupt | rubric v2026.3 |
| 2026-08-09 05:41 UTC | 88 | Low-Interrupt | rubric v2026.3 |
Alternatives in Developer / Data APIs
Other Developer / Data APIs tools in the same mode (integrated), ranked by Overall LLM-Friendliness (the mean of Interrupt Score and Machine-Readability) — comparable to this listing because they share its usage mode.
- 84triageOverallOpenWeatherMap
openweathermap.org · Developer / Data APIsMR88 - 74triageOverallupstash.com
upstash.com · Developer / Data APIsMR67 - 72triageOverallsupabase.com
supabase.com · Developer / Data APIsMR63 - 71triageOveralltavily.com
tavily.com · Developer / Data APIsMR62 - 70Overallclerk.com
clerk.com · Developer / Data APIsMR59