Für die Sammlung nützlicher Scripts. Dieses Script überträgt alle Tickets vom einen Trac Verzeichnis ins Andere.
Es nutzt dazu das trac xmlrpc Plugin.
Außerdem wird php xmlrpc genutzt.
Alles anzeigen
Es nutzt dazu das trac xmlrpc Plugin.
Außerdem wird php xmlrpc genutzt.
Quellcode
- <?php
- require 'xmlrpc.inc';
- class MyStruct {
- public function __construct($arr) {
- foreach($arr as $key => $val) $this->$key = new xmlrpcval($val, 'string');
- }
- }
- $client = new xmlrpc_client('http://user:pass@trac.easy-coding.de/trac/g-map/login/xmlrpc');
- $client2 = new xmlrpc_client('http://user:pass@trac.easy-coding.de/trac/wcf/login/xmlrpc');
- // fetch all tickets
- $rows = &$client->send(new xmlrpcmsg('ticket.query'));
- $rows = php_xmlrpc_decode($rows->value());
- // fetch ticket data
- foreach($rows as $val) {
- $val = &$client->send(new xmlrpcmsg('ticket.get',array(new xmlrpcval($val, "int"))));
- $val = php_xmlrpc_decode($val->value());
- extract($val[3]);
- // build queries to add new data
- $msg = new xmlrpcmsg('ticket.create', array(
- new xmlrpcval($summary, "string"),
- new xmlrpcval($description, "string"),
- new xmlrpcval(new MyStruct(array(
- 'status'=>$status,
- 'resolution'=>$resolution,
- 'priority'=>$priority,
- 'type'=>$type,
- 'reporter'=>$reporter,
- 'component'=>'g-map'
- )), "struct"),
- new xmlrpcval(false, "boolean"),
- ));
- $client2->send($msg);
- }
- ?>