Чтобы узнать, какие правила были применены, вам необходим профиль проекта
- *
- , используемый для каждого языка
- правил в каждом профиле
Есть несколько способов сделать это.Вы нашли один.Давайте посмотрим на других.
(я смотрю на более свежую копию SonarQube, но я считаю, что рассматриваемые API должны быть такими же.)
Я знаю, что профили, используемые всамый последний анализ проекта перечислены на главной странице.Используя консоль разработчика, я вижу, что эти данные приходят в ответ на вызов api/navigation/component
.Этот веб-сервис помечен как внутренний, что означает, что вы, вероятно, не должны его использовать.Поэтому мы не можем перейти от проекта непосредственно к профилю качества.
Однако api/measures/component
является , а не внутренним, и вместе с ним на первой странице запрашивается ncloc_language_distribution
, помимо прочего.Это DISTRIB
метрика, и она дает строки кода проекта для каждого языка.Для проекта, который я смотрю, возвращаемое значение равно "css=11473;java=235467;js=2549;ts=95516"
.Как видите, оттуда мы можем добраться до языков в проекте.Теперь давайте отложим это на мгновение.
Допустим, вы начали с получения списка профилей качества (api/qualityprofiles/search
).Из этого вы знаете, какой профиль по умолчанию для каждого языка.Теперь используйте api/qualityprofiles/projects
, чтобы получить список проектов, явно назначенных каждому профилю.Это, вероятно, также хороший момент для извлечения и локального хранения правил для каждого профиля.
Теперь вы можете перебирать свои проекты, смотреть на языки для каждого и выяснять, какие профили используются для каждого проекта.(Есть ли явное назначение профиля для этого языка? Нет? Тогда по умолчанию!) Затем вы можете извлечь свои правила для профиля из памяти, и вы получили свой список для проекта.
* пылируки *
просто!