使用 Bitbucket REST API 在特定提交处下载文件

Download file at specific commit with Bitbucket REST API

我们正在尝试寻找一种方法,使用 REST API 在特定的 commit 从 Bitbucket 项目下载单个文件。目前,我们可以在特定分支下载文件:

https://stash.domain.com:8443/rest/api/1.0/projects/our_project/src/main/java/com/SomeFile.java?at=refs%2Fheads%2Fmaster

请注意,URL 的末尾在解码时包含查询参数 at=refs/heads/master,它指的是 master 分支。这也适用于特定标签:

https://stash.domain.com:8443/rest/api/1.0/projects/our_project/src/main/java/com/SomeFile.java?at=refs%2Ftags%2Ftesttag1

这里查询参数at=refs/tags/testtag1指的是标签(commit)testtag1.

但由于我们实施的性质,我们希望通过 Bitbucket REST API 直接引用提交的 SHA-1 哈希。这可能吗?

显然,一个丑陋的解决方法是为每个提交添加一个标签。但这可能会使存储库膨胀,而且感觉像是不必要的 hack。

this SO question 的帮助下,我找到了一个提示我使用正确语法的答案。使用这个:

<URL>?at=commit_hash

例如:

https://stash.domain.com:8443/rest/api/1.0/projects/our_project/src/main/java/com/SomeFile.java?at=bed2dda5

这里是 table 三种主要端点类型与 Bitbucket REST API:

query parameter   | role
---------------------------------------------
refs/heads/master | specify master branch
refs/tags/someTag | specify 'someTag' tag
at=bed2dda5       | specify commit #bed2dda5