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

# GitHub-App-Repository verknüpfen

> Verknüpfe ein GitHub-Repository und einen Branch über die Square Cloud GitHub App mit einer Anwendung.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  Der API-Schlüssel für Ihr Konto. Sie finden ihn in Ihren [Kontoeinstellungen](https://squarecloud.app/de/account/security).
</ParamField>

Dieser Endpunkt verknüpft eine Anwendung über die Square Cloud GitHub App mit einem GitHub-Repository und einem Branch, sodass jeder Push auf diesen Branch die Anwendung deployt. Er ist die empfohlene Alternative zu [GitHub-Webhook einrichten](/de/api-reference/endpoint/apps/deploy/webhooks): Es wird kein Personal Access Token gespeichert, und jedes Deployment erscheint als Check Run am Commit.

Verbinde vor dem Aufruf dein GitHub-Konto mit Square Cloud und installiere die Square Cloud GitHub App im Repository. Das Repository muss von einer Installation abgedeckt sein, die zu deinem eigenen GitHub-Konto gehört; andernfalls schlägt die Anfrage mit `REPOSITORY_NOT_AVAILABLE` fehl. Er funktioniert mit einem API-Schlüssel mit dem Scope `apps:deploy`, und nur der Eigentümer der Anwendung kann ihn aufrufen.

Eine Anwendung hat jeweils nur eine GitHub-App-Verknüpfung. [Trenne](/de/api-reference/endpoint/apps/deploy/github-app-unlink) also das aktuelle Repository, bevor du ein anderes verknüpfst. Dasselbe Repository und derselbe Branch können nicht mit zwei deiner Anwendungen verknüpft sein. Das Verknüpfen invalidiert die zwischengespeicherte Antwort von [Aktuelles Deployment abrufen](/de/api-reference/endpoint/apps/deploy/info). Aufrufe sind auf 3 pro 60 Sekunden pro Benutzer begrenzt, gemeinsam mit dem Trennen.

### Parameter

<ParamField path="app_id" type="string" placeholder="Application ID" required>
  Die ID der Anwendung. Du findest sie in der URL des Dashboards deiner Anwendung.
</ParamField>

<ParamField body="repositoryName" type="string" placeholder="octocat/hello-world" required>
  Der vollständige Name des Repositorys im Format `owner/repository`.
</ParamField>

<ParamField body="repositoryBranch" type="string" placeholder="main" required>
  Der Branch, dessen Pushes die Anwendung deployen. Bis zu 256 Zeichen, und er muss im Repository existieren.
</ParamField>

### Antwort

<ResponseField name="status" type="string">
  Gibt an, ob der Aufruf erfolgreich war. `success` bei Erfolg, `error` andernfalls.
</ResponseField>

<ResponseField name="response" type="object">
  Der Inhalt der Antwort.

  <Expandable title="Objekt umschalten">
    <ResponseField name="repository" type="object">
      Das verknüpfte Repository.

      <Expandable title="Objekt umschalten">
        <ResponseField name="id" type="number">
          Die GitHub-ID des Repositorys.
        </ResponseField>

        <ResponseField name="full_name" type="string">
          Der vollständige Name des Repositorys.
        </ResponseField>

        <ResponseField name="branch" type="string">
          Der Branch, der die Anwendung deployt.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

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

### Häufige Fehler

| Code                                   | HTTP | Bedeutung                                                                               |
| -------------------------------------- | ---- | --------------------------------------------------------------------------------------- |
| `MISSING_REQUIRED_FIELDS`              | 400  | `repositoryName` oder `repositoryBranch` fehlt.                                         |
| `INVALID_BRANCH_LENGTH`                | 400  | Der Branch-Name ist länger als 256 Zeichen.                                             |
| `BRANCH_NOT_FOUND`                     | 400  | Der Branch existiert nicht im Repository.                                               |
| `GIT_ALREADY_CONFIGURED`               | 400  | Die Anwendung hat bereits ein GitHub-App-Repository. Trenne es zuerst.                  |
| `REPOSITORY_NOT_AVAILABLE`             | 403  | Die Square Cloud GitHub App ist über dein GitHub-Konto nicht im Repository installiert. |
| `REPOSITORY_NOT_FOUND`                 | 404  | Das Repository existiert nicht oder dein GitHub-Konto kann es nicht sehen.              |
| `APP_NOT_FOUND`                        | 404  | Die Anwendung existiert nicht oder du bist nicht ihr Eigentümer.                        |
| `REPOSITORY_BRANCH_ALREADY_CONFIGURED` | 409  | Eine andere deiner Anwendungen verknüpft bereits dieses Repository und diesen Branch.   |
