Size: a a a

2020 July 28

Y

Yaroslav in ctodailychat
Я кстати не первый раз замечаю подобные ответы с возвратами в этом чате
источник

A

Andrey in ctodailychat
Yaroslav
Я кстати не первый раз замечаю подобные ответы с возвратами в этом чате
Это не баг, это фича
источник

АА

Александр Арбузов... in ctodailychat
Oleg Batashov
Привет!

Контекст для других читающих - обсуждали как снизить субъектив на ревью, и внедрить какие-то общие правила
Предлагали FxCop/SonarLint в качестве легковесного линтера, и SonarQube в качества мощного хранилища техдолга и анализа качества
Понравилась фича интеграции с битбакетом у SonarQube, решил пробовать сразу его

Обещал Александру рассказать о результатах внедрения
Рассказываю опыт на текущий момент

Хотелки:
- внедрить жёсткую проверку в pipeline чтобы останавливать билд, если не соблюдены требования к качеству
- автоматический анализ пулл реквеста и запрет мерджа если есть критичные замечания
- декорирование пулл реквестов комментариями с результатами анализа вроде "тут баг, тут smell, а тут покрытия мало"

Развернул SonarQube, первая проблема - по рекомендациям нужно несколько серверов только под него, под базу и воркеры
Вторая проблема - Community edition не поддерживает анализ бранчей и пуллов

Если все равно платить, зачем держать у себя, мучаться настройкой, и ещё за сервера платить - беру SonarCloud
Он бесплатный для опенсорс проектов, поднимаю его для демо-проекта чтобы пощупать функционал без кредиток и звонков продажников через 2 недели

Третья проблема - BitBucket Cloud не может в сборку .NET framework проектов (демо проект взят максимально близко по стеку к целевому)
Проблема известна много лет, решения не предвидится - виндовых контейнеров не завезли
Можно через mono, если очень хочется

Блокер раз - сонарклауд не поддерживает декорирование в битбакете
Блокер два - у сонарклауда нужен отдельный сканер для .NET проектов, поэтому проверку quality gate в виде готового pipe встроить не получается - она заточена на другой pipe со стандартным сканером

Итого - проблема скорее в битбакете чем в сонаре
Гугл даёт альтернативу в виде Azure DevOps (как в жалобах на битбакет, так и на форумах сонара)

Проект все равно об Azure и развернут нем же, органично получается - перевезти и исходники в их экосистему

Итог - поднят демо проект в Azure DevOps, сборка и анализ настроены из шаблона по гайду без всяких подводных камней
Декорирование и запрет мержа - также по гайду

В целом выглядит очень неплохо, цена будет €150/месяц на текущий объем кодовой базы, плюс цена Azure DevOps (не считал)

Минус SonarCloud - не поддерживает кастомные правила анализа, есть только в SonarQube
Огромное спасибо за такой развернутый ответ спустя 3 месяца!
источник

АА

Александр Арбузов... in ctodailychat
Oleg Batashov
Привет!

Контекст для других читающих - обсуждали как снизить субъектив на ревью, и внедрить какие-то общие правила
Предлагали FxCop/SonarLint в качестве легковесного линтера, и SonarQube в качества мощного хранилища техдолга и анализа качества
Понравилась фича интеграции с битбакетом у SonarQube, решил пробовать сразу его

Обещал Александру рассказать о результатах внедрения
Рассказываю опыт на текущий момент

Хотелки:
- внедрить жёсткую проверку в pipeline чтобы останавливать билд, если не соблюдены требования к качеству
- автоматический анализ пулл реквеста и запрет мерджа если есть критичные замечания
- декорирование пулл реквестов комментариями с результатами анализа вроде "тут баг, тут smell, а тут покрытия мало"

Развернул SonarQube, первая проблема - по рекомендациям нужно несколько серверов только под него, под базу и воркеры
Вторая проблема - Community edition не поддерживает анализ бранчей и пуллов

Если все равно платить, зачем держать у себя, мучаться настройкой, и ещё за сервера платить - беру SonarCloud
Он бесплатный для опенсорс проектов, поднимаю его для демо-проекта чтобы пощупать функционал без кредиток и звонков продажников через 2 недели

Третья проблема - BitBucket Cloud не может в сборку .NET framework проектов (демо проект взят максимально близко по стеку к целевому)
Проблема известна много лет, решения не предвидится - виндовых контейнеров не завезли
Можно через mono, если очень хочется

Блокер раз - сонарклауд не поддерживает декорирование в битбакете
Блокер два - у сонарклауда нужен отдельный сканер для .NET проектов, поэтому проверку quality gate в виде готового pipe встроить не получается - она заточена на другой pipe со стандартным сканером

Итого - проблема скорее в битбакете чем в сонаре
Гугл даёт альтернативу в виде Azure DevOps (как в жалобах на битбакет, так и на форумах сонара)

Проект все равно об Azure и развернут нем же, органично получается - перевезти и исходники в их экосистему

Итог - поднят демо проект в Azure DevOps, сборка и анализ настроены из шаблона по гайду без всяких подводных камней
Декорирование и запрет мержа - также по гайду

В целом выглядит очень неплохо, цена будет €150/месяц на текущий объем кодовой базы, плюс цена Azure DevOps (не считал)

Минус SonarCloud - не поддерживает кастомные правила анализа, есть только в SonarQube
#fomo
источник

OB

Oleg Batashov in ctodailychat
Пожалуйста!👍
источник

IV

Igor V in ctodailychat
великолепно
источник

IV

Igor V in ctodailychat
сейчас пацаны расскажут, что в .NET уже 1000 лет так код не анализируют и расскажут правильный способ, который сразу работает
источник

