Project bot + github factory

This combines #337 and #383