確かにそれはうまくいくことができます。あなたもそれを期待したように。キー構成の詳細を使用した私の検証は次のとおりです。
- でホストされている空のテスト プロジェクト
http://127.0.0.1:8000/trac/
- Python でサポートされている唯一のものである基本認証を使用するように構成されたプロジェクト
xmlrpclib
。
- 許可 (API を介した呼び出しを許可する) と、チケットを表示できる許可の両方を
'foo'
持つパスワードを持つユーザー。'bar'
XML_RPC
TICKET_VIEW
- 2 つのチケットを作成しましたが、まだ開いているの
#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
パーミッションを useranonymous
に割り当て、代わりにこのサーバー プロキシを使用します ( URL から と を削除します) foo:bar@
。/login
server = xmlrpclib.ServerProxy('http://127.0.0.1:8000/trac/rpc')