From 8e1bc0f8d5cfb4dd80277ced50b3aa9c25b0bb7f Mon Sep 17 00:00:00 2001 From: Jaz Date: Mon, 13 Nov 2023 14:49:46 -0500 Subject: [PATCH] more handling for include extinctions --- comments/comments.go | 6 +++++- diff/diff_test.go | 2 +- internal/references/builder.go | 33 ++++++++++++++++++++------------- main.go | 2 +- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/comments/comments.go b/comments/comments.go index cf2ff445..c44d51cd 100644 --- a/comments/comments.go +++ b/comments/comments.go @@ -146,7 +146,11 @@ func ProcessFlags(flagsRef refs.ReferenceSummary, flags []ldapi.FeatureFlag, con for _, flagKey := range removedKeys { flagAliases := flagsRef.FlagsRemoved[flagKey] idx, _ := find(flags, flagKey) - _, extinct := flagsRef.ExtinctFlags[flagKey] + extinct := false + if flagsRef.ExtinctFlags != nil { + _, e := flagsRef.ExtinctFlags[flagKey] + extinct = e + } removedComment, err := githubFlagComment(flags[idx], flagAliases, false, extinct, config) buildComment.CommentsRemoved = append(buildComment.CommentsRemoved, removedComment) if err != nil { diff --git a/diff/diff_test.go b/diff/diff_test.go index fec9f7b3..6f8f141d 100644 --- a/diff/diff_test.go +++ b/diff/diff_test.go @@ -55,7 +55,7 @@ func newProcessFlagAccEnv() *testProcessor { flags := ldapi.FeatureFlags{} flags.Items = append(flags.Items, flag) flags.Items = append(flags.Items, flag2) - builder := refs.NewReferenceSummaryBuilder(5) + builder := refs.NewReferenceSummaryBuilder(5, false) config := config.Config{ LdEnvironment: "production", LdInstance: "https://example.com/", diff --git a/internal/references/builder.go b/internal/references/builder.go index a37e2a44..a44f5873 100644 --- a/internal/references/builder.go +++ b/internal/references/builder.go @@ -9,20 +9,22 @@ import ( ) type ReferenceSummaryBuilder struct { - max int // maximum number of flags to find - flagsAdded map[string][]string - flagsRemoved map[string][]string - flagsFoundAtHead map[string]struct{} - foundFlags map[string]struct{} + max int // maximum number of flags to find + includeExtinctions bool // include extinctions in summary + flagsAdded map[string][]string + flagsRemoved map[string][]string + flagsFoundAtHead map[string]struct{} + foundFlags map[string]struct{} } -func NewReferenceSummaryBuilder(max int) *ReferenceSummaryBuilder { +func NewReferenceSummaryBuilder(max int, includeExtinctions bool) *ReferenceSummaryBuilder { return &ReferenceSummaryBuilder{ - flagsAdded: make(map[string][]string), - flagsRemoved: make(map[string][]string), - foundFlags: make(map[string]struct{}), - flagsFoundAtHead: make(map[string]struct{}), - max: max, + flagsAdded: make(map[string][]string), + flagsRemoved: make(map[string][]string), + foundFlags: make(map[string]struct{}), + flagsFoundAtHead: make(map[string]struct{}), + max: max, + includeExtinctions: includeExtinctions, } } @@ -107,11 +109,16 @@ func (b *ReferenceSummaryBuilder) Build() ReferenceSummary { } } - return ReferenceSummary{ + summary := ReferenceSummary{ FlagsAdded: added, FlagsRemoved: removed, - ExtinctFlags: extinctions, } + + if b.includeExtinctions { + summary.ExtinctFlags = extinctions + } + + return summary } // get slice with unique, non-empty strings diff --git a/main.go b/main.go index c19bf823..dc9f811a 100644 --- a/main.go +++ b/main.go @@ -62,7 +62,7 @@ func main() { matcher, err := search.GetMatcher(opts, flagKeys, diffMap) failExit(err) - builder := references.NewReferenceSummaryBuilder(config.MaxFlags) + builder := references.NewReferenceSummaryBuilder(config.MaxFlags, config.CheckExtinctions) for _, contents := range diffMap { ldiff.ProcessDiffs(matcher, contents, builder) }