2015-05-27 2 views
1

Я пытаюсь написать крюк pre-receive Atlassian Stash, который будет проверять, соответствуют ли файлы python с нажатыми кодами стандарту python PEP-8. Уже есть два инструмента, которые делают именно то, что я хочу - pep8 и yapf.Можно ли использовать pep8 и yapf в захвате Stash pre-receive?

Однако, я не знаю, как интегрировать эти инструменты, которые будут использоваться в крюке pre-receive Stash, который должен быть написан на Java. Если я пишу предварительный прием Stash на Java, как я могу использовать pep8 и yapf?

+0

Я по существу прошу совета о том, как разработать код. Я знаю, что мне нужно написать свой код на Java, и он должен реализовать [PreReceiveRepositoryHook] (https://developer.atlassian.com/static/javadoc/stash/3.9.1/spi/reference/com/atlassian/stash /hook/repository/PreReceiveRepositoryHook.html). Метод 'onReceive' должен возвращать true, если файлы python нажатого кода соответствуют PEP-8, а false, если нет. Уже существует инструмент командной строки под названием [pep8] (https://pypi.python.org/pypi/pep8), чтобы проверить, соответствует ли файл python PEP-8. Как я могу использовать этот инструмент командной строки в Java? – user2946797

ответ

0

Один из подходов, которые вы могли бы попробовать, это использовать этот external hooks add-on, который затем может запускать все необходимые сценарии и возвращать результат.

Это говорит о том, что я хотел бы также рассмотреть вопрос о том, является ли предварительное получение подходящим временем, чтобы заставить пользователей ждать и, возможно, придется вернуться и исправить свою работу. Альтернативой является комбинация перехватов с фиксацией на стороне клиента (по общему признанию, не всегда легко обеспечить соблюдение) и использование асинхронного процесса (с использованием системы сборки, такой как Bamboo) для запуска проверок. Первый дает разработчикам более немедленную обратную связь, а последний работает как защитная сетка, не будучи сверхжесткой в ​​этом отношении. Другими словами, вы можете сделать это более через процесс (и правильное культурное поощрение, чтобы поступать правильно), чем посредством строгого принуждения инструмента. YMMV