Git 从Python应用程序的Gerrit存储库中检索标记列表
我有一个Python应用程序,它需要从Gerrit上托管的git存储库中检索所有标记的列表。存储库中的源代码不应该是全世界可读的,但是标记很好。如果用户只能读取特定存储库的标记,那么在Python应用程序中嵌入用户的凭据也是可以的 我们使用公钥身份验证通过ssh访问git 该应用程序由PyInstaller打包,需要在Linux和Windows上运行 到目前为止,我考虑的是:Git 从Python应用程序的Gerrit存储库中检索标记列表,git,python-2.7,gerrit,Git,Python 2.7,Gerrit,我有一个Python应用程序,它需要从Gerrit上托管的git存储库中检索所有标记的列表。存储库中的源代码不应该是全世界可读的,但是标记很好。如果用户只能读取特定存储库的标记,那么在Python应用程序中嵌入用户的凭据也是可以的 我们使用公钥身份验证通过ssh访问git 该应用程序由PyInstaller打包,需要在Linux和Windows上运行 到目前为止,我考虑的是: 可通过Gerrit解析gitweb 这是在我们切换到Gerrit之前实现的。 然而,访问gitweb允许用户阅读的不仅仅
gitlsremote
然而,我看到的pythongit库依赖于本机git命令行工具,我不想将其与应用程序捆绑在一起。(另一个原因是很难独立完成平台开发。)如果git是通过HTTP(S)提供的,那么您可以使用一个简单的请求来获取可用的ref。Git源代码中记录了这些协议。我不确定是否有直接从远程检索标签的API。但是您可以通过本地克隆repo来实现这一点。Git是通过什么协议提供的?SSH、HTTP(S)还是本机Git协议?Gerrit支持通过HTTP向特定用户提供Git服务。我将研究你的第二个建议。我最终使用了urllib2并自己解析GitHTTP协议,这在本例中相当容易。下一个问题是,Gerrit现在不允许限制用户只读取标记……事实上,您不可能拥有一个仍然公开所有标记的读取受限git。此外,Gerrit会隐藏标记,除非您对至少一个可以到达该标记的分支具有读取权限。