根据Gerrit API的官方doc,如果您有特定的提交ID,则应该按项目访问提交。
使用pygerrit
的示例:
rest.get(r'/projects/psydev-lis/commits/dab837369ab0623f5869f500c199a23fd3249b82')
问题在于我的任务是完成所有提交的提交并将它们上传到数据库中,以便跟踪它们。我们在任何地方都没有包含所有提交ID的数据库供我查询和迭代。有没有人有Gerrit的经验,可以帮我找出批量加载所有提交数据的最佳方法?
我遇到的另一个问题是,由于API限制,我一次只能进行500次更改,并且无法跟踪何时看到所有这些更改。
答案 0 :(得分:0)
我对gerrit了解不多,但你不应该做一个正常的git克隆并从那里获取提交信息(git log)吗?
答案 1 :(得分:0)
我自己没有使用pygerrit,但我使用了Java equivalent version,它允许您以这种方式查询Gerrit项目的500个更改(提交):
GerritRestApi.changes().query(serverURL + "project:projectName+branch:master+status:merged").get();
如果添加标记& S = x,其中x是您要开始查看的提交数的偏移量,如果您知道提交的总数,则可以遍历整个提交列表这个项目 例如,如果Gerrit项目中总共有5000次提交:
int offset = 4500;
List<ChangeInfo> list = new ArrayList<>();
while(offset >= 0){
//Gets 500 commits from the offset and adds it to a list
list.addAll(GerritRestApi.changes().query(serverURL + "project:projectName&S=" + offset).get());
offset -= 500;
}
请记住,这是上面链接中的Java客户端实现,并不完全是语法正确的。但这可能有助于您了解如何遍历提交。