Gogs uses a mix of GoGits, a partially Go implementation of git, and the traditional git binary via os/exec. A quick scan shows that it relies on the binary for perhaps the majority of tasks.
Another project I'm aware of that aims to re-implement git in go is https://github.com/kourge/ggit, which looks promising but has been slowing down, activity-wise.
Another project I'm aware of that aims to re-implement git in go is https://github.com/kourge/ggit, which looks promising but has been slowing down, activity-wise.