Redmine et redmine-gitosis

Préambule

Je viens de perdre quelques heures à vouloir faire marcher redmine-gitosis.

Premièrement il faut bien comprendre que redmine-gitosis est “vieux”, il n’a pas été mis à jour depuis deux ans (en revanche il a été beaucoup forké).

Il n’est donc pas compatible avec les versions récentes de Redmine (changement de version de rails, …).

L’installation concernait un Redmine en version 1.1.2.

Symptôme

Après installation du plugin rien ne marchait, j’avoue, j’avais mal respecté la doc concernant l’installation de clef ssh de management de gitosis.

Néanmoins j’ai par ailleurs eu une autre erreur :

IniFile::Error (Could not parse line: "/var/www/redmine/tmp/redmine_gitosis_1347520406/gitosis/gitosis.conf"):
  inifile (2.0.1) lib/inifile.rb:506:in `parse_error'
  inifile (2.0.1) lib/inifile.rb:453:in `parse!'
  inifile (2.0.1) lib/inifile.rb:90:in `initialize'
  vendor/plugins/redmine_gitosis/app/models/gitosis_observer.rb:23:in `update_repositories'
  vendor/plugins/redmine_gitosis/app/models/gitosis_observer.rb:13:in `after_save'
  /usr/lib/ruby/1.8/observer.rb:185:in `notify_observers'
  /usr/lib/ruby/1.8/observer.rb:184:in `each'
  /usr/lib/ruby/1.8/observer.rb:184:in `notify_observers'
  vendor/plugins/redmine_gitosis/app/controllers/gitosis_public_keys_controller.rb:28:in `update'
  /usr/lib/ruby/1.8/mongrel/rails.rb:76:in `process'
  /usr/lib/ruby/1.8/mongrel/rails.rb:74:in `synchronize'
  /usr/lib/ruby/1.8/mongrel/rails.rb:74:in `process'
  /usr/lib/ruby/1.8/mongrel.rb:159:in `process_client'
  /usr/lib/ruby/1.8/mongrel.rb:158:in `each'
  /usr/lib/ruby/1.8/mongrel.rb:158:in `process_client'
  /usr/lib/ruby/1.8/mongrel.rb:285:in `run'
  /usr/lib/ruby/1.8/mongrel.rb:285:in `initialize'
  /usr/lib/ruby/1.8/mongrel.rb:285:in `new'
  /usr/lib/ruby/1.8/mongrel.rb:285:in `run'
  /usr/lib/ruby/1.8/mongrel.rb:268:in `initialize'
  /usr/lib/ruby/1.8/mongrel.rb:268:in `new'
  /usr/lib/ruby/1.8/mongrel.rb:268:in `run'
  /usr/lib/ruby/1.8/mongrel/configurator.rb:282:in `run'
  /usr/lib/ruby/1.8/mongrel/configurator.rb:281:in `each'
  /usr/lib/ruby/1.8/mongrel/configurator.rb:281:in `run'
  /usr/lib/ruby/1.8/mongrel/command.rb:212:in `run'

Rendering /var/www/redmine/public/500.html (500 Internal Server Error)

Solution

Utiliser une version moins récente de inifile (la 0.3.0 par exemple) : gem install inifile -v 0.3.0 (je n’ai pas eu la volonté de chercher depuis quel version l’API a divergé). Par sécurité enlevez les autres versions de la bibliothèque (gem uninstall inifile puis sélection des versions).

Hope this will help