跳转到主要内容

Gerrit交互客户端库

项目描述

https://img.shields.io/pypi/v/pygerrit.png https://img.shields.io/pypi/dm/pygerrit.png https://img.shields.io/pypi/l/pygerrit.png

Pygerrit为客户端提供了通过ssh或REST API与Gerrit代码审查交互的简单接口。

先决条件

Pygerrit已在Ubuntu 10.4和Mac OSX 10.8.4上进行了测试,支持Python 2.6.x和2.7.x。对其他平台和Python版本的支持不能保证。

Pygerrit依赖于paramikorequests库。

安装

要安装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接口的更详细示例。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

pygerrit-1.0.0.tar.gz (25.5 kB 查看哈希值)

上传时间 源代码

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面