Di recente Microsoft ha acquisto Github, la nota piattaforma di code sharing che rappresenta un punto di riferimento per milioni di aziende e sviluppatori. L'acquisizione da parte della compagnia di Redmond è stata accolta dalla community in modo abbastanza caotico, con diversi utenti che hanno iniziato a ricercare alternative a Github.
In questo post presenteremo quindi 5 tra le migliori alternative open source e self-hosted a Github. Questi progetti vantano un ampio bacino di utenti, anche se non paragonabile con quello di Github, che spazia dalle realtà enterprise agli sviluppatori indipendenti.
GitLab
Partiamo da GitLab, si tratta di un Git-repository manager software web-based. Questo progetto è stato originariamente realizzato in Ruby ma alcune delle sue parti sono state successivamente riscritte in Golang per migliorarne le performance. La versione più comune è la GitLab Community Edition (CE) che dispone di varie feature tra cui l'issue tracking, la possibilità di impostare un wiki, il versione control e la code review. La Self-host GitLab CE presente sul proprio server può essere poi avviata all'interno di un container o su un sistema Cloud privato.
Gitea
Andiamo adesso su Gitea, un self-hosted Git service. Gitea nasce da un fork di Gogs e si propone come una code hosting solution scritta in Golang, dunque particolarmente ottimizzata e performante. Dispone ovviamente delle funzionalità di issue tracking, versione control e code review. È possibile sfruttare Gitea anche su device con architettura ARM, sarà quindi possibile operare su dei server low cost o magari utilizzarlo per progetti privati che si vuole condividere sulla propria rete locale tramite una board con SoC ARM.
GNU Savannah
È il turno di GNU Savannah, questo progetto viene sviluppato dal team GNU e viene foraggiato direttamente dalla Free Software Foundation. Attualmente offre il supporto alla GNU arch, a CVS e ai vari altri sistemi di controllo versione come Subversion, Git, Mercurial e Bazaar. Supporta inoltre l'implementazione di una mailing list e di un bug tracking service. Gli stessi sviluppatori ammettono che GNU Savannah non è adatto ai neaofiti del settore ed è abbastanza complesso da configurare e da gestire.
GitBucket
Passiamo a GitBucket, è praticamente un clone di Github realizzato in Scala. Più precisamente è una Git platform con una installazione semplificata, con grandi capacità di personalizzazione ed estensione delle feature, inoltre supporta le GitHub API quindi è possibile interfacciarlo a vari servizi e plugin compatibili. Anche l'interfaccia grafica e il pannello di controllo ricordano Github e dispone di diverse feature come il Git repository hosting via HTTP/HTTPS/SSH, un repository viewer, l'issues tracker, la creazione di wiki e le pull request.
Gogs
Chiudiamo l'articolo di oggi con Gogs, l'obbietto del progetto è offrire un modo indolore, facile e veloce per impostare il proprio self-hosted Git service. Il suo codice è stato scritto interamente in Go, ciò gli consente di offrire prestazioni elevate senza consumi eccessivi. Può essere implementato in architetture non molto performanti e dispone delle principali funzionalità di version control system, code review, bug tracking, wiki e Private branching.