Как получить список исправленных проблем во время сканирования сонара

После каждого сканирования сонаром мы можем видеть список недавно добавленных проблем как в журналах портала, так и в журналах сканирования, как показано ниже. Я могу получить список недавно добавленных проблем с помощью Rest API.

http://localhost:9000/api/issues/search?createdAfter=2015-08-15

Здесь мы видим, что 18 основных проблем были исправлены и показаны зеленым цветом. Есть ли способ узнать список исправленных проблем в конкретном сканировании. Использование API или любой другой подход

введите описание изображения здесь

[sonar:sonar] 07:06:13.946 INFO  - ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/ICDP_NOV_2015
[sonar:sonar] 07:06:14.012 INFO  - Executing post-job class org.sonar.issuesreport.ReportJob 
[sonar:sonar] 07:06:21.327 INFO  - HTML Issues Report generated: /hosting/workspace/Sonar_20151102/make/sonar_deploy/.sonar/issues-report/issues-report.html
[sonar:sonar] 07:06:21.494 INFO  - Light HTML Issues Report generated: /hosting/workspace/Sonar_20151102/make/sonar_deploy/.sonar/issues-report/issues-report-light.html
[sonar:sonar] 07:06:21.497 INFO  - 
[sonar:sonar] 
[sonar:sonar] -------------  Issues Report  -------------
[sonar:sonar] 
[sonar:sonar]        +27 issues
[sonar:sonar] 
[sonar:sonar]        +20 major
[sonar:sonar]         +7 minor
[sonar:sonar] 
[sonar:sonar] -------------------------------------------
[sonar:sonar] 
[sonar:sonar] 
[sonar:sonar] 07:06:21.497 INFO  - Executing post-job class org.sonar.plugins.issueassign.notification.SendIssueNotificationsPostJob
[sonar:sonar] 07:06:21.902 INFO  - Executing post-job class org.sonar.plugins.core.issue.notification.SendIssueNotificationsPostJob
[sonar:sonar] 07:06:22.361 INFO  - Executing post-job class org.sonar.pl

person Nayeem    schedule 10.09.2015    source источник


Ответы (2)


Пока невозможно отследить погашенный технический долг. Можно только отследить пока новый технический долг.

person Freddy - SonarSource Team    schedule 02.10.2015
comment
Спасибо Фредди! Есть ли альтернативный подход к этому? Например, создание пользователей и назначение дефектов или плагин SCM. - person Nayeem; 15.10.2015
comment
это все еще так? - person Sean; 19.11.2018
comment
Sonar rest API имеет конечную точку для получения списка исправленных проблем, а затем использует дату для фильтрации. - person Nayeem; 20.11.2018

Есть один возможный способ сделать это, но не лучший способ

Как только вы вызовете http://localhost:9000/api/issues/search, вы получите массив, как показано ниже,

 {  
       "paging":{  
          "pageIndex":1,
          "pageSize":100,
          "total":1
       },
       "issues":[  
          {  
             "key":"01fc972e-2a3c-433e-bcae-0bd7f88f5123",
             "component":"com.github.kevinsawicki:http-request:com.github.kevinsawicki.http.HttpRequest",
             "project":"com.github.kevinsawicki:http-request",
             "rule":"checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck",
             "status":"RESOLVED",
             "resolution":"FALSE-POSITIVE",
             "severity":"MINOR",
             "message":"'3' is a magic number.",
             "line":530,
             "textRange":{  
                "startLine":81,
                "endLine":81,
                "startOffset":0,
                "endOffset":134
             },
             "author":"Developer 1",
             "effort":"2h1min",
             "creationDate":"2013-05-13T17:55:39+0200",
             "updateDate":"2013-05-13T17:55:39+0200",
             "tags":[  
                "bug"
             ],
             "type":"RELIABILITY",
             "comments":[  
                {  
                   "key":"7d7c56f5-7b5a-41b9-87f8-36fa70caa5ba",
                   "login":"john.smith",
                   "htmlText":"Must be "final"!",
                   "markdown":"Must be \"final\"!",
                   "updatable":false,
                   "createdAt":"2013-05-13T18:08:34+0200"
                }
             ],
             "attr":{  
                "jira-issue-key":"SONAR-1234"
             },
             "transitions":[  
                "unconfirm",
                "resolve",
                "falsepositive"
             ],
             "actions":[  
                "comment"
             ]
          }
       ],
       "components":[  
          {  
             "key":"com.github.kevinsawicki:http-request:src/main/java/com/github/kevinsawicki/http/HttpRequest.java",
             "enabled":true,
             "qualifier":"FIL",
             "name":"HttpRequest.java",
             "longName":"src/main/java/com/github/kevinsawicki/http/HttpRequest.java",
             "path":"src/main/java/com/github/kevinsawicki/http/HttpRequest.java"
          },
          {  
             "key":"com.github.kevinsawicki:http-request",
             "enabled":true,
             "qualifier":"TRK",
             "name":"http-request",
             "longName":"http-request"
          }
       ],
       "rules":[  
          {  
             "key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck",
             "name":"Magic Number",
             "status":"READY",
             "lang":"java",
             "langName":"Java"
          }
       ],
       "users":[  
          {  
             "login":"admin",
             "name":"Administrator",
             "active":true,
             "email":"[email protected]"
          }
       ]
    }

Что вы можете сделать, так это прочитать все объекты и проверить, что обновленная дата ("updateDate":"2013-05-13T17:55:39+0200") больше даты вашего анализа (которую вы можете получить с помощью SonrQube webHooks). Затем также прочитайте статус, чтобы убедиться, что проблема устранена ("status":"RESOLVED")

Как только проблема будет устранена, переменная "updateDate" будет обновлена.

когда вы вызываете API http://localhost:9000/api/issues/search, вы можете используйте параметр statuses=RESOLVED,CLOSED, если вам нужны только исправленные проблемы. Вы можете добавить этот параметр, чтобы уменьшить количество получаемых результатов и оптимизировать процесс.

См. https://codeen-app.euclid-ec.org/sonar/web_api/api/issues для получения дополнительной информации.

person Tenusha Guruge    schedule 19.05.2019