Você está na página 1de 7

Integrao de Controle de verso com Redmine.

A integrao do controle de verso pode permitir uma interatividade bem interessante entre os tickets e projetos do redmine com o controle de verso segue alguns exemplos: fechamento automtico dos tickets ao finalizar uma tarefa, adicionar referncias ao progresso de tarefa e adicionar horas de trabalho, entre outros. Segue uma configurao e exemplos de uso sobre essa integrao com svn de duas formas diferentes e tambm pode ser facilmente adaptado para outros controles de verso. Habilitando suporte a web-service para atualizao. O primeiro passo habilitar acesso externo atravs de web service a configurao bem simples e no exige maiores explicaes. 1. Administrao -> Configuraes 2. Aba Repositrios 3. O redmine trabalha com os seguintes controles de verso (Subversion, Darcs, Mercurial, Cvs, Bazaar, Git e Filesystem). No campo verso voc pode verificar a verso do software instalado.

4. Habilite o Subversion. 5. Na parte abaixo dos SCM voc tem algumas configuraes, essas configuraes so importantes para habilitarmos o web-service. 6. Obter commits automaticamente deve ser desabilitado, isso deve ser feito por que ser usado o web-service para atualizao, mas nada impede que voc tenha os 2 habilitados.

7. Ativa WS para gerenciamento do repositrio deve ser habilitado para que possamos acessa-lo. 8. Chave de API gere uma chave com essa chave que usaremos para autenticar no momento da atualizao. (Mais abaixo ser explicado como)

9. Nmero mximo de revises exibidas no arquivo de log, essa informao fica a seu critrio. 10. O quadro abaixo desse (Referenciando tarefas nas mensagens de commit) ser comentado depois, por enquanto deixe como est. 11. Clique em salvar. 12. Para testar basta acessar a seguinte url e no deve retornar nenhum erro: http://{Caminho da Sua Instalao do Redmine}/sys/fetch_changesets?key={Chave de API}. 13. Existem formas melhores de testar, mas por enquanto essa vai ser a mais fcil. Adicionando um repositrio ao projeto do redmine Depois de habilitado controle de repositrio no SVN preciso adicionar o caminho do repositrio svn ao seu projeto, para tanto entre no projeto acesse as configuraes do mesmo. 1. Entre na aba de mdulos e habilite repositrio.

2. 3. 4. 5.

Depois clique em salvar. Clique na aba de repositrios Clique em New Repositoy. Deve ser apresentado a seguinte pgina.

6. Controle de Verso- Selecione na lista Subversion.

7. Main Repositroy- Marque caso esse repositrio seja o central. 8. URL o caminho do repositrio incluindo o projeto. 9. Usurio e Senha Coloque um usurio e senha do repositrio svn que tenha acesso de leitura. 10. Depois de realizado a configurao clique em criar. 11. Voc ser redirecionado para a lista de repositrios, nessa lista deve encontrar um link para usurios, nesse link o redmine automticamente vincula os usurios do svn com o redmine. Clique nesse link e ser apresentada a seguinte pgina:

12. Na imagem acima o quadro vermelho marcado com 1 a lista de usurios do svn e no lado direito esto os usurio do remine, como dito o redmine tenta fazer o vinculo automaticamente e no quadro 2 ele encontrou um usurio e no quadro 3 ele no encontrou. 13. Para alterar basta seleciona no combo o usurio que satisfaa a sua escolha. 14. Clique em atualizar. At aqui realizamos as configuraes necessrias dentro do redmine.

Agora vamos realizar a configurao dentro do svn para que a atualizao ocorra de maneira automtica, ou seja, sem precisa ficar clicando no link repositrio do projeto. Existem 2 formas so elas : 1 - Usando hooks do svn para automatizar a atualizao do RedMine. Os hooks so eventos disparados quando ocorre alguma ao dentro do repositrio do svn. O que vamos fazer muito simples, basta que sempre que um evento de post-commit acontecer dentro do repositrio, execute o comando informado na primeira parte desse tutorial. 1. Entre na pasta onde est o repositrio SVN no servidor. (Para cada repositrio voc deve fazer o mesmo) 2. Dentro da pasta do seu repositrio svn voc vai encontrar um pasta chamada hooks entre nessa pasta. (Dentro dessa pasta tem vrios exemplos de arquivos para ser usado como base) 3. Caso no exista crie um arquivo chamado post-commit. 4. Dentro desse arquivo voc coloca o seguinte comando: curl http://{Caminho da Sua Instalao}/sys/fetch_changesets?key={Chave de API}.