O

Oleg in ctodailychat
Кстати, а как вы решаете ситуацию у себя. Есть куча разработчиков и ручное тестирование. Есть анализатор публичных CVE, и вот выходит обновление и все сборки и MR падают, и если все делать формально, то все билды надо блочить. Что вы делаете? Останавливаете все выкаты на текущий день? Вставляете игнор? Или какой тру вей?)
источник

Y

Yaroslav in ctodailychat
> Останавливаете все выкаты на текущий день?

зачем? у тебя же версии библиотек не менялись. Значит уязвимость уже в проде, нужно подумать о том, как ее быстро закрыть т запланировать работы по устранению тех.долга
источник

O

Oleg in ctodailychat
Yaroslav
> Останавливаете все выкаты на текущий день?

зачем? у тебя же версии библиотек не менялись. Значит уязвимость уже в проде, нужно подумать о том, как ее быстро закрыть т запланировать работы по устранению тех.долга
По идее да, но если CI падает) а как сделать его другим пока не ясно. И вцелом если это оставлять получается что vulnerability будут расти
источник

VI

Vladimir Ivanov in ctodailychat
Oleg Batashov
Привет!

Контекст для других читающих - обсуждали как снизить субъектив на ревью, и внедрить какие-то общие правила
Предлагали FxCop/SonarLint в качестве легковесного линтера, и SonarQube в качества мощного хранилища техдолга и анализа качества
Понравилась фича интеграции с битбакетом у SonarQube, решил пробовать сразу его

Обещал Александру рассказать о результатах внедрения
Рассказываю опыт на текущий момент

Хотелки:
- внедрить жёсткую проверку в pipeline чтобы останавливать билд, если не соблюдены требования к качеству
- автоматический анализ пулл реквеста и запрет мерджа если есть критичные замечания
- декорирование пулл реквестов комментариями с результатами анализа вроде "тут баг, тут smell, а тут покрытия мало"

Развернул SonarQube, первая проблема - по рекомендациям нужно несколько серверов только под него, под базу и воркеры
Вторая проблема - Community edition не поддерживает анализ бранчей и пуллов

Если все равно платить, зачем держать у себя, мучаться настройкой, и ещё за сервера платить - беру SonarCloud
Он бесплатный для опенсорс проектов, поднимаю его для демо-проекта чтобы пощупать функционал без кредиток и звонков продажников через 2 недели

Третья проблема - BitBucket Cloud не может в сборку .NET framework проектов (демо проект взят максимально близко по стеку к целевому)
Проблема известна много лет, решения не предвидится - виндовых контейнеров не завезли
Можно через mono, если очень хочется

Блокер раз - сонарклауд не поддерживает декорирование в битбакете
Блокер два - у сонарклауда нужен отдельный сканер для .NET проектов, поэтому проверку quality gate в виде готового pipe встроить не получается - она заточена на другой pipe со стандартным сканером

Итого - проблема скорее в битбакете чем в сонаре
Гугл даёт альтернативу в виде Azure DevOps (как в жалобах на битбакет, так и на форумах сонара)

Проект все равно об Azure и развернут нем же, органично получается - перевезти и исходники в их экосистему

Итог - поднят демо проект в Azure DevOps, сборка и анализ настроены из шаблона по гайду без всяких подводных камней
Декорирование и запрет мержа - также по гайду

В целом выглядит очень неплохо, цена будет €150/месяц на текущий объем кодовой базы, плюс цена Azure DevOps (не считал)

Минус SonarCloud - не поддерживает кастомные правила анализа, есть только в SonarQube
хотел бы добавить только что существует community branch plugin
источник

VI

Vladimir Ivanov in ctodailychat
правда он вяло разрабатывается одним человеком и сильно отстаёт от актуальных версий сонара
источник

VI

Vladimir Ivanov in ctodailychat
буквально вчера воткнулся в жир с ногами с тем, что из-за него не могу обновить сонар
источник

Y

Yaroslav in ctodailychat
Чат мы возводим деревья принятия решений вышк здравого смысла. Задача стат анализатора - указать тебе на проблемы. А твоя задача запланировать исправление этих ппоблем
источник

O

Oleg in ctodailychat
Yaroslav
Чат мы возводим деревья принятия решений вышк здравого смысла. Задача стат анализатора - указать тебе на проблемы. А твоя задача запланировать исправление этих ппоблем
Т.е. вы не фейлите билд если нашлись vulnerability?
источник

Y

Yaroslav in ctodailychat
Фейлим, а потом добавляем коммит с игнором если не фиксим сейчас и добавляем задачу на фикс
источник

O

Oleg in ctodailychat
Yaroslav
Фейлим, а потом добавляем коммит с игнором если не фиксим сейчас и добавляем задачу на фикс
Эх, получается как мы)
источник

Y

Yaroslav in ctodailychat
Oleg
Эх, получается как мы)
Отличие только в том, что мы потом фиксим в обозначенные сроки;)
источник

O

Oleg in ctodailychat
Yaroslav
Отличие только в том, что мы потом фиксим в обозначенные сроки;)
Мы вроде тоже, т.е. у нас около 20 команд, которые чинят с разной скоростью, кто-то в тоже день, за кем-то приходится бегать)
источник

Y

Yaroslav in ctodailychat
Oleg
Мы вроде тоже, т.е. у нас около 20 команд, которые чинят с разной скоростью, кто-то в тоже день, за кем-то приходится бегать)
Так а чего бегать, введите регламент. Что если вы не можете пофиксить согласно sla и эти риски никто на себя не взял - то вы саботируете работу
источник