Passer au contenu principal
app.deploys expose le DeploysModule, qui couvre à la fois la chronologie des deploys et les deux voies d’intégration GitHub.
const app = await api.applications.fetch("abc123def456abc123def456");
app.deploys; // DeploysModule

Lister l’historique des deploys

app.deploys.list() renvoie Deployment[][]un tableau interne par deploy, chacun parcourant les états du cycle de vie : pending → clone → commit → restarting → success | error.
const history = await app.deploys.list();

for (const timeline of history) {
    const last = timeline.at(-1);
    console.log(`Deploy ${last?.id} ended as ${last?.state}`);

    for (const event of timeline) {
        if (event.state === "clone")  console.log(`  cloned branch ${event.branch}`);
        if (event.state === "commit") console.log(`  files`, event.files);
    }
}
Aplatissez le résultat si vous voulez une seule liste chronologique :
const flat = history.flat();
En v3, cette méthode renvoyait un Deployment[] plat. La v4 renvoie Deployment[][] afin que vous puissiez regrouper les événements par deploy. Utilisez .flat() pour conserver l’ancienne forme.
Deployment.id est désormais un simple SHA-1 de commit (40 caractères hexadécimaux). En v3, il était formaté comme `git-${string}`.

Lier via la GitHub App Square Cloud (recommandé)

app.deploys.linkGithubApp({ repositoryName, repositoryBranch }) lie un dépôt GitHub à l’application via la GitHub App officielle.
const repo = await app.deploys.linkGithubApp({
    repositoryName: "octocat/hello-world",
    repositoryBranch: "main",
});

console.log(`Linked ${repo.full_name}#${repo.branch}`);
Pour supprimer le lien :
await app.deploys.unlinkGithubApp();
linkGithubApp et unlinkGithubApp nécessitent un token de session (JWT) comme clé d’API — les clés d’API simples ne sont pas acceptées par ces endpoints.

Lier via l’ancien flux webhook

app.deploys.integrateGithubWebhook(accessToken) configure l’ancienne intégration basée sur les webhooks à l’aide d’un GitHub Personal Access Token.
const webhookUrl = await app.deploys.integrateGithubWebhook("ghp_xxx...");
console.log(`Configure GitHub to POST to: ${webhookUrl}`);
Passez "@" pour supprimer le webhook :
await app.deploys.integrateGithubWebhook("@");

Inspecter la configuration actuelle

app.deploys.current() renvoie la liaison GitHub App et l’URL du webhook actuellement configurées, le cas échéant.
const current = await app.deploys.current();

console.log(current.app);     // GitHub App linkage (or null)
console.log(current.webhook); // legacy webhook URL (or null)
Il existe également un raccourci app.deploys.webhookURL() qui ne renvoie que l’URL du webhook (ou undefined).