Пусть пользователь отправляет мне репозиторий git, затем я сохраняю его в каталог на моем веб-сервере

#git #github

#git #github

Вопрос:

Я хочу позволить пользователю создавать репозиторий, а затем отправлять его в мое веб-приложение. Когда он будет «отправлен» в мое приложение, я возьму файлы и скопирую их в каталог на моем сервере.

Цель здесь — позволить людям отправлять мне небольшие приложения, которые я затем могу обслуживать. В идеале они могли бы запустить что-то столь же простое, как git push donnys_site master и мой сайт, и начать доставлять свое приложение (очень похоже на рабочий процесс heroku).

Что я должен исследовать для этого?

Ниже приведен лучший метод, о котором я подумал:

 1. User creates a git repo.
2. User adds `donnys_site` as a remote.
3. User does `$ git push donny_site master`. 
4. My site receives the push... not sure what this really entails. Maybe I need my own git repo for each repo being pushed to me? 
5. I believe git has post-commit hooks, which let me take action. So use a post-commit hook to trigger a script to copy their files to a directory thats acting as a webserver.
  

Ответ №1:

Да, это должно сработать.

На сайте сервера вам нужен пустой репозиторий для других пользователей. Вы можете настроить перехват в этом репозитории, который запускается всякий раз, когда кто-то переходит в репозиторий. Посмотрите git help githooks подробности. Возможно, в вашем случае будет полезен перехват обновления.

Сам хук может быть скриптом bash или любым другим исполняемым файлом. Вы можете просмотреть недавно отправленные данные и записать их везде, где это требуется вашему сайту.