The API reference is in English.

Immutable source snapshot

POST /v1/git/push-protection/{repository_id}/remove

Remove push repository. Permissions, parameters, responses and examples.

0.1.0 · source bccff29 · Current reference · Download OpenAPI specification

This address preserves one reviewed source snapshot. Use the current entry point for the selected documentation version.

Remove push repository

Forget only an explicitly removed host hook's registration, never its scan data.

Source preview; no stable third-party integration promise. This page makes no request to a local installation.

Authority

Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.

Browser mutations require the exact control Origin and session-bound CSRF header. IDE callers use only their admitted route scope and exact generation.

Inspect the authority source · Authentication guide

Parameters and headers

NameLocationContract
repository_idpath
Required

string

Schema
{
  "title": "Repository Id",
  "type": "string"
}
X-CSRF-Tokenheader
Conditional / optional

Required for browser mutations with the exact control Origin. Not an IDE capability.

Schema
{
  "type": "string"
}

Request body

JSON body · required · PushPolicyRemoval

FieldTypePresence
confirm_removalbooleanRequired
expected_revisionintegerRequired
hook_digeststring | nullRequired
Complete declared request schema
{
  "additionalProperties": false,
  "properties": {
    "confirm_removal": {
      "title": "Confirm Removal",
      "type": "boolean"
    },
    "expected_revision": {
      "maximum": 2147483647,
      "minimum": 1,
      "title": "Expected Revision",
      "type": "integer"
    },
    "hook_digest": {
      "anyOf": [
        {
          "pattern": "^[0-9a-f]{64}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Hook Digest"
    }
  },
  "required": [
    "expected_revision",
    "confirm_removal",
    "hook_digest"
  ],
  "title": "PushPolicyRemoval",
  "type": "object"
}

Responses

StatusMeaning and declared shape
200

Successful Response

application/json · object
{
  "additionalProperties": true,
  "title": "Response Remove Push Repository V1 Git Push Protection  Repository Id  Remove Post",
  "type": "object"
}
400

Exact host, malformed request or URL credential refusal

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}
401

Missing or invalid membership

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}
403

Exact origin, CSRF or route authority refusal

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}
404

Refresh the collection and verify the resource identity before retrying. See source-linked error catalog.

409

Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog.

422

Validation Error

application/json · HTTPValidationError
{
  "properties": {
    "detail": {
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "title": "Detail",
      "type": "array"
    }
  },
  "title": "HTTPValidationError",
  "type": "object"
}
429

Authentication rate or connection limit

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}
503

Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog.

An empty or broad schema preserves the source contract. It is not a promise of an empty response.

Source-linked errors

Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.

13 source error observations
StatusSource detailRecovery
409 ↗{"code":"push_removal_confirmation_required","message":"Confirm removal of this clone's protection. Normal pushes will no longer be checked by Lomo."}Refresh current revision and identity. A conflicting command must not be blindly repeated.
409 ↗{"code":"push_policy_changed","message":"Protection changed before registration cleanup. The removed hook is not automatically restored; review the current setting."}Refresh current revision and identity. A conflicting command must not be blindly repeated.
409 ↗{"code":"push_hook_changed","message":"The removed hook does not match the last observed installation. No registration was deleted."}Refresh current revision and identity. A conflicting command must not be blindly repeated.
403 ↗{"code":"push_member_revoked","message":"This editor is no longer active. No registration cleanup was authorized."}Review exact origin, CSRF, IDE scope and owner approval. Do not broaden authority.
409 ↗{"code":"push_removal_changed","message":"This removal does not match the retained cleanup receipt. Review this exact repository."}Refresh current revision and identity. A conflicting command must not be blindly repeated.
422 ↗{"code":"push_repository_invalid","message":"Select one registered Git repository."}Correct the field or semantic validation error. Input values are omitted from control validation errors.
403 ↗{"code":"push_approval_required","message":"Approve this editor’s repository push-protection request once in the paired browser’s Settings."}Review exact origin, CSRF, IDE scope and owner approval. Do not broaden authority.
403 ↗{"code":"push_member_revoked","message":"This editor’s repository authority is no longer active."}Review exact origin, CSRF, IDE scope and owner approval. Do not broaden authority.
404 ↗{"code":"push_setup_required","message":"Set up push protection for this exact repository in VS Code."}Refresh the collection and verify the resource identity before retrying.
503 ↗{"code":"push_policy_corrupt","message":"Push protection configuration has a different repository identity."}Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness.
503 ↗{"code":"push_policy_corrupt","message":"Push protection configuration needs owner review; no push is approved."}Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness.
503 ↗{"code":"push_removal_corrupt","message":"The removal receipt names another repository."}Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness.
503 ↗{"code":"push_removal_corrupt","message":"This repository's removal receipt needs owner review."}Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness.

Read the recovery guide

Synthetic examples

These examples validate declared JSON shapes and formats. They contain no real installation data and do not prove runtime admission, cross-field validation, authority or successful work.

Request JSON
{
  "confirm_removal": false,
  "expected_revision": 1,
  "hook_digest": "0000000000000000000000000000000000000000000000000000000000000000"
}
Response 200 JSON
{}
Download this service's complete OpenAPI

All referenced models remain in its components section. Browse control model definitions.