我已经搜索过JGIT Api,EGIT Doc,kohsuke git api doc
请有人可以指导我吗?
[我还想到了一种解决方法,可以通过sha1哈希(40个字符)来获取标签,方法是通过编程运行git命令,如另一篇SO文章所述。至少有上述api允许运行git命令吗?
您可以尝试使用GitHub API for commits将该哈希与已知标记进行比较。
我在“ GitHub API: Tag a commit belongs to ( parallel for git describe --tag <sha>
)”中建议。我没有看到更直接的API。
通常,您要在此执行的操作等同于所讨论的遥控器上的git describe --tag <sha>
,然后根据引用查找名称。请注意,可能有多个引用具有相同的散列,因此您需要采用某种方法来确定要使用的引用。哈希也可能不指向任何引用,并且如果您想要类似git ls-remote
的内容作为响应,则需要克隆存储库。
看起来JGit显然没有为此提供选项,但是它确实具有针对协议v2的LsRefsV2 API操作,这可能满足您的需求。您可以在首选API中搜索master~2
等效项,然后可能会在其中找到一些帮助。