5. No se esquea de dar privilgio de permisso de execuo a este arquivo. 6. Pronto, basta realizar um commit e voc vai verificar as atualizaes na Aba Repositrio. Segue a lista de comando que eu executei. $ cd /home/svn/repositories/Test $ cd /hooks/ $ vi post-commit curl http://{Caminho da Sua Instalao}/sys/fetch_changesets?key={Chave de API} [shift + :] wq! chown -R www-data:www-data * chmod -R 770 * 1 - Usando o cron no Linux. Usar o cron torna o gerenciamento melhor, porm com um atraso dependendo do tempo que voc colocar para atualizar, eu acredito ser melhor por causa da facilidade de manuteno no h a necessidade de cada criao de repositrio voc entrar no mesmo e configurar os hooks para atualizar. 1. Crie um script com o seguinte contedo: #!/bin/bash curl http://{Caminho da Sua Instalao}/sys/fetch_changesets?key={Chave de API} 2. Salve em um local qualquer, no meu caso salvei no home com o nome: updateredmine.sh 3. Adicione permisso de execuo: chmod +x 4. Edite o crontab usando o comando crontab e 5. O mesmo vai abrir o vim ou qualquer outro editor padro ento voc adicone a seguinte linha, no meu caso a atualizao executa de 10 em 10 minutos. */10 * * * * /home/update_redmine.sh 1>/home/log_make.log 2>/home/error.log

Configurao de Referncia e Tempo de Trabalho. O Redmine um poderoso gerenciador de projeto de software e com poucas configuraes voc consegue elevar o seu poder, vou mostrar agora como voc faz as referencias aos tickets e gerenciamento do tempo de trabalho do desenvolvedor. Vamos voltar ao redmine e na seo de administrao e dentro de configuraes. 1. Acesse: Administrao -> Configuraes -> Aba Repositrios. 2. No quadro Referenciando tarefas nas mensagens de commit.

3. Palavras de referncia: Essa palavra (ou algumas palavras separadas por vrgulas) serve para o desenvolvedor fazer uma referncia do que ele est fazendo ou comitando ao redmine, ao realizar commit ele pode fazer da seguinte maneira: (vou excluir os comandos deixando somente a mensagem que deve ser adicionada o). Desenvolvimento parcial da bomba nuclear (refs #4321) ou Desenvolvimento parcial da bomba nuclear (issue #4321) ou Desenvolvimento parcial da bomba nuclear (references #4321) Caso o mesmo commit faa referncia a mais de um ticket voc pode adicion-lo ao commit atravs da vrgula (Isso no recomendado devido dificuldade de gerenciamento, mas vou explicar e fica o seu critrio usar ou no) Desenvolvimento parcial da bomba nuclear e do dispositivo de exploso (refs #4321, #5432) Os parnteses so por minha conta, voc pode somente adicionar o texto dentro dos parnteses. Depois de atualizado no redmine com base nessa referncia seu ticket deve ficar assim:

No quadro 1, pode-se ver o que e por quem foi realizado o commit e no quadro 2 de onde foi realizada a atualizao. Aqui no meu exemplo em git e no svn segue o mesmo principio.

4. Palavra de fechamento, caso o desenvolvedor queira fechar o ticket somente atravs do commit, ele pode adicionar ao commit a palavra includo aqui. Na sua essncia no muda nada em relao palavra de referncia, a diferena principal que voc pode aplicar um status e esse status pode ou no fechar a tarefa, pode tambm aplicar tambm um % de concluso, aqui fica a seu critrio como voc deve ser o processo de desenvolvimento. No meu caso usei a palavra closes e fixes e portanto o desenvolvedor pode usa-las da seguinte forma: Concludo a bomba, enviar para testes (closes #4321) ou Concludo a bomba, enviar para testes (fixes #4321) O resultado ser o mesmo da imagem acima com exceo da atualizao do status que somente realizada no fechamento.

5. Habilitar registro de horas. Esse uma das funcionalidades mais legais dessa integrao, eu comecei a usar em pouco tempo e achei muito legal. possvel adicionar um tempo de trabalho depois da referencia do ticket e o redmine ir atualizar o tempo de trabalho daquela tarefa usando o tempo colocado na linha do commit com o tipo configurado em Atividades para registro de horas da seguinte maneira : Desenvolvimento parcial da bomba nuclear (refs #4321 @1h) ou Concludo a bomba enviar para suporte e clientes (closes #4321 @1h30min) Observe o texto em negrito, quando o redmine atualizar voc vai ter as horas gastas informado na linha do commit. Veja o resultado no redmine. No ticket :

No relatrio :

Pessoal ! Espero ter ajudado e qualquer dvida pode entrar em contato pela lista de discusso. Era isso!! Fbio Nascimento fabio.o.nascimento@gmail.com

Referncias http://svnbook.red-bean.com/en/1.0/svn-book.html#svn-ch-5-sect-2.1 http://www.redmine.org/projects/redmine/wiki/HowToInstallRedmineOnUbuntuServ er http://www.redmine.org/projects/redmine/wiki

Você também pode gostar