GitLab
# GitLab

GitLab è una piattaforma web open source pubblicata nel 2011 che permette la gestione di repository Git e di funzioni trouble ticket di proprietà della società GitLab Inc.. Originariamente il codice venne scritto in Ruby, ma successivamente alcune parti furono riscritte in Go. GitLab mette a disposizione diverse funzionalità a seconda del tipo di sottoscrizione e del prezzo pagato. È comunque possibile utilizzarlo gratuitamente, seppur con delle limitazioni.

## Storia

Il software di GitLab è stato scritto da Dmitriy Zaporozhets e Valery Sizov, e originariamente era distribuito sotto licenza MIT. Nel luglio 2013, il prodotto è stato diviso in: GitLab CE (Community Edition) e GitLab EE (Enterprise Edition).

Nel marzo 2015, GitLab acquista Gitorious, un servizio di Git hosting concorrente e nel luglio dello stesso anno accresce di 1,5 milioni di dollari in seed funding. Tra i nuovi clienti vi sono Alibaba Group, IBM e SpaceX. A dicembre 2016, l'azienda conta 150 membri interni, più oltre 1400 contributori open source. Viene utilizzato da organizzazioni come IBM, Sony, Jülich Research Center, NASA, Alibaba, O'Reilly Media, CERN, European XFEL, GNOME Foundation e SpaceX

Nel gennaio 2017, in seguito a un cyber attacco, un amministratore cancella accidentalmente un database di produzione. Sei ore di dati riguardanti issue e merge request sono andati persi. Il 15 marzo 2017, GitLab acquisisce Gitter.

Dopo l'acquisizione di GitHub da parte di Microsoft avvenuta il 4 giugno 2018, aumenta il numero di progetti importati su GitLab.

## Descrizione

Come tutti i software di controllo versione, GitLab permette la creazione di repository pubblici o privati, in cui gli sviluppatori possono caricare il proprio codice e gestire le modifiche alle varie versioni in contemporanea al lavoro di più persone. In GitLab è possibile lavorare parallelamente ad altre persone sullo stesso progetto senza generare conflitti, caricare il proprio lavoro nel repository remoto (operazione di push) e poter unire alla fine le modifiche di tutti in un unico progetto (operazione di merge). È possibile fare delle merge request per il proprietario del repository, oltre al tracciamento degli issue, la possibilità di scrivere commenti e allegare documenti.

