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
17
use crate::application::OutputToken;
use crate::domain::ci_checks::{CheckBucket, CiChecksRepository, CiStatus};
use crate::domain::error::RepositoryError;

/// CI チェック結果を取得する。失敗時は `Err` を返す(エラー表示は呼び出し元が担う)。
pub fn fetch(repo: &impl CiChecksRepository) -> Result<Vec<CheckBucket>, RepositoryError> {
    repo.fetch_check_buckets()
}

/// CI チェック結果を集約・評価し、該当するトークンを返す
pub fn check(buckets: &[CheckBucket]) -> Option<OutputToken> {
    match crate::domain::ci_checks::aggregate(buckets) {
        CiStatus::Fail => Some(OutputToken::CiFail),
        CiStatus::ActionRequired => Some(OutputToken::CiAction),
        CiStatus::Pass => None,
    }
}