Using `libgit2` makes things a little wired. Switching to gitoxide would make this pure rust, allowing for better async impl and better error handling.