[英]Using git cli, how can I get the date and time of the latest commit of a repository that I have access to but have not cloned?
[英]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.