Blog tech

Fermeture de tickets Redmine depuis un déploiement capistrano

Rédigé par Théo Delaune | 23 septembre 2014

Aujourd’hui nous allons nous intéresser à capistrano-redmine. Cette gem permet de changer le status de tickets Redmine lors d’un déploiement via Capistrano.

Nous pouvons configurer capistrano-redmine pour chaque environnement Capistrano, chez synbioz par exemple nous l’utilisons lors d’un déploiement en pré-production.

Fonctionnement

Partons du principe que nous avons plusieurs tickets ayant le status résolu sur notre projet Redmine. Nous voulons qu’après un déploiement les tickets soient passés en statut déployé. Actuellement nous changer manuellement le statut sur chaque ticket.

capistrano-redmine automatise cette tâche, lors du déploiement Capistrano, une tâche propre à cette gem sera lancée et permettra de passer chaque ticket résolu au status déployé.

Mise en place

Nous devons ajouter capistrano-redmine à notre Gemfile.

gem "capistrano-redmine", :git => "https://github.com/synbioz/capistrano-redmine.git", require: false

Ajoutons maintenant capistrano-redmine à notre configuration capistrano:

set :redmine_site, "https://redmine.site"
set :redmine_token, "token_utilisateur"
set :redmine_options, { ssl: { cert: nil, key: nil } }
set :redmine_projects, "mon_project"
set :redmine_from_status, 3
set :redmine_to_status, 7

require 'capistrano-redmine'

after "deploy", "redmine:update"
  • :redmine_site correspond à l’adresse de votre Redmine.
  • :redmine_token correspond à votre clé api que vous pourrez trouver sur votre compte Redmine.
  • :redmine_options l’option ici par défaut permet à capistrano-redmine d’accèder à un site ssl ayant ni certificat ni clé.
  • :redmine_projects nom de votre projet où les tickets doivent être modifiés.
  • :redmine_from_status id du status qui doit être changé.
  • :redmine_to_status id du status que doit prendre le ticket.

Vous pouvez retrouver plus d’informations sur les options possibles sur le README de capistrano-redmine.

redmine:update est la tâche Capistrano issu de la gem permettant de lancer la mise à jour des tickets.

Il est tout à fait possible de mettre à jour les tickets sans déploiement grâce à cette tâche:

cap staging redmine:update

Un fork ?

Chez Synbioz, nous voulions utiliser capistrano-redmine. Mais nous nous sommes heurtés au fait que cette gem est compatible avec Capistrano 2 uniquement.

L’idée d’un fork à donc fait son apparition et nous avons sorti capistrano-redmine qui prend en compte la compatibilité Capistrano 2 et Capistrano 3.

Notre fork est actuellement en pull request sur le dépôt officiel.

L’équipe Synbioz. Libres d’être ensemble.