use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ScanParams {
pub path: Option<String>,
pub min_severity: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ScanStagedParams {
pub min_severity: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct SafeCommitParams {
pub message: String,
pub max_severity: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ReviewParams {
pub file: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct FindingsParams {
pub min_severity: Option<String>,
pub file_pattern: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct LogParams {
pub max_count: Option<usize>,
pub author: Option<String>,
pub since: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct DiffParams {
pub commit: Option<String>,
pub cached: Option<bool>,
pub name_only: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct BlameParams {
pub file: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ShowParams {
pub object: Option<String>,
pub stat: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct AddParams {
pub files: Vec<String>,
pub all: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct CommitParams {
pub message: String,
pub allow_empty: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct CheckoutParams {
pub target: String,
pub create: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct BranchCreateParams {
pub name: String,
pub start_point: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct BranchDeleteParams {
pub name: String,
pub force: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct MergeParams {
pub branch: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct StashSaveParams {
pub message: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct StashPopParams {
pub index: Option<usize>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct TagCreateParams {
pub name: String,
pub message: Option<String>,
pub target: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct UndoParams {
pub op_id: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct PushParams {
pub remote: Option<String>,
pub branch: Option<String>,
pub force: Option<bool>,
pub set_upstream: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct BackupAddParams {
pub name: String,
pub destination: String,
pub backend_type: Option<String>,
pub auto: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct BackupRemoveParams {
pub name: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct BackupPushParams {
pub name: Option<String>,
pub all_branches: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct PrListParams {
pub state: Option<String>,
pub server: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct PrViewParams {
pub number: u64,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct CiStatusParams {
pub branch: Option<String>,
pub server: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ReleaseListParams {
pub count: Option<usize>,
pub server: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct WorktreeAddParams {
pub name: String,
pub path: Option<String>,
pub branch: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct WorktreeRemoveParams {
pub name: String,
pub force: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct WorktreeLockParams {
pub name: String,
pub reason: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct WorktreeUnlockParams {
pub name: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ServerAddParams {
pub name: String,
pub platform: String,
pub api_url: String,
pub token: String,
pub push_enabled: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ServerRemoveParams {
pub name: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct ServerPushParams {
pub servers: Option<Vec<String>>,
pub branch: Option<String>,
pub force: Option<bool>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct CreateRepoParams {
pub name: String,
pub server: Option<String>,
pub namespace: Option<String>,
pub private: Option<bool>,
pub description: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfPullParams {
pub model_id: String,
pub revision: Option<String>,
pub include: Option<Vec<String>>,
pub exclude: Option<Vec<String>>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfPushParams {
pub path: String,
pub repo_id: String,
pub hf_org: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfSearchParams {
pub query: String,
pub task: Option<String>,
pub library: Option<String>,
pub limit: Option<usize>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfInfoParams {
pub model_id: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfScanParams {
pub model_id: String,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfPipelineTriggerParams {
pub model_id: String,
pub server: Option<String>,
pub project_id: Option<u64>,
pub token: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfPipelineStatusParams {
pub pipeline_id: Option<u64>,
pub server: Option<String>,
}
#[derive(Debug, Deserialize, JsonSchema)]
pub struct HfFullPipelineParams {
pub model_id: String,
pub hf_org: Option<String>,
pub hf_hardware: Option<String>,
pub min_fix_rate: Option<f64>,
pub probes: Option<String>,
pub epochs: Option<u32>,
pub fail_on_regression: Option<bool>,
}
#[derive(Debug, Serialize)]
pub struct HfFullPipelineResult {
pub original_model: String,
pub hardened_model: String,
pub model_url: String,
pub total_findings: u64,
pub fix_rate: f64,
pub verdict: String,
pub regression_count: u64,
pub status: String,
}
#[derive(Debug, Serialize)]
pub struct ScanResult {
pub scanned_files: usize,
pub findings_count: usize,
pub findings: Vec<FindingResult>,
}
#[derive(Debug, Serialize)]
pub struct FindingResult {
pub id: String,
pub title: String,
pub severity: String,
pub file: Option<String>,
pub line: Option<usize>,
pub description: String,
}