Go to content Go to navigation Go to search

Redmine と Bugzilla をリンクで連携させてみた

6月 5th, 2010 by mattari

Redmine でのプロジェクト管理と、Mantis, Bugzilla, Track などの BTS を使ったバグ管理とを併用せざるえない場合があると思います。こうした場合、併用するBTSの番号をRedmineのカスタムフィールドに入力するようにすれば、とりあえず運用できます。でもせっかくなのでカスタムフィードからBTSを直接参照できるようにしてみました。Bugzilla を例にやってみます。

 

Bugzilla用のカスタムフィードを作成する

 

以下の手順でカスタムフィールドを追加します。

 

(1)  [管理]→[カスタムフィード]→[新しいカスタムフィールドを作成]

  • 名称 : Bugzilla
  • 書式:整数(正しくソートできるように文字ではなく整数にします)
  • トラッカー:バグ
  • フィルタとして使うにチェック

(2) [保存]

(3) ブロジェクトでカスタムフィールドを使うように設定する。

 

カスタムフィールドにリンクを張る

 

ちょっとダサいですが、あまりいじりたくないので、とりあえずベタでタグを書いてしまいます。

チケット詳細画面からリンクを張る

redmine/app/helpers/issues_helper.rb の render_custom_fields_rows ()

def render_custom_fields_rows(issue)

      :

ordered_values.compact.each do |value|
  s << "</tr>\n<tr>\n" if n > 0 && (n % 2) == 0

    case h(value.custom_field.name)
    when "Bugzilla"
      s << "\t<th>#{ h(value.custom_field.name) }:</th><td><a href=\"
https://some.bugzilla.url/show_bug.cgi?id=#{ simple_format_without_paragraph(h(show_value(value))) }\" target=\"_blank\">#{ simple_format_without_paragraph(h(show_value(value))) }</a></td>\n"
    else
      s << "\t<th>#{ h(value.custom_field.name) }:</th><td>#{ simple_format_without_paragraph(h(show_value(value))) }</td>\n"
    end
  n += 1
end

  s << "</tr>\n"
  s
end

チケット一覧表示のリストからリンクを張る

redmine/app/helpers/queries_helper.rb の column_content()

def column_content(column, issue)

     :

when ‘Fixnum’, ‘Float’
  if column.name == :done_ratio
    progress_bar(value, :width => ’80px’)
  else
    case column.caption
    when ‘Bugzilla’
      "<a href=\
https://some.bugzilla.url/show_bug.cgi?id=#{value.to_s}\ target=\"_blank\">#{value.to_s}</a>"
    else
      value.to_s
    end
  end

Redmine を再起動すれば完了です。

番号をクリックすれば Bugzilla のチケットが開きます。

キャプチャ

 

Leave a Reply

関連記事