如何获得github repo-bash的最新预发布版本
要获得最新版本,我可以运行:如何获得github repo-bash的最新预发布版本,bash,github,jq,Bash,Github,Jq,要获得最新版本,我可以运行: curl --silent "https://api.github.com/repos/maxisme/notifi/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' 但是我想要最新的发布标签,它是草稿/预发布的?我们可以通过以下途径获得: 使用Json工具,如我们可以轻松过滤所有对象,只显示prerelea
curl --silent "https://api.github.com/repos/maxisme/notifi/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'
但是我想要最新的发布标签,它是草稿/预发布的?我们可以通过以下途径获得: 使用Json工具,如我们可以轻松过滤所有对象,只显示prerelease:true的对象,然后提取最新版本的标记名称,如下所示:
jq -r 'map(select(.prerelease)) | first | .tag_name'
其中:
select.prerelease筛选器指向prerelease:true的项目
首先获取发布数组中的第一个对象
.tag_name显示tag_name键的值
将其与bash one liner相结合:
jq-r'mapselect.prerelease | first | tag _name'因此您要处理的输出应该是:refs/tags/0.9.9?从curl返回的输出,因此使用jq解析json@0stone0理想情况下为0.9.9,但如果最新值不是预发行版,它将返回.Ahh,因为JSON中有一个prelease:true/false,我们可以使用jq对这些进行过滤,以获得所需的输出,请参阅我的编辑
jq -r 'map(select(.prerelease)) | first | .tag_name'
map(select(.prerelease)) | first | .tag_name // "Not found"