Passer au contenu principal
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Envoyer une nouvelle application

api.PostApplications(reader) envoie un zip depuis n’importe quel io.Reader et crée une toute nouvelle application, en renvoyant 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 l'application nouvellement créée
fmt.Println(uploaded.Name)             // nom d'affichage
fmt.Println(uploaded.RAM)              // RAM allouée en MB
fmt.Println(uploaded.CPU)              // parts CPU allouées
fmt.Println(uploaded.Language.Name)    // e.g. "go"
fmt.Println(uploaded.Language.Version) // e.g. "1.24"
Description et Subdomain ne sont présents que lorsqu’ils sont définis dans le fichier de configuration.
Le zip doit contenir le point d’entrée de votre application, son fichier de dépendances et le fichier de configuration squarecloud.app/squarecloud.config. Consultez le guide du fichier de configuration.

Faire un commit de fichiers vers une application existante

api.PostApplicationCommit(appID, reader) envoie un zip dans une application déjà déployée, en remplaçant les fichiers correspondants.
file, err := os.Open("dist.zip")
if err != nil {
	panic(err)
}
defer file.Close()

err = api.PostApplicationCommit("abc123def456abc123def456", file)
if err != nil {
	panic(err)
}
Pour faire un commit dans un sous-répertoire plutôt qu’à la racine de l’application, passez le paramètre de requête path avec rest.WithQueryParam :
err = api.PostApplicationCommit(
	"abc123def456abc123def456",
	file,
	rest.WithQueryParam("path", "src"),
)
Faire un commit ne redémarre pas l’application — envoyez ensuite un signal de redémarrage si votre changement en nécessite un :
err = api.PostApplicationSignal("abc123def456abc123def456", squarecloud.ApplicationSignalRestart)