> ## 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.

# Commit et envoi

> Envoyez une nouvelle application sur Square Cloud ou faites un commit de nouveaux fichiers vers une application existante.

```go theme={null}
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`.

```go theme={null}
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.

<Note>
  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](/fr/getting-started/config-file).
</Note>

## 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.

```go theme={null}
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` :

```go theme={null}
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 :

```go theme={null}
err = api.PostApplicationSignal("abc123def456abc123def456", squarecloud.ApplicationSignalRestart)
```
