要在另一个外部脚本中使用,我们需要托管在 git 存储库服务器中的存储库列表。我们还在服务器上启用了 GitWeb。
有人知道 GitWeb 是否公开了一些 API,我们可以通过这些 API 获取存储库列表?像 GitBlit RPC(http://gitblit.com/rpc.html像https://your.glitblit.url/rpc?req=LIST_REPOSITORIES)?
谢谢。
要在另一个外部脚本中使用,我们需要托管在 git 存储库服务器中的存储库列表。我们还在服务器上启用了 GitWeb。
有人知道 GitWeb 是否公开了一些 API,我们可以通过这些 API 获取存储库列表?像 GitBlit RPC(http://gitblit.com/rpc.html像https://your.glitblit.url/rpc?req=LIST_REPOSITORIES)?
谢谢。
不,从我所看到的gitweb.cgi
(from gitweb/gitweb.perl
) 实现来看,没有带有 JSON 返回消息的 RPC API。
这仅通过网页可见。
在右下角有一个小按钮,上面写着:TXT 你可以在那里获取项目列表,例如:
对于源件,gitweb 页面:https ://sourceware.org/git/
TXT 按钮链接在这里:https ://sourceware.org/git/?a=project_index
它应该返回一个项目列表,这些项目基本上是
<name of the git repository> <owner>
纯文本,完全可以通过脚本解析。
但是如果你想要 JSON,你必须用这样的东西来转换它:
$ wget -q -O- "https://sourceware.org/git/?a=project_index" \
| jq -R -n '[ inputs | split(" ")[0:2] | {"project": .[0], "owner": .[1]} ]'