【问题标题】:How to find whether a GitHub release tag is pre-release in git?如何在 git 中查找 GitHub 发布标签是否是预发布的?
【发布时间】:2016-11-18 11:20:55
【问题描述】:

在 github 中创建版本时,我已选中预发布复选框。所以在发布页面中,这个标签被标记为预发布。 (带有红色标签)

现在我正在检查本地 a 的版本

git fetch upstream
git checkout -b release-v1.0 release-v1.0

现在我想知道该版本是否是本地计算机中的预发布版本。 有执行此操作的命令吗?

【问题讨论】:

标签: git github release


【解决方案1】:

GitHub 发布是 git 标签之上的一项附加功能。与 Pull Request、Issue 和 Forks 相同,git 中没有这样的概念。

当您创建一个发布时,将创建一个具有相同名称的新 git 标签。但是所有的属性都像

  • 版本名称
  • 说明
  • 预发布状态

附加到版本,而不是标签。

您可以投票GitHub API 以获取更多信息:

GET /repos/:owner/:repo/releases/:id

{
 ...
  "prerelease": false
}

您可以使用命令行包装器 hub https://github.com/github/hub 为您隐藏 http 调用。

hub release show 这样的一些命令应该适合你。

【讨论】:

  • 除了直接访问api之外,在我的本地分支中我可以引用任何变量或其他东西吗?
【解决方案2】:

以防万一您达到速率限制(我在一家大型软件商店工作),因此几乎不可能使用 API 请求(未经授权)。我的目标是检查是否将最后一个稳定版本放入我们的 ci/cd 管道。

function get_recent_stable_relese(){
    URL=$(curl -Ls -o /dev/null -w %{url_effective} $1)
    VERSION=$(basename ${URL})
    if [[ -z $VERSION ]]; then
        exit 1;
    fi
    echo $VERSION
    exit 0;
}

BOX_LATEST_RELEASE=http://github.com/box/box-content-preview/releases/latest
echo $(get_recent_stable_relese ${BOX_LATEST_RELEASE})

所以latest 成为最后一个发布版本,您可以使用它来签出代码。

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 1970-01-01
    • 2022-08-16
    • 2015-04-14
    • 2021-01-04
    • 2021-08-08
    • 1970-01-01
    • 2020-07-12
    • 2013-03-29
    相关资源
    最近更新 更多