{"id":26485,"date":"2016-12-13T12:28:31","date_gmt":"2016-12-13T20:28:31","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/?p=26485"},"modified":"2019-02-14T15:55:57","modified_gmt":"2019-02-14T23:55:57","slug":"sonarsource-have-announced-their-own-sonarqube-team-services-tfs-integration","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/sonarsource-have-announced-their-own-sonarqube-team-services-tfs-integration\/","title":{"rendered":"SonarSource have announced their own SonarQube Team Services \/ TFS integration"},"content":{"rendered":"<p>Microsoft have been partnering with SonarSource for almost two years to bring SonarQube to .NET developers and to make it easy to analyze MSBuild and Java projects from Visual Studio Team Services, TFS and Visual Studio. The partnership, and Team Services extensibility, have now matured to the point that we have jointly decided that it was time for Microsoft to transfer ownership of the SonarQube MSBuild build tasks to SonarSource. They are better placed to keep the tasks up to date and consistent with the SonarQube vision. SonarSource have now <a href=\"https:\/\/www.sonarsource.com\/resources\/product-news\/2016\/12\/2016-12-12-sonarqube-vsts-extension-2-0-released.html\">announced<\/a> the availability of their own SonarQube Team Services and TFS extension on the VSTS marketplace.<\/p>\n<h4>Concretely what does it change for you?<\/h4>\n<p>In the past, we released the SonarQube Team Services build tasks \u201cin the box\u201d, so whenever we updated VSTS \u2013 every 3 weeks \u2013 we pushed updates to these tasks. The tasks were also shipped with the TFS on-premises product. The source code is in the <a href=\"https:\/\/github.com\/Microsoft\/vsts-tasks\/tree\/master\/Tasks\">vsts-tasks<\/a> repository on GitHub along with the other tasks released by Microsoft. In future Microsoft&#8217;s SonarQube tasks won&#8217;t be released in the service or TFS product. Like many partners, SonarSource is now providing a <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=SonarSource.sonarqube\">dedicated SonarQube extension<\/a>. This allows them to fully control the development and deployment of updates and fixes. Therefore, we are deprecating the MSBuild SonarQube tasks, and you will need to install the SonarQube extension to continue analyzing technical debt in your MSBuild projects.<\/p>\n<h4>What build tasks are affected?<\/h4>\n<p>The two tasks which are deprecated are the SonarQube for MSBuild tasks (SonarQube for \u2018MSBuild \u2013 Begin Analysis\u2019 and \u2018SonarQube for MSBuild \u2013 End Analysis\u2019).<\/p>\n<p>Note that we also integrated SonarQube into the Java build tasks for Maven and Gradle in order to enable code analysis feedback in Pull Requests. These integrations will remain as they are for now, and will continue to be released by Microsoft. SonarSource may in the future provide a replacement build task or tasks for Java with this capability.<\/p>\n<h4>What will be the deprecation experience?<\/h4>\n<p>If you are a Team Services user, when you run a build that contains SonarQube for MSBuild tasks, you\u2019ll notice some build warnings:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/clip_image0023.jpg\"><img decoding=\"async\" width=\"757\" height=\"75\" title=\"clip_image002\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" alt=\"clip_image002\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/12\/clip_image002_thumb3.jpg\" border=\"0\" \/><\/a><\/p>\n<p>The warnings contain hyperlinks that will help you migrate.<\/p>\n<p>Also, if you try to add the former tasks to a build definition, you\u2019ll notice the [DEPRECATED] prefix in their label:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/clip_image0032.png\"><img decoding=\"async\" width=\"591\" height=\"604\" title=\"clip_image003\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" alt=\"clip_image003\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/12\/clip_image003_thumb1.png\" border=\"0\" \/><\/a><\/p>\n<p>On the other hand, if you are working on-premises with TFS 2017, you\u2019ll see these changes starting with TFS 2017 Update1.<\/p>\n<h4>Moving to the new tasks<\/h4>\n<p>At some point, the Microsoft-owned tasks will be deleted. We recommend switching to SonarSource\u2019s extension as soon as possible. This is straight-forward \u2013 just install <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=SonarSource.sonarqube\">the SonarQube extension<\/a> to your account and you\u2019ll notice three new tasks in your library:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/clip_image0043.png\"><img decoding=\"async\" width=\"591\" height=\"607\" title=\"clip_image004\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" alt=\"clip_image004\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/12\/clip_image004_thumb2.png\" border=\"0\" \/><\/a><\/p>\n<p>You\u2018ll recognize the last two, but the first is new: SonarSource is introducing a new task named \u201c<a href=\"http:\/\/docs.sonarqube.org\/display\/SCAN\/Analyzing+with+SonarQube+Extension+for+VSTS-TFS#AnalyzingwithSonarQubeExtensionforVSTS-TFS-AnalyzingwithSonarQubeScannerCLITask\">SonarQube Scanner CLI<\/a>\u201d that supports analysis of projects outside MSBuild and Java build technologies, a common request. You can now analyze your node.js projects, etc \u2026<\/p>\n<h4>Minor breaking changes<\/h4>\n<p>SonarSource have taken the opportunity to address shortcomings in the old tasks and to action some of your feedback. Consequently, there are 2 small breaking changes:<\/p>\n<ul>\n<li><b>There is now a dedicated <\/b><b>\u201cSonarQube<\/b><b>\u201d endpoint<\/b> instead of a generic one. This is an improvement, since you will now be able to find at a glance the service endpoints which are relevant to these tasks, without having to trawl through a long list of generic service end points.<\/li>\n<\/ul>\n<p style=\"padding-left: 60px\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/clip_image0051.png\"><img decoding=\"async\" width=\"224\" height=\"457\" title=\"clip_image005\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" alt=\"clip_image005\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/12\/clip_image005_thumb.png\" border=\"0\" \/><\/a><\/p>\n<p style=\"padding-left: 30px\">You will be asked to input a token, which can be generated from your SonarQube dashboard.<\/p>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/clip_image007.png\"><img decoding=\"async\" width=\"679\" height=\"386\" title=\"clip_image007\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" alt=\"clip_image007\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/12\/clip_image007_thumb.png\" border=\"0\" \/><\/a><\/p>\n<p style=\"padding-left: 30px\">The new endpoint will show up in the list of end points with a SonarQube icon, so that you can see it immediately.<\/p>\n<ul>\n<li><b>The database connection input fields are no longer available in the build step<\/b>. This will only matter if you are using a version of SonarQube lower than 5.2. In that case, we advise you to upgrade your SonarQube server, or use the Additional Settings field to configure these parameters\n<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/clip_image009.jpg\"><img decoding=\"async\" width=\"764\" height=\"554\" title=\"clip_image009\" style=\"padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px\" alt=\"clip_image009\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2016\/12\/clip_image009_thumb.jpg\" border=\"0\" \/><\/a><\/li>\n<\/ul>\n<h4>Support<\/h4>\n<p>Moving forward, support is moving entirely to SonarSource, who would love to get your feedback. If you have questions or suggestions about the SonarQube build tasks, please use Google Groups with the SonarQube tag: <a href=\"https:\/\/groups.google.com\/forum\/#!forum\/sonarqube\">https:\/\/groups.google.com\/forum\/#!forum\/sonarqube<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft have been partnering with SonarSource for almost two years to bring SonarQube to .NET developers and to make it easy to analyze MSBuild and Java projects from Visual Studio Team Services, TFS and Visual Studio. The partnership, and Team Services extensibility, have now matured to the point that we have jointly decided that it [&hellip;]<\/p>\n","protected":false},"author":194,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[253,229,1,249],"tags":[],"class_list":["post-26485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-devops-server","category-community","category-devops","category-open-source"],"acf":[],"blog_post_summary":"<p>Microsoft have been partnering with SonarSource for almost two years to bring SonarQube to .NET developers and to make it easy to analyze MSBuild and Java projects from Visual Studio Team Services, TFS and Visual Studio. The partnership, and Team Services extensibility, have now matured to the point that we have jointly decided that it [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/26485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/194"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=26485"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/26485\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=26485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=26485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=26485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}