SONAR-25784 Update the issue APIs to return internal tags
This commit is contained in:
parent
f93ec9c339
commit
4a3a86800b
|
@ -205,7 +205,8 @@ public class ListActionIT {
|
|||
.replaceAllImpacts(List.of(new ImpactDto().setSoftwareQuality(MAINTAINABILITY).setSeverity(org.sonar.api.issue.impact.Severity.BLOCKER)))
|
||||
.setAuthorLogin("John")
|
||||
.setAssigneeUuid(simon.getUuid())
|
||||
.setTags(asList("bug", "owasp"))
|
||||
.setTags(List.of("bug", "owasp"))
|
||||
.setInternalTags(List.of("internal1", "internal2"))
|
||||
.setIssueCreationDate(parseDate("2014-09-03"))
|
||||
.setIssueUpdateDate(parseDate("2017-12-04"))
|
||||
.setCodeVariants(List.of("variant1", "variant2")));
|
||||
|
@ -222,13 +223,13 @@ public class ListActionIT {
|
|||
assertThat(response.getIssuesList())
|
||||
.extracting(
|
||||
Issue::getKey, Issue::getRule, Issue::getSeverity, Issue::getComponent, Issue::getResolution, Issue::getStatus, Issue::getMessage, Issue::getMessageFormattingsList,
|
||||
Issue::getEffort, Issue::getAssignee, Issue::getAuthor, Issue::getLine, Issue::getHash, Issue::getTagsList, Issue::getCreationDate, Issue::getUpdateDate,
|
||||
Issue::getQuickFixAvailable, Issue::getCodeVariantsList, Issue::getImpactsList)
|
||||
Issue::getEffort, Issue::getAssignee, Issue::getAuthor, Issue::getLine, Issue::getHash, Issue::getTagsList, Issue::getInternalTagsList, Issue::getCreationDate,
|
||||
Issue::getUpdateDate, Issue::getQuickFixAvailable, Issue::getCodeVariantsList, Issue::getImpactsList)
|
||||
.containsExactlyInAnyOrder(
|
||||
tuple(issue.getKey(), rule.getKey().toString(), Severity.BLOCKER, file.getKey(), "", STATUS_OPEN, "the message",
|
||||
MessageFormattingUtils.dbMessageFormattingListToWs(List.of(MESSAGE_FORMATTING)), "10min",
|
||||
simon.getLogin(), "John", 42, "a227e508d6646b55a086ee11d63b21e9", asList("bug", "owasp"), formatDateTime(issue.getIssueCreationDate()),
|
||||
formatDateTime(issue.getIssueUpdateDate()), false, List.of("variant1", "variant2"),
|
||||
simon.getLogin(), "John", 42, "a227e508d6646b55a086ee11d63b21e9", List.of("bug", "owasp"), List.of("internal1", "internal2"),
|
||||
formatDateTime(issue.getIssueCreationDate()), formatDateTime(issue.getIssueUpdateDate()), false, List.of("variant1", "variant2"),
|
||||
List.of(newBuilder().setSoftwareQuality(Common.SoftwareQuality.MAINTAINABILITY).setSeverity(Common.ImpactSeverity.ImpactSeverity_BLOCKER).build())));
|
||||
|
||||
assertThat(response.getComponentsList())
|
||||
|
|
|
@ -230,7 +230,8 @@ class SearchActionIT {
|
|||
.setSeverity("MAJOR")
|
||||
.setAuthorLogin("John")
|
||||
.setAssigneeUuid(simon.getUuid())
|
||||
.setTags(asList("bug", "owasp"))
|
||||
.setTags(List.of("bug", "owasp"))
|
||||
.setInternalTags(List.of("internal1", "internal2"))
|
||||
.setIssueCreationDate(parseDate("2014-09-03"))
|
||||
.setIssueUpdateDate(parseDate("2017-12-04"))
|
||||
.setCodeVariants(List.of("variant1", "variant2")));
|
||||
|
@ -242,13 +243,13 @@ class SearchActionIT {
|
|||
assertThat(response.getIssuesList())
|
||||
.extracting(
|
||||
Issue::getKey, Issue::getRule, Issue::getSeverity, Issue::getComponent, Issue::getResolution, Issue::getStatus, Issue::getMessage, Issue::getMessageFormattingsList,
|
||||
Issue::getEffort, Issue::getAssignee, Issue::getAuthor, Issue::getLine, Issue::getHash, Issue::getTagsList,
|
||||
Issue::getEffort, Issue::getAssignee, Issue::getAuthor, Issue::getLine, Issue::getHash, Issue::getTagsList, Issue::getInternalTagsList,
|
||||
Issue::getCreationDate, Issue::getUpdateDate,
|
||||
Issue::getQuickFixAvailable, Issue::getCodeVariantsList)
|
||||
.containsExactlyInAnyOrder(
|
||||
tuple(issue.getKey(), rule.getKey().toString(), Severity.MAJOR, file.getKey(), RESOLUTION_FIXED, STATUS_RESOLVED, "the message",
|
||||
MessageFormattingUtils.dbMessageFormattingListToWs(List.of(MESSAGE_FORMATTING)), "10min",
|
||||
simon.getLogin(), "John", 42, "a227e508d6646b55a086ee11d63b21e9", asList("bug", "owasp"),
|
||||
simon.getLogin(), "John", 42, "a227e508d6646b55a086ee11d63b21e9", List.of("bug", "owasp"), List.of("internal1", "internal2"),
|
||||
formatDateTime(issue.getIssueCreationDate()),
|
||||
formatDateTime(issue.getIssueUpdateDate()), false, List.of("variant1", "variant2")));
|
||||
}
|
||||
|
|
|
@ -97,6 +97,7 @@ public class ListAction implements IssuesWsAction {
|
|||
"<br>Requires the 'Browse' permission on the specified project. ")
|
||||
.setSince("10.2")
|
||||
.setChangelog(
|
||||
new Change("2025.5", "Response field 'internalTags' has been added"),
|
||||
new Change("10.8", format("The parameter '%s' are not deprecated anymore.", PARAM_TYPES)),
|
||||
new Change("10.8", "The response fields 'severity' and 'type' are not deprecated anymore."),
|
||||
new Change("10.4", format("Parameter '%s' is deprecated.", PARAM_TYPES)),
|
||||
|
|
|
@ -241,6 +241,7 @@ public class SearchAction implements IssuesWsAction {
|
|||
+ "<br/>When issue indexing is in progress returns 503 service unavailable HTTP code.")
|
||||
.setSince("3.6")
|
||||
.setChangelog(
|
||||
new Change(V_2025_5, "Response field 'internalTags' has been added"),
|
||||
new Change(V_2025_5, format(NEW_FACET_ADDED_MESSAGE, PARAM_FROM_SONAR_QUBE_UPDATE)),
|
||||
new Change(V_2025_5, format(NEW_PARAM_ADDED_MESSAGE, PARAM_FROM_SONAR_QUBE_UPDATE)),
|
||||
new Change(V_2025_3, format(NEW_FACET_ADDED_MESSAGE, PARAM_OWASP_MOBILE_TOP_10_2024)),
|
||||
|
|
|
@ -212,6 +212,7 @@ public class SearchResponseFormat {
|
|||
issueBuilder.setMessage(nullToEmpty(dto.getMessage()));
|
||||
issueBuilder.addAllMessageFormattings(MessageFormattingUtils.dbMessageFormattingToWs(dto.parseMessageFormattings()));
|
||||
issueBuilder.addAllTags(dto.getTags());
|
||||
issueBuilder.addAllInternalTags(dto.getInternalTags());
|
||||
issueBuilder.addAllCodeVariants(dto.getCodeVariants());
|
||||
Long effort = dto.getEffort();
|
||||
if (effort != null) {
|
||||
|
|
|
@ -99,6 +99,10 @@
|
|||
"codeVariants": [
|
||||
"windows",
|
||||
"linux"
|
||||
],
|
||||
"internalTags": [
|
||||
"advanced",
|
||||
"sast"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -100,6 +100,10 @@
|
|||
"codeVariants": [
|
||||
"windows",
|
||||
"linux"
|
||||
],
|
||||
"internalTags": [
|
||||
"advanced",
|
||||
"sast"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -142,6 +142,7 @@ class SearchResponseFormatFormatOperationTest {
|
|||
assertThat(issue.getStatus()).isEqualTo(issueDto.getStatus());
|
||||
assertThat(issue.getMessage()).isEqualTo(issueDto.getMessage());
|
||||
assertThat(new ArrayList<>(issue.getTagsList())).containsExactlyInAnyOrderElementsOf(issueDto.getTags());
|
||||
assertThat(new ArrayList<>(issue.getInternalTagsList())).containsExactlyInAnyOrderElementsOf(issueDto.getInternalTags());
|
||||
assertThat(issue.getLine()).isEqualTo(issueDto.getLine());
|
||||
assertThat(issue.getHash()).isEqualTo(issueDto.getChecksum());
|
||||
assertThat(issue.getAuthor()).isEqualTo(issueDto.getAuthorLogin());
|
||||
|
|
|
@ -169,6 +169,7 @@ message Issue {
|
|||
optional string issueStatus = 43;
|
||||
optional bool prioritizedRule = 44;
|
||||
optional bool fromSonarQubeUpdate = 45;
|
||||
repeated string internalTags = 46;
|
||||
}
|
||||
|
||||
message Transitions {
|
||||
|
|
Loading…
Reference in New Issue