use serde::{Deserialize, Serialize};
use crate::octokit::models::{Location, Message};
#[derive(Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct CodeScanningAlert {
pub number: i32,
pub created_at: String,
pub url: String,
pub html_url: String,
pub state: String,
pub fixed_at: Option<String>,
pub dismissed_by: Option<CodeScanningAlertDismissedBy>,
pub dismissed_at: Option<chrono::DateTime<chrono::Utc>>,
pub dismissed_reason: Option<String>,
pub dismissed_comment: Option<String>,
pub rule: CodeScanningAlertRule,
pub tool: CodeScanningAlertTool,
pub most_recent_instance: CodeScanningAlertInstance,
pub instances_url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct CodeScanningAlertRule {
pub id: String,
pub severity: String,
pub tags: Vec<String>,
pub description: String,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct CodeScanningAlertInstance {
pub r#ref: String,
pub analysis_key: String,
pub category: String,
pub environment: String,
pub state: String,
pub commit_sha: String,
pub message: Message,
pub location: Location,
pub classifications: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct CodeScanningAlertTool {
pub name: String,
pub guid: Option<String>,
pub version: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct CodeScanningAlertDismissedBy {}
#[derive(Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct CodeScanningAnalysis {
pub r#ref: String,
pub commit_sha: String,
pub analysis_key: String,
pub environment: String,
pub error: Option<String>,
pub category: String,
pub created_at: chrono::DateTime<chrono::Utc>,
pub results_count: i32,
pub rules_count: i32,
pub id: i32,
pub url: String,
pub sarif_id: String,
pub tool: CodeScanningAlertTool,
pub deletable: bool,
pub warning: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct ListCodeQLDatabase {
pub id: i32,
pub name: String,
pub language: String,
pub content_type: String,
pub size: i32,
pub created_at: chrono::DateTime<chrono::Utc>,
pub updated_at: chrono::DateTime<chrono::Utc>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, Hash, Eq, PartialEq)]
pub struct CodeScanningConfiguration {
#[serde(skip_serializing_if = "String::is_empty")]
pub state: String,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub languages: Vec<String>,
#[serde(skip_serializing_if = "String::is_empty")]
pub query_suite: String,
#[serde(skip_serializing_if = "String::is_empty")]
pub threat_model: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub runner_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub runner_label: Option<String>,
#[serde(skip_serializing)]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(skip_serializing)]
pub schedule: Option<String>,
}