Bitbucket: gestión de repositorios de código

10min

Bitbucket es una herramienta muy popular entre los desarrolladores . Te explicaremos en qué consiste exactamente esta plataforma para la gestión de repositorios de código y te guiamos a través de las principales características, ventajas y configuraciones de Bitbucket.

Índice

¿Qué es Bitbucket y por qué es clave para la gestión de código?

Bitbucket es una plataforma para la gestión de repositorios de código que nos permite su almacenamiento remoto y la colaboración de equipos de trabajo, para trabajar en proyectos de desarrollo de software de manera eficiente. Para que nos entendamos, Bitbucket es similar a GitHub, sin embargo ha especializado su soporte específicamente para repositorios privados.

En el caso particular de Bitbucket, nos ofrece un entorno seguro y organizado para gestionar el código fuente, facilitando el control de versiones, flujos y la colaboración entre equipos, entre otras muchas tareas que vamos a repasar a continuación.

Es especialmente popular en entornos empresariales que ya usan herramientas de Atlassian, como Jira o Confluence, debido a su integración con estos servicios y herramientas para desarrollo. Pero no es exclusivo a las herramientas de Atlassian, también tiene numerosas integraciones adicionales.

Ventajas de usar Bitbucket para la gestión de repositorios

Ahora queremos abordar las ventajas que Bitbucket ofrece y por qué es una opción muy válida para la gestión de repositorios de código, tanto para desarrolladores individuales como para equipos de todos los tamaños.

Integración con Jira y otros servicios de Atlassian

Como hemos dicho, quizás la mayor fuerza de Bitbucket está en su integración con Jira, la herramienta de gestión de proyectos de Atlassian. Esta integración nos permite relacionar tareas y problemas de Jira directamente con commits y pull requests en Bitbucket. Gracias a esta integración se consigue una trazabilidad completa del trabajo realizado. 

Además, no solo se trata de Jira, también tenemos la integración con otras herramientas del ecosistema Atlassian, como Confluence, nos permite colaborar de forma más efectiva y tener una mejor documentación del proyecto.

Gestión de repositorios privados y colaborativos

Bitbucket se destaca por la posibilidad de crear repositorios privados sin limitación de usuarios. Esto antes era una diferencia muy atractiva con respecto a su principal competidor, GitHub, aunque actualmente ya no lo es tanto porque ambas alternativas se han equiparado en este punto.

Soporte para Git y Mercurial

Quizás no es tan usado, ni mucho menos, como Git, pero Bitbucket soporta también Mercurial, lo cual lo diferencia de otras plataformas que solo admiten Git como GitHub. Si bien es cierto que el enorme éxito de Git ha hecho perder tracción a Mercurial, el soporte de Bitbucket para ambas tecnologías nos ofrece una flexibilidad adicional para el control de versiones.

Control de versiones y ramas (branches) simplificado

Bitbucket tiene una característica que puede ser también relevante y es que facilita el uso de ramas (branches) para organizar nuestro trabajo en diferentes características o versiones del proyecto. 

El trabajar con ramas permite abordar nuevas funcionalidades sin afectar el código principal, e integrar el trabajo cuando está completamente listo, una tarea que se puede hacer directamente desde Bitbucket, a golpe de clic.

Cómo configurar y usar Bitbucket para tu proyecto

Bitbucket es muy sencillo de configurar y resulta muy similar a lo que posiblemente ya conozcas de otros servicios de alojamiento de repositorios. 

No obstante, para poder usarlo necesitas al menos un conocimiento de Git básico a intermedio. Si no es así, te recomendamos el post dedicado a despliegue con Git o el webinar de Git práctico, donde explicamos muchas de las bases que debes conocer.

Crear una cuenta y un repositorio en Bitbucket

Para empezar a usar Bitbucket, debes crear una cuenta en la plataforma. El registro es gratuito así que puedes hacerlo sin más. Durante el alta en Bitbucket se creará un espacio de trabajo (Workspace) para poder alojar nuestros proyectos.

Una vez creado el workspace, podemos crear un repositorio nuevo, ya sea desde cero o importando uno existente.

Durante la creación del repositorio, introduciremos aspectos básicos como el nombre del proyecto y el nombre del repositorio, o bien si queremos crear un readme.md o un .gitignore.

Configuración de repositorios: público vs privado

Bitbucket nos permite decidir si el repositorio que vamos a crear es público o privado. Los repositorios privados son ideales para proyectos comerciales, que realizamos a otras empresas o nosotros mismos y sobre los que no queremos hacer público el código.

Si trabajas con un software libre, entonces lo normal es hacer un repositorio público, aunque hay que decir que lo habitual es usar GitHub para los repositorios públicos, ya que es la tendencia de la comunidad de software libre.

Clonación, commit y push de código al repositorio

Una vez creado el repositorio podemos integrarlo de diversas maneras. Lo más básico sería  clonarlo a nuestra máquina local y a partir de ahí comenzar a desarrollar el proyecto. Esto se hace con el comando «git clone», seguido de la URL del repositorio que obtendremos una vez creado el repositorio.

En la página del repositorio podrás encontrar un botón «Clone» que te muestra la ventana de especificaciones del comando de clonación.

Uso de pull requests y colaboración en equipo

Bitbucket facilita la colaboración entre equipos mediante el uso de pull requests. El trabajo es básicamente el que debes conocer en otras herramientas de trabajo con Git.

Integración de CI/CD con Bitbucket Pipelines

Ahora vamos a dar algunos detalles sobre cómo automatizar el despliegue mediante Bitbucket Pipelines, una de las funcionalidades más destacadas de la herramienta.

¿Qué es Bitbucket Pipelines y cómo funciona?

Bitbucket Pipelines es una herramienta de integración continua y entrega continua (CI/CD) que nos permite automatizar diversos procesos DevOps de los proyectos de software. En concreto, nos permite realizar la construcción, prueba y despliegue de nuestras aplicaciones directamente desde Bitbucket y como consecuencia de la actividad del repositorio.

Los procesos se definen en pipelines que se pueden configurar mediante código y funcionan sin necesidad de herramientas externas adicionales. Con Bitbucket Pipelines, podemos definir nuestros flujos de trabajo mediante un archivo YAML que describe los pasos necesarios para realizar las tareas de construcción y despliegue del proyecto.

Configuración de pipelines para automatizar el despliegue

Configurar Bitbucket Pipelines es relativamente sencillo, aunque requiere ciertos conocimientos técnicos. Es sencillo porque se realiza mediante la creación de un archivo de texto plano bitbucket-pipelines.yml que colocamos simplemente en la raíz del repositorio. En este archivo se definen los pasos a seguir para las operaciones sobre el proyecto.

Ejemplo de pipeline para integración continua (CI)

A modo de demostración, vamos a ver un pequeño código de cómo sería un pipeline para un caso básico de integración continua.

pipelines:
  default:
    - step:
        name: Build and Test
        image: node:14
        caches:
          - node
        script:
          - npm install
          - npm test

Este ejemplo ejecuta un pipeline que utiliza una imagen de Node.js, luego instala las dependencias del proyecto y por último ejecuta las pruebas definidas mediante un script en el archivo package.json.

Monitoreo y optimización de pipelines

La ejecución de los Pipelines puede requerir un proceso de monitoreo para poder analizar posibles problemas o cuellos de botella producidos durante su ejecución. Para ello Bitbucket Pipelines nos ofrece herramientas de monitoreo con registros detallados de cada paso.

Gestión de colaboradores y permisos en Bitbucket

Ahora vamos a explicarte cómo gestionar colaboradores y permisos en los repositorios de Bitbucket, un aspecto fundamental para trabajar en equipo.

Asignación de roles y permisos en repositorios

Bitbucket nos permite asignar usuarios a los proyectos y definir sus roles y permisos a los colaboradores de nuestros repositorios. Esto se hace desde el botón «Add users or groups». Nos abrirá un cuadro de diálogo para que podamos indicar el nombre/email del usuario o grupo que queremos añadir.

Además, en este mismo formulario puedes seleccionar los roles, que incluyen administradores, desarrolladores y lectores, cada uno con diferentes niveles de acceso al repositorio. 

Gestión de equipos y acceso a proyectos

La gestión de equipos en Bitbucket es sencilla gracias a las funcionalidades para crear grupos, que nos permiten definir de una vez todas las personas que van a tener acceso al repositorio, en vez de asignar usuario a usuario de manera individual. Esta misma funcionalidad también nos permite definir los roles de manera más centralizada, facilitando la administración en organizaciones grandes.

Mejores prácticas para la colaboración en equipo con Bitbucket

Al inicio del proyecto los administradores deben definir las prácticas que todo el equipo debe realizar en el día a día de la colaboración con el repositorio.

Algunas buenas prácticas que deben tenerse en cuenta son la creación de ramas para cada nueva característica o bug, la realización de revisiones de código mediante pull requests y el uso de comentarios en los commits, que permitan saber qué se está tocando en cada actualización y el motivo. 

Muchos equipos de trabajo también establecen nomenclaturas específicas para nombrar los commits, de se pueda apreciar de manera clara y rápida si ese commit se realizó para solucionar un bug o añadir una funcionalidad, por ejemplo.

Por qué elegir Bitbucket para tus proyectos

Para terminar, queremos dar algunas de las claves que pueden responder la pregunta típica de los desarrolladores que evalúan esta herramienta  ¿Por qué usar Bitbucket para tus proyectos?

Aumenta la eficiencia de tu equipo

Obviamente, ni nos planteamos que un proyecto de software no tenga un sistema de gestión de versiones. Estos sistemas no solo permiten trabajar de manera más eficiente, sino más controlada, haciendo posible la gestión de las aportaciones de los desarrolladores. 

Pero ¿Por qué Bitbucket entre todas las opciones? Primero porque Bitbucket está diseñado para mejorar la eficiencia de los equipos de desarrollo. Sus integraciones con herramientas de Atlassian, como Jira son una de las mejores bazas. Pero además ofrece muchas características útiles para la colaboración y gestión de código que nos pueden aportar un grado extra en la gestión de los proyectos y automatización de tareas repetitivas.

Mejora la calidad del código

El uso de pull requests y la capacidad de realizar revisiones de código en equipo son otro de los puntos esenciales para la gestión de proyectos modernos. Estos protocolos contribuyen significativamente a mejorar la calidad del código.

Escalabilidad y flexibilidad

Por último, Bitbucket es una plataforma escalable que puede adaptarse a las necesidades de proyectos sencillos, llevados por un desarrollador individual, o proyectos enormes en los que participan grandes equipos y requieren características avanzadas en el área de DevOps.

Fernán García de Zúñiga

Productos relacionados: