blob: 6d67394cb02067ab5e3d7b90d0147a4af12dbd67 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/// Policy module for NIP-34 write policies
///
/// This module splits the large Nip34WritePolicy into focused sub-policies:
/// - `AnnouncementPolicy` - Repository announcement validation
/// - `StatePolicy` - State event validation + ref alignment
/// - `PrEventPolicy` - PR/PR Update validation
/// - `RelatedEventPolicy` - Forward/backward reference checking
mod announcement;
mod pr_event;
mod related;
mod state;
pub use announcement::{AnnouncementPolicy, AnnouncementResult};
pub use pr_event::PrEventPolicy;
pub use related::{ReferenceResult, RelatedEventPolicy};
pub use state::{AlignmentResult, StatePolicy, StateResult};
use super::SharedDatabase;
/// Shared context for all sub-policies
#[derive(Clone)]
pub struct PolicyContext {
pub domain: String,
pub database: SharedDatabase,
pub git_data_path: std::path::PathBuf,
}
impl PolicyContext {
pub fn new(
domain: impl Into<String>,
database: SharedDatabase,
git_data_path: impl Into<std::path::PathBuf>,
) -> Self {
Self {
domain: domain.into(),
database,
git_data_path: git_data_path.into(),
}
}
}
|