use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WebhookPush {
#[serde(rename = "after")]
pub after: String,
#[serde(rename = "base_ref", deserialize_with = "Option::deserialize")]
pub base_ref: Option<String>,
#[serde(rename = "before")]
pub before: String,
#[serde(rename = "commits")]
pub commits: Vec<models::Commit>,
#[serde(rename = "compare")]
pub compare: String,
#[serde(rename = "created")]
pub created: bool,
#[serde(rename = "deleted")]
pub deleted: bool,
#[serde(rename = "enterprise", skip_serializing_if = "Option::is_none")]
pub enterprise: Option<Box<models::EnterpriseWebhooks>>,
#[serde(rename = "forced")]
pub forced: bool,
#[serde(rename = "head_commit", deserialize_with = "Option::deserialize")]
pub head_commit: Option<Box<models::Commit1>>,
#[serde(rename = "installation", skip_serializing_if = "Option::is_none")]
pub installation: Option<Box<models::SimpleInstallation>>,
#[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
pub organization: Option<Box<models::OrganizationSimpleWebhooks>>,
#[serde(rename = "pusher")]
pub pusher: Box<models::Committer1>,
#[serde(rename = "ref")]
pub r#ref: String,
#[serde(rename = "repository")]
pub repository: Box<models::Repository2>,
#[serde(rename = "sender", skip_serializing_if = "Option::is_none")]
pub sender: Option<Box<models::SimpleUserWebhooks>>,
}
impl WebhookPush {
pub fn new(after: String, base_ref: Option<String>, before: String, commits: Vec<models::Commit>, compare: String, created: bool, deleted: bool, forced: bool, head_commit: Option<models::Commit1>, pusher: models::Committer1, r#ref: String, repository: models::Repository2) -> WebhookPush {
WebhookPush {
after,
base_ref,
before,
commits,
compare,
created,
deleted,
enterprise: None,
forced,
head_commit: head_commit.map(Box::new),
installation: None,
organization: None,
pusher: Box::new(pusher),
r#ref,
repository: Box::new(repository),
sender: None,
}
}
}