Saltar al contenido principal
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Subida de una nueva aplicación

api.PostApplications(reader) sube un zip desde cualquier io.Reader y crea una aplicación completamente nueva, devolviendo un *squarecloud.ApplicationUploaded.
file, err := os.Open("app.zip")
if err != nil {
	panic(err)
}
defer file.Close()

uploaded, err := api.PostApplications(file)
if err != nil {
	panic(err)
}

fmt.Println(uploaded.ID)               // ID de la aplicación recién creada
fmt.Println(uploaded.Name)             // nombre visible
fmt.Println(uploaded.RAM)              // RAM asignada en MB
fmt.Println(uploaded.CPU)              // shares de CPU asignados
fmt.Println(uploaded.Language.Name)    // e.g. "go"
fmt.Println(uploaded.Language.Version) // e.g. "1.24"
Description y Subdomain solo están presentes cuando se definen en el archivo de configuración.
El zip debe contener el punto de entrada de tu aplicación, su archivo de dependencias y el archivo de configuración squarecloud.app/squarecloud.config. Consulta la guía del archivo de configuración.

Commit de archivos a una aplicación existente

api.PostApplicationCommit(appID, reader) sube un zip a una aplicación ya desplegada, reemplazando los archivos coincidentes.
file, err := os.Open("dist.zip")
if err != nil {
	panic(err)
}
defer file.Close()

err = api.PostApplicationCommit("abc123def456abc123def456", file)
if err != nil {
	panic(err)
}
Para hacer commit en un subdirectorio en lugar de la raíz de la aplicación, pasa el parámetro de query path con rest.WithQueryParam:
err = api.PostApplicationCommit(
	"abc123def456abc123def456",
	file,
	rest.WithQueryParam("path", "src"),
)
Hacer commit no reinicia la aplicación — envía una señal de reinicio después si tu cambio lo requiere:
err = api.PostApplicationSignal("abc123def456abc123def456", squarecloud.ApplicationSignalRestart)