Knowband Blog | Ecommerce Modules

Cómo habilitar el cierre automático de problemas a través de SVN Commit in Redmine


Step1: Instrucciones de configuración para repositorios en SVN

GotoRedmine> Administración> Configuraciones> Repositorios?and make sure the settings are as shown below:

Fetch se confirma automáticamente

Cuando habilita esta opción, la aplicación comienza a recuperar automáticamente las revisiones cuando el usuario intenta acceder a la página del repositorio

El valor predeterminado es: Sí

Puede desactivar esta opción y automatizar la llamada a Repository # fetch_changesets usando cron para recuperar regularmente las revisiones de todos los repositorios en segundo plano.

Para Velocity: no lo hemos desactivado y, al mismo tiempo, hemos configurado una recuperación automática cada vez que se realiza una nueva confirmación. Para saber cómo se ha beneficiado lo mismo, lea más.

Ejemplo: ruby ​​script / runner "Repository.fetch_changesets" -e producción Para Redmine 2.x: ruby ​​script / rails runner "Repository.fetch_changesets" -e producción Para Redmine 3.x: bin / rails runner "Repository.fetch_changesets" -e producción Puede configurar la llamada automática desde el enlace posterior a la confirmación (para SVN) y posterior a la recepción (para GIT) y hacer que los conjuntos de cambios se obtengan después de cada confirmación. Tenga en cuenta que la ejecución de la declaración anterior podría obtener detalles para cada reporsitory agregado en cualquier proyecto en Redmine, por lo que en caso de que tenga una gran cantidad de dichos repositorios agregados en los proyectos, entonces se convierte en un proceso lento. Para mí, fue alrededor de 10 segundos para el repositorio de 1. Tengo más que repositorios 100 para varios proyectos, por lo que esperar innecesariamente cada búsqueda cada vez que se realiza una confirmación en cualquier repositorio no tiene sentido. Puede buscar todos los repositorios a través del navegador usando la siguiente URL:

http: / / <redmine url> / sys / fetch_changesets? key = <su clave de servicio>

Para buscar solo un repositorio a través del navegador, use la siguiente URL: (Obtener solo el repositorio para el que se realizó la confirmación es mucho más eficiente y requiere menos tiempo.

Hasta que no busque el repositorio, las Tareas en Redmine no se cerrarán.

El identificador del proyecto puede ser el número del proyecto, por ejemploid = 1?or the identifier name that you gave the project, e.g.,?id = mobileapp

http: / / <redmine url> / sys / fetch_changesets? key = <su clave de servicio>? id = <identificador de proyecto> & key = <su clave de servicio>

Ejemplo:https://www.myredmineurl.com/sys/fetch_changesets?id=mypid&&key=djdj57FGDJmkj67

Lea más acerca de los scripts post-commit:https://www.redmine.org/projects/redmine/wiki/HowTo_setup_automatic_refresh_of_repositories_in_Redmine_on_commit

Habilitar WS para la administración de repositorios

Esta opción solo debe activarse si instaló el script para la creación automática del repositorio SVN.Predeterminado: No.Pero para habilitar automáticamente cada repositorio en la confirmación, habilítelo incluso si no desea crear el repositorio SVN automáticamente.

Clave de la API WS de gestión de repositorios

Una clave secreta para la gestión de repositorios WS. Esto se usará para buscar cada repositorio en secreto.

Número máximo de revisiones que se muestran en el registro de archivos

Proporciona una forma de limitar la cantidad de revisiones que se recuperan desde el SCM para una determinada ruta examinada.

Hacer referencia a problemas en los mensajes de confirmación

Cuando se extraen de los repositorios, los mensajes de compromiso se escanean en busca de identificadores de problemas referenciados o fijos. Estas opciones le permiten definir palabras clave que se pueden usar en el mensaje de confirmación para referenciar o corregir problemas de forma automática, y el estado para aplicar a problemas solucionados. Las palabras clave predeterminadas son:

No hay un estado predeterminado definido para el problema solucionado. Deberá especificarlo si desea habilitar el cierre automático de problemas. Si desea hacer referencia a problemas sin usar palabras clave, ingrese una sola estrella: * enReferenciando palabras clave?(Administration/Repository) setting. In this case, any issue ID found in the message will be linked to the changeset.

Example of a working commit message using default keywords:

Este commit refs #1, #2 y corrige #3

Este mensaje hace referencia a los problemas 1 y 2 y repara automáticamente el problema 3. Después de una ID de problema de palabra clave se puede separar con un espacio, una coma o &. Las palabras clave son caseinsensitive y se necesita al menos un espacio en blanco o dos puntos entre la palabra clave y el primer hash para producir una coincidencia. Más ejemplos que producirán el mismo resultado que el ejemplo anterior:

Esto confirma referencias: #1, #2 y correcciones #3 Este compromiso Refs #1, #2 y arreglos #3 Esto confirma REFS: #1, #2 y arreglos #3

Habilitar registro de tiempo

Permite registrar el tiempo directamente desde los mensajes de confirmación. Esto solo tiene sentido si activó el módulo "Seguimiento de tiempo" en dicho proyecto. En este caso, puede agregar palabras especiales en su mensaje de compromiso para indicar el tiempo que pasó en un problema. La sintaxis básica para hacer eso es:@ <hora>, donde el tiempo consiste en un número de horas o minutos. Aquí hay una lista de muchos mensajes de confirmación válidos que funcionarían si quiere decir que pasó N horas en el número 1234:

Función de implementación #1234 @ 2 Característica de implementación #1234 @ 2h Característica de implementación #1234 @2hh Función de implementación #1234 @ 15m Característica de implementación #1234 @ 15min Característica de implementación #1234 @ 3h15 Característica de implementación #1234 @ 3h15m Característica de implementación #1234 @ 3: 15 Función de implementación #1234 @ 3.25 Característica de implementación #1234 @ 3.25h Característica de implementación #1234 @3,25 Característica de implementación #1234 @ 3,25h

Actividad para el tiempo registrado

Este es el tipo de actividad que se debe usar al detectar que hay un tiempo de registro en un mensaje de compromiso (ver arriba).


Step2: hacer cambios en el proyecto

2. Asegúrese de que puede confirmar y actualizar el Repositorio de proyectos al que desea acceder desde el servidor donde está instalado Redmine.

Para Velocity:?For Velocity there is a generic user:?Velsofsvnque se agrega a todos los repositorios y este es el usuario que se usa en el servidor de Redmine para actualizar los listados de repositorio cuando se producen los commits. Por lo tanto, compruebe si este usuario tiene acceso al repositorio configurado para el cierre automático de problemas a través de SVN. En caso de problemas de acceso, compruebe si las restricciones de IP están en el repositorio en el servidor Assembla / SVN. 2. Vaya a su proyecto como administrador del sistema y vaya a Configuración> Módulos. Habilitar módulo de repositorio. 3. Complete el formulario que se muestra a continuación en el módulo Repositorio para ese proyecto:

Identificador:?Any name you wish

URL:?URL of the Assembla repository. Example:?https://subversion.assembla.com/svn/protocol.cdms/trunk

Entrar:?Username which has access to the above repository. For Velocity: velsofsvn

Contraseña:?Password which has access to the above repository. For Velocity: Password here:??https://docs.google.com/spreadsheets/d/1DuvyfZgCx125Mv04mhCgXqrOcTW7BQPtSGPbvO9pu-g/

4. Una vez que hayas completado el paso#3, el Repositorio comenzará a mostrarse como se muestra a continuación:


Step3: haciendo cambios en Assembla SVN

5. Para acceder a esta página, debe ser propietario o miembro de ALLpermisos?(learn more about roles and permissions). To get here, go to your Assembla SVN repository > Settings > General Settings.

Desencadenar URL:
Esta característica llama a una URL específica después de cada confirmación. Nuestro servidor envía una solicitud al servicio remoto especificado en la URL. El resultado dependerá de lo que un usuario establezca que haga este servicio bajo esta URL específica. GET URL después de cada confirmación se puede utilizar para activar una creación, por ejemplo. Aquí, en la URL de Trigger, debe ingresar la url diclada arriba para obtener automáticamente un Repositorio en particular: Ejemplo:https://www.myredmineurl.com/sys/fetch_changesets?id=mypid&&key=djdj57FGDJmkj67

Eso es. Deberías estar listo y funcionando.