60 lines
1.2 KiB
Rust
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,
|
|
}
|