Objetivo

O objetivo deste tutorial é apresentar como configurar o Mantis e o Subversion de maneira que seja possível adicionar uma anotação ou mesmo marcar um caso como resolvido de acordo com o texto digitado no momento do commit em um código.

Este tutorial parte do princípio que o Mantis e o Subversion já estejam instalados e funcionando normalmente de forma isolada, e se refere apenas aos passos necessários para realizar a integração entre as duas ferramentas.

Criando usuário no Mantis

Para que a integração funcione é necessário criar um usuário que será utilizado pelo Subversion para alterar o status e adicionar as anotações aos casos do Mantis.
Esse usuário deverá ter privilégios para alterar casos. Normalmente basta que ele possua privilégios de “Desenvolvedor”.

Alterando o arquivo de configuração do Mantis

No diretório de instalação do Mantis edite o arquivo config_inc.php acrescentando o seguinte código, mantendo o conteúdo original do arquivo:

<?php
  # Conteúdo original do arquivo mantido #
  ...
  ...
  ...
 
  # Conta utilizada para que as alterações nos casos sejam realizadas
  # Recomenda-se que o usuário possua privilégios de Desenvolvedor 
  $g_source_control_account = 'NomeDoUsuarioCadastrado';
 
  # Indica se as anotações serão públicas (VS_PUBLIC) ou privadas (VS_PRIVATE)
  $g_source_control_notes_view_status = VS_PRIVATE;
 
  # Expressão regular que identifica a citação a um caso do mantis no comentário do Subversion  
  $g_source_control_regexp = '/\b(?:bug|issue|caso)\s*[#]{0,1}(\d+)\b/i';  
 
  # Status para qual os casos solucionados serão movidos
  $g_source_control_set_status_to = RESOLVED;
 
  # Resolução para qual os casos solucionados serão movidos
  $g_source_control_set_resolution_to = FIXED;
 
  # Expressão regular que identifica a citação e resolução de um determinado caso
  $g_source_control_fixed_regexp = '/\bresolvid(?:o|os)\s+(?:bug|issue|caso)?\s*[#]{0,1}(\d+)\b/i';	
?>   

Criando arquivo de gancho do Subversion

No Subversion existe a possibilidade de criar arquivos de gancho, que contêm rotinas a serem executadas após algum evento ocorrido no projeto.
Para a integração com o Mantis iremos criar um arquivo de gancho a ser executado no evento post-commit, que é executado depois que a transação é submetida e uma nova revisão é criada.

Para criar um novo arquivo, no diretório de seu repositório acesse o diretório hooks. Dentro dele, crie um novo arquivo chamado post-commit, sem extensão alguma.
Preencha o arquivo da seguinte maneira:

#!/bin/bash
 
REPOS="$1"
REV="$2"
 
autor=$(svnlook author -r $REV $REPOS) # autor do commit
data=$(svnlook date -r $REV $REPOS) # data do commit
arquivos_alterados=$(svnlook changed -r $REV $REPOS) # arquivos alterados
log=$(svnlook log -r $REV $REPOS) # mensagem do commit
n=$'n' # quebra de linha
 
/usr/bin/php -q { DIRETORIO DE INSTALAÇÂO DO MANTIS }/scripts/checkin.php <<< "$autor$n$log$n$arquivos_alterados"
 
exit 0

Na prática

Ao realizar um commit, caso o comentário possua as seguintes palavras caso #NumeroDoCaso, o conteúdo do comentário será adicionado como anotação no caso referenciado, contendo a seguinte estrutura:

autor do commit
comentário do commit
arquivos alterados no commit

Caso o comentário do commit possua as seguintes palavras resolvido caso #NumeroDoCaso, além de ser adicionada uma anotação, o caso será marcado como resolvido no Mantis.

 
tut_mantis_subversion.txt · Última modificação: 2012/10/04 14:05 por marcio.bonfim
 
Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki