[Legal],RocketGit,Gitlab CE,GitHub,gitolite,Pagure.io,Gogs.io,Phabricator
License {Proprietary is bad. The ones allowing code to be made proprietary are not so good.},Affero GPLv3+/#good,MIT/#agood,Proprietary/#bad,GPLv2/#good,GPLv2 or later/#good,MIT/#agood,Apache 2.0/#agood
Business model,Support and sponsors/#good,Open core/#bad,Monthly fee/#bad,n/a,n/a,n/a,?
"Developers keep copyright when contributing {This is about contributing to the Git hosting project, not about projects hosted inside. Signing/agreeing a Contributor Licence Agreement (CLA) is very bad for free software.}",Yes,Yes?,n/a/#bad,Yes,Yes,Yes?,?
GNU Ethical Repository Criteria Evaluations ([[link https://www.gnu.org/software/repo-criteria.html]]),"A (-A4, +A+0, +A+1, +A+2, +A+5)/#good",C/#bad,F/#bad,?,A?/#good,?,?
,,,,,,,
[Features],RocketGit,Gitlab CE,GitHub,gitolite,Pagure.io,Gogs.io,Phabricator
Git SHA-256 support,Yes,?,?,?,?,?,?
Easy installation {How easy can you install the software on your server?},Yes,Yes,Yes?,Yes,Yes,Yes,?
SELinux policy {SELinux is an application firewall used to improve the security},Yes,No,?,not needed/#good,?,?,?
Distro friendly {Is a 'yum/dnf/apt-get/etc. update' enough to update the software? Is it free of a inner package manager?},Yes,No (see 1),No (see 1),Yes,Yes?,Yes?,?
Bug tracker,Yes,Yes,Yes,No,Yes,?,Yes
"CLI commands (SSH) {Allow SSH commands to show the list of repositories, show a repo status etc.}",Yes,No,?,?,?,?,?
API,Yes,Yes,Yes,?,Yes,?,Yes
"Anonymous push {With no user created, clone, make changes, will push result in a merge request, making it super easy to contribute to a project?}",Yes,No,No,No?,No,?,?
Languages available (i18n),1,?,?,1,?,14,?
IPv6,Yes,Yes,?,Yes,Yes,?,?
Submodules {Are Git submodules supported?},?,?,?,?,?,?,?
Usable with lynx,Yes,Yes,Yes,n/a,Yes,Yes,?
SSH OTP 2fa (two-factor authentication),Yes,No {Only in Premium},Yes (see 2),Yes,No,?,?
Web OTP 2fa (two-factor authentication),Yes,Yes,Yes,?,?,?,?
Web Hooks,Yes,Yes,Yes,No,Yes,Yes,?
Web Hooks - provide client certs,Yes,No,No,n/a,?,No,?
Web Hooks - authenticate server (CA cert),Yes,No,No,n/a,?,No,?
OpenSSH FIDO2 basic support,Yes,No,Yes,Yes,?,?,?
OpenSSH FIDO2 touch enforcing,Yes,No,?,?,?,?,?
OpenSSH FIDO2 verify-required enforcing,Yes,?,?,?,?,?,?
OpenSSH AuthorizedKeysCommand {better performance},Yes,Yes,Yes,?,No,?,?
OpenSSH filter by key type and bits {Can it disable the keys based on types and number of bits?},Yes,Yes,?,No,No,Yes,?
"Detailed info about the SSH keys {Can it show: type, number of bits, when it was uploaded, when it was first/last used, how many times was used and last command?}",Yes,No,?,No,No,?,?
LDAP user authentication,Yes,Yes,?,No,No,Yes,?
LDAP groups,No,Yes,?,?,?,?,?
PAM user authentication,No,?,?,?,?,Yes,?
Git LFS,No,Yes,Yes,Yes,No,No,?
Lock repo with a message,Yes,?,?,?,?,?,?
Continuous integration,Yes,Yes,?,?,?,?,?
Code review,No,Yes,Yes,?,?,?,Yes
Wiki,No,Yes,Yes,n/a,?,?,?
User custom pages,No,Yes,Yes,n/a,?,?,?
Artifacts,Yes,Yes,Yes,?,?,?,?
Auto-building .rpm packages from .spec file,Yes,No,No,No,?,?,?
Hosting user .rpm distro repository?,Yes,No,No,No,?,?,?
Auto-recreating .rpm repository when a package is rebuilt,Yes,No,No,No,?,?,?
Auto-building .deb packages from debian folder,Yes,No,No,No,?,?,?
Hosting user .deb distro repository?,Yes,No,No,No,?,?,?
System resource friendly? {Is it light on CPU/memory/disk?},Yes,No,?,Yes,?,?,?
,,,,,,,
[Rights],RocketGit,Gitlab CE,GitHub,gitolite,Pagure.io,Gogs.io,Phabricator
Path control {Can it control which files are pushed with some regex?},Yes,No,?,Yes,Yes,?,?
Refs control {Can it control with a regex what branches you fetch/push?},Yes,Yes,?,?,Yes,?,?
IP control {Can it control from what IPs you can fetch/push?},Yes,No,?,?,Yes?,?,?
,,,,,,,
[Product distribution/evaluation],RocketGit,Gitlab CE,GitHub,gitolite,Pagure.io,Gogs.io,Phabricator
KVM image available?,Yes,?,?,not needed/#good,?,?,No
VirtualBox image available?,Yes,?,?,not needed/#good,?,?,No
VMWare image available?,Yes,?,?,not needed/#good,?,?,No
Docker container available?,Yes,Yes,?,?,?,?,No
,,,,,,,
[Details],RocketGit,Gitlab CE,GitHub,gitolite,Pagure.io,Gogs.io,Phabricator
Language,PHP,Ruby+Perl,Ruby,Perl,Python,Go,PHP
Number of code lines {JavaScript/CSS not included},56k,360k,?,?,80k,520k,?
Cache,Custom,Redis,memcache,n/a,Redis,Custom/Redis/memcache,?
Database,PostgreSQL,MySQL/PostgresSQL,MySQL,n/a,MySQL/MariaDB/PostgreSQL/SQLite,PostgreSQL/MySQL/SQLite,MySQL
Webserver,nginx/apache,apache/nginx,?,n/a,n/a,apache/nginx/lighttpd,apache/nginx
Size of the rpm package,500KiB/#good,287MiB/#bad,n/a,170KiB/#good,?,?,?
Page speed: Mobile {Home page was tested},100/#good,14/#bad,60/#bad,n/a,69/#bad,28/#bad,98/#good
Page speed: Desktop {Home page was tested},100/#good,56/#bad,97/#good,n/a,86/#agood,82/#agood,99/#good
CSS size,9KiB/#good,415KiB/#bad,770KiB/#bad,n/a,130KiB/#good,520KiB/#bad,95KiB/#good
JS size,0KiB/#good,3000KiB/#bad,655KiB/#bad,n/a,450KiB/#bad,350KiB/#bad,52KiB/#good
Runtime memory footprint,~160MiB/#good,?,?,~10MiB/#good,?,?,?
,,,,,,,
[Notes],,,,,,,
*,"1) It has a not standard package manager; upgrading distro does not update the git software (pip, gem etc.). Or is a big archive including packages already found in the distribution.",,,,,,
*,"2) Seems is not really secure: if key is leaked, the attacker can push?",,,,,,