Pular para o conteúdo principal

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.

app.deploys expõe o DeploysModule, que cobre tanto a linha do tempo dos deploys quanto os dois caminhos de integração com o GitHub.
const app = await api.applications.fetch("abc123def456abc123def456");
app.deploys; // DeploysModule

Listando o histórico de deploys

app.deploys.list() retorna Deployment[][]um array interno por deploy, cada um percorrendo os estados: 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} terminou como ${last?.state}`);

    for (const event of timeline) {
        if (event.state === "clone")  console.log(`  branch clonada: ${event.branch}`);
        if (event.state === "commit") console.log(`  arquivos`, event.files);
    }
}
Use .flat() se quiser uma única lista cronológica:
const flat = history.flat();
Na v3 esse método retornava um Deployment[] plano. A v4 retorna Deployment[][] para agrupar eventos por deploy. Use .flat() para manter o formato antigo.
Deployment.id agora é um SHA-1 de commit (40 chars hex). Na v3 era formatado como `git-${string}`.

Vinculando via GitHub App da Square Cloud (recomendado)

app.deploys.linkGithubApp({ repositoryName, repositoryBranch }) vincula um repositório GitHub à aplicação por meio do GitHub App oficial.
const repo = await app.deploys.linkGithubApp({
    repositoryName: "octocat/hello-world",
    repositoryBranch: "main",
});

console.log(`Vinculado ${repo.full_name}#${repo.branch}`);
Para remover o vínculo:
await app.deploys.unlinkGithubApp();
linkGithubApp e unlinkGithubApp exigem um session token (JWT) como chave de API — chaves de API comuns não são aceitas nesses endpoints.

Vinculando via webhook (legado)

app.deploys.integrateGithubWebhook(accessToken) configura a integração legada por webhook usando um Personal Access Token do GitHub.
const webhookUrl = await app.deploys.integrateGithubWebhook("ghp_xxx...");
console.log(`Configure o GitHub para enviar POST para: ${webhookUrl}`);
Passe "@" para remover o webhook:
await app.deploys.integrateGithubWebhook("@");

Inspecionando a configuração atual

app.deploys.current() retorna o vínculo do GitHub App e a URL do webhook configurada, se houver.
const current = await app.deploys.current();

console.log(current.app);     // vínculo do GitHub App (ou null)
console.log(current.webhook); // URL do webhook legado (ou null)
Há também o atalho app.deploys.webhookURL(), que retorna apenas a URL do webhook (ou undefined).