Un’alternativa self-hosted a GitHub
Nel 2011 GitHub è già il punto di riferimento per l’hosting di repository Git, ma il suo modello è esclusivamente cloud: il codice risiede sui server di GitHub e non esiste un’opzione per installare la piattaforma su infrastruttura propria. Per molte organizzazioni — in particolare nei settori regolamentati, nella pubblica amministrazione e nelle aziende con politiche restrittive sulla residenza dei dati — affidare il codice sorgente a un servizio esterno non è un’opzione praticabile.
Dmitriy Zaporozhets, sviluppatore ucraino, avvia GitLab come progetto open source proprio per colmare questa lacuna: una piattaforma di hosting Git completa, installabile sui propri server, con un’interfaccia web moderna e funzionalità collaborative integrate.
Repository, merge request e issue tracking
GitLab è un’applicazione Ruby on Rails che gestisce repository Git attraverso un’interfaccia web. Ogni progetto ha il proprio repository con navigazione del codice, visualizzazione dei diff, cronologia dei commit e gestione dei branch. Le merge request — l’equivalente GitLab delle pull request — permettono la revisione collaborativa del codice: un membro del team propone modifiche, altri le commentano riga per riga, e il merge avviene solo dopo l’approvazione.
L’issue tracker integrato consente di gestire bug, feature request e attività operative nello stesso ambiente in cui risiede il codice. Issue e merge request sono collegati: chiudere una merge request può chiudere automaticamente le issue associate. Le milestone raggruppano le issue in obiettivi temporali, fornendo una visione d’insieme dell’avanzamento del progetto.
Installazione e gestione
L’installazione di GitLab avviene su un singolo server Linux. Il progetto fornisce pacchetti che includono tutte le dipendenze necessarie: PostgreSQL per il database, Redis per la cache, Nginx come reverse proxy. L’amministratore ha il controllo completo su backup, aggiornamenti, gestione degli utenti e configurazione della sicurezza.
Il modello di rilascio è Community Edition sotto licenza MIT: il codice è completamente aperto e liberamente utilizzabile anche in contesti commerciali.
L’inizio di una piattaforma DevOps
Con repository, merge request e issue tracking in un’unica applicazione, GitLab pone le basi per qualcosa di più ampio rispetto al semplice hosting di codice. L’idea che l’intero ciclo di vita del software — dalla pianificazione al deployment — possa essere gestito in un solo strumento è già presente nella visione iniziale. Per le organizzazioni che necessitano di controllo completo sulla propria infrastruttura di sviluppo, GitLab rappresenta una soluzione concreta e accessibile.
Link: about.gitlab.com
