Alternativas ao Github

git 13 de Abr de 2020

Desde a nossa última edição, o mundo do software livre e do open source foi abalado pela compra do Github, a maior plataforma de hospedagem de projetos de código aberto (e proprietário) do mundo. Passado o choque inicial e o receio de muitos sobre as reais intenções da gigante de Redmond, as coisas parecem bem mais calmas e muito semelhantes ao que costumavam ser. Independente disso, é sempre interessante conhecer alguns projetos abertos que pretendem ser alternativas ao Github, seja por segurança, independência tecnológica ou redução de custos.

Gitlab (BSD): certamente a alternativa mais conhecida. Escrito em Ruby on Rail é de longe o mais completo (e complexo) de todos, abrangendo inclusive outras funcionalidades que não estão presentes por padrão no Github (como Continous Integration, por exemplo). Além de poder ser usado em uma infraestrutura própria, conta também com uma opção SaaSque ajuda a manter o desenvolvimento do projeto em um modelo já consagrado pelo Wordpress. Permite criar pequenas ou grandes instalações, com diversos níveis de redundância. https://gitlab.com

Gogs (MIT): o segundo colocado é bem mais simples que o Gitlab, mas mesmo assim consegue oferecer uma boa gama de recursos, aproximando-se bastante das funções mais importantes do Github, inclusive na interface de usuário web. Escrito em Go, tem a instalação bastante simplificada como é comum a programas escritos nessa linguagem, capaz de gerar um binário único. Outra vantagem é que ele pode ser executado inclusive em hardwares muito simples e de baixo custo, como o RaspberryPi e alguns NAS. https://gogs.io

Phabricator (Apache2): esta talvez seja a opção que tenta se afastar mais do Github na tentativa de criar algo melhor e mais completo, que supra a maior parte das necessidades de um projeto de desenvolvimento de software. Algumas das features interessantes do Phabricator são revisão e auditoria de código, bug tracker, canais de chat, um painel de gerenciamento de sprints semelhante ao Trello, API, uma ferramenta de linha de comando e suporte a Mercurial e SVN além do Git. Escrito na maior parte em PHP, o Phabricator é mantido por uma empresa chamada Phacility que oferece suporte e uma versão hospedada do software. https://phacility.com/phabricator/

Gitbucket: (Apache2): é uma plataforma web escrita em Scala e que conta com a instalação simplificada através de um arquivo .war em sistemas que podem rodar Java 8. Alguns recursos interessantes são a compatibilidade com a API do Github e um sistema de plugins capaz de extender a plataforma ao oferecer novos recursos. Outros destaques são suporte a GitLFS, editor de arquivos online, bug tracker e wiki, além de integração com LDAP. https://github.com/gitbucket

Kallithea (GPL3): o projeto é membro da Software Freedom Conservacy e suporta Mercurialalém de Git. Escrito em Python, trás alguns outros recursos interessantes, como integração com LDAP, suporte a pull requests, editor online, visualização gráfica de mudanças e estatísticas de commits. https://kallithea-scm.org/

Gitprep (GPL): agora se você está interessado em algo mais simples, pode dar uma chance a este projeto. Com uma interface semelhante a do Github, o Gitprep só precisa de Perl 5.10.1+para rodar e já trás um servidor web integrado. Além disso ele possui issue tracker e suporte a CGI, SSL e autenticação por chave pública. http://gitprep.yukikimoto.com/

Texto publicado na minha coluna "Código Aberto" , na edição 28 da revista iMasters.

Marcadores