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

# Collega un repository della GitHub App

> Collega un repository e un branch GitHub a un'applicazione tramite la Square Cloud GitHub App.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La chiave API del tuo account. Puoi trovarla nelle [impostazioni del tuo account](https://squarecloud.app/it/account/security).
</ParamField>

Questo endpoint collega un'applicazione a un repository e a un branch GitHub tramite la Square Cloud GitHub App, così ogni push su quel branch esegue il deploy dell'applicazione. È l'alternativa consigliata a [Imposta Webhook GitHub](/it/api-reference/endpoint/apps/deploy/webhooks): non viene salvato alcun token di accesso personale e ogni deploy compare come Check Run sul commit.

Prima di chiamarlo, collega il tuo account GitHub a Square Cloud e installa la Square Cloud GitHub App sul repository. Il repository deve essere coperto da un'installazione del tuo account GitHub; altrimenti la richiesta fallisce con `REPOSITORY_NOT_AVAILABLE`. Funziona con una chiave API che abbia l'ambito `apps:deploy`, e solo il proprietario dell'applicazione può chiamarlo.

Un'applicazione può avere un solo collegamento GitHub App alla volta, quindi [scollega](/it/api-reference/endpoint/apps/deploy/github-app-unlink) il repository attuale prima di collegarne un altro; inoltre lo stesso repository e branch non può essere collegato a due delle tue applicazioni. Il collegamento invalida la risposta memorizzata in cache di [Ottieni Deployment Corrente](/it/api-reference/endpoint/apps/deploy/info). Le chiamate sono limitate a 3 ogni 60 secondi per utente, condivise con lo scollegamento.

### Parametri

<ParamField path="app_id" type="string" placeholder="Application ID" required>
  L'ID dell'applicazione. Puoi trovarlo nell'URL della dashboard della tua applicazione.
</ParamField>

<ParamField body="repositoryName" type="string" placeholder="octocat/hello-world" required>
  Il nome completo del repository, nel formato `owner/repository`.
</ParamField>

<ParamField body="repositoryBranch" type="string" placeholder="main" required>
  Il branch i cui push eseguono il deploy dell'applicazione. Fino a 256 caratteri, e deve esistere nel repository.
</ParamField>

### Risposta

<ResponseField name="status" type="string">
  Indica se la chiamata è andata a buon fine. `success` in caso di successo, `error` in caso contrario.
</ResponseField>

<ResponseField name="response" type="object">
  Il contenuto della risposta.

  <Expandable title="Mostra oggetto">
    <ResponseField name="repository" type="object">
      Il repository collegato.

      <Expandable title="Mostra oggetto">
        <ResponseField name="id" type="number">
          L'ID GitHub del repository.
        </ResponseField>

        <ResponseField name="full_name" type="string">
          Il nome completo del repository.
        </ResponseField>

        <ResponseField name="branch" type="string">
          Il branch che esegue il deploy dell'applicazione.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json theme={"system"}
  {
      "status": "success",
      "response": {
          "repository": {
              "id": 1234567,
              "full_name": "octocat/hello-world",
              "branch": "main"
          }
      }
  }
  ```
</ResponseExample>

### Errori comuni

| Codice                                 | HTTP | Significato                                                                               |
| -------------------------------------- | ---- | ----------------------------------------------------------------------------------------- |
| `MISSING_REQUIRED_FIELDS`              | 400  | Manca `repositoryName` o `repositoryBranch`.                                              |
| `INVALID_BRANCH_LENGTH`                | 400  | Il nome del branch supera i 256 caratteri.                                                |
| `BRANCH_NOT_FOUND`                     | 400  | Il branch non esiste nel repository.                                                      |
| `GIT_ALREADY_CONFIGURED`               | 400  | L'applicazione ha già un repository della GitHub App. Scollegalo prima.                   |
| `REPOSITORY_NOT_AVAILABLE`             | 403  | La Square Cloud GitHub App non è installata sul repository tramite il tuo account GitHub. |
| `REPOSITORY_NOT_FOUND`                 | 404  | Il repository non esiste o il tuo account GitHub non può vederlo.                         |
| `APP_NOT_FOUND`                        | 404  | L'applicazione non esiste o non ne sei il proprietario.                                   |
| `REPOSITORY_BRANCH_ALREADY_CONFIGURED` | 409  | Un'altra delle tue applicazioni collega già questo repository e branch.                   |
