c.Apps.Deploys conecta una aplicación a GitHub para que un push la despliegue. Hay dos formas de hacerlo: un webhook que añades al repositorio, o la GitHub App de Square Cloud.
Cada fragmento de abajo se ejecuta por sí solo dentro de este programa: pega uno a la vez en main y ejecuta goimports (consulta Ejecutar los ejemplos).
Webhook
Deploys.SetWebhook(ctx, appID, accessToken) configura los deploys por webhook de GitHub con un token de acceso de GitHub (ghp_... o github_pat_...) y devuelve la URL del webhook que debes añadir a tu repositorio.
"@" como token para eliminar el webhook. En ese caso, el método devuelve "".
INVALID_ACCESS_TOKEN.
GitHub App
Deploys.LinkGithubApp(ctx, appID, repository, branch) vincula un repositorio instalado a través de la GitHub App de Square Cloud. Necesita el scope apps:deploy.
Deploys.UnlinkGithubApp(ctx, appID) elimina la vinculación. Para vincular otro repositorio o rama, desvincula primero.
Configuración actual
Deploys.Current(ctx, appID) devuelve lo que está configurado: App para la vinculación con la GitHub App, Webhook para la URL del webhook. Cuando no hay nada configurado, devuelve el valor cero (App es nil y Webhook es ""). Los campos de App son punteros, ya que la API puede enviarlos como null.
Historial de deploys
Deploys.List(ctx, appID) devuelve una línea de tiempo por deploy (un [][]DeployEvent), cada una un slice de eventos, del evento más antiguo al más reciente. Solo se registran los deploys de Git (pushes por webhook y por GitHub App).
Próximos pasos
Red
Analíticas, DNS, dominios personalizados y caché.
Referencia de la API de deploys
Los endpoints REST detrás de estos métodos.
Deploys de GitHub desde la CLI
Las mismas acciones desde la terminal.

