Podobnie jak większość osób odwiedzających to pytanie, byłem absolutnie sfrustrowany znalezieniem sposobu na pełne zautomatyzowanie pobierania najnowszej wersji wydania lub repozytorium w Github. Zaletą tego rozwiązania jest to, że nie musisz określać żadnego wydania ani numeru tagu - po prostu pobierze NAJNOWSZE .
Przeprowadziłem testy przy użyciu następującego użytkownika i repozytorium Github:
" f1linux " = Użytkownik Github
" pi-ap " = Repozytorium
Dowolna nazwa katalogu, w którym repozytorium jest zapisywane, jest ustawiana w:
--one-top-level="pi-ap"
BEZPOŚREDNI:
Używając narzędzi „ Web Developer ” przeglądarki Firefox (3 paski w prawym górnym rogu), w sekcji „ Sieć ” znalazłem https://api.github.com
przekierowanie do https://codeload.github.com
, więc przesyłając potokiem curl
do tar
, mogłem pobrać najnowsze wersje repozytorium i zapisać je pod przewidywalną nazwą, można go operować na:
curl https://codeload.github.com/f1linux/pi-ap/legacy.tar.gz/master | tar xzvf - --one-top-level="pi-ap" --strip-components 1
POŚREDNI:
Po osiągnięciu w pełni zautomatyzowanego pobierania najnowszej wersji wersji przy użyciu DIRECT URL, zwróciłem uwagę na osiągnięcie tego samego w przypadku przekierowania Githuba:
curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1
Preferowana metoda:
Należy jednak pamiętać, zgodnie z komentarzem Vona poniżej, że metodą preferowaną jest POŚREDNI
Dalsza walidacja:
Aby upewnić się, że moje wyniki są powtarzalne w innych repozytoriach Github z wersjami, te same testy zostały pomyślnie przeprowadzone dla doctl
zestawu narzędzi API Digital Ocean (od czego właściwie rozpoczęło się całe ćwiczenie!):
Zarówno BEZPOŚREDNI, jak i POŚREDNI działają przy użyciu tego samego formularza co powyżej, po prostu zmieniając nazwę użytkownika i repozytorium:
BEZPOŚREDNI:
curl https://codeload.github.com/digitalocean/doctl/legacy.tar.gz/master | tar xzvf - --one-top-level="doctl" --strip-components 1
POŚREDNI:
curl -L https://api.github.com/repos/digitalocean/doctl/tarball | tar xzvf - --one-top-level="doctl" --strip-components 1