首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rest从BitBucket获取最新的10个分支或所有分支

使用Rest从BitBucket获取最新的10个分支或所有分支
EN

Stack Overflow用户
提问于 2020-05-06 06:49:56
回答 1查看 1.1K关注 0票数 3

我正在使用BitBucket Rest来获取branches。现在发生的事情是,它正在返回10个分支,但它们不是最新的,它们是混合的。我正在使用轻柔/bitbucket-api包来发出请求。这就是我的代码的样子:

代码语言:javascript
复制
$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');

如果我是dd($branches),这就是输出的样子:

代码语言:javascript
复制
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个分支或所有活跃的分支?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 11:42:13

简而言之,似乎没有任何简单的方法来获取特定的数据(最新的分支)。

你自己去做

首先要考虑的是,这种类型的数据是否可以被提取。

git中,分支只是指向存储库中提交的标签。在git语言中,它是reftags也是。branch在某些方面不同于tag,一种是分支总是被更新以指向最近的提交,只要该分支被签出(您在那个分支上)。

分支本身仅为提交散列,不具有任何其他属性,如创建日期或上次更新的时间。要查看这一点,请尝试从repo中查看.git文件系统目录中的文件;它们位于./git/refs/heads/中。

尽管如此,还是有一些猜测分支第一次创建的方式,比如在如何确定何时创建Git分支?中解释,但这不在Bitbucket的公共API的范围之内。

通过API来完成它

我建议您使用curl或Postman进行一些直接的API查询,以便了解可用的数据。查看实际的API,而不是正在使用的包装器,您使用的端点似乎是/{workspace}/{repo_slug}/refs/branches/。这似乎会按照git本身返回它们的顺序返回所有活动分支,每个页面有10个结果,并且没有任何明显的请求排序集的方法。要想把它分解,

  • 活动分支-似乎与您想要的数据匹配;
  • 每页10个--这意味着在得到所有请求之前,您必须提出更多的请求;在响应正文中,应该有一个next属性,保存下一组结果的URL;
  • API没有明显的方法对它们进行排序--这意味着您需要在您的端进行一些处理。一旦你得到数据,你可以深入挖掘,找出日期,然后根据你的需要对它们进行排序。

另一种方式

前一种方法将在每次运行程序时进行查询。如果您需要更接近实时的内容,可以设置一个web钩子,以便在每次提交时触发。Web钩子只是在请求URL时运行的程序,您可以将其连接到其他系统触发事件。一旦提交被推送,就会使用提交信息(例如日期、分支)调用web钩子。然后你可以把它们存储起来,比如{ "branch1": "1590406741", "branch2": "1590406441"}

Bitbucket网络钩子

总之,有一些方法可以实现这一点,但您需要做一些额外的编码来完成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61629031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档