Gerrit交互客户端库
项目描述
Pygerrit为客户端提供了通过ssh或REST API与Gerrit代码审查交互的简单接口。
先决条件
Pygerrit已在Ubuntu 10.4和Mac OSX 10.8.4上进行了测试,支持Python 2.6.x和2.7.x。对其他平台和Python版本的支持不能保证。
安装
要安装pygerrit,只需
$ pip install pygerrit
配置
为了更容易通过ssh连接到审查服务器,可以在用户的.ssh/config文件中提供ssh连接参数(主机名、端口、用户名)。
Host review HostName review.example.net Port 29418 User username
为了更容易通过REST API连接到审查服务器,可以在用户的.netrc文件中提供用户的HTTP用户名和密码。
machine review login MyUsername password MyPassword
有关获取HTTP密码的说明,请参阅Gerrit的HTTP上传设置文档。
SSH接口
可以使用SSH接口在Gerrit服务器上运行命令。
>>> from pygerrit.ssh import GerritSSHClient >>> client = GerritSSHClient("review") >>> result = client.run_gerrit_command("version") >>> result <GerritSSHCommandResult [version]> >>> result.stdout <paramiko.ChannelFile from <paramiko.Channel 2 (closed) -> <paramiko.Transport at 0xd2387d90L (cipher aes128-cbc, 128 bits) (active; 0 open channel(s))>>> >>> result.stdout.read() 'gerrit version 2.6.1\n' >>>
事件流
Gerrit提供了一个通过ssh运行的stream-events命令,它返回JSON文本形式的流事件(新更改上传、更改合并、评论添加等)。
本库处理从事件流中解析JSON文本,将数据封装在事件对象(Python类)中,并允许客户端从队列中获取它们。它还允许用户轻松添加自定义事件类型的处理,例如,如果他们运行的是定制化的Gerrit安装,并且使用非标准事件。
>>> from pygerrit.client import GerritClient >>> client = GerritClient("review") >>> client.gerrit_version() '2.6.1' >>> client.start_event_stream() >>> client.get_event() <CommentAddedEvent>: <Change 12345, platform/packages/apps/Example, master> <Patchset 1, 5c4b2f76297f04fbab77eb8c3462e087bc4b6f90> <Account Bob Example (bob.example@example.com)> >>> client.get_event() <CommentAddedEvent>: <Change 67890, platform/frameworks/example, master> <Patchset 2, c7d4f9956c80b1df66a66d66dea3960e71de4910> <Account John Example (john.example@example.com)> >>> client.stop_event_stream() >>>
请参阅示例脚本以获取SSH事件流接口的更详细示例。
REST API
此简单示例展示了如何通过使用显式提供的用户名和密码,通过HTTP摘要认证对Gerrit进行身份验证来获取用户的开放更改。
>>> from requests.auth import HTTPDigestAuth >>> from pygerrit.rest import GerritRestAPI >>> auth = HTTPDigestAuth('username', 'password') >>> rest = GerritRestAPI(url='http://review.example.net', auth=auth) >>> changes = rest.get("/changes/?q=owner:self%20status:open")
请参阅rest_example脚本以获取REST API接口的更详细示例。
版权和许可
版权所有 2011 索尼爱立信移动通信。保留所有权利。
版权所有 2012 索尼移动通信。保留所有权利。
许可协议为MIT许可。请参阅LICENSE文件以获取完整的许可详情。
项目详情
关闭
pygerrit-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9f206b64423fb3dccc7cdef1f27713b843349ce601638066cb5a9c4a07f40389 |
|
MD5 | 7a1fb8842fcab106e93bf563ccd351fb |
|
BLAKE2b-256 | 049bfd6b6169c59b2e5d19a5b50b0d9ab18ffd3126726e4a2dd9f0dcfd7ca2e6 |