Как применять Стандарт кодирования для репозитория, расположенного в GIthub
У нас есть аккаунт в Github, и все наши проекты размещены в Github (частные репозитории).
Мы хотим применить стандарт кодирования и, возможно, другие хуки, которые мы используем для внутренних целей. У нас эти ловушки работали довольно хорошо для subversion, так как хранилище, расположенное в одном месте, администрирование этих ловушек было превосходным.
С Github, похоже, я теряю возможность добавлять свои хуки в основной репозиторий (?), Поэтому я поражен:
- Как обеспечить соблюдение стандарта кодирования для каждого участника, когда он отправляет свои изменения в основной репозиторий?
- Есть ли какой-нибудь способ на Github выполнить мои хуки, если мой сервер обрабатывает какой-либо push-запрос?
Я ищу идеи / предложения, чтобы сделать мою жизнь проще, любая помощь очень ценится.
2 ответа
Я не думаю, что это работа для VCS. Дело в том, что инструменты, которые помогают обеспечить соблюдение стандартов кодирования, обычно работают с исходным кодом, а иногда и с двоичными файлами. Например, в Java контрольный стиль может быть запущен на исходном коде, но для findbugs нужны исходники + скомпилированный код. Но, как я понимаю, запуск таких инструментов на патче недостаточно эффективен. Эти инструменты нуждаются в контексте.
Поэтому я бы порекомендовал создать экземпляр Continuous Integration Server, такой как Jenkins, и получить от него код извлечения из Github, если появятся новые изменения, скомпилируйте и запустите инструменты статического анализа, результаты сборки следует разослать всем членам группы. Он не только предоставит вам обратную связь о корректно закодированных внесенных изменениях, но также обеспечит полезную обратную связь, если код сразу стабилен с точки зрения сборки.
Как говорит Евгений, я не уверен, действительно ли это задача VCS. (но, вероятно, есть место, где вы можете подключить это).
Поскольку вы используете Github, знакомы ли вы с API состояния статуса? Таким образом, вы можете настроить службу (например, Jenkins), которая автоматически проверяет стиль кодирования, и, например, запускать модульные тесты, чтобы вы могли видеть, является ли запрос извлечения "чистым" или "безопасным".