All checks were successful
Build App / compute-version (push) Successful in 6s
Build Container / build-container (push) Successful in 1m44s
Build App / build-macos (push) Successful in 2m21s
Build App / build-windows (push) Successful in 3m30s
Build App / build-linux (push) Successful in 4m52s
Build App / create-tag (push) Successful in 3s
Build App / sync-to-github (push) Successful in 10s
Work VPN blocks repo.anhonesthost.net, breaking update checks and image pulls. Move all user-facing distribution to GitHub (releases API) and GHCR (container images) while keeping Gitea as the source of truth for development and CI. - CI: push container images to GHCR alongside Gitea registry - App updates: switch releases API to api.github.com, filter by asset filename instead of tag suffix for unified releases - Image updates: switch registry to ghcr.io with anonymous token auth - Container pull: point REGISTRY_IMAGE to ghcr.io/shadowdao/triple-c-sandbox - Rename GiteaRelease/GiteaAsset structs to GitHubRelease/GitHubAsset Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
1.3 KiB
Rust
49 lines
1.3 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
/// Info returned to the frontend about an available update.
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct UpdateInfo {
|
|
pub version: String,
|
|
pub tag_name: String,
|
|
pub release_url: String,
|
|
pub body: String,
|
|
pub assets: Vec<ReleaseAsset>,
|
|
pub published_at: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct ReleaseAsset {
|
|
pub name: String,
|
|
pub browser_download_url: String,
|
|
pub size: u64,
|
|
}
|
|
|
|
/// GitHub API release response (internal).
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct GitHubRelease {
|
|
pub tag_name: String,
|
|
pub html_url: String,
|
|
pub body: String,
|
|
pub assets: Vec<GitHubAsset>,
|
|
pub published_at: String,
|
|
}
|
|
|
|
/// GitHub API asset response (internal).
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct GitHubAsset {
|
|
pub name: String,
|
|
pub browser_download_url: String,
|
|
pub size: u64,
|
|
}
|
|
|
|
/// Info returned to the frontend about an available container image update.
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct ImageUpdateInfo {
|
|
/// The remote digest (e.g. sha256:abc...)
|
|
pub remote_digest: String,
|
|
/// The local digest, if available
|
|
pub local_digest: Option<String>,
|
|
/// When the remote image was last updated (if known)
|
|
pub remote_updated_at: Option<String>,
|
|
}
|