【问题标题】:How can I determine the closest tag to a given commit using bitbucket rest API?如何使用 bitbucket rest API 确定与给定提交最接近的标签?
【发布时间】:2018-10-27 02:25:41
【问题描述】:

我想获取自上次发布以来的提交列表,但由于我有很多 git 存储库要检查,我想通过 bitbucket rest API 来完成它,而不是克隆我想要的每个 git 存储库测试。

如果我确实有克隆,我的问题很简单:

#!/bin/bash

git tag | grep '<release-tag-regexp>' | sort <in-descending-order>' \
  | while read tag
    do
      tag_sha1="$(git rev-parse "$tag^{commit}")"
      ancestor="$(git merge-base HEAD $tag)"
      if [ $ancestor = $tag_sha1 ]
      then
        echo "Closest release tag is: $tag"
        exit 1
      fi
    done

 if [ $? -eq 0 ]
 then
   echo "No release tag found which is an ancestor of HEAD"
 fi

我希望 bitbucket 对此查询有一个休息电话。看起来,我似乎别无选择,只能使用提交日志和标签列表,自己构建一个映射。

【问题讨论】:

  • 您使用的是 bitbucket.org 还是 Bitbucket Server?
  • 内部部署 - 所以我猜它是 bitbucket 服务器

标签: bitbucket bitbucket-server


【解决方案1】:

您无法通过 REST API 获得与给定提交最接近的标签。但是,如果您已经有了标签,那么您可以通过使用 commits REST API 并通过 sinceuntil 查询参数来获取两个标签之间的提交列表。

【讨论】:

  • 我将不得不尝试它是否在拓扑上做正确的事情,即它是否等同于git log since..until - 但即使这样做,它真的无助于得到我想要的东西:即给定任何随机分支,告诉我自该分支(或其父级)的最后一次发布以来发生了什么变化......
猜你喜欢
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 2010-11-27
  • 2021-07-19
相关资源
最近更新 更多