mod git;
mod sink;
pub use git::is_git_initialized;
pub use sink::Consensus;
use super::{GitReader, LocalError, LocalIssueSource, LocalPath};
use crate::{Issue, IssueIndex, LazyIssue};
pub async fn load_consensus_issue(index: IssueIndex) -> Result<Option<Issue>, LocalError> {
let source = LocalIssueSource::<GitReader>::build(LocalPath::new(index))?;
let search_result = source.local_path.clone().resolve_parent(source.reader).and_then(|r| r.search());
tracing::debug!(?search_result, "load_consensus_issue search");
if search_result.is_err() {
return Ok(None);
}
Issue::load(source).await.map(Some)
}