簡體   English   中英

如何使用 git CLI 獲取最新版本

[英]how can I use git CLI to get the latest release

我想使用 gitHub 的“發布”功能來告訴我的生產服務器何時應該從 GitHub 更新其代碼庫。
我不希望它在每次推送時抓取,而是在創建新版本時抓取。

我的計划是創建一個 bash 腳本,每 10-15 分鍾檢查一次是否有新版本,如果發現新版本,它將執行拉取請求或下載最新版本的 zip 文件,部署新代碼並重新啟動節點服務。

但是我堅持第一步,這就是我如何確定是否有新版本。

任何幫助/指針或方向將不勝感激。

正如我在“ GitHub最新版本 ”中提到的,您有一個專門用於獲取最新版本的API。

GET /repos/:owner/:repo/releases/latest

您可以將它(具有適當的身份驗證正確的范圍 )用於私人倉庫。

如果您緩存最新版本,則每次新的最新版本與您緩存的版本不同時,都可以觸發您的過程。

在curl的幫助下使用bash,您可以使用這個long one-liner從公共存儲庫獲取最新版本:

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-clone-latest Owner Project

對於私有項目,您需要正確地進行身份驗證和范圍,如另一個答案中所述。

CLI gh release list命令可以顯示發布日期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM