pub enum HookType {
PreCommit,
CommitMsg,
PrePush,
PostCheckout,
PreRebase,
PostMerge,
PrepareCommitMsg,
Custom(String),
}
pub struct HookMetadata {
pub name: String,
pub description: String,
pub hook_type: HookType,
pub author: String,
pub created_at: chrono::DateTime<chrono::Utc>,
pub modified_at: chrono::DateTime<chrono::Utc>,
pub tags: Vec<String>,
}
pub struct HookScript {
pub metadata: HookMetadata,
pub content: String,
pub language: ScriptLanguage,
}
pub enum ScriptLanguage {
Shell,
Python,
Ruby,
JavaScript,
Custom(String),
}