@@ -33,8 +33,13 @@ func writeMarker(sb *strings.Builder, marker string) {
3333 }
3434}
3535
36- func countResourceChanges (rd diff.ResourceDiff ) (added , modified , deleted int ) {
37- return len (rd .Added ), len (rd .Modified ), len (rd .Deleted )
36+ func sortedKeys [V any ](m map [string ]V ) []string {
37+ keys := make ([]string , 0 , len (m ))
38+ for k := range m {
39+ keys = append (keys , k )
40+ }
41+ sort .Strings (keys )
42+ return keys
3843}
3944
4045// RenderDiffMarkdown renders diff results as markdown for MR comments.
@@ -60,19 +65,18 @@ func RenderDiffMarkdown(results []diff.DiffResult, opts MarkdownOptions) string
6065 if content == "" {
6166 continue
6267 }
68+ teamHeader := result .Team
6369 if result .Team == "(global)" {
64- sb .WriteString ("### Global (default.yml)\n \n " )
65- } else {
66- sb .WriteString (fmt .Sprintf ("### %s\n \n " , result .Team ))
70+ teamHeader = "Global (default.yml)"
6771 }
72+ sb .WriteString (fmt .Sprintf ("### %s\n \n " , teamHeader ))
6873 sb .WriteString (content )
6974 sb .WriteString ("\n " )
7075
7176 for _ , rd := range []diff.ResourceDiff {result .Policies , result .Queries , result .Software , result .Profiles } {
72- a , m , d := countResourceChanges (rd )
73- totalAdded += a
74- totalModified += m
75- totalDeleted += d
77+ totalAdded += len (rd .Added )
78+ totalModified += len (rd .Modified )
79+ totalDeleted += len (rd .Deleted )
7680 }
7781 }
7882
@@ -87,7 +91,7 @@ func RenderDiffMarkdown(results []diff.DiffResult, opts MarkdownOptions) string
8791 totalAdded , totalModified , totalDeleted ))
8892
8993 if warning := buildPermissionWarning (results ); warning != "" {
90- sb .WriteString (fmt .Sprintf ("\n **Warning:** %s\n " , warning ))
94+ sb .WriteString (fmt .Sprintf ("\n ⚠️ %s\n " , warning ))
9195 }
9296
9397 writeMarker (& sb , opts .Marker )
@@ -162,11 +166,7 @@ func renderFieldsMarkdown(fields map[string]diff.FieldDiff) string {
162166 return ""
163167 }
164168 var parts []string
165- var names []string
166- for name := range fields {
167- names = append (names , name )
168- }
169- sort .Strings (names )
169+ names := sortedKeys (fields )
170170 for _ , name := range names {
171171 fd := fields [name ]
172172 parts = append (parts , fmt .Sprintf ("`%s`: `%s` -> `%s`" , name , fd .Old , fd .New ))
@@ -207,11 +207,7 @@ func buildPermissionWarning(results []diff.DiffResult) string {
207207 return ""
208208 }
209209
210- resources := make ([]string , 0 , len (unavailable ))
211- for r := range unavailable {
212- resources = append (resources , r )
213- }
214- sort .Strings (resources )
210+ resources := sortedKeys (unavailable )
215211 return fmt .Sprintf ("Token lacks read access to: %s. Full-access token required for a complete diff." , strings .Join (resources , ", " ))
216212}
217213
@@ -254,11 +250,7 @@ func renderLabelsMarkdown(results []diff.DiffResult) string {
254250 sb .WriteString (fmt .Sprintf ("- 🏷️ `%s`\n " , l .Name ))
255251 }
256252 }
257- var missingNames []string
258- for name := range missingSeen {
259- missingNames = append (missingNames , name )
260- }
261- sort .Strings (missingNames )
253+ missingNames := sortedKeys (missingSeen )
262254 for _ , name := range missingNames {
263255 l := missingSeen [name ]
264256 sb .WriteString (fmt .Sprintf ("- 🚫 `%s` **NOT FOUND** (referenced by %s)\n " , l .Name , l .ReferencedBy ))
0 commit comments