{"id":1833,"date":"2015-07-01T06:26:34","date_gmt":"2015-07-01T04:26:34","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/?p=1833"},"modified":"2015-07-01T06:26:34","modified_gmt":"2015-07-01T04:26:34","slug":"descubriendo-gitlab","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/uncategorized-ca\/descubriendo-gitlab","title":{"rendered":"Descubriendo GitLab"},"content":{"rendered":"<p>Hoy en d\u00eda, muchos usuarios utilizan <a href=\"https:\/\/git-scm.com\/about\" target=\"_blank\" rel=\"noopener\">Git<\/a> para llevar a cabo el control de versiones y <a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noopener\">GitHub<\/a> para subir el software desarrollado. Estaba claro que en la FIB necesit\u00e1bamos un servidor para que los estudiantes y profesores pudiesen usar una herramienta tan potente como git.<\/p>\n<p>Tras ver las distintas opciones que hab\u00eda para tener nuestro propio servidor de Git, nos decantamos por <a href=\"https:\/\/about.gitlab.com\/\" target=\"_blank\" rel=\"noopener\">GitLab<\/a>.<\/p>\n<p>En este art\u00edculo explicaremos los pasos seguidos al instalarlo y lo que nos ha propiciado disponer de este software. De hecho, el servicio ya est\u00e1 en funcionamiento y est\u00e1 accesible a trav\u00e9s del enlace: <a href=\"https:\/\/gitlab.fib.upc.edu\" target=\"_blank\" rel=\"noopener\">https:\/\/gitlab.fib.upc.edu<\/a> utilitzando las cuentas de usuario de la facultad.<\/p>\n<h2>\u00bfQu\u00e9 es Git?<\/h2>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\" alignright size-full wp-image-1820\" alt=\"git icon\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/git-icon.png\" style=\"width: 100px; height: 100px; float: right;\" width=\"325\" height=\"325\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/git-icon.png 325w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/git-icon-300x300.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/git-icon-150x150.png 150w\" sizes=\"(max-width: 325px) 100vw, 325px\" \/> Git es un Software de control de versiones no centralizado, orientado al mantenimiento de versiones de aplicaciones con ficheros de c\u00f3digo. Actualmente es, probablemente, el sistema de control de versiones m\u00e1s utilitzado. En el pasado, Subversion hab\u00eda adquirido cierta importancia (tambi\u00e9n hay otras herramientas como Mercurial o Bazaar) pero parece que Git se ha impuesto con fuerza en este sector por los siguientes motivos:<\/p>\n<ul class=\"gitlabli\">\n<li>su eficiencia, eficacia y sencillez<\/li>\n<li>su capacidad de ser usado de forma b\u00e1sica por los que acaban de adentrarse en su mundo<\/li>\n<li>su capacidad de ser usado de formas muy complejas y elaboradas por los expertos<\/li>\n<li>su continua oferta de potencial y cantidad de prestaciones y control sobre el proyecto<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>\u00bfQu\u00e9 es GitLab?<\/h2>\n<p><img decoding=\"async\" class=\" alignleft size-full wp-image-1823\" alt=\"gitlab icon\" class=\"margin-dreta\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-logo-purple-small.png\" style=\"width: 130px; height: 120px; float: left;\" width=\"576\" height=\"510\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-logo-purple-small.png 576w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-logo-purple-small-300x266.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-logo-purple-small-370x328.png 370w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-logo-purple-small-250x222.png 250w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/>GitLab, a su vez, es un repositorio de gesti\u00f3n de proyectos dotado de interfaz web. Como podemos deducir del nombre, est\u00e1 construido sobre Git, y b\u00e1sicamente nos proporciona el c\u00f3digo para generar un servidor y gestionar los clientes, sus opciones y los servicios afrecidos.<\/p>\n<p>A trav\u00e9s de GitLab, podemos gestionar grupos, personas y los permisos que queremos que tengan los usuarios dentro de los grupos o proyectos a los que pertenezcan. Tambi\u00e9n nos permite llevar a cabo un seguimiento del estado actual y del hist\u00f3rico de los proyectos&nbsp;pudiendo, as\u00ed,&nbsp;ver todos los cambios y modificaciones producidas en el tiempo de desarrollo, adem\u00e1s de gr\u00e1ficos, otros datos de inter\u00e9s de los proyectos y servicios que van m\u00e1s all\u00e1 del control de versiones. Ejemplos de estos servicios ser\u00edan los comentarios de usuarios sobre un proyecto, herramientas de planificaci\u00f3n, issues (utilizados para reportar o avisar de errores), requests (para facilitar a la comunidad de proyectos compartidos, se permite que la gente haga peticiones de actualizaci\u00f3n con su c\u00f3digo y que, si al propietario del proyecto le parece adecuado, puedan aceptarse), etc.<\/p>\n<h2>\u00bfQu\u00e9 nos ofrece GitLab?<img decoding=\"async\" class=\" alignright size-full wp-image-1826\" alt=\"gitlab icon\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-icon2.png\" style=\"width: 100px; height: 100px; float: right;\" width=\"220\" height=\"220\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-icon2.png 220w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/gitlab-icon2-150x150.png 150w\" sizes=\"(max-width: 220px) 100vw, 220px\" \/><\/h2>\n<p>Gitlab es software libre y gratuito, con una buena comunidad que lo va mejorando y actualuizando, y que crece y nos ofrece diversas funcionalidades interesantes que listamos a continuaci\u00f3n:<\/p>\n<ul class=\"gitlabli\">\n<li>Opci\u00f3n de autentificar contra servicios como LDAP; Un punto interesante, ya que otros servicios similares a GitLab no nos ofrec\u00edan esta opci\u00f3n de autentificaci\u00f3n.<\/li>\n<li>Distintos tipos de acceso y permisos (uso de roles y grupos); Restringiendo proyectos a ciertos usuarios y permitiendoles acceder a ciertos contenidos limitados o realizar ciertas acciones concretas. Los usuarios pueden acceder al protyecto a trav\u00e9s de la web y pot SSH (con intercambio de claves p\u00fablica-privada).<\/li>\n<li><span style=\"line-height: 1.6em;\">Seguminento de incidencias y comentarios de un proyecto; A partir de la interfaz web, los usuarios podr\u00e1n comentar aspectos del proyecto que vean conveniente discutir. Nos ofrece un servicio de tiqueting para hacer el seguimiento de incidencias u objetivos del proyecto y se puede habilitar un wiki para la documentaci\u00f3n que se quiera hacer.<\/span><\/li>\n<li>C\u00f3digo del servidor f\u00e1cilmente accesible remotamente; Trabajando con el servidor proporcionado en&nbsp;nuestra m\u00e1quina, podemos asegurar la conei\u00f3n desde el exterior, aislando as\u00ed un punto de dependencia respecto a un servicio externo. Al tratarse de un servicio de nuestro servidor, podemos activar filtros para limitar el acceso a un rango de redes particular.<\/li>\n<li>Gesti\u00f3n de grupos y proyectos; Nos permite gestionar proyectos y grupos de usuarios para realizar proyectos concretos, controlando los permisos de los integrantes y la libertad que estos tienen. Estas funciones son pr\u00e1cticas par apoder trabajar en equipo con conjuntos de usuarios sin tener que definir restricciones individuales&nbsp;para cada uno de ellos, permitiendo as\u00ed mayor rapidez en la creaci\u00f3n y definici\u00f3n de permisos y una mayor facilidad, flexibilidad y rapidez si han de hacerse cambios.<\/li>\n<li>Capacidad para importar repositorios ya existentes; Puesto que GitLab es un sistema relativamente nuevo y mucha gente ha trabajado ya en otros sistemas como GitHub o en servidores externos al usar GitLab, nos permite crear repositorios a partir de otros ya creados con anterioridad.<\/li>\n<li>C\u00f3moda interfaz web; Pr\u00e1ctica interfaz web para interaccionar con GitLab que nos permite trabajar m\u00e1s intuitivamente y que nos da un feedback m\u00e1s elevado que el terminal adem\u00e1s de simplificar el uso del sistema y la revisi\u00f3n de proyectos.<\/li>\n<li>Copias ed seguridad; Al tener el servicio en el servidor, a persar de trabajar con copias locales en el ordenador en el que nos hallamos, si perdi\u00e9semos alguna parte de nuestro proyecto,&nbsp;disponemos siempre de copias del sistema que no hayan sido comprometidas gracias a funcionar usando Git.<\/li>\n<li>Historial de modificaciones del proyecto; Especialmente pr\u00e1ctico en trabajos en grupo debido a&nbsp;que, cuando alguien hace alguna modificaci\u00f3n, nos permite verla clare e intuitivamente ahorrandonos largas explicaciones o investigaci\u00f3n sobre el c\u00f3digo.<\/li>\n<\/ul>\n<p>Adem\u00e1s, al poder trabajar con un servidor propio, podemos gestionar el espacio cedido a los usuarios (como por ejemplo, poner un control de cuotas), regular el acceso al servicio y activar\/desactivar servicios seg\u00fan interese.<\/p>\n<h2>\u00bfQu\u00e9 utiliza GitLab?<\/h2>\n<p>Para poder instalar y utilizar&nbsp;Gitlab, necesitaremos tener en nuestro servidor ciertos programas y librer\u00edas. Sin entrar demasiado en detalles, comentamos sobre qu\u00e9 tecnolog\u00edas trabaja:<\/p>\n<ul class=\"gitlabli\">\n<li>Python.<img loading=\"lazy\" decoding=\"async\" class=\" alignright size-full wp-image-1829\" alt=\"\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/06\/git-roda-dentada.png\" style=\"width: 128px; height: 128px; float: right;\" width=\"128\" height=\"128\" \/><\/li>\n<li>Ruby.<\/li>\n<li>Git.<\/li>\n<li>Mysql (mysqlserver mysqlclient).<\/li>\n<li>Nginx.<\/li>\n<li>El propio c\u00f3digo de&nbsp;GitLab.<\/li>\n<li>Llibrer\u00edas externas.<\/li>\n<li>SecureShell.<\/li>\n<\/ul>\n<p>Adem\u00e1s, nos har\u00e1 falta el servidor en el que queremos instalar el servicio y la conexi\u00f3n a trav\u00e9s de la cual los usuarios puedan acceder a estos servicios, ya que, al tratarse de un servidor de repositorios, lo que nos interesar\u00e1 ser\u00e1 el acceso remoto.<\/p>\n<p>Adem\u00e1s, nosotros mantenemos un sistema de autentificaci\u00f3n, aparte del propio de GitLab, que trabaja con LDAP.<\/p>\n<p><span style=\"line-height: 1.6em;\">De todas formas, con las actualizaciones se a\u00f1aden y se retiran dependencias, as\u00ed que si est\u00e1is planteandoos utilizar este sistema, os recomendamos la documentaci\u00f3n oficial, que est\u00e1 bastante bien trabajada<\/span><span style=\"line-height: 1.6em;\">&nbsp;(<\/span><a href=\"https:\/\/about.gitlab.com\/documentation\/\" style=\"line-height: 1.6em;\" target=\"_blank\" rel=\"noopener\">https:\/\/about.gitlab.com\/documentation\/<\/a><span style=\"line-height: 1.6em;\">).<\/span><\/p>\n<h2>Consideraciones<\/h2>\n<p>En nuestro caso, hemos limitado el acceso de personas externas y no se podr\u00e1 utilizar este servicio ya que las cuentas de usuario est\u00e1n restringidas a personal interno. Ha sido planteado as\u00ed, pero estamos en cont\u00ednua evoluci\u00f3n y crecimiento, y si lo viesemos necesario y que la gente lo usase, podr\u00eda estudiarse aplicar otra pol\u00edtica.<\/p>\n<p>De cualquier modo, para colaborar en proyectos con entidades externas, siempre se pueden usar plataformas externas (como GitHub) con espl\u00e9ndidos servicios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy en d\u00eda, muchos usuarios utilizan Git para llevar a cabo el control de versiones y GitHub para subir el software desarrollado. Estaba claro que en la FIB necesit\u00e1bamos un servidor para que los estudiantes y profesores pudiesen usar una herramienta tan potente como git. Tras ver las distintas opciones que hab\u00eda para tener nuestro [&hellip;]<\/p>\n","protected":false},"author":594,"featured_media":1817,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"experteses":[17,27],"class_list":["post-1833","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-ca","experteses-entornosyserviciosticdesoportealaprendizaje-es","experteses-knowledgeyserviceengineering-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/1833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/594"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=1833"}],"version-history":[{"count":0,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/1833\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/1817"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=1833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=1833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=1833"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=1833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}