Github 和私人频道

Github 和私人频道

我尝试执行这个 bash 命令:

verweb=`sudo wget -q -O- 'https://github.com/Kitware/CMake/releases/latest' | grep -o 'https[^\"]*' | grep tag | grep -o -P '(?<=tag/v).*(?=&quot;,)' | uniq` ; echo $verweb

并且输出是正确的:3.23.4

但是当我执行此命令时没有输出:

url=`sudo wget -q -O- 'https://github.com/meetfranz/franz/releases/latest' | grep -o 'meetfranz[^\"]*' | grep amd64.deb | head -1` ; echo $url

这是因为 github 频道有私人资产,你能帮我解决这个问题吗?我知道有一些 API 可以解决这个问题,但我不知道如何使用它:

https://github.com/wyozi/download-gh-release-asset/blob/master/download-asset

https://gist.github.com/maxim/6e15aa45ba010ab030c4#file-gh-dl-release

谢谢

答案1

我认为这与“私人频道”(无论它是什么)无关。我认为只是这个项目每个版本都有许多工件,所以有时它不会将所有版本内联到 HTML 响应中,而是通过另一个请求延迟加载发布工件列表。

如果您尝试获取最新版本,可以使用以下命令:

gh release view -R meetfranz/franz --json name -q .name
5.9.2

或者使用 curl + jq:

curl -sSH "Accept: application/json" \
    -L https://github.com/meetfranz/franz/releases/latest \
  | jq -r .tag_name \
  | tail -c '+2'
5.9.2

或者,如果您想要获取与最新版本相关的 amd64 deb 的下载 URL:

gh release view \
  -R meetfranz/franz \
  --json assets \
  -q '.assets[] | select( .url | contains("amd64.deb") ) | .url'
https://github.com/meetfranz/franz/releases/download/v5.9.2/franz_5.9.2_amd64.deb

相关内容