เช่นเดียวกับการเยี่ยมชมคำถามนี้มากที่สุดฉันรู้สึกผิดหวังอย่างมากกับการหาวิธีดาวน์โหลดเวอร์ชันล่าสุดหรือ repo ใน Github โดยอัตโนมัติ ประโยชน์ของการแก้ปัญหานี้ก็คือว่าคุณไม่ได้มีการระบุการปล่อยหรือแท็กหมายเลขมันก็จะคว้าล่าสุด
ฉันทำการทดสอบโดยใช้ผู้ใช้ Github และ repo ต่อไปนี้:
" f1linux " = ผู้ใช้ Github
" pi-ap " = Repo
ชื่อไดเร็กทอรีที่กำหนดเองที่ repo ถูกบันทึกไว้ถูกตั้งค่าใน:
--one-top-level="pi-ap"
โดยตรง:
การใช้เครื่องมือ " นักพัฒนาเว็บ " ของ Firefox (แถบ 3 แถบที่มุมขวาบน) ในส่วน " เครือข่าย " ที่ฉันพบว่าhttps://api.github.com
กำลังเปลี่ยนเส้นทางไปhttps://codeload.github.com
ดังนั้นการวางท่อcurl
ไปที่tar
ฉันจึงสามารถคว้า repo เวอร์ชันล่าสุดและบันทึกเป็นชื่อที่คาดเดาได้ดังนั้น สามารถใช้งานได้บน:
curl https://codeload.github.com/f1linux/pi-ap/legacy.tar.gz/master | tar xzvf - --one-top-level="pi-ap" --strip-components 1
ทางอ้อม:
หลังจากที่ฉันประสบความสำเร็จในการดาวน์โหลดเวอร์ชันล่าสุดโดยอัตโนมัติโดยใช้DIRECT URL ฉันก็หันมาสนใจการเปลี่ยนเส้นทางของ Github:
curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1
วิธีที่ต้องการ:
อย่างไรก็ตามโปรดทราบตามความคิดเห็นของ Von ด้านล่างว่าINDIRECTเป็นวิธีที่ต้องการ
การตรวจสอบเพิ่มเติม:
เพื่อให้แน่ใจว่าผลลัพธ์ของฉันสามารถทำซ้ำได้กับ Github repos เวอร์ชันอื่นการทดสอบเดียวกันนี้ได้ดำเนินการสำเร็จแล้วสำหรับdoctl
ชุดเครื่องมือ API ของ Digital Ocean (ซึ่งเป็นสิ่งที่เริ่มต้นการออกกำลังกายทั้งหมดจริง!):
ทั้งDIRECTและINDIRECTโดยใช้รูปแบบเดียวกับด้านบนเพียงแค่เปลี่ยนชื่อผู้ใช้และ repo:
โดยตรง:
curl https://codeload.github.com/digitalocean/doctl/legacy.tar.gz/master | tar xzvf - --one-top-level="doctl" --strip-components 1
ทางอ้อม:
curl -L https://api.github.com/repos/digitalocean/doctl/tarball | tar xzvf - --one-top-level="doctl" --strip-components 1