My idea is simple:
1) Gerrit is at the end of the day a JGit server with a set of powerful code-review tools
2) Gerrit exposes its functionalities through a REST-API
I thought about just making a "scaled down" build of Gerrit that exposes just the REST-API and use them from GitBlit UX.
With regards to receiving the contributions, they can be done easily using either the Gerrit's "refs/for/<target>" notation or the GitHub fork&pull model ... at the end of the day it is just a way to say to the server: "hey, that's my code can you upload it for review ?"
If anyone want to help out, I would be happy to do it as a joint effort :-)
- GitBlit is "packaged as Jar" and is loaded as Gerrit plugin
- Gerrit exposes a real GitBlit instance under a sub-url and lives in the same Jetty/JVM container (one server runs both Gerrit and GitBlit, no libraries duplication, shared JGit cache)
- Gerrit hooks into GitBlit for:
* Browsing code
* Deep-link into commit IDs
The GitBlit that runs within Gerrit is not a "Children of a Lesser God" but it is instead fully featured: just some of the overlaps with Gerrit are disabled for not generating confusion or security leaks.
(i.e. authentication, authorisation and Git protocol is delegated to Gerrit)
In theory you could enable them again by editing your $GERRIT_SITE/etc/gitblit.properties
Luca.