Files
gt-tool/src/lib.rs

60 lines
1.2 KiB
Rust

use serde::{Deserialize, Serialize};
pub mod cli;
pub mod api;
pub mod structs;
/// A struct matching a Gitea "Release" entry
#[derive(Debug, Deserialize, Serialize)]
pub struct ReleaseInfo {
id: usize,
tag_name: String,
target_commitish: String,
name: String,
body: String,
url: String,
html_url: String,
tarball_url: String,
zipball_url: String,
upload_url: String,
draft: bool,
prerelease: bool,
created_at: String,
published_at: String,
author: Author,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Author {
id: usize,
login: String,
login_name: String,
source_id: usize,
full_name: String,
email: String,
}
#[derive(Debug, Serialize)]
pub struct CreateReleaseOption {
pub body: String,
pub draft: bool,
pub name: String,
pub prerelease: bool,
pub tag_name: String,
pub target_commitish: String,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct ApiError {
message: String,
url: String,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(untagged)]
pub enum CreateResult {
Success(ReleaseInfo),
ErrWithMessage(ApiError),
Empty,
}