merge-ready 0.1.0

Show pull request merge blockers as concise prompt tokens
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::domain::error::RepositoryError;

/// マージ可否に必要な状態(外部コマンドの文字列表現に非依存)
pub struct MergeReadiness {
    pub is_draft: bool,
    /// ブランチ保護ルールを全て満たしている(`CLEAN` または `HAS_HOOKS` に相当)
    pub is_protected: bool,
}

pub fn is_ready(readiness: &MergeReadiness) -> bool {
    !readiness.is_draft && readiness.is_protected
}

pub trait MergeReadinessRepository {
    fn fetch_readiness(&self) -> Result<MergeReadiness, RepositoryError>;
}