# bindTrackerGitSource

Durable standalone Tracker authoring. Current workspace membership and registered scoped Agent/account grants are required. If-Match identifies the record for record writes and the Tracker for lifecyc

Canonical: https://commentary.dev/docs/reference/api/bind-tracker-git-source

`POST /api/v1/trackers/{trackerId}/sync/source`

Durable standalone Tracker authoring. Current workspace membership and registered scoped Agent/account grants are required. If-Match identifies the record for record writes and the Tracker for lifecycle/schema writes. Retries replay durable results; bulk items have independent indexed outcomes. Schema preview is paginated and read-only. Breaking application requires explicit allowBreaking, bounded replacement mappings with record ETags and explicit migrationId to resume; incompatible records retain old values and inspectable immutable revisions. Archived and Git-authoritative ordinary writes fail explicitly. Human acceptance/sharing configuration requires the owning human. Query/native-view/Git/MCP/SDK lanes remain reserved.

## Access

Use a credential with `commentary.trackers.write`.

Provider access, workspace membership, and agent grants are enforced separately. A token does not expand access to a repository or resource. [Set up developer access](/docs/build/developer-access).

## Parameters

| Name | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `trackerId` | path | string | Yes |  |
| `If-Match` | header | string | Yes |  |
| `Idempotency-Key` | header | string | Yes |  |

## Request body

Required. Supported content types: `application/json`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `sourceRef` | string | Yes | Maximum length: 200. |
| `baseCommitSha` | string | Yes |  |

## Call the endpoint

Replace path placeholders and your credential. For body operations, create `request.json` using the required fields above; this command does not invent resource identifiers or consent.

```bash
curl --request POST \
  'https://commentary.dev/api/v1/trackers/<trackerId>/sync/source' \
  --header 'Authorization: Bearer <your-token>' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json
```

## Responses

| Status | Meaning | Payload |
| --- | --- | --- |
| `200` | Authorized domain result with the exact applicable ETag. | [ProjectAgentbindTrackerGitSourceOutput](/docs/reference/schemas/project-agentbind-tracker-git-source-output) |
| `400` | Bounded v1 machine-readable failure. | object |
| `401` | Bounded v1 machine-readable failure. | object |
| `403` | Bounded v1 machine-readable failure. | object |
| `404` | Bounded v1 machine-readable failure. | object |
| `409` | Bounded v1 machine-readable failure. | object |
| `412` | Bounded v1 machine-readable failure. | object |
| `413` | Bounded v1 machine-readable failure. | object |
| `422` | Bounded v1 machine-readable failure. | object |
| `428` | Bounded v1 machine-readable failure. | object |
| `429` | Bounded v1 machine-readable failure. | object |
| `500` | Bounded v1 machine-readable failure. | object |
| `503` | Bounded v1 machine-readable failure. | object |

### Successful response fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | [ProjectAgentTrackerGitSourceResult](/docs/reference/schemas/project-agent-tracker-git-source-result) | Yes |  |
| `idempotencyReplayed` | boolean | No |  |

## Recover from errors

Use the returned status and error body. Correct invalid fields before retrying; reconnect or narrow the target for authentication and permission errors. For conditional writes, reload the latest version before preparing a new request. Respect rate-limit headers and retry only when the operation’s idempotency contract permits it.

## Contract and related guidance

Operation ID: `bindTrackerGitSource`. [Download the OpenAPI contract](/docs/reference/openapi.json) for complete constraints and code generation. [Browse endpoints](/docs/reference/api-operations).
