1.3 KiB
1.3 KiB
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[]avecbrowser_download_url(GitHub et Gitea API)
Le format attendu pour la réponse latest release est actuellement :
{
"tag_name": "v1.2.3",
"assets": {
"links": [
{
"name": "my-mcp-linux-amd64",
"url": "https://example.com/downloads/my-mcp-linux-amd64"
}
]
}
}
Exemple :
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 coupleGOOS/GOARCH - si un asset
<asset>.sha256(ouchecksum_asset_name) existe, le binaire téléchargé est vérifié avant remplacement - un hook
ValidateDownloadedpermet d'ajouter une validation custom (signature, scan, etc.) - sur Windows, le remplacement in-place n'est pas fait par défaut ; fournir
Options.ReplaceExecutablepour une stratégie dédiée