---
title: "Repair a stuck config-repo git sync and push"
method: POST
path: "/api/clusters/{clusterName}/settings/actions/git-repair"
tags: ["ClusterSettings"]
---

# Repair a stuck config-repo git sync and push

`POST /api/clusters/{clusterName}/settings/actions/git-repair`

## Request

- The document declares no server URL.
- Auth: none declared. Required headers: `Authorization`

Explicit self-heal: refresh git metadata (reclone re-inits the local .git from the remote, shedding corrupt/dangling objects) then push a clean pack. Use when the config-repo push is stuck (e.g. after a gitlab failover emptied the remote and pushes fail the remote receive fsck). Server-level; routed per-cluster for ACL. Requires GrantClusterSettings.

## Path parameters

- `clusterName` string, required

## Headers

- `Authorization` string, required

## Response `200`

git repaired and pushed

- string

## Other responses

- `403`: No valid ACL
- `409`: git config sync not configured
- `500`: Internal Server Error

## Changes

- **2026-10-05** `1bf429f49b60`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/signal18/apis/signal-18-dashboard-api/changes/api/clusters/:clusterName/settings/actions/git-repair/post.md)

---

[API](https://skmtc.dev/signal18/apis/signal-18-dashboard-api.md) - [All operations](https://skmtc.dev/signal18/apis/signal-18-dashboard-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signal18/apis/signal-18-dashboard-api/revisions/8ee8a1e31294?raw)
