{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:01878e420becfd35dc17fcd9c45ae9fd7f77cece1fedfdf68ac6cdf861f9432b",
  "snapshot_id": "sha256:941812942078a95ce94c3802726dfad46394ed4e8faec931d0d61f4cd6c48a88",
  "artifact_sha256": "sha256:207717acd882c5f10a288d4c057d2e8e74e62a63a0cda0bb875692c63b5ca5bd",
  "data": {
    "entity_id": "ent_01kyh8fpe3s626thf3pv184n3m",
    "entity_slug": "gitlab",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01m4t96s3qz9595vf4g37skdrc",
      "entity_id": "ent_01kyh8fpe3s626thf3pv184n3m",
      "scope": {
        "product": {
          "key": "gitlab-com",
          "name": "GitLab.com"
        },
        "job": {
          "key": "repository-create",
          "name": "Create a repository"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:b8d2307bdb2bd192cdb6e4a0586bf54e4c306eb8bae6a6f3c48ddff04bcdcee1",
        "entity_revision_digest": "sha256:12f9dbad31597fcffb101bab3ea26e05fd354fa45a2782db29567c8e2f7c4fc4"
      },
      "declaration_revision_digest": "sha256:bf16aca9696a0094ea2cf7ee09951d0090ef53d7a1585a4561798fa802ef8e4d",
      "declaration": {
        "declaration_id": "declaration_gitlab_gitlab_com_repository_create",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "de1148784db9547de861d4669ba397968e6787cc",
          "path": "entities/gi/gitlab.yaml",
          "git_blob_oid": "1a59fdcc81d9f290dd4c4d0aed469aba07387a97",
          "blob_digest": "sha256:0f012e788f122b93a0ea512abfaf2e3169e2ec2a41d5753d54789542e29ab04f"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "participants": [
          {
            "participant_id": "gitlab",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyh8fpe3s626thf3pv184n3m"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "account-signup",
            "uri": "https://gitlab.com/users/sign_up",
            "roles": [
              "access"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          },
          {
            "resource_id": "api-reference",
            "uri": "https://docs.gitlab.com/api/projects/",
            "roles": [
              "discovery",
              "documentation",
              "operations",
              "provisioning"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          },
          {
            "resource_id": "authentication",
            "uri": "https://docs.gitlab.com/api/rest/authentication/",
            "roles": [
              "authentication",
              "documentation"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          },
          {
            "resource_id": "personal-access-tokens",
            "uri": "https://docs.gitlab.com/api/personal_access_tokens/",
            "roles": [
              "documentation",
              "provisioning",
              "recovery"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://about.gitlab.com/pricing/",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://about.gitlab.com/terms/",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "registration",
            "uri": "https://gitlab.com/users/sign_up",
            "transport": "http",
            "roles": [
              "registration"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          },
          {
            "endpoint_id": "service-api",
            "uri": "https://gitlab.com/api/v4",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "modality": "network_api",
            "functions": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "authentication"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          },
          {
            "interface_id": "service-api",
            "modality": "network_api",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "service-api"
            ],
            "resource_ids": [
              "api-reference"
            ],
            "operated_by_participant_id": "gitlab",
            "standard_bindings": []
          }
        ],
        "relations": [
          {
            "relation_id": "authentication-authenticates-api",
            "kind": "authenticates",
            "from": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "service-api"
            }
          },
          {
            "relation_id": "reference-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "api-reference"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "service-api"
            }
          },
          {
            "relation_id": "signup-precedes-authentication",
            "kind": "precedes",
            "from": {
              "node_kind": "resource",
              "node_id": "account-signup"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            }
          }
        ],
        "surface_exclusions": [
          {
            "exclusion_id": "free-job-no-checkout",
            "role": "checkout",
            "rationale": "GitLab Free is $0 per user a month with no credit card required."
          },
          {
            "exclusion_id": "separate-eligibility-resource",
            "role": "eligibility",
            "rationale": "Access conditions are published within the vendor's terms; no separate eligibility resource is declared."
          }
        ]
      },
      "lifecycle": "active",
      "effective_from": "2026-10-13T09:26:54.603Z",
      "revision_digest": "sha256:96403917a7c77bf5d884a5907982bd5d452dc1783b489e5053c2745b3e26b846",
      "policy_digest": "sha256:b612172aad277b54461de84e006815126f2df566563954b02f4432a39cad89ac",
      "policy_version": "kind-2026-10-12.2",
      "policy_as_of": "2026-10-05T00:00:00Z",
      "job": {
        "job_id": "repository-create",
        "job_digest": "sha256:717ded01f2611b803ea48856fe939102f5b3f07ef7afa6b79259be8c47c4c721",
        "category": "repository-hosting",
        "name": "Create a repository",
        "statement": "Create a repository named with the run's nonce, then read it back."
      },
      "interface_id": "service-api",
      "label": "probed",
      "label_run_at": null,
      "grade": {
        "letter": "B+",
        "statement": "A person signs up and hands over a key.",
        "steps": [
          {
            "step": "discover",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "authority",
            "outcome": "approval",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "pay",
            "outcome": "not_applicable",
            "timing": null
          },
          {
            "step": "confirm",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "sustain",
            "outcome": "machine",
            "timing": null
          }
        ],
        "job": "reachable",
        "approvals": [
          "authority"
        ],
        "workarounds": [
          {
            "step": "discover",
            "timing": "setup"
          }
        ]
      },
      "discovery": [
        {
          "fact": "oauth_authorization_server",
          "value": "https://gitlab.com/",
          "descriptor_url": "https://gitlab.com/.well-known/oauth-authorization-server",
          "attempt_digest": "sha256:db1f55525ed6f90bf8abaf47f2e69f9852dcff80f069b41a7283cbb39be5fe5f",
          "adapter": {
            "namespace": "rfc8414",
            "version": "1"
          }
        },
        {
          "fact": "oauth_protected_resource",
          "value": "https://gitlab.com/api/v4/mcp",
          "descriptor_url": "https://gitlab.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:b9e2f1120992fe60d2aec1b7af6f114998fbc64893b8cf4dd310c3209a93d0bc",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://gitlab.com/",
          "descriptor_url": "https://gitlab.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:b9e2f1120992fe60d2aec1b7af6f114998fbc64893b8cf4dd310c3209a93d0bc",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "agent_documentation",
          "value": "https://docs.gitlab.com/llms.txt",
          "descriptor_url": "https://docs.gitlab.com/llms.txt",
          "attempt_digest": "sha256:8e3048139823c8e7ed111b42d74e711bc7aa50fb46cadfbb61052ba948afa4b4",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        }
      ],
      "discovery_run_at": null,
      "run": {
        "started_at": "2026-10-13T09:25:54.885Z",
        "finished_at": "2026-10-13T09:26:54.603Z",
        "discovery_reads": 18,
        "exchanges": [
          {
            "purpose": "probe_operation",
            "role": "request",
            "method": "POST",
            "url": "https://gitlab.com/api/v4/projects",
            "started_at": "2026-10-13T09:26:27.219Z",
            "finished_at": "2026-10-13T09:26:27.319Z",
            "response": {
              "status": 401,
              "media_type": "application/json",
              "content_bytes": 30,
              "content_digest": "sha256:51542f5c4584eb471dd661ca8245b813e7aed5ac9d1cbefdc7b60a8743d443bf"
            },
            "transport_error": null,
            "exchange_digest": "sha256:e4cb7b48c15d5c059b45872a28caddd6550a2e0c3ff71f01492f5ce3b19f37a2"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://gitlab.com/.well-known/oauth-protected-resource/api/v4/projects",
            "started_at": "2026-10-13T09:26:31.651Z",
            "finished_at": "2026-10-13T09:26:31.792Z",
            "response": {
              "status": 302,
              "media_type": "text/html",
              "content_bytes": 0,
              "content_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            },
            "transport_error": null,
            "exchange_digest": "sha256:3276b109c1ef6fb692051831d4882321d81b87b77c261d4b6ce34d0ba32b634e"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://gitlab.com/.well-known/oauth-protected-resource",
            "started_at": "2026-10-13T09:26:34.878Z",
            "finished_at": "2026-10-13T09:26:34.914Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 118,
              "content_digest": "sha256:5cd69ba77ffd9cd5b27ce2079bf30f4559106292614a7e18c2ea61c679158c19"
            },
            "transport_error": null,
            "exchange_digest": "sha256:584ab1770b3f62f6c34fc66a45ef0bd9c94fb3310354bd3e5881220dc8a5cec3"
          },
          {
            "purpose": "probe_authorization_server",
            "role": "request",
            "method": "GET",
            "url": "https://gitlab.com/.well-known/oauth-authorization-server",
            "started_at": "2026-10-13T09:26:38.055Z",
            "finished_at": "2026-10-13T09:26:38.090Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 1691,
              "content_digest": "sha256:8e0e3c20992580fd1fdbe9a042baf0ed5b226343e804082fa553de87fab3bed0"
            },
            "transport_error": null,
            "exchange_digest": "sha256:41b283bc7d42fd7cfe94777fe8b755d66326378372c1ae71480306fdb0dc5fb6"
          },
          {
            "purpose": "probe_client_registration",
            "role": "request",
            "method": "POST",
            "url": "https://gitlab.com/oauth/register",
            "started_at": "2026-10-13T09:26:41.925Z",
            "finished_at": "2026-10-13T09:26:42.058Z",
            "response": {
              "status": 201,
              "media_type": "application/json",
              "content_bytes": 389,
              "content_digest": "sha256:b4fd347efe5722403640623189b88da8357636ee531e1bbe0256828bc0629498"
            },
            "transport_error": null,
            "exchange_digest": "sha256:ff8b5e77fc6f7ba821c87635bd87b549169d030bce52aa3d331f2c59254c005a"
          },
          {
            "purpose": "probe_authorization",
            "role": "request",
            "method": "GET",
            "url": "https://gitlab.com/oauth/authorize?response_type=code&client_id=72c3c6609af54af52d78dced5f0df778fef6605deccb95abe6b30815eed542b4&redirect_uri=https%3A%2F%2Fapi.sourcey.com%2F.well-known%2Fagent-readiness%2Fcallback&state=12f3665d18a61502a7f7200abc1a38af&code_challenge=8kXv2QxP6s5pT6UBXQ6lQXCzuTEVWaGTxWeoMqOxg_E&code_challenge_method=S256&resource=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects&scope=mcp",
            "started_at": "2026-10-13T09:26:46.870Z",
            "finished_at": "2026-10-13T09:26:46.987Z",
            "response": {
              "status": 302,
              "media_type": "text/html",
              "content_bytes": 0,
              "content_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            },
            "transport_error": null,
            "exchange_digest": "sha256:e71c3a582226a2f8aa4d783cfa5d975db29067409979b1adb64c0432b5dced10"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://gitlab.com/users/sign_up",
            "started_at": "2026-10-13T09:26:50.774Z",
            "finished_at": "2026-10-13T09:26:50.893Z",
            "response": {
              "status": 404,
              "media_type": "application/json",
              "content_bytes": 0,
              "content_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            },
            "transport_error": null,
            "exchange_digest": "sha256:598b1aaea8ccda49f53d3d8109090d79bf08cdf4daf02bba913e3e8f630efd62"
          }
        ],
        "assertions": []
      },
      "last_run_at": "2026-10-13T09:26:54.603Z",
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "provenance": {
        "dispute": "none",
        "vendor_attestation": {
          "status": "none"
        },
        "basis_event_ids": []
      },
      "canonical_url": "https://sourcey.com/c/gitlab/agent-readiness/gitlab-com/repository-create",
      "projection_digest": "sha256:eed5c2c5544fd2b6b92ef7fb075e87644fafc3a57cbba79cb41dc88649389ef0"
    }
  }
}
