2012-01-10 1 views
2

Я хочу запустить проект Google Transit (транспорт для городского транспорта для карт Google), и для совместной работы я хочу использовать GitHub , Теперь замечательно то, что GitHub предлагает загрузку ZIP-файла, содержащую весь ваш репозиторий, а Google хочет получить ZIP-файл с необходимыми данными, но этот файл должен иметь имя: google_transit.zip.Укажите имя ZIP, загружаемого с GitHub, или Другие способы регистрации проекта Google Transit на GitHub

Так что мой вопрос: Могу ли я как-то дать Google ссылку, которая даст ему файл с именем google_transit.zip, который будет содержать все материалы, находящиеся в главной ветке? Может быть, это можно сделать с помощью стандартной опции «скачать зип» или с некоторыми крюками или что-то еще ...

ответ

1

GitHub позволит автоматически загрузить Zip архив последней версии ветви, используя следующий URL:

https://github.com/:user/:repository/zipball/:branch [GET]

архив будет дано специальное имя следующего выхода в git describe команды.

Однако есть один из способов добиться того, что вам нужно, используя GitHub Repo Downloads API.

Каждый раз, когда ваш мастер ветвь готов к публикации, вы бы выполнить следующие шаги:

  • Если загрузка ресурсов google_transit.zip уже существует, удалите его
  • Создать новую загрузку ресурсов и назовите его google_transit.zip
  • Загрузить последнюю версию архива почтового индекса, используя предоставленную информацию предыдущего запроса

Там даже библиотека Ruby (ruby-net-github-upload), которая может помочь вам автоматизировать эту задачу.

+0

Спасибо за ответ и извините за мою бездеятельность. Еще один вопрос: могу ли я сделать что-то подобное в 'post-receive'? поэтому загрузка будет очищена и повторно сгенерирована после каждого нажатия на мастер? – Uko

+0

Да. Вы должны принять эту логику (удаление предыдущего архива, извлечение и переименование текущего архива HEAD, загрузка нового архива) в конечной точке доступа к Интернету, а затем GitHub ** [сообщить об этой конечной точке] (http: // help .github.com/post-receive-hooks /) **, что произошло событие push. – nulltoken

Смежные вопросы