LINUX.ORG.RU

GIT - загрузка архивов (релизы)

 ,


0

1

добрый день

загрузка исходников с гита, текущая версия:

# 
# https://github.com/USER/PRJ_NAME
#
URL=https://github.com/$USER/$PRJ_NAME.git
git clone $URL
rm -fr    $PRJ_NAME/.git

ВОПРОС: как автоматизировать загрузку архивов релизов (всех)?

https://github.com/$USER/$PRJ_NAME/releases
-->
https://github.com/$USER/$PRJ_NAME/archive/x.y.z.tar.gz
...

т.е. мне пока не ясен механизм получения списка версий релизов

https://github.com/$USER/$PRJ_NAME/archive/x.y.z.tar.gz

★★★★

Последнее исправление: sunjob (всего исправлений: 2)

Ответ на: комментарий от trex6

обязательно напишу, только сначало с главной задачей разберусь :о)

p.s.

на собрании
- у нас ЧП, какие будут предложения?!
- надо что-то делать!!!

sunjob ★★★★
() автор топика
Последнее исправление: sunjob (всего исправлений: 1)

Задача получения исходников у тебя решалась силами гита (я бы еще добавил ключик depth для клона, может очень сильно уменьшить объем трафика git clone --depth=1 $URL)

А вторая задача у тебя не гитовая, а фишка гитхаба. Гугли его апи и, возможно, готовые либы для удобной работы. К гиту эта задача никакого отношения не имеет.

anonymous
()
Ответ на: комментарий от sunjob

Если ты в любом случае тащишь сорцы git’ом, подставляй выхлоп git tag:

#!/bin/sh

user="${1}"
proj="${2}"
url="https://github.com/${user}/${proj}"
git clone "${url}.git" /tmp/${proj} && cd /tmp/${proj} && \
for i in $(git tag | cat); do
  fetch "${url}/archive/${i}.tar.gz" -o/tmp/${proj}-${i}.tgz \
    || curl "${url}/archive/${i}.tar.gz" >/tmp/${proj}-${i}.tgz \
    || wget "${url}/archive/${i}.tar.gz" -O/tmp/${proj}-${i}.tgz
done
mord0d ★★★★★
()
Ответ на: комментарий от anonymous

К гиту эта задача никакого отношения не имеет.

Имеет к тегам.

mord0d ★★★★★
()

как автоматизировать загрузку архивов релизов (всех)?

зачем? если ты уже репозиторий вытянул, git tag даст тебе список тэгов, git archive наделает архивов

ananas ★★★★★
()
Ответ на: комментарий от ananas

можно проще

Кстати да. Никогда не пользовался git archive, потому забыл о.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

очепятка:

отлично работющий кот!

sunjob ★★★★
() автор топика
Ответ на: комментарий от ananas

уточнение задачи

хорошо, парни, возможно «мы» еще оптимизируем код

уточняю

данная задача/скрипт используется исключительно для закачки исходников как таковых, без дополнительного «мусора» и «наворотов разработки»

исключительно для посмотреть доки, схемы, описание, по необходимости собрать, но никаких «плюшек для коллективной разработки», ничего «этого» не предпологается использовать

никаких какТалогов, типа '.git', кот. занимает много места.

загрузка производится на TMP-RAM / 4Gb диск, и бывали случаи что на больших git-проектах заканчивалось место на диске или inodes (сейчас «дотюнил», но хотелось-бы, все-таки оптимизировать работу)

в таком случае надо:

- закачка только current версии (потом архивируется, или загрузка сразу архивом)
- закачка всех релизов (архивов)

вариант от ананаса хорош, но, по моему, работа в данном случае выглядит как

- закачка всего дерева проекта из git-а
- уже из него сформировать архивы с релизами

(могу ошибаться, пожалуйста, поправляйте)

вариант от mord0d в данном случае выглядит более предпочтительно, т.к. происходит выкачка готовых архивов

с чем хотелось-бы разобраться (или как я вижу оптимизацию)

- закачка только curen-версии (т.е. по минимуму)
- получение 'git tag' и закачка архивов

ключ --depth=1 - сокращает обьем каталога/трафика, но не отрабатывает команда

git tag

м.б. есть доп. команда дозагрузки информации для получения тегов?

sunjob ★★★★
() автор топика
Ответ на: уточнение задачи от sunjob

м.б. есть доп. команда дозагрузки информации для получения тегов?

Если тебе конкретно GitHub, то можешь помучать его API. Начинать читать можно отсюда.

$ curl https://api.github.com/repos/torvalds/linux/tags | jq -r '.[] | .["tarball_url"]' | head
https://api.github.com/repos/torvalds/linux/tarball/v5.4-rc2
https://api.github.com/repos/torvalds/linux/tarball/v5.4-rc1
https://api.github.com/repos/torvalds/linux/tarball/v5.3
https://api.github.com/repos/torvalds/linux/tarball/v5.3-rc8
https://api.github.com/repos/torvalds/linux/tarball/v5.3-rc7
https://api.github.com/repos/torvalds/linux/tarball/v5.3-rc6
https://api.github.com/repos/torvalds/linux/tarball/v5.3-rc5
https://api.github.com/repos/torvalds/linux/tarball/v5.3-rc4
https://api.github.com/repos/torvalds/linux/tarball/v5.3-rc3
https://api.github.com/repos/torvalds/linux/tarball/v5.3-rc2
ilammy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.