TracのXML-RPCプラグイン

おもしろいね。

APIでWikiをホゲホゲするのもいいけど、Ticketをホゲホゲするのがよいね。 Webインタフェース上でステータスをかえようとするといろいろ面倒なので、 一度CSVに落してから、ステータスを見ていって、コメントや状態を書いた後に、一気にXML-RPCで流し込む。

 サンプルみながら書いてみた。コード書くの久しぶりだ。 全員でチェックしながら状態を変更するときには、リアルタイムでWeb経由で操作するより、このやり方の方が楽な気がする。 今どき、普通のやり方かもしれないけどね。

元ファイル

"200","あんなことがしたい。","D"
"201","こんなことがしたい。","F"
"202","そんなことがしたい。","W"
"203","あんなやそんなことがしたい。",""

Pythonスクリプト

import xmlrpclib
import csv

server = xmlrpclib.ServerProxy(
    "http://hogehoge:hogehoge@localhost/trac/login/xmlrpc")

multicall = xmlrpclib.MultiCall(server)

# print the content of WikiStart
#for field in server.ticket.getTicketFields():
#  print field

reader = csv.reader(file('enhancement.csv', 'rb'))
for row in reader:
  id = row[0]
  status = row[2]
  if status == 'D':
    multicall.ticket.update(int(id),
        '他のチケットと内容が重複しているのでクローズします。',
        {'status':'closed', 'resolution':'duplicate'})
  elif status == 'W':
    multicall.ticket.update(int(id),
        '対応する必要がないと判断しクローズします。',
        {'status':'closed', 'resolution':'wontfix'})
  elif status == 'F':
    multicall.ticket.update(int(id),
        '対応済みのためクローズします。',
        {'status':'closed', 'resolution':'fixed'})
multicall()

Comment by kompiro on Sat Mar 3 23:50:31 2007

おもしろいっすよね。えいやってプログラムで操作できるの。

Error: Failed to load processor AddComment
No macro or processor named 'AddComment' found