Próbuję pobrać archiwum z GitHub przy użyciu cURL , ale nie wydaje się, aby przekierowywało:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2
<html><body>You are being <a href="https://nodeload.github.com/pinard/Pymacs/tarball/v0.24-beta2">redirected</a>.</body></html>
Uwaga: wget działa dla mnie:
$ wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2
Jednak chcę użyć cURL, ponieważ ostatecznie chcę rozpakować go w linii za pomocą czegoś takiego:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
Stwierdziłem, że URL po przekierowaniu okazał się https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz , ale chciałbym, żeby cURL był na tyle sprytny, żeby się domyślić to na zewnątrz.
https
, będziesz także prawdopodobnie potrzeba-k
.-L
oznacza podążanie za przekierowaniami.Zmodernizowany sposób to:
Wymień
user-or-org
,repo
isha1-or-ref
odpowiednio.Jeśli chcesz plik zip zamiast tarballa, określ
.zip
zamiast.tar.gz
sufiksu.Możesz także pobrać archiwum prywatnego repozytorium, określając
-u token:x-oauth-basic
opcję curl. Zamieńtoken
na osobisty token dostępu.źródło
https://[email protected]/user-or-org/repo/archive/sha1-or-ref.tar.gz
curl -OL https://github.com/user-or-org/repo/releases/download/version/<asset name>.tar.gz
Zobacz przykład tutaj.../tarball/...
metoda produkuje tylko tar.gz? GH dodał później bardziej elastyczną metodę, która umożliwia wyodrębnianie archiwum w wybranym formacie na podstawie przyrostka.tar.gz
lub.zip
. Nie pamiętam już, dlaczego napisałem ten post.Możesz także użyć wget, aby »rozpakować to w tekście«. Po prostu określ stdout jako plik wyjściowy (
-O -
):źródło
Wszystkie inne rozwiązania wymagają podania numeru wydania / wersji, co oczywiście przerywa automatyzację.
To rozwiązanie - obecnie przetestowane i znane z tego, że działa z Github API v3 - może być jednak używane programowo do pobrania NAJNOWSZEJ wersji bez podawania żadnego tagu lub numeru wydania i cofa TAR do dowolnej nazwy podanej w przełączniku
--one-top-level="pi-ap"
. Po prostu zamień użytkownika f1linux i repozytorium pi-ap w poniższym przykładzie z własnymi danymi i wujem Boba:źródło
z konkretnym reż
cd your_dir && curl -L https://download.calibre-ebook.com/3.19.0/calibre-3.19.0-x86_64.txz | tar zx
źródło
cd your_dir && curl -L https://download.calibre-ebook.com/3.19.0/calibre-3.19.0-x86_64.txz | tar zx; cd -