# Auto-update Le package `update` supporte les drivers `gitea`, `gitlab` et `github`. Si `latest_release_url` est vide, l'URL latest est déduite depuis `driver + repository (+ base_url)`. Le parseur de release supporte : - format `assets.links` (Gitea/GitLab) - format `assets[]` avec `browser_download_url` (GitHub et Gitea API) Le format attendu pour la réponse `latest release` est : ```json { "tag_name": "v1.2.3", "assets": { "links": [ { "name": "my-mcp-linux-amd64", "url": "https://example.com/downloads/my-mcp-linux-amd64" } ] } } ``` Exemple : ```go file, _, err := manifest.LoadDefault(".") if err != nil { return err } err = update.Run(ctx, update.Options{ CurrentVersion: version, BinaryName: "my-mcp", ReleaseSource: file.Update.ReleaseSource(), Stdout: os.Stdout, }) if err != nil { return err } ``` Comportement : - le nom de l'asset est configurable (`asset_name_template`) et supporte tout couple `GOOS/GOARCH` - si un asset `.sha256` (ou `checksum_asset_name`) existe, le binaire téléchargé est vérifié avant remplacement - un hook `ValidateDownloaded` permet d'ajouter une validation custom (signature, scan, etc.) - sur Windows, le remplacement in-place n'est pas fait par défaut ; fournir `Options.ReplaceExecutable` pour une stratégie dédiée