命令行:在 RhodeCode 中的现有回购组内创建新的存储库(组)/一个存储库(项目)(使用 Hg Mercurial)

Command line: Create new repository(group) / a repository(project) inside an existing repo group in RhodeCode (uses Hg Mercurial)

我正在寻找一种使用命令行方式(而不是使用基于 RhodeCode 浏览器的 GUI 单击)在 RhodeCode 中创建新存储库 "newrepo" 和新项目 "newproject" 的方法。

RhodeCode 版本是 2.2.5,它得到了所有 repositories/projects(在我们从 Hg Mercurial 迁移到 RhodeCode 接口之后)。一切都适用于迁移的项目,或者如果我使用 RhodeCode GUI 界面在现有存储库中手动创建一个新的 repository/project。

现在,我想使用命令行 CLI/API 方式创建一个新的存储库/项目,以便我可以自动化 repository/project 创建过程(来自 Jenkins)。

我搜索了一下,发现我必须使用以下 link 但找不到关于如何实际 运行 的简单示例:https://docs.rhodecode.com/RhodeCode-Enterprise/api/api.html#create-repo

你们中有人尝试过使用 Shell 脚本或 groovy 等在 RhodeCode 中创建新的存储库吗?谢谢

PS:我不是在寻找创建新的 Hg/Mercurial 存储库(hg init,然后是 hg push / hg pull 等)。

我正在尝试的自动化可以做到这一点:

  1. 创建一个新的存储库/项目或一个新的存储库组,然后在其中创建存储库。可能授予对一组 users/groups 的一些访问权限或创建一个等。同时自动创建一个空的 README / DELETE_ME_ANYTIME 文件。

  2. 以上创建完成后,我将在我的机器上本地创建一个项目结构并对上面提到的新创建的[=执行hg push 77=] 或 repositorygroup/repository 无论你怎么称呼它。

    hg 克隆 http://e100020@servermerc.hola.company.com:8010/newrepo/newproject

    hg add README # 添加第一个文件

    hg commit -m "Initial" # 提交消息

    hg push # 推送更改

  3. 自动创建 Jenkins 构建/等作业并自动启动第一个构建并完成它。

我知道如何自动执行项目符号 2、3(使用模板作业格式等,在 Jenkins 和 运行ning Maven/Gradle build 中构建项目)但是第一个项目符号是我'我正在尝试查找,如何在命令行中执行?

对于项目符号 1:我找到了这个。

rhodecode-api

RhodeCode API 可让您连接到 RhodeCode Enterprise 并执行管理任务,有关 API 的更多信息,请参阅 API 文档。要在命令行上传递参数,请使用 method:option 语法。

用法示例:

# Run the get_repos API call and sample output
$ rhodecode-api --instance-name=enterprise-1 create_repo repo_name:brand-new repo_type:hg description:repo-desc
{
  "error": null,
  "id": 1110,
  "result": {
    "msg": "Created new repository `brand-new`",
    "success": true,
    "task": null
  }
}

您使用我们的 api 助手的解决方案是最好的。我还建议对 jenkins API 调用以及推送操作使用 auth-tokens。通过这种方式,您可以更好地控制凭据,并且可以轻松撤销授权令牌。它们的工作方式与谷歌应用程序专用密码类似。