Descobrim el GitLab

gitlab-logo-white

Inici » Actualitat »

Descobrim el GitLab

Molts usuaris avui en dia fan servir el git per fer control de versions i el github per pujar el software desenvolupat. Estava clar que a la FIB necessitàvem un servidor per a què els estudiants i professors poguessin fer servir una eina tan potent com el git.

Després de veure les diferents opcions que hi havia per tenir el nostre propi servidor de git ens vam decantar pel gitlab.

En aquest article explicarem com es va instal·lar i quins avantatges ens ha portat tenir aquest software. De fet el servei ja està en marxa i és accessible a través de l'enllaç: https://gitlab.fib.upc.edu utilitzant els comptes d’usuari de la facultat.

Què és Git?

git icon Git és un Software de control de versions no centralitzat, orientat al manteniment de versions d’aplicacions amb fitxers de codi. Actualment és, probablement, el sistema de control de versions més utilitzat. En un passat, el Subversion havia agafat cert pes (també hi ha altres eines com Mercurial o Bazaar) però sembla que Git s’ha imposat amb força en aquest sector pels següents motius:

  • la seva eficàcia, eficiència i senzillesa
  • la seva capacitat de ser utilitzat d’una forma bàsica pels que tot just entren en el seu món
  • la seva capacitat de ser utilitzat de formes molt complexes i elaborades per aquells que en son uns experts
  • no deixen d’oferir un gran potencial i una gran quantitat de prestacions i de control sobre el projecte

 

Què és GitLab?

gitlab iconGitLab, al seu torn, és un repositori de gestió de projectes, que està dotat d’interfície web. Com podem deduir pel nom, està construït sobre Git, i bàsicament ens dóna el codi per generar un servidor i gestionar-ne els clients, opcions i serveis oferts.

A través de GitLab, podem gestionar grups, persones i els permisos que desitgem que tinguin els usuaris dins dels grups o projectes als quals pertanyin. També, ens permet fer un seguiment de l’estat actual i històric dels projectes, permetent-nos veure tots els canvis i modificacions que s’han produït al llarg del temps de desenvolupament, a més de gràfiques i altres dades d’interès dels projectes, i altres serveis que van més enllà del control de versions com els comentaris d’usuaris sobre un projecte, eines de planificació, issues (utilitzades per reportar problemes o avisar d’errors), requests (per facilitar la comunitat de projectes compartits, es permet que la gent faci peticions d’actualització amb el seu codi, i si al propietari del projecte li sembla adequat, pot acceptar-les), etc.

Què ens ofereix GitLab?gitlab icon

El Gitlab, és software lliure i gratuït, amb una bona comunitat, que el va millorant i actualitzant, i que va creixent, i ens ofereix diverses funcionalitats interessants, que llistarem a continuació:

  • Opció d’autenticar contra serveis com LDAP; Un punt interessant, ja que altres serveis similars al GitLab no ens donaven aquesta opció d’autentificació.
  • Diferents tipus d’accés i permisos (ús de rols i grups); Restringint projectes a certs usuaris, i permetent a aquests accedir a certs continguts limitats, o realitzar certes accions concretes. Els usuaris poden accedir al projecte mitjançant accés web i també per ssh (amb intercanvis de claus pública-privada).
  • Seguiment d’incidències i comentaris d’un projecte; A partir de la interfície web, els usuaris podran comentar aspectes del projecte que vegin convenient discutir. Ens ofereix un servei de tiqueting per fer el seguiment d’incidències o fites del projecte i es pot habilitar un wiki per la documentació que es vulgui fer.
  • Codi en el servidor fàcilment accessible remotament; Treballant amb el servidor proporcionat en la nostra màquina, podem assegurar-ne la connexió des de l’exterior i així aïllem un punt de dependència respecte a un servei extern. En ser un servei del nostre servidor podem activar filtres per limitar l’accés a un particular rang de xarxes.
  • Gestió de grups i projectes; Ens permet gestionar projectes, i grups d’usuaris per realitzar projectes concrets, controlant-ne els permisos dels integrants, i la llibertat que aquests tenen. Aquestes funcions són pràctiques per poder treballar amb conjunts d’usuaris, sense haver de definir restriccions per cada un d’ells individualment, permetent així més rapidesa en la creació i definició de permisos, i molta més facilitat, flexibilitat, i rapidesa si s’han de fer canvis.
  • Capacitat per importar repositoris ja existents; Donat el fet que ens trobem en la situació que Gitlab és un sistema relativament nou, i molta gent ha treballat ja en altres sistemes com Github, o des del mateix Gitlab en servidors externs, Gitlab ens permet crear repositori a partir d’exportar-ne de ja creats amb anterioritat.
  • Còmoda interfície web; Pràctica Interfície web per interaccionar amb el Gitlab, que ens permet treballar-hi de forma molt més intuïtiva i que ens dóna molt més feedback que la terminal, a més de fer molt més senzill l’ús del sistema i la revisió dels projectes.
  • Còpies de seguretat; En tenir el servei al servidor, tot i treballar amb còpies locals a l’ordinador al qual ens trobem, si perdéssim alguna part del nostre projecte, tenim sempre còpies del sistema que no han estat compromeses, gràcies al fet que funciona utilitzant Git.
  • Historial de modificacions del projecte; Molt pràctic especialment en treballs en grup, ja que quan algú fa una modificació ens permet veure-la d’una forma clara i intuïtiva, estalviant-nos llargues explicacions o investigació sobre el codi.

A més, podent treballar amb un servidor propi, podem gestionar l’espai cedit als usuaris (per exemple posar un control de quotes), regular l’accés al servei, i activar/desactivar serveis segons ens interessi.

Què utilitza GitLab?

Per tal de poder instal·lar i utilitzar Gitlab, ens farà falta tenir en el nostre servidor certs programes i certes llibreries. Sense entrar en gaire detall, comentarem sobre quines tecnologies treballa:

  • Python.
  • Ruby.
  • Git.
  • Mysql (mysqlserver mysqlclient).
  • Nginx.
  • El propi codi del GitLab.
  • Llibreries externes.
  • SecureShell.

A més a més, ens farà falta el servidor al qual volem instal·lar el servei i la connexió a través de la qual els usuaris puguin accedir a aquests serveis, ja que, en ser un servidor de repositoris, el que ens interessarà serà l’accés remot.

A més, nosaltres mantenim un sistema d’autentificació a part de la pròpia de Gitlab, que treballa amb l’LDAP.

De totes maneres, amb les actualitzacions s’afegeixen i es retiren dependències, així que si esteu plantejant-vos utilitzar aquest sistema, us encomano a la documentació oficial, que està bastant ben treballada (https://about.gitlab.com/documentation/).

Consideracions

En el nostre cas hem limitat l’accés de persones externes, i no es podrà utilitzar aquest servei, ja que les comptes d’usuari estan restringides a personal intern, ha estat plantejat així, però sempre anem evolucionant i creixent, i si veiem que és necessari i que la gent ho necessita, es podria estudiar plantejar una altra política.

En tot cas per col.laborar en projectes amb entitats externes sempre es poden utilitzar plataformes externes com Github que ens pot donar un esplèndid servei.