Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions changelog/v0.28.5/update-gh-issue-writer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
changelog:
- type: NON_USER_FACING
description: |
Updated security scan GH issue writer to not purge existing labels.
18 changes: 18 additions & 0 deletions securityscanutils/issuewriter/github_writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,24 @@ func (g *GithubIssueWriter) Write(
if issue.GetTitle() == issueTitle {
// Only create new issue if issue does not already exist
createNewIssue = false

// Merge existing labels with desired labels, avoiding duplicates
labelMap := map[string]struct{}{}
for _, l := range issue.Labels {
if l != nil && l.Name != nil {
labelMap[*l.Name] = struct{}{}
}
}
for _, l := range labels {
labelMap[l] = struct{}{}
}

mergedLabels := make([]string, 0, len(labelMap))
for l := range labelMap {
mergedLabels = append(mergedLabels, l)
}
issueRequest.Labels = &mergedLabels

err := githubutils.UpdateIssue(ctx, g.client, g.repo.Owner, g.repo.RepoName, issue.GetNumber(), issueRequest)
if err != nil {
return eris.Wrapf(err, "error updating issue with issue request %+v", issueRequest)
Expand Down