Здесь была хорошая ссылка о том, как создается строка zip / tarball
Когда я загружаю zip из github, что представляет собой шестнадцатеричная строка в конце имени файла?
Но я смотрю на GitHub APIv3, и мне было любопытно, что я что-то упустил.
Есть ли способ получить ссылку zip / tarball через вызов API?
Если нет, могу ли я построить эту строку без использования двоичного файла или библиотеки git? То есть, могу ли я использовать различные вызовы API для извлечения нужных данных и сборки по нужному URL-адресу?
Я знаю, что второй вопрос немного нецелесообразен для stackoverflow, и это немного забавный проект для меня, поэтому я бы предпочел второй вопрос, если вы просто подтолкнули меня в правильном направлении, а не бросали фрагмент кода. Или просто сказал мне, если это было возможно.
Вы можете wget выйти из репозитория GitHub, чтобы получить файл tar ( архив ):
wget
wget --no-check-certificate https://github.com/User/repo/archive/master.tar.gz # better, if the certificate authorities are present: wget https://github.com/User/repo/archive/master.tar.gz
доставит вам файл с именем 'master' изрепо пользователя 'репо' пользователя.
Обновленный URL-адрес API V3 :
https://api.github.com/repos/User/repo/:archive_format/:ref # # two possibilities for fomat: https://api.github.com/repos/User/repo/tarball/master https://api.github.com/repos/User/repo/zipball/master # from github example: $curl -L https://api.github.com/repos/octokit/octokit.rb/tarball > octokit.tar.gz
Затем вы можете tar xpvf master, получив полный архив. Он создаст каталог послесоглашение об именах, описанное в вопросе, который вы упомянули .
tar xpvf master
Для получения архива с GitHub не требуется двоичный файл git, благодаря их службе загрузки "Nodeload" .
ligemer предлагается в редактировании следующий пример:
ligemer
Редактировать 2016-08-25 - Пример оболочки с Wget, Переменные и Untar:
#!/bin/bash -ex # arguments: # token = $1 # organization = $2 # repo name = $3 # branch = $4 wget --header="Authorization: token ${1}" --header="Accept:application/vnd.github.v3.raw" -O - https://api.github.com/repos/${2}/${3}/tarball/${4} | tar xz
Вызов через:
$ scriptName.sh token my-organization site.com master
Приведенная выше команда загрузит и извлечет папку Github в тот же каталог, что искрипт.
Diogo Quintela предлагает в комментариях :
Следующий пример позволяет скачивать, извлекать и вырезатькаталог верхнего уровня
curl -L https://api.github.com/repos/octokit/octokit.rb/tarball | tar xz --strip=1
Синтаксис описан в документах :
GET /repos/:owner/:repo/:archive_format/:ref
URL-адрес следующего примера будет указывать (через перенаправление 302 ) на zip-архив master в hadley / devtools repo:
master
https://api.github.com/repos/hadley/devtools/zipball/master
(Другой вариант для archive_format - tarball.)
archive_format
tarball
Понятия не имею с каких пор этот API доступен.