Gerrit / NoteDB用户管理

时间:2018-11-30 12:00:31

标签: gerrit

我正在切换用于验证对Gerrit的访问权限的LDAP后端。

当用户通过LDAP登录时,将在Gerrit中创建一个本地帐户。我们正在运行Gerrit 2.15版本,因此我们的本地用户帐户已从SQL DB迁移到NoteDB。

我们基础架构的变化意味着,一旦切换了LDAP后端,用户登录将以Gerrit的身份出现在Gerrit上,因此将生成一个新的本地帐户。因此,在迁移前后,我们将需要对现有本地帐户执行许多管理任务。

REST API公开了我们需要的一些功能,但是似乎缺少了两个关键要素:

  • 似乎没有办法通过API检索所有本地帐户的列表(这样我就可以遍历执行我需要完成的管理任务)。 / accounts /端点坚持要指定查询过滤器,该查询过滤器似乎没有包括简单指定“ all”或“ *”的方法。相反,我不得不尝试考虑一个可以可靠地返回所有帐户的搜索过滤器-我还没有成功。
  • 似乎无法删除帐户。迁移完成后,我需要删除旧帐户,但是该API或任何其他删除旧帐户的方法均未记录任何文件。

有人找到了可以共享的其中一项任务的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我得出的结论是我的问题的答案是:

(以下示例中的“ / a /”正在访问管理端点,因此需要基本Auth且用户具有适当的权限)

检索所有帐户

无法在单个查询中执行此操作,但是要结合以下结果:

GET /a/accounts?q=is:active&n=<number larger than the number of users>
GET /a/accounts?q=is:inactive&n=<number larger than the number of users>

将有效地提供相同的东西。

删除帐户

似乎根本不支持此功能。唯一的选择似乎是将帐户设置为无效:

DELETE /a/accounts/<account_id>/active