Skip to content

Commit 56456e0

Browse files
authored
Merge pull request #45 from sacha-c/project-config-slack-channel
chore: match project config with cli config
2 parents 10df2a4 + f6d8483 commit 56456e0

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

internal/config/project.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,18 @@ type AcknowledgedVuln struct {
1313
Reason string `toml:"reason"`
1414
}
1515

16+
type ProjectReportTo struct {
17+
SlackChannel string `toml:"slack-channel"`
18+
}
19+
20+
type ProjectReport struct {
21+
To ProjectReportTo `toml:"to"`
22+
}
23+
1624
type ProjectConfig struct {
17-
ReportToSlackChannel string `toml:"report-to-slack-channel"`
18-
SlackChannel string `toml:"slack-channel"` // TODO #27: Break in v1.0. Kept for backwards-compatibility
19-
Acknowledged []AcknowledgedVuln `toml:"acknowledged"`
25+
Report ProjectReport `toml:"report"`
26+
SlackChannel string `toml:"slack-channel"` // TODO #27: Break in v1.0. Kept for backwards-compatibility
27+
Acknowledged []AcknowledgedVuln `toml:"acknowledged"`
2028
}
2129

2230
func GetProjectConfiguration(projectName string, dir string) (config ProjectConfig) {
@@ -30,7 +38,7 @@ func GetProjectConfiguration(projectName string, dir string) (config ProjectConf
3038
}
3139

3240
if config.SlackChannel != "" {
33-
config.ReportToSlackChannel = config.SlackChannel
41+
config.Report.To.SlackChannel = config.SlackChannel
3442
}
3543

3644
return

internal/config/project_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ func TestGetConfiguration(t *testing.T) {
1212
foldername string
1313
wantConfig ProjectConfig
1414
}{
15-
{"valid", ProjectConfig{ReportToSlackChannel: "the-devils-slack-channel"}},
15+
{"valid", ProjectConfig{Report: ProjectReport{To: ProjectReportTo{SlackChannel: "the-devils-slack-channel"}}}},
1616
{"invalid", ProjectConfig{}},
1717
{"nonexistent", ProjectConfig{}},
1818
{"valid_with_ack", ProjectConfig{Acknowledged: []AcknowledgedVuln{{Code: "CSV111", Reason: "not relevant"}, {Code: "CSV222", Reason: ""}}}},
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
report-to-slack-channel = "the-devils-slack-channel"
1+
[report.to]
2+
slack-channel = "the-devils-slack-channel"

internal/publish/to_slack.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func PublishAsGeneralSlackMessage(channelNames []string, reports []scanner.Repor
4747
}
4848

4949
func PublishAsSpecificChannelSlackMessage(reports []scanner.Report, s slack.IService) (warn error) {
50-
configuredReports := pie.Filter(reports, func(r scanner.Report) bool { return r.ProjectConfig.ReportToSlackChannel != "" })
50+
configuredReports := pie.Filter(reports, func(r scanner.Report) bool { return r.ProjectConfig.Report.To.SlackChannel != "" })
5151

5252
var wg sync.WaitGroup
5353
for _, report := range configuredReports {
@@ -57,10 +57,10 @@ func PublishAsSpecificChannelSlackMessage(reports []scanner.Report, s slack.ISer
5757
defer wg.Done()
5858
message := formatSpecificChannelSlackMessage(report)
5959

60-
_, err := s.PostMessage(report.ProjectConfig.ReportToSlackChannel, message...)
60+
_, err := s.PostMessage(report.ProjectConfig.Report.To.SlackChannel, message...)
6161
if err != nil {
62-
log.Error().Err(err).Str("channel", report.ProjectConfig.ReportToSlackChannel).Msg("Failed to post slack report")
63-
err = fmt.Errorf("failed to post slack report to channel %v", report.ProjectConfig.ReportToSlackChannel)
62+
log.Error().Err(err).Str("channel", report.ProjectConfig.Report.To.SlackChannel).Msg("Failed to post slack report")
63+
err = fmt.Errorf("failed to post slack report to channel %v", report.ProjectConfig.Report.To.SlackChannel)
6464
warn = errors.Join(err, warn)
6565
}
6666
}()

internal/publish/to_slack_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func TestPublishAsSpecificChannelSlackMessage(t *testing.T) {
6262
Id: "CVE-2021-1234",
6363
},
6464
},
65-
ProjectConfig: config.ProjectConfig{ReportToSlackChannel: "channel"},
65+
ProjectConfig: config.ProjectConfig{Report: config.ProjectReport{To: config.ProjectReportTo{SlackChannel: "channel"}}},
6666
}
6767

6868
_ = PublishAsSpecificChannelSlackMessage([]scanner.Report{report}, mockSlackService)

0 commit comments

Comments
 (0)