use color_eyre::Result;
use git_event::GitRepoWatchHandler;
#[tokio::main]
async fn main() -> Result<()> {
let test_url = "https://github.com/tjtelan/git-event-rs.git";
let branch = "main".to_string();
let commit_id = "1699676a8f1704006ed0126164c532978bc284a4".to_string();
let mut watcher = GitRepoWatchHandler::new(test_url)?
.with_branch(Some(branch))
.with_commit(Some(commit_id))?;
println!("Watcher: {:#?}", watcher.state().unwrap());
let state = watcher.update_state().await?;
println!("Watcher after update: {:#?}", state);
let _ = watcher
.watch_new_commits(true, move |state| {
println!();
println!("Last updated: {:#?}", state.last_updated);
for (branch, meta) in state.branch_heads {
println!("Branch: {}", branch);
println!("Commit id: {}", meta.id);
println!("Commit message: {}", meta.message.unwrap());
println!("Timestamp: {:?}", meta.timestamp.unwrap());
println!();
}
})
.await;
Ok(())
}