我有一个在http://127.0.0.1:8001/project/
运行的trac服务器
然后我想通过脚本而不是从Web UI查询票证。所以我在互联网上搜索并获得插件tracxmlrpc
,我将其安装在我的trac服务器中,然后我尝试使用脚本来查询票证。代码如下:
import xmlrpclib
server = xmlrpclib.ServerProxy('http://user:111@127.0.0.1:8001/project/login/xmlrpc')
tickets = server.ticket.query('max=0')
但是这段代码不起作用,谁可以告诉我如何使它工作,或者是否有其他方法来实现远程查询功能。
答案 0 :(得分:0)
当然可以奏效。就像你预期的那样。以下是我的验证,其中包含关键配置详细信息:
http://127.0.0.1:8000/trac/
xmlrpclib
唯一支持的内容。'foo'
的用户'bar'
同时具有XML_RPC
权限(允许通过API进行调用),并允许TICKET_VIEW
权限查看故障单。< / LI>
#1
在#2
仍处于打开状态时关闭。互动代码:
>>> import xmlrpclib
>>> server = xmlrpclib.ServerProxy('http://foo:bar@127.0.0.1:8000/trac/login/rpc')
>>> server.ticket.query('max=0')
[1, 2]
>>> server.ticket.query('max=0&status!=closed')
[2]
>>> server.ticket.get(2)
[2,
<DateTime '20130104T11:48:08' at 10392c2d8>,
<DateTime '20130104T11:48:08' at 10392c320>,
{'_ts': '1357300088007920',
'cc': '',
'changetime': <DateTime '20130104T11:48:08' at 10392c368>,
'component': 'component1',
'description': '',
'keywords': '',
'milestone': 'milestone1',
'owner': '',
'priority': 'major',
'reporter': 'admin',
'resolution': '',
'status': 'new',
'summary': 'stackoverflow test',
'time': <DateTime '20130104T11:48:08' at 10392c3b0>,
'type': 'defect',
'version': ''}]
这通常始终与身份验证或权限相关,因此要验证RPC插件和查询是否有效,您可以临时为用户XML_RPC
分配TICKET_VIEW
和anonymous
权限,并使用此服务器代替(从网址中删除foo:bar@
和/login
):
server = xmlrpclib.ServerProxy('http://127.0.0.1:8000/trac/rpc')
答案 1 :(得分:0)
无耻插件,但我编写了一个PHP库,通过远程过程调用与Trac Bugtracker API进行交互。
https://github.com/jakoch/PHPTracRPC
要求
基本用法示例
include 'TracRPC.php';
$credentials = array('username' => 'username', 'password' => 'password');
$trac = new TracRPC('http://trac.example.com/login/jsonrpc', $credentials);
$result = $trac->getTicket('32');