{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-16T12:55:40.483Z",
  "record_id": "VXI-EXT-PROCUREMENT-GITLAB-PROTECTED-TAGS-01-v1",
  "record_kind": "external_reference",
  "title": "GitLab protected tags: Matching rules and deletion authority",
  "system": "GitLab",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does a protected GitLab tag mean nobody can create or delete a matching release tag?",
  "near_questions": [
    "Who can create a protected GitLab tag?",
    "Can a wildcard grant broader access?",
    "Which matching rules apply to this name?",
    "Does a restrictive pattern always override another rule?",
    "Can a maintainer delete a protected tag?",
    "Must deletion occur through UI or API?",
    "Is branch protection the same as tag protection?",
    "Can a tag name resemble a branch name?",
    "Does a protected tag prove a commit was reviewed?",
    "Which commit hash is the release bound to?",
    "What should a procurement reviewer retain?",
    "Can I save the tag-versus-immutability boundary?"
  ],
  "supported_claims": [
    {
      "claim": "Protected tags restrict creation to authorized roles or users; matching wildcard rules require joint review rather than assuming one restrictive pattern wins. Authorized maintainers can delete protected tags through GitLab's UI or API. Protection is an access-control setting, not evidence that a release reference is immutable.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Verified buyer configuration or effective access rights",
    "Independent execution, completeness or security testing",
    "Vendor certification, legal compliance or guaranteed suitability"
  ],
  "public_summary": "Protected tags restrict creation to authorized roles or users; matching wildcard rules require joint review rather than assuming one restrictive pattern wins. Authorized maintainers can delete protected tags through GitLab's UI or API. Protection is an access-control setting, not evidence that a release reference is immutable.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "GitLab protected tag rules",
    "source_url": "https://docs.gitlab.com/user/project/protected_tags/",
    "checked_on": "2026-10-16",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-GITLAB-PROTECTED-TAGS-01-v1",
    "candidate_record_sha256": "bc5d7add90a1aa74e8aeb5c8fc460f39bc06c18a468af921c166c69cf5c8777b",
    "method": "Primary documentation reviewed for the published bounded statement.",
    "deployment_tested_by_varexis": false,
    "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
  },
  "answer_policy": {
    "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
    "bounded_answer": "Protected tags restrict creation to authorized roles or users; matching wildcard rules require joint review rather than assuming one restrictive pattern wins. Authorized maintainers can delete protected tags through GitLab's UI or API. Protection is an access-control setting, not evidence that a release reference is immutable.",
    "required_buyer_context": "Project roles, matching tag patterns, allowed creators and release commit identity. Effective configuration and dated operational evidence have not been inspected.",
    "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
  },
  "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
  "decision_profile": {
    "schema": "varexis-vendor-evidence-review/1",
    "review_status": "documentation_review_only",
    "checked_on": "2026-10-16",
    "claim_to_check": "Protected release tags are unchangeable by every project user.",
    "documented_statement": {
      "status": "documented",
      "statement": "Protected tags restrict creation to authorized roles or users; matching wildcard rules require joint review rather than assuming one restrictive pattern wins. Authorized maintainers can delete protected tags through GitLab's UI or API. Protection is an access-control setting, not evidence that a release reference is immutable.",
      "source_ids": [
        "gitlab-tags"
      ]
    },
    "buyer_evidence_required": [
      "All matching protected-tag rules.",
      "Allowed creators and project roles.",
      "Tag deletion history and release identity binding."
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Do not treat tag protection as an immutable release seal."
    },
    "unknowns": "The buyer configuration, contract, effective entitlement and operational evidence have not been inspected. Missing evidence does not establish absence or failure of the feature.",
    "evidence_sources": [
      {
        "source_id": "gitlab-tags",
        "url": "https://docs.gitlab.com/user/project/protected_tags/",
        "final_url": "https://docs.gitlab.com/user/project/protected_tags/",
        "title": "GitLab protected tag rules",
        "checked_on": "2026-10-16",
        "sha256": "6ba14006a3d4c5ec69081155a7f7098b52a2493f29aad0fb2bcb746e4bb7760e",
        "bytes": 47385
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Procurement evidence support only; no supplier clearance, legal conclusion, configuration audit or verification of the buyer's claim is supplied.",
    "paid_value": {
      "decision_context": "Retain access-rule evidence without overstating release immutability.",
      "free": "Complete review, practical questions, sources and limitations; may be saved locally.",
      "single_request": "Existing server-saved version-bound route snapshot for later authenticated retrieval.",
      "evidence_receipt": "The same snapshot plus the existing unsigned delivery receipt.",
      "excluded": [
        "Fresh vendor research",
        "Continuous monitoring or change alerts",
        "Testing the buyer configuration",
        "Private evidence or vendor certification"
      ],
      "integrity": "Hashes identify content versions; they do not prove truth or provide a signature."
    },
    "revalidation": {
      "trigger": "A saved purchase does not recheck the source or buyer configuration.",
      "specific_watch": "Project roles, matching tag patterns, allowed creators and release commit identity."
    }
  },
  "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
  "service_route": {
    "request_guide": "/varexis-index/request.html",
    "request_workflow": "/varexis-index/request-workflow.json",
    "service_id": "single_request",
    "service_routes_url": "/varexis-index/service-routes.json",
    "payment_required": true,
    "availability_endpoint": "/api/index/capabilities",
    "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
    "checkout_url": "/index-access"
  },
  "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
  "human_page": "/varexis-index/catalog.html#gitlab-protected-tag-overlap-permission",
  "machine_readable_record": "/varexis-index/records/gitlab-protected-tag-overlap-permission.json"
}
