9

То, что я хочу сделать, это загрузить частный архив репозитория с GitHub, распаковать его, удалить архивный файл и скопировать некоторые каталоги, которые находятся внутри загруженного проекта.

Я пытался использовать wget но не могу авторизоваться:

wget --header='Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz -O - | tar xz

Я также пытался с cURL:

curl -i -H 'Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz > file.tar.gz | tar xz

Здесь авторизация проходит, но я не могу извлечь файл.

Как это сделать?

1 ответ1

3

Решение с помощью wget будет примерно таким:

wget --header="Authorization: token <OAUTH-TOKEN>" -O - \
    https://api.github.com/repos/<owner>/<repo>/tarball/<version> | \
    tar xz --strip-components=1 && \
    cp -r <dir1> <dir2> ... <dirn> <destination-dir>/

Заметки:

  • --strip-components=1 удалит каталог верхнего уровня, который содержится в созданном GitHub архиве,
  • убедитесь, что вы не ставите конечный / в конце каталогов, которые должны быть скопированы с помощью cp (<dir1> , <dir2> , ..., <dirn>), и что конечный / присутствует в конце каталог назначения (<destination-dir>).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .