Gitlab - mi review de este servicio

Gitlab es un nuevo servicio que está llegando al mundo de los hosting de código, donde obviamente Github es el Rey y Bitbucket el aspirante al trono. Después de estos dos, no habían muchas opciones, hasta ahora.

Github se caracteriza por su soporte a la comunidad OpenSource y en hostear la mayoría de los repos GIT más influyentes de la historia, además de inventar muchos conceptos que revolucionaron la forma en que hoy en día se realiza el desarrollo de software distribuido y abierto. Github ofrece todo esto gratis para repositorios públicos y tiene planes pagados para empresas, que son relativamente caros, cuando lo miras desde el punto de vista de una Pyme.

Por el otro lado está Bitbucket que se aprovecha del modelo de negocio de Github y ofrece planes más económicos en el aspecto privado y hasta ahora ha sido la elección de muchos emprendimientos que requieren repos gratuitos privados con pocos usuarios, pero crecer en bitbucket hacia los planes privados también es caro.

Ahi es donde GitLab llega a llenar un espacio, ofreciendo repositiorios privados casi sin límite y un software opensource (open-core) para gestionarlo. De hecho, compraron un proyecto que también tuve el agrado de utilizar: Gitorious y estarán incoprorando la experiencia y código en el proyecto (más info en el blog de GitLab)

GitLab ofrece tanto un sistema de comparables características con github y bitbucket, cloud, completamente gratis para todos los casos de uso (aunque piensan “limitar” repos gratuitos a 10GB cada uno) junto con un sistema bien light de integración continua en donde cada uno provee sus agentes de compilación (hay algunos “compartidos” para proyectos opensource) que funciona excelente a mi parecer. Además desde el primer momento se integra de lujo con casi cualquier servicio, como trello, slack, etc.

Obvio que al ser opensource tambien puedes hostear todo esto (excepto el CI) en tu propio hardware o instancias amazon.

Su modelo de negocios es cobrar a las grandes empresas por funcionalidades como single sign on, integración con active directory y otros temas de ese estilo en su versión no-opensource que extiende al core.

En Ilógica (donde trabajo) tenemos más de 200 repos migrados desde bitbucket hace un par de meses y estamos más que satisfechos con el servicio/producto. La migración fue mortalmente simple.

Si quieren darle una probada, el link para crear la cuenta gratuita es https://about.gitlab.com/gitlab-com/ Lo dejo explícito porque su página es un poco enredada entre la oferta corporativa y la oferta pública.

¿Lo han probado, que opinan?

1 me gusta

Me gustaría probar Gitlab, sin embargo hay una interación de Jira+Bitbucket que echaría mucho fe menos, que es el asociar commits a un ticket de jira, pudiendo visualizar el diff directamente en Jira. Sabes si se puede algo así con Gitlab??
Y lo otro, no ha habido problemas con la historia al migrar los repos?? Mi principal atado son los “follow renames”

Sobre lo primero, habría que revisar. Yo se que hay integración con JIRA, pero no se hasta que nivel. Puede ser solamente vínculos en los commits, pero no me sorprendería que hubiera algo más. En este caso, huelo que la parte de los diffs es más en la dirección de JIRA que consulta y despliega. Habría que hacer una prueba nomás.

Sobre lo segundo, la migración es básicamente un clone y listo, por esa parte no hay dramas.En cuanto a lo relativo al ecosistema adicional a GIT, hay herramientas que migran issues y wikis. No se si lo que dices sobre follow renames es de git o algo adicional de bitbucket, si es de git, va junto con el clone. Si no, es complicado.

Y como se hace la integración con Trello? Se ve interesante esa opción… En mi caso he usado Gitlab pero ahora tengo repositorios en Bitbucket, al final me da lo mismo cual usar ya que lo hago por linea de comandos y hasta el momento no he visto ninguna diferencia entre ambos pero debe ser por mi uso básico.

Hum, juraba que había leido lo de trello, la verdad es que buscando información más dura para responderte, encontré que no existe tal integración, solo una solicitud para incorporarla en donde se puede votar (uservoice):

La lista oficial de integraciones (al momento de este post) es:

  • Asana

  • Assembla

  • Atlassian Bamboo CI

  • Buildkite

  • Campfire

  • Custom Issue tracker (links en commits)

  • Emails on push

  • External Wiki

  • Flowdock

  • Gemnasium

  • GitLab CI

  • HipChat

  • Irker (IRC gateway)

  • JIRA

  • Jenkins CI

  • JetBrains TeamCity CI

  • PivotalTracker

  • Pushover

  • Redmine

  • Slack

Respecto de el uso personal, no creo que haya gran diferencia en moverse de Bitbucket a Gitlab ya que la restricción de Bitbucket es de cinco usuarios con acceso privado.

Si estás en un equipo donde necesitas darle acceso a más de cinco personas al código (y no hacerlo público) recién ahí empieza la diferencia grande.

Yo por lo menos utilizo gitlab y gitlab-ci y me ha funcionado bien :smile:

1 me gusta

Si quieres te doy acceso a mi instancia personal para que pruebes :smile:

Una alternativa que estaba viendo es taiga.io te cuento cuando tenga mas novedades

se ve boni, pero para proyectos privados planean cobrar (ahora es gratis porque es beta). yo igual voy a cachar que onda porque me gustó la pará de como presentan el proyecto.

1 me gusta

Yo personalmente he optado mucha veces instalarlo en servidores propios :blush: asi que no me afecta que cobren después por lo menos, es similar al modelo que utiliza vtiger o incluso sugarcrm

Instale Gitlab usando la reseta de chef en el chef supermarket.
La conclusiones son las siguientes

  1. El cookbook baja y compila ruby 1.9 (si lo compila, onda gcc ) y baja gitlab 6.9.x,

  2. Cuando hace bundle install, hermano preparate un cafe grande y no pierdas la serenidad.

  3. Necesita harta memoria por que instala unicorn una base en memoria y sidekick que es un background runner process .

  4. Una vez listo no me funciono, cuec, hasta que me di cuenta que selinux no permitía que los usuarios hicieran push o pull, por qué son operaciones con un contexto diferente al sitio web y selinux no las permitía. solución chao selinux.

  5. Se puede configurar super fácil, que se autentique con ldap. es cosa de cambiar los atributos en la receta, debes tener acceso al grupo usuarios y algo de experiencia con ldap no viene mal.

  6. Necesitas un plan de backup, porque almacena información en una base de datos que puede ser mysql o pgsql, lo que sea más cómodo para tí.

  7. Cada usuario genera llaves SSL, necesitas respaldar ese directorio

  8. El directorio donde están los proyectos debe ser respaldado.


2 Me gusta

Estimado,

Te respondo por punto

  1. Sobre los requerimiento yo prefiero usar la instalación via source,
  2. Lo de bundle esta optimizado para las nuevas versiones asi que con un cafe de tamaño mediano a pequeño (o te en mi caso xd)
  3. Ahi es verdad aunque yo lo uso con 1 GB para uso personal
  4. ¿Bajo que servidor estas instalando?
  5. Nada que decir :smile:
  6. Aunque en realidad eso se soluciona haciendo un cron del proceso de respaldo + rsync de la carpeta backups
  7. El backup de gitlab te respalda las llaves igual
  8. El backup de gitlab tambien respalda esto
1 me gusta

Acá uso gitlab para todo.
Es un excelente servicio y lo único que le falta
son más integraciones con herramientas de gestión.

Pero por el momento me manejo con issues y slack.
:smiley:

1 me gusta

Bueno en realidad da igual la maquina. lo que que hace la recete de Chef para instalar gitlab, es dejarlo para la mayor cantidad de maquinas posibles.

Aca deje un fork del proyecto principal.
https://github.com/makenoisewacamayo/cookbook-gitlab
Con la version de gitlab 6.9.x con ruby 1.9

la idea es simple.

instalar vagrant y virtualbox

git clone https://github.com/makenoisewacamayo/cookbook-gitlab gitlab
cd gitlab
bundle install
kitchen converge

puedes editar .kitchen.yml para sobreescribir cualquier attributo de gitlab. incluyendo donde se instala, de donde bajas las fuentes. si lo conectas a ldap o no.
etc.
Esta todo en ele README

Si todo sale bien vas a tener un gitlab funcional en una vm de virtualbox.

1 me gusta

javier en excelsys teniamos integrado jira con gitlab justamente con los commits :wink:

Pero te acuerdas q version de JIRA tenian en Excelsys?? Yo tengo la 4.4

No recuerdo pero el plugin es pagado, todos son pagados la verdad XD

Pero bitbucket usa hg, que en mi opinión es muy superior a git.

De partida tienes el entorno gráfico tortoisehg, tango en windoze como en linux. Y no, los entornos gráficos de git son mediocres en comparación…

git tiene varios niveles de “comprensión”, y al parecer tiene varios problemas conceptuales como se puede apreciar acá: http://people.csail.mit.edu/sperezde/onward13.pdf y http://gitless.com/ y https://news.ycombinator.com/item?id=6927485 y https://news.ycombinator.com/item?id=6983566

El problema fundamental de git es que es un diseño bottom-up. Esto no debería ser un problema, pero en la práctica significa que no hay consistencia “from the top”. Como usuario te encuentras con que unos comandos son recursivos, otros no, unos aplican sobre el branch actual, otros sobre todo el repostorio, otros sobre los cambios locales, otros sobre los archivos modificados, etc. No hay consistencia. Pásale un parámetro diferente y se comporta sobre otro conjunto de datos… -pA hace algo completamente diferente? Así es git, necesitas una memoria de elefante.

Eso requiere una buena cantidad de MB en tu cerebro para recordar todos los comandos y todas las opciones.

hg por el contrario, al parecer, tiene un diseño top-down, o al menos meet in the middle, porque es consistente. No hay que darse tantas vueltas ni aprenderse tantos comandos esotéricos. Además la interfaz gráfica tortoisehg es trivial, nunca he tenido más que explicar los primeros 4 comandos que aparecen en http://hginit.com/

Otro problema es que al hacer rebase en git a veces me ha pasado que he perdido todo mi trabajo… está demás decir que eso nunca me ha pasado en hg, y eso que he trabajado sólo algunos meses en git, y más de 4 años en hg… Supongo que eso te dice algo…

si, bueno, este tema asume uso de Git, ya que es un review de GitLab. Se mensiona bitbucket solo para comparar el servicio de Git que ellos ofrecen.