Хочу запилить свободный проект: async-post-commit (громко сказано, ибо маленький получится). Покритикуйте, пожалуйста, идею.
pre-commit для запуска linters — это круто, особенно, когда CI из-за необходимости клонирования репозитория, установки зависимостей тратит 7 минут на проверку того, что занимает 7 секунд на локальной машине, где всё уже на месте. Однако ждать 7 секунд каждый commit надоедает. Мне пришла довольно простая и очевидная мысль, реализации которой я не нагуглил. Можно делать post-commit hook, который в фоне на отдельном workdir на момент последнего commit будет запускать linters, и в случае возникновения ошибок делать уведомление через notify-send. В случае отсутствия ошибок человек не прерывается из-за linters, а если ошибка всё-таки есть, он получает её гораздо быстрее, чем на CI. Можно ещё с помощью pre-commit блокировать новые commits, если предыдущие содержат ошибки, но не уверен, что это будет удобно.
Про то, что нормальные IDE проверяют в фоне я знаю, но это решение не зависит от IDE и работает в контейнерах (не все IDE легко это могут делать).
Надо ещё сделать, чтобы можно было включить опцию: если поступает новый commit, то прерывать старые проверки. Это полезно при rebase.
Что думаете?