- Gestión de Complementos
1.1 Instalación Manual de Plugins
Tomemos como ejemplo el plugin hooks. En el repositorio oficial de complementos de Gerrit (GerritForge) se debe localizar el .jar correspondiente a la versión de Gerrit en uso.
Descargue el archivo JAR y colóquelo en el directorio $GERRIT_SITE/plugins. Luego reinicie el servicio Gerrit para que los complementos sean cargados automáticamente.
# Ejemplo de descarga e instalación
[usuario@servidor ~]$ cd /opt/gerrit/plugins/
[usuario@servidor plugins]$ wget https://gerrit-ci.gerritforge.com/job/plugin-hooks-bazel-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/hooks/hooks.jar
[usuario@servidor plugins]$ chmod 755 hooks.jar
[usuario@servidor plugins]$ cd
[usuario@servidor ~]$ sudo sh /opt/gerrit/bin/gerrit.sh restart
Verifique que el complemento esté activo:
[usuario@servidor ~]$ ssh -p 29418 admin@192.168.1.100 gerrit plugin ls
1.2 Instalación vía SSH
Mediante conexión SSH al servidor Gerrit es posible administrar los complementos con el comando gerrit plugin. La documentación oficial se encuentra en: Plugin Install
# Listar comandos disponibles
[usuario@servidor ~]$ ssh -p 29418 admin@192.168.1.100 gerrit plugin -h
# Instalar desde una ruta absoluta
ssh -p 29418 localhost gerrit plugin install -n nombre.jar $(pwd)/mi-plugin.jar
# Instalar desde una URL HTTP
ssh -p 29418 localhost gerrit plugin install -n nombre.jar http://servidor-build/output/nuestro-plugin.jar
1.3 Complementos Incluidos en el WAR
El archivo gerrit-3.1.0.war incluye varios complementos por defecto. Se pueden extraer para ver su contenido:
[usuario@servidor ~]$ mkdir /tmp/gerrit-war
[usuario@servidor ~]$ unzip -oq gerrit-3.1.0.war -d /tmp/gerrit-war/
[usuario@servidor ~]$ ls /tmp/gerrit-war/WEB-INF/plugins/
codemirror-editor.jar
commit-message-length-validator.jar
delete-project.jar
download-commands.jar
gitiles.jar
hooks.jar
plugin-manager.jar
replication.jar
reviewnotes.jar
singleusergroup.jar
webhooks.jar
- Gestión de Usuarios
2.1 Creación con Autenticación HTTP (htpasswd)
Cuando se emplea autenticación basada en HTTP, utilice el comando htpasswd para añadir usuarios al archivo de contrsaeñas.
[usuario@servidor ~]$ sudo htpasswd -c /home/usuario/gerrit.pass admin
New password:
Re-type new password:
Adding password for user admin
[usuario@servidor ~]$ sudo htpasswd -m /home/usuario/gerrit.pass desarollador
New password:
Re-type new password:
Adding password for user desarollador
[usuario@servidor ~]$ sudo chmod 755 /home/usuario/gerrit.pass
[usuario@servidor ~]$ sudo systemctl restart nginx
2.2 Creación con Autenticación por Defecto (Interfaz Web)
Con la configuración predeterminada de Gerrit, los nuevos usuarios pueden ser registrados desde la interfaz web. Tras el primer ingreso, se solicitará completar el nombre y el correo electrónico. La configuración adicional se realiza en User Settings.
- Creación de un Nuevo Proyecto (Repositorio)
Para crear un nuevo repositorio, utilice el comando SSH gerrit create-project o la interfaz web de administración. Ejemplo:
ssh -p 29418 admin@192.168.1.100 gerrit create-project --name mi-proyecto
- Conexión SSH
4.1 Generación de Clave Pública SSH
[usuario@servidor ~]$ ssh-keygen -t rsa -C "mi-correo@ejemplo.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_rsa):
Created directory '/home/usuario/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/usuario/.ssh/id_rsa.
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:...
The key's randomart image is:
...
4.2 Agregar Clave Pública en la Configuración del Usuario
Acceda a la interfaz web de Gerrit, inicie sesión como el usuario deseado y vaya a Settings → SSH Public Keys para agregar el contenido del archivo id_rsa.pub.
4.3 Verificación de la Conexión SSH
[usuario@servidor ~]$ ssh -p 29418 admin@192.168.1.100 gerrit version
Gerrit Code Review version 3.1.0
- Permisos de Acceso a la Base de Datos para el Usuario Admin
Para que la cuenta administradora pueda acceder a la base de datos interna de Gerrit (por ejemplo, para consultar cambios directamente), es necesario habilitar los permisos correspondientes en el archivo etc/gerrit.config:
[database]
type = H2
database = /opt/gerrit/db/ReviewDB
Además, el usuario admin debe ser agregado al grupo Administrators a través de la interfaz web o SSH.
- Autenticación LDAP
Gerrit soporta integración con servidores LDAP para la importación y sincronización centralizada de usuarios. En este modo, tanto el nombre de usuario como la contraseña son gestionados por LDAP.
Configuración en gerrit.config:
[auth]
type = LDAP
[ldap]
server = ldap://ldap.ejemplo.com:389
accountBase = ou=people,dc=ejemplo,dc=com
groupBase = ou=groups,dc=ejemplo,dc=com
accountPattern = (&(objectClass=person)(uid=${username}))
groupMemberPattern = (&(objectClass=groupOfNames)(member=${userdn}))
Además, deshabilite la autenticación básica HTTP en el bloque de configuración de Nginx (o el proxy inverso utilizado) y reinicie el servicio.