Git Push — исправление значений файлов во время нажатия на GitHub

#git #hook #workflow

#git #перехват #рабочий процесс

Вопрос:

У меня есть несколько файлов sql, которые мы храним в нашем репозитории для создания некоторых представлений, их можно запускать в разных схемах, и я хочу убедиться, что файлы в репозитории имеют заполнитель, а не имя среды, по ошибке. Так, например, файл будет иметь одну инструкцию: создать представление schema_dev или schema_stg, а в репозитории должно быть schema_ $environment . У меня есть скрипт, который будет проходить через каждый каталог и изменять файлы.

Я начал писать git-хук для предварительного нажатия и обнаружил, что это работает, но это изменяет локальные файлы и требует повторной фиксации, что, если кто-то все еще работает с файлами, среда возвращается в их локальные файлы.

У меня вопрос, лучше ли это делать на стороне сервера, или, поскольку я использую github, рабочий процесс запускается нажатием? Я начал с маршрута рабочего процесса и все заработало, за исключением того, что изменения вносятся в контейнер docker, в котором выполняется рабочий процесс, но не в фактическом репозитории. Есть ли способ скопировать измененный репозиторий из рабочего потока обратно в github?

в принципе, я не хочу изменять локальные файлы пользователей, но хочу заменять среду заполнителем всякий раз, когда она копируется в репозиторий… Какова наилучшая практика для обработки чего-то подобного?

Комментарии:

1. Кажется, что git smudge и фильтры очистки могут работать. Фильтры могут автоматически обновлять файлы при извлечении и возврате. И перехват на стороне сервера может помешать успешному запуску любого плохо отформатированного файла, если клиентская сторона не отформатирует файлы должным образом.

2. Я проверил фильтры очистки и размытия, и хотя это звучит довольно круто и полезно, я не уверен, что это решит проблему, читая документацию, кажется, что если пользователь внесет изменения, это изменит их локальную копию. Поэтому, если они повторяют свою работу, внося изменения по пути, их файлы будут изменены обратно. Я надеялся найти способ просто внести изменения при запуске нажатия, а не раньше. Возможно, я неправильно понял документы, но похоже, что этот фильтр будет применяться к каждой фиксации.