Я пытаюсь загрузить архив с GitHub, используя cURL , но, похоже, он не перенаправляет:
$ 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>
Примечание: у меня работает wget:
$ wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2
Однако я хочу использовать cURL, потому что в конечном итоге я хочу развернуть его в строке с чем-то вроде:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
Я обнаружил, что URL-адрес после перенаправления оказался https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz , но я бы хотел, чтобы cURL был достаточно умен, чтобы понять это из.
https
, вам также, вероятно, понадобится-k
.-L
означает следовать перенаправлениям.Модернизированный способ сделать это:
Заменить
user-or-org
,repo
иsha1-or-ref
соответственно.Если вам нужен zip-файл вместо tarball, укажите
.zip
вместо.tar.gz
суффикса.Вы также можете получить архив частного репо, указав
-u token:x-oauth-basic
параметр curl. Заменитьtoken
с личным маркером доступа.источник
https://token@github.com/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
См. пример здесь.../tarball/...
метод производит только tar.gz? Позже GH добавила более гибкий метод, позволяющий извлекать архив в желаемом формате на основе суффикса.tar.gz
или.zip
. Я уже не помню, зачем написал этот пост.Вы также можете использовать wget для «распаковки в строке». Просто укажите stdout в качестве выходного файла (
-O -
):источник
Все остальные решения требуют указания номера выпуска / версии, что явно нарушает автоматизацию.
Это решение, которое в настоящее время протестировано и, как известно, работает с Github API v3, однако его можно использовать программно для получения ПОСЛЕДНЕЙ версии без указания какого-либо тега или номера выпуска и отменяет TAR двоичный файл на произвольное имя, указанное в switch
--one-top-level="pi-ap"
. Просто замените пользователя f1linux и репо pi-ap в приведенном ниже примере с вашими собственными данными и вашим дядей Бобом:источник
с определенным директором
cd your_dir && curl -L https://download.calibre-ebook.com/3.19.0/calibre-3.19.0-x86_64.txz | tar zx
источник
cd your_dir && curl -L https://download.calibre-ebook.com/3.19.0/calibre-3.19.0-x86_64.txz | tar zx; cd -