#[cfg(test)]
mod tests;
pub mod action;
pub mod cross;
pub mod error;
pub mod manifest;
pub mod models;
pub mod per_repo_providers;
pub mod schemas;
pub mod version;
pub mod workflow;
pub use action::Action;
pub use error::{LoadError, Warning};
pub use models::{Model, Models};
pub use per_repo_providers::PerRepoProviders;
pub use workflow::{Budgets, CompactionConfig, CompactionTrigger, Event, RetryConfig, Workflow};
use std::path::Path;
#[derive(Debug)]
pub struct ModelsConfig {
pub global: Models,
pub per_repo: PerRepoProviders,
}
impl ModelsConfig {
pub fn load_with_per_repo(
global_path: &Path,
per_repo_raw: &str,
per_repo_origin: &Path,
) -> Result<(Self, Vec<Warning>), LoadError> {
let (global, warnings) = Models::load(global_path)?;
let per_repo = PerRepoProviders::parse(per_repo_raw, per_repo_origin)?;
cross::check_roles_against_models(&per_repo, &global)?;
Ok((Self { global, per_repo }, warnings))
}
}