如何使用git CLI获取最新版本
我想使用gitHub的“发布”功能告诉我的生产服务器何时应该从gitHub更新其代码库。如何使用git CLI获取最新版本,git,bash,github,command-line-interface,Git,Bash,Github,Command Line Interface,我想使用gitHub的“发布”功能告诉我的生产服务器何时应该从gitHub更新其代码库。 我不想让它抓住每一个推,但只是当一个新的版本正在创建 我的计划是创建一个bash脚本,该脚本将每10-15分钟检查一次是否有新版本,如果发现新版本,它将执行pull请求或下载最新版本的zip文件,部署新代码并重新启动节点服务 但我还停留在第一步,这就是我如何知道是否有一个新的版本 非常感谢您提供的任何帮助/指导。正如我在“”中提到的,您有一个专门用于获取最新版本的API GET /repos/:owner/
我不想让它抓住每一个推,但只是当一个新的版本正在创建 我的计划是创建一个bash脚本,该脚本将每10-15分钟检查一次是否有新版本,如果发现新版本,它将执行pull请求或下载最新版本的zip文件,部署新代码并重新启动节点服务 但我还停留在第一步,这就是我如何知道是否有一个新的版本 非常感谢您提供的任何帮助/指导。正如我在“”中提到的,您有一个专门用于获取最新版本的API
GET /repos/:owner/:repo/releases/latest
您可以将其(与和)用于私人回购
如果缓存最新版本,则可以在每次新的最新版本与缓存的版本不同时触发进程。使用bash并借助curl,您可以使用此长的一行程序从公共存储库获取最新版本:
git clone -b $(basename $(curl -Ls -o /dev/null -w %{url_effective} https://github.com/OWNER/PROJECT/releases/latest)) https://github.com/OWNER/PROJECT.git
bash函数如下所示:
gh-clone-latest() {
local owner=$1 project=$2
local output_directory=${3:-$owner-$project-release}
local release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$owner/$project/releases/latest)
local release_tag=$(basename $release_url)
git clone -b $release_tag -- https://github.com/$owner/$project.git $output_directory
}
将其减少为gh克隆最新所有者项目
对于一个私有项目,您需要正确地进行身份验证和作用域,如另一个答案中所述。我忘记提到的一件重要事情是,它是一个私有GitHub。