#![warn(missing_docs)]
use std::collections::HashMap;
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct AccountInfo {
pub _account_id: Option<u64>,
pub name: Option<String>,
pub email: Option<String>,
pub secondary_emails: Option<Vec<String>>,
pub username: Option<String>,
pub _more_accounts: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct ActionInfo {
pub method: Option<String>,
pub label: Option<String>,
pub title: Option<String>,
pub enabled: Option<String>,
}
#[allow(non_camel_case_types)]
#[derive(Deserialize, Serialize, Debug, Clone)]
pub enum ChangeInfo_ChangeStatus {
NEW,
MERGED,
ABANDONED,
DRAFT,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct LabelInfo {
pub optional: Option<bool>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct ChangeMessageInfo {
pub id: String,
pub author: Option<AccountInfo>,
pub date: String,
pub message: String,
pub tag: Option<String>,
pub _revision_number: Option<u16>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct FetchInfo {
pub url: String,
#[serde(rename="ref")] pub reference: String,
pub commands: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct GitPersonInfo {
pub name: String,
pub email: String,
pub date: String,
pub tz: u16,
}
#[allow(missing_docs)]
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct CommitInfoParents {
pub commit: String,
pub author: Option<GitPersonInfo>,
pub committer: Option<GitPersonInfo>,
pub subject: String,
pub message: Option<String>,
pub web_links: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct CommitInfo {
pub commit: Option<String>,
pub parents: Option<Vec<CommitInfoParents>>,
pub author: Option<GitPersonInfo>,
pub committer: Option<GitPersonInfo>,
pub subject: Option<String>,
pub message: Option<String>,
pub web_links: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
#[serde(deny_unknown_fields)]
pub struct FileInfo0209 {
pub status: Option<String>,
pub binary: Option<bool>,
pub old_path: Option<String>,
pub lines_inserted: Option<u64>,
pub lines_deleted: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
#[serde(deny_unknown_fields)]
pub struct FileInfo0213 {
pub status: Option<String>,
pub binary: Option<bool>,
pub old_path: Option<String>,
pub lines_inserted: Option<u64>,
pub lines_deleted: Option<String>,
pub size_delta: u64,
pub size: u64,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
#[serde(untagged)]
pub enum FileInfo {
Gerrit0209(FileInfo0209),
Gerrit0213(FileInfo0213),
}
#[derive(Deserialize, Serialize, Debug, Clone)]
#[serde(deny_unknown_fields)]
pub struct RevisionInfo0209 {
pub draft: Option<bool>,
pub has_draft_comments: Option<bool>,
pub _number: u64,
pub fetch: HashMap<String, FetchInfo>,
pub commit: Option<CommitInfo>,
pub files: Option<HashMap<String, FileInfo0209>>,
pub actions: Option<HashMap<String, ActionInfo>>,
}
#[allow(non_camel_case_types)]
#[allow(missing_docs)]
#[derive(Deserialize, Serialize, Debug, Clone)]
pub enum RevisionInfo0213_ChangeKind {
#[allow(missing_docs)]
REWORK,
#[allow(missing_docs)]
TRIVIAL_REBASE,
#[allow(missing_docs)]
MERGE_FIRST_PARENT_UPDATE,
#[allow(missing_docs)]
NO_CODE_CHANGE,
#[allow(missing_docs)]
NO_CHANGE,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
#[serde(deny_unknown_fields)]
pub struct RevisionInfo0213 {
pub draft: Option<bool>,
pub kind: RevisionInfo0213_ChangeKind,
pub _number: u64,
pub created: String,
pub uploader: AccountInfo,
#[serde(rename="ref")] pub reference: String,
pub fetch: HashMap<String, FetchInfo>,
pub commit: Option<CommitInfo>,
pub files: Option<FileInfo0213>,
pub actions: Option<HashMap<String, ActionInfo>>,
pub reviewed: Option<bool>,
#[serde(rename="messageWithFooter")] pub message_with_footer: Option<String>,
pub push_certificate: Option<PushCertificateInfo>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
#[serde(untagged)]
pub enum RevisionInfo {
Gerrit0209(Box<RevisionInfo0209>),
Gerrit0213(Box<RevisionInfo0213>),
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct PushCertificateInfo {
pub certificate: String,
pub key: GpgKeyInfo,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct GpgKeyInfo {
pub id: Option<String>,
pub fingerprint: Option<String>,
pub user_ids: String,
pub key: String,
pub status: Option<String>,
pub problems: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct ProblemInfo {
pub message: String,
pub status: Option<String>,
pub outcome: Option<String>,
}
#[allow(non_camel_case_types)]
#[derive(Deserialize, Serialize, Debug, Clone)]
pub enum ProjectInfo_ProjectState {
ACTIVE,
READONLY,
HIDDEN,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct WebLinkInfo {
pub name: String,
pub url: String,
pub image_url: String,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct ProjectInfo {
pub name: Option<String>,
pub id: String,
pub parent: Option<String>,
pub description: Option<String>,
pub state: Option<ProjectInfo_ProjectState>,
pub branches: Option<HashMap<String, String>>,
pub web_links: Option<Vec<WebLinkInfo>>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct ChangeInfo {
pub id: String,
pub project: String,
pub branch: String,
pub topic: Option<String>,
pub change_id: String,
pub subject: String,
pub status: ChangeInfo_ChangeStatus,
pub created: String,
pub updated: String,
pub submitted: Option<String>,
pub starred: Option<bool>,
pub stars: Option<Vec<String>>,
pub reviewed: Option<bool>,
pub submit_type: Option<String>,
pub mergeable: Option<bool>,
pub insertions: u16,
pub deletions: u16,
pub _number: u64,
pub owner: AccountInfo,
pub action: Option<Vec<ActionInfo>>,
pub labels: Option<HashMap<String, LabelInfo>>,
pub permitted_labels: Option<HashMap<String, LabelInfo>>,
pub removeable_reviewers: Option<Vec<AccountInfo>>,
pub reviewers: Option<String>,
pub messages: Option<HashMap<String, ChangeMessageInfo>>,
pub current_revision: Option<String>,
pub revisions: Option<HashMap<String, RevisionInfo>>,
pub _more_changes: Option<bool>,
pub problems: Option<Vec<ProblemInfo>>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ChangeInput {
pub project: String,
pub branch: String,
pub subject: String,
pub topic: Option<String>,
pub status: Option<String>,
pub base_change: Option<String>,
pub new_branch: Option<bool>,
pub merge: Option<MergeInput>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MergeInput {
pub source: String,
pub strategy: Option<String>,
}