Як і більшість відвідувачів цього питання, я був абсолютно розчарований тим, що знайшов спосіб повністю автоматизувати завантаження ОСНОВНОГО версійного випуску або репо в Github. Перевага цього рішення полягає в тому, що вам не потрібно вказувати жоден номер випуску чи тегу - він просто захопить НАЙКРАЩІЙ .
Я провів тестування з використанням наступних користувачів Github & repo:
" f1linux " = Користувач Github
" pi-ap " = Repo
Довільна назва каталогів, в яку зберігається репо, задається у:
--one-top-level="pi-ap"
Пряме:
Використовуючи інструменти " Веб-розробник " Firefox (3 бари у верхньому правому куті), у розділі " Мережа ", який я знайшов, я https://api.github.com
переспрямовувався https://codeload.github.com
, тож, переконуючись curl
до, tar
я зміг схопити останню версію репо, і зберегти її до передбачуваного імені. ним можна керувати:
curl https://codeload.github.com/f1linux/pi-ap/legacy.tar.gz/master | tar xzvf - --one-top-level="pi-ap" --strip-components 1
Прямі:
Після того, як я домігся повністю автоматизованих завантажень останнього версійного випуску за допомогою Прямої URL-адреси, я звернув увагу на те, щоб досягти того ж з перенаправленням Github:
curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1
Кращий спосіб:
Однак, зауважте, згідно коментаря Вона нижче, що INDIRECT є кращим методом
Подальша перевірка:
Щоб переконатись, що мої результати були відтворені для інших репонованих репортажів Github, ті ж тести були успішно виконані для 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