Git 使用BitBucket中的RESTAPI获取最新的10个分支或所有分支
我正在使用Git 使用BitBucket中的RESTAPI获取最新的10个分支或所有分支,git,rest,bitbucket,branch,Git,Rest,Bitbucket,Branch,我正在使用BitBucketRESTAPI获取分支。现在正在发生的是,它正在返回10个分支,但它们不是最新的,它们是混合的。我正在使用软件包进行请求。这就是我的代码的样子: $branchesObject = new Branches(); $branchesObject->getClient()->setApiVersion('2.0')->addListener(new OAuthListener($this->oauthParams)); $contentJson
BitBucket
RESTAPI获取分支
。现在正在发生的是,它正在返回10个分支,但它们不是最新的,它们是混合的。我正在使用软件包进行请求。这就是我的代码的样子:
$branchesObject = new Branches();
$branchesObject->getClient()->setApiVersion('2.0')->addListener(new OAuthListener($this->oauthParams));
$contentJson = $branchesObject->all('<account>', '<repo>')->getContent();
$contentArray = json_decode($contentJson, true);
$branches = array_column($contentArray['values'], 'name');
array:10 [
0 => "branch1"
1 => "branch2"
2 => "branch3"
3 => "branch4"
4 => "branch5"
5 => "branch6"
6 => "branch7"
7 => "branch8"
8 => "branch9"
9 => "branch10"
]
这些不是最近的10家分支机构。Api版本为
2.0
。我是否可以获取最新的10个分支或所有活动分支?简而言之,似乎没有任何直接的方法来获取特定数据(最新分支)
自己做吧
首先要考虑的是这种类型的数据是否能够被提取出来
在git
中,分支只是指向存储库中提交的标签。在git
行话中,它是ref
,与tag
s一样。分支
在某些方面不同于标记
,其中之一是只要所述分支被签出(您在该分支上),分支总是被更新以指向最新提交
分支本身只是提交散列,没有任何其他属性,例如创建日期或上次更新的时间。要查看这一点,请尝试从repo浏览.git
文件系统目录中的文件;它们在/git/refs/heads/
中
尽管如此,还是有一些方法可以猜测分支是在什么时候创建的,如中所述,但这超出了Bitbucket公共API的范围
通过API实现
我建议您使用curl
或Postman进行一些直接的API查询,以便了解哪些数据可用。查看实际的API,而不是您正在使用的包装器,似乎您正在使用的端点是。这似乎会返回所有活动分支,每页10个结果,按照git
本身返回它们的顺序,并且没有任何明显的方式请求排序集。要分解它,有
- 活动分支-看起来像是与所需数据的匹配李>
- 每页10个-这意味着你将不得不提出更多的要求,直到你得到他们全部;在响应体中应该有一个
属性',保存下一组结果的URL李>next
- API没有明显的方法对它们进行排序-这意味着您需要在您的终端上进行一些处理。一旦你得到了数据,你可以更深入地挖掘并找到日期,然后根据需要对它们进行排序
{“branch1”:“1590406741”,“branch2”:“1590406441”}
总而言之,有一些方法可以实现这一点,但您需要进行一些额外的编码。您如何定义最新的分支?按日期?凭承诺?