如何将git-http-backend作为http服务器打开?

问题描述 投票:1回答:2

Git official document显示了使用git服务器通过http与apache和git-http-backend的方式。 我希望通过http在我的程序中与git-http-backend直接互动。

这就像apache代理所做的那样,但我需要从git客户端控制更多的东西,例如拒绝客户端pull的用户名和存储库目录的路径。

如何直接使用git-http-backend作为http服务?

git
2个回答
0
投票

您可以在docs/git-http-backend上阅读其文档,并在http-backend.ctested here)中查看其来源。

由于它是一个Common Gateway Interface (CGI),它由一个监听器调用,如http服务器,还有任何其他监听器(!),如SSH。

请参阅Gitolite(授权层),它正是这样做的:因为它被称为git-xxx(这里:git-hhtp-backend),你可以调用:git http-backend:这就是its gitolite-shell does

由于该后端依次调用git services(git-upload-pack,git-receive-pack,objects / info / packs,...),你可以直接执行git-http-backend所做的事情。这也是gitolite implements here


1
投票

git-http-backend在文档中描述为CGI程序。由于CGI程序本身不会说HTTP,因此您必须使用CGI协议与它通信(这是一个涉及环境变量和stdin和stdout的进程间通信协议)或者将其连接到HTTP服务器(如Apache) 。

该名称可能令人困惑,但这个“HTTP后端”落后于HTTP服务器。

© www.soinside.com 2019 - 2024. All rights reserved.