8个版本
使用旧的Rust 2015
0.2.8 | 2018年2月5日 |
---|---|
0.2.7 | 2017年8月12日 |
0.2.3 | 2017年3月29日 |
#4 in #gerrit
每月 29 次下载
在gerrit-rust中使用
64KB
947 行
简介
gerrit-rust
是用Rust编写的Gerrit控制台客户端。这是一个 Rust学习 项目。请对我有耐心:-)
目前已在Gerrit V02.09和V02.13上进行了测试。
贡献
常见的GitHub工作流程:Fork,Clone,Branch,Commit,Push然后Pull Request。我对每一个PR都很高兴,但我将询问关于更改的问题以从您的知识中学习。
依赖项
- 安装了在
git
二进制文件的$PATH
- 安装了下载插件的Gerrit服务器
手册 & 灵感
这里有一些设计考虑因素。实现的功能用 [x]
标记。所有其他想法都是待办事项,并用 [ ]
标记。
-
在版本1.0.0之前没有semver。
-
删除对托管的外部依赖
- git二进制文件
- 带有下载插件的Gerrit
-
管理多个仓库(如git子模块)中的主题
-
0.1.0
ggr topic forget <BRANCHNAME> [-R]
在主文件夹中删除分支,并在所有子文件夹中使用-R
。- 添加与
-R
结合使用的-s
选项,以递归删除所有没有提交且仓库干净的分支。警告不干净的仓库/分支。
- 添加与
-
0.1.8
ggr topic checkout <BRANCHNAME>
在所有仓库上检出分支。- 0.1.8 首先检查基本文件夹是否检出同步所有子模块,然后检出子文件夹上主题的更改
-
0.1.7
ggr topic pull ...
与ggr topic fetch
相同。此子功能被重命名,因为fetch
比pull
更符合git术语。 -
0.1.8
ggr topic fetch [-f] [-b branchname] <topicname>
获取主题的最新提交版本。为所有更改创建一个以补丁标识符为名称的分支,或者使用-b
和指定的分支名称。- 0.1.9 通过
--track <branch>
选项添加跟踪信息。 - 0.1.14 添加
--closed
选项以拉取已关闭(合并)的主题。 - 0.1.21 添加
-
获取主题的历史。参见topic history
。
- 0.1.9 通过
-
0.1.21
ggr topic history <topicname>
将主题内所有更改的所有版本作为标签获取。标签格式为ggr/<topicname>/<topicid>
。其中topicid
是补丁的参考编号加版本。 -
0.1.17
ggr topic reviewer [<TOPIC>] [-r <+/-MAIL>,...]
添加(+)或删除(-)审阅者(-
)。如果没有选项,我们将收到该主题上所有审阅者的列表。- 0.1.17
-
/--verbose
用于详细查看审批 - 如果没有TOPIC,它将使用基础和子模块上的实际主题(!=master)。
- 添加
--format
选项以格式化输出。使用rust变量和格式化信息,如{email}
,{email:15.2}
。
- 0.1.17
-
0.1.18
ggr topic abandon|restore [<TOPIC>]
放弃/恢复完整主题。- 如果没有TOPIC,它将使用实际主题
- 0.1.18
[-m <MESSAGE>]
向所有更改添加放弃信息 -
[-n <NONE|OWNER|REVIEWERS|ALL>]
通知一组账户关于此放弃操作或不要通知(通过NONE
)。默认是ALL
。
-
0.1.19
ggr topic verify [<TOPICNAME>] [-c <code-review>] [-l "<revie-label>"] [-m <MESSAGE>]
Gerrits 标签在服务器端可配置。通过-l
选项可以访问标签。(例如-l "Code-Review:2"
)。选项-c <VALUE>
是用于-l "Code-Review:<VALUE>"
的便捷选项。目前标签的值只能是-2/-1/0/1/2
。另外,可以在主题的所有提交上附加消息。- 0.1.21 没有选项时,打印审查过程的概述
-
-
查询更改
-
0.1.0
ggr changes query <QUERY>
向 gerrit 服务器查询搜索字符串。使用与 gerrit 网页前端相同的语法作为QUERY
。例如-
0.1.7 添加
--regexp-selector
以仅显示正则表达式选择的键。这将删除 0.1.4 中引入的 --fields 选择器。 -
0.1.6 添加
--human
选项以打印人类可读的格式。 -
0.1.4 添加
--field-list
以获取所有可选字段,可用于第二次调用时的--fields
选项。 -
0.1.4 添加
--raw
以获取原始格式的 json。可用于通过管道进行美化打印。 -
0.1.4 选项
-o
/--ofields
以获取更改的额外信息(如 REVISION 等 ...)
示例
ggr changes query status:open is:watched n:2
:查询标记为watched
的开放更改。
-
-
-
0.1.5 使用 curl-rs 作为 http 客户端
-
0.1.0 使用 TOML 格式的配置文件
.ggr.config
-
api
:带有方案的基 URL(http) -
0.1.3 用户身份验证(自 0.1.9 起已弃用)
username
:登录用户名password
:登录密码 [x] 0.1.9 仅尊重.netrc
设置的用户名和密码。配置文件中的 u/p 被忽略
-
root
:如果是所有子存储库的最高项目则为 true -
身份验证(例如:摘要、基本)
-
digest
和basic
都受支持。当前实现同时调用这两个。第一个是basic
,第二个是digest
。
-
-
考虑通过配置文件配置或把所有设置放入
.git/config
中的条目。
配置文件和git-config方法中的值相同。对于git-config,我们使用ggr-
作为前缀。 -
提供配置前端
-
ggr config set baseurl 'http://localhost'
:设置新的baseurl
-
ggr config unset -C project1 root
:从project1仓库中删除root
-
ggr config set root
:设置当前仓库的root - 0.1.0
ggr config list
:列出所有选项- ...以及设置的来源
-
ggr config generate --base <...> ...
:生成一个.ggr.config
文件
-
-
0.1.9 使用
$HOME/.netrc
文件获取用户名和密码。
-
-
添加一个
--dry-run
选项来打印我们想要执行的操作,但实际并不执行- 更改获取
- gerritapi更改放弃更改
- gerritapi创建更改
- 主题获取
- 主题放弃
- 主题检出
- 主题创建
- 主题获取
- 主题忘记
- 0.1.21 主题历史
- 主题恢复
- 主题评审者
- 主题验证
-
库功能
-
0.1.16 命令行界面需要子命令来完成低级任务 -> gerritapi
-
0.1.0 实现HTTP请求和响应的基础
-
构建一个功能完整的库以与gerrit服务器一起工作
- 访问端点
- 账户端点
- 更改端点
- 0.2.0 创建更改
- 0.2.0 查询更改
- 0.2.4 获取更改
- 0.2.4 获取更改详情
- 获取主题
- 设置主题
- 删除主题
- 放弃更改
- 0.2.2 恢复更改
- 0.2.2 变基更改
- 移动更改
- 撤销更改
- 提交更改
- 一起提交的更改
- 发布草稿更改
- 删除草稿更改
- 获取包含
- 索引更改
- 列出更改评论
- 列出更改草稿
- 检查更改
- 修复更改
- 评审者端点
- 0.2.1 列出评审者
- 建议评审者
- 0.2.1 获取评审者
- 0.2.1 添加评审者
- 0.2.1 删除评审者
- 列出投票
- 删除投票
- 修订版本端点
- 获取提交
- 获取修订版本操作
- 获取评审
- 获取相关更改
- 0.2.3 设置评审
- 变基修订版本
- 提交修订版本
- 发布草稿修订版本
- 删除草稿修订版本
- 获取补丁
- 获取可合并性
- 获取提交类型
- 测试提交类型
- 测试提交规则
- 列出修订版本草稿
- 创建草稿
- 获取草稿
- 更新草稿
- 删除草稿
- 列出修订版本评论
- 获取评论
- 列出文件
- 获取内容
- 下载内容
- 获取差异
- 获取指责
- 设置已审查
- 删除已审查
- 选择修订版本
- 配置端点
- 0.2.0 获取版本
- 获取服务器信息
- 确认电子邮件
- 列出缓存
- 缓存操作
- 获取缓存
- 刷新缓存
- 获取摘要
- 列出功能
- 列出任务
- 获取任务
- 删除任务
- 获取顶部菜单
- 获取默认用户偏好设置
- 设置默认用户偏好设置
- 获取默认差异偏好设置
- 设置默认差异偏好设置
- groups 端点
- plugins 端点
- projects 端点
-
-
已删除功能
-
创建 ggr 主题<BRANCHNAME> [-r sub:rev]
自 0.1.22 开始已删除,请使用以下代替:git submodule foreach 'git branch <topicname>; true'
旧功能
在主文件夹和指定的子文件夹中创建分支。如果存在同名分支,则不会修改。
rev
是创建分支应使用的引用,默认为orign/master
。对于基础文件夹使用-r .
。
-
-
其他想法
-
0.1.9 实现日志机制以通过日志级别开关获取调试信息
-
0.1.20
ggr changes fetch CHANGEID
获取 changeid CHANGEID 及其祖先。分支名称是 CHANGEID 名称。 -
0.1.16 进行工作以支持多个 gerrit 服务器
-
0.1.14 创建用于设置开发环境的辅助脚本
- 基于 docker 的 gerrit 服务器
找到 docker 镜像docker pull openfrontier/gerrit
- 为 gerrit 设置密码和用户名
- 自动生成 git 仓库和子模块
- 为这些仓库设置 gerrit
- 自动将 master 分支推送到 gerrit
- 基于 docker 的 gerrit 服务器
-
ggr stat[-F<日期>] [-T<数据>]
一些统计信息,如一周内或时间范围内的已打开和关闭审查。通过 iso-8601 如date -Is
。示例
ggr stat -F 1w
:从上周到现在ggr stat -F 2015-12-31 -T 2016-02-01
:从 2016年01月01日T00:00 至 2016年02月01日T23:59:59ggr stat -F 2016-01-01
:从 2016年02月01日T00:00 至现在ggr stat -T 2016-02-01
:从开始使用 gerrit 以来至 2016年02月01日T23:59:59
-
ggr topic list-s
列出所有开发分支和仓库。使用-s
包括分支中的提交,如git submodule summary
。 -
ggr topic push[-b] [<BRANCHNAME>]
将更改推送到 gerrit。不使用-b
则推送到 gerrit。使用选项-b
则推送到构建服务器。如果没有分支名称,则推送当前分支。 -
ggr topic renameOLDTOPIC TOPIC
将 OLDTOPIC 重命名为 TOPIC- 使 OLDTOPIC 可选,当前主题被重命名
-
每个提交的审查者
-
每个仓库的审查者
-
分支状态
显示分支状态(远程和本地,如git remote show ...
ggr 状态[<BRANCHNAME>]
-
支持
.repo
文件夹 -
0.1.11 文档
gerritlib::call
模块 -
0.1.5 添加 .travis.yml
-
通过 Docker 在本地主机上创建 gerrit 示例服务器
这创建了一个可通过 https://127.0.0.1:8080 连接的 Docker 容器。服务器设置为开发环境,所有账户都可以执行所有操作。它生成或使用一个包含设置、仓库和 ssh-keys 的 DOCKER-FOR-GERRIT
文件夹。
docker run --rm -it \
-h localhost
-p 8080:8080 -p 29418:29418 \
-v /development/projects/DOCKER-FOR-GERRIT:/var/gerrit/review_site \
--name gerrit \
openfrontier/gerrit:latest
有用链接
- gerrit API 文档:https://gerrit-review.googlesource.com/Documentation/rest-api.html
- 请求、响应设计来自:https://github.com/gefolderstsentry/sentry-cli
许可证
许可下
- Mozilla 公共许可证 2.0 (LICENSE-MPL-2.0 或 https://www.mozilla.org/media/MPL/2.0/index.txt)
依赖
~16–25MB
~466K SLoC