> ## 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.

# Lier un dépôt via la GitHub App

> Liez un dépôt et une branche GitHub à une application via la GitHub App Square Cloud.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clé d'API de votre compte. Vous pouvez la trouver dans les [paramètres de votre compte](https://squarecloud.app/fr/account/security).
</ParamField>

Cet endpoint lie une application à un dépôt et à une branche GitHub via la GitHub App Square Cloud, afin que chaque push sur cette branche déploie l'application. C'est l'alternative recommandée à [Configurer un webhook GitHub](/fr/api-reference/endpoint/apps/deploy/webhooks) : aucun jeton d'accès personnel n'est stocké, et chaque déploiement apparaît comme un Check Run sur le commit.

Avant de l'appeler, connectez votre compte GitHub à Square Cloud et installez la GitHub App Square Cloud sur le dépôt. Le dépôt doit être couvert par une installation détenue par votre propre compte GitHub ; sinon, la requête échoue avec `REPOSITORY_NOT_AVAILABLE`. Il fonctionne avec une clé d'API disposant de la portée `apps:deploy`, et seul le propriétaire de l'application peut l'appeler.

Une application ne peut avoir qu'une seule liaison GitHub App à la fois : [déliez](/fr/api-reference/endpoint/apps/deploy/github-app-unlink) donc le dépôt actuel avant d'en lier un autre. Un même dépôt et une même branche ne peuvent pas être liés à deux de vos applications. La liaison invalide la réponse mise en cache par [Obtenir le déploiement actuel](/fr/api-reference/endpoint/apps/deploy/info). Les appels sont limités à 3 toutes les 60 secondes par utilisateur, un quota partagé avec l'action de délier.

### Paramètres

<ParamField path="app_id" type="string" placeholder="Application ID" required>
  L'ID de l'application. Vous pouvez le trouver dans l'URL du tableau de bord de votre application.
</ParamField>

<ParamField body="repositoryName" type="string" placeholder="octocat/hello-world" required>
  Le nom complet du dépôt, au format `owner/repository`.
</ParamField>

<ParamField body="repositoryBranch" type="string" placeholder="main" required>
  La branche dont les push déploient l'application. 256 caractères maximum, et elle doit exister dans le dépôt.
</ParamField>

### Réponse

<ResponseField name="status" type="string">
  Indique si l'appel a réussi. `success` en cas de succès, `error` sinon.
</ResponseField>

<ResponseField name="response" type="object">
  Le contenu de la réponse.

  <Expandable title="Afficher l'objet">
    <ResponseField name="repository" type="object">
      Le dépôt lié.

      <Expandable title="Afficher l'objet">
        <ResponseField name="id" type="number">
          L'ID GitHub du dépôt.
        </ResponseField>

        <ResponseField name="full_name" type="string">
          Le nom complet du dépôt.
        </ResponseField>

        <ResponseField name="branch" type="string">
          La branche qui déploie l'application.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

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

### Erreurs courantes

| Code                                   | HTTP | Signification                                                                        |
| -------------------------------------- | ---- | ------------------------------------------------------------------------------------ |
| `MISSING_REQUIRED_FIELDS`              | 400  | `repositoryName` ou `repositoryBranch` est manquant.                                 |
| `INVALID_BRANCH_LENGTH`                | 400  | Le nom de la branche dépasse 256 caractères.                                         |
| `BRANCH_NOT_FOUND`                     | 400  | La branche n'existe pas dans le dépôt.                                               |
| `GIT_ALREADY_CONFIGURED`               | 400  | L'application a déjà un dépôt GitHub App. Déliez-le d'abord.                         |
| `REPOSITORY_NOT_AVAILABLE`             | 403  | La GitHub App Square Cloud n'est pas installée sur le dépôt via votre compte GitHub. |
| `REPOSITORY_NOT_FOUND`                 | 404  | Le dépôt n'existe pas ou votre compte GitHub ne peut pas le voir.                    |
| `APP_NOT_FOUND`                        | 404  | L'application n'existe pas ou vous n'en êtes pas le propriétaire.                    |
| `REPOSITORY_BRANCH_ALREADY_CONFIGURED` | 409  | Une autre de vos applications lie déjà ce dépôt et cette branche.                    |
