A bit of tangent, but I'm building an app on top of git, a thin business logic on top of very specific type of repositories.

I'd like to reuse an existing api, for example Kallithea or Gitlab layer/api that interacts with git, does anyone have opinions which one would be easier to reuse?

I fail to find documentation from Gitlab on how services are organised, if they have a git api as a separate process and how to run just that.

Now I'm discovering Kallithea, I'll have a look to it, but really appreciate if someone has done this before and has some pointers where to start.

Gitea isn't too bad to hack on, it's just Go and Go templates for the HTML pages. I haven't dug in much to see what their API looks like but I assume it's not too wild or radically different from any other Go web project and easy to change as necessary: https://github.com/go-gitea/gitea