> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Vincular um template privado ao GitHub

> Vincula um template privado a um repositório do GitHub com o manifesto na raiz, para que cada push na branch publique uma versão.

Esta chamada vincula um template privado a um repositório do GitHub e responde com o template. O repositório precisa ter `vertracloud.template.yaml` na raiz da branch e estar em uma das suas instalações do GitHub App; ele não pode ser vinculado ao template de outro dono. Cada push na branch publica então uma versão, com a mensagem do commit como changelog e o `README.md` da raiz como documentação. O código de um serviço vem da pasta em `source.path`, ou do próprio repositório, sem o manifesto.

Um push não aumenta a versão sozinho: aumente o `version` do manifesto no commit. Um push que não pode virar versão é ignorado (o manifesto tem uma versão mais antiga, é inválido ou o código contém um segredo). Corrija e faça o push de novo. Pushes para outras branches são ignorados.

Precisa do escopo `templates:write` quando chamada com uma chave de API. Só o dono do template pode vinculá-lo, porque o vínculo usa as instalações do GitHub App do dono; em um workspace, um membro recebe `403`.

**template\_id** `string` *required*

O ID do template.

**workspace\_id** `string`

Se o template pertencer a um workspace, o ID do workspace.

**repository** `string` *required*

O repositório, no formato `owner/name`.

**branch** `string`

A branch que publica as versões. Sem ela, a branch padrão do repositório.

```bash cURL theme={null}
curl -X PUT https://api.vertracloud.app/v1/templates/tpl-abc123def456/github \
  -H "Authorization: Bearer $VERTRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "repository": "acme/support-bot-template", "branch": "main" }'
```

### Resposta

O objeto template de [Criar um template privado](https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create.md), agora com `github` definido como o repositório vinculado.

**response** `object`

O template.

**Mostrar objeto**

**github** `object | null`

O vínculo: `repository` (`owner/name`) e `branch`.

**id** `string`

O ID do template. Os demais campos são os listados em [Criar um template privado](https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create.md).

```json Response theme={null}
{
  "response": {
    "id": "tpl-abc123def456",
    "slug": "support-bot",
    "origin": "private",
    "github": { "repository": "acme/support-bot-template", "branch": "main" }
  }
}
```

### Respostas de erro

**code** `string`

O código de erro que indica o motivo da falha. Valores possíveis:

* `API_KEY_SCOPE_DENIED`: A chave de API não tem o escopo `templates:write` (`403`).
* `TEMPLATE_NOT_FOUND`: O template não existe ou não é seu (`404`).
* `INSTALLATION_NOT_FOUND`: O repositório ou a branch não está nas suas instalações do GitHub App (`404`).
* `TEMPLATE_GITHUB_MANIFEST_NOT_FOUND`: Não há `vertracloud.template.yaml` na raiz da branch.
* `REPO_ALREADY_LINKED`: O repositório já está vinculado ao template de outro dono, a uma imagem ou a uma aplicação (`409`).
* `WORKSPACE_OWNER_ONLY`: Só o dono do workspace vincula os templates dele.

```json Error Response theme={null}
{
  "code": "TEMPLATE_GITHUB_MANIFEST_NOT_FOUND"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.