【问题标题】:Gerrit Get Content REST API returns 404 (Not Found)Gerrit 获取内容 REST API 返回 404(未找到)
【发布时间】:2018-01-08 11:44:44
【问题描述】:

我正在尝试使用以下 Gerrrit REST API 获取文件的内容。

获取内容

'获取 /projects/{project-name}/branches/{branch-id}/files/{file-id}/content'

从某个分支的 HEAD 版本中获取文件的内容。

总是返回404 not found

有人试过这个,请帮帮我。

或任何其他方式通过 REST API 从 gerrit 项目下载最新文件。 要求是需要根据项目名称和分支下载文件。

提前致谢。

【问题讨论】:

  • 端点对我来说工作得很好......你能发布你正在执行的真实命令吗?
  • 对不起,我不能分享确切的 url(私人项目),但我使用的类似如下。 gerritprojecturl/a/projects/project_name/branches/refs%2Fheads%2Fbranchname/files/subfolder1%2Ffilename.js/content 谢谢。
  • 您使用pygerrit2 还是curl?使用curl,就像curl --digest --user <user>:<httpassword> <url>/a/<api> 用于GET 请求。
  • 我正在使用 Python 请求库进行 REST API 调用。它适用于其他请求而不是获取内容。
  • 抱歉回复晚了。就我而言,我正在尝试不支持此端点的 Gerrit 的旧版本。使用更高的 gerrit 版本,此 API 端点可以正常工作。

标签: git rest gerrit


【解决方案1】:

您不需要在分支名称中添加“refs/heads/”前缀。

变化:

gerritprojecturl/a/projects/project_name/branches/refs%2Fhea‌​ds%2Fbranchname/file‌​s/subfolder1%2Ffilen‌​ame.js/content

收件人:

gerritprojecturl/a/projects/project_name/branches/branchname/file‌​s/subfolder1%2Ffilen‌​ame.js/content

【讨论】:

  • 我试过没有“refs/heads/”,那也行不通。
  • 您是否成功地尝试过另一个更简单的端点来验证流程?例如:gerritprojecturl/a/projects/?d 获取所有 Gerrit 项目。项目名称、分支名称或子文件夹是否有需要转义的字符?
  • 是的,我已经尝试了 gerritprojecturl/a/projects/project_name/branches/branchname 并且它提供了所有分支,但是当我添加文件时它给出 404。
  • 所以“subfolder1%2Ffilename.js”有问题...你能发布真正的价值吗?
猜你喜欢
  • 2021-01-21
  • 1970-01-01
  • 2014-05-07
  • 1970-01-01
  • 2021-03-31
  • 2016-12-20
  • 2018-09-26
  • 2023-03-06
  • 1970-01-01
相关资源
最近更新 更多