use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Build {
pub id: String,
pub available_at: i64,
pub build_tool_type: String,
pub build_tool_version: String,
pub build_agent_version: String,
}
impl Build {
pub fn is_gradle(&self) -> bool {
self.build_tool_type.eq_ignore_ascii_case("gradle")
}
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GradleAttributes {
pub id: String,
pub build_start_time: i64,
pub build_duration: i64,
pub gradle_version: String,
pub plugin_version: String,
pub root_project_name: Option<String>,
pub requested_tasks: Vec<String>,
pub has_failed: bool,
#[serde(default)]
pub has_verification_failure: Option<bool>,
#[serde(default)]
pub has_non_verification_failure: Option<bool>,
pub tags: Vec<String>,
pub values: Vec<BuildValue>,
pub links: Vec<BuildLink>,
pub environment: GradleEnvironment,
#[serde(default)]
pub develocity_settings: Option<DevelocitySettings>,
#[serde(default)]
pub build_options: Option<GradleBuildOptions>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct BuildValue {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct BuildLink {
pub label: String,
pub url: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GradleEnvironment {
pub username: Option<String>,
pub operating_system: Option<String>,
pub number_of_cpu_cores: Option<i32>,
pub jre_version: Option<String>,
pub jvm_version: Option<String>,
pub jvm_max_memory_heap_size: Option<i64>,
pub jvm_charset: Option<String>,
pub jvm_locale: Option<String>,
pub public_hostname: Option<String>,
pub local_hostname: Option<String>,
#[serde(default)]
pub local_ip_addresses: Vec<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DevelocitySettings {
pub background_publication_enabled: Option<bool>,
pub build_output_capturing_enabled: Option<bool>,
pub file_fingerprint_capturing_enabled: Option<bool>,
pub task_inputs_file_capturing_enabled: Option<bool>,
pub test_output_capturing_enabled: Option<bool>,
pub resource_usage_capturing_enabled: Option<bool>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GradleBuildOptions {
pub build_cache_enabled: Option<bool>,
pub configuration_cache_enabled: Option<bool>,
pub configuration_on_demand_enabled: Option<bool>,
pub continuous_build_enabled: Option<bool>,
pub continue_on_failure_enabled: Option<bool>,
pub daemon_enabled: Option<bool>,
pub dry_run_enabled: Option<bool>,
#[serde(default)]
pub excluded_tasks: Vec<String>,
pub file_system_watching_enabled: Option<bool>,
pub max_number_of_gradle_workers: Option<i32>,
pub offline_mode_enabled: Option<bool>,
pub parallel_project_execution_enabled: Option<bool>,
pub refresh_dependencies_enabled: Option<bool>,
pub rerun_tasks_enabled: Option<bool>,
}