From 78911d1b7744f09aa46dd8e0c0a52fd9f171cf2d Mon Sep 17 00:00:00 2001 From: Ross Strickland Date: Mon, 10 Jul 2023 12:23:16 -0500 Subject: [PATCH] fix: broken automerge logic (#3591) * fix automerge logic. * address failing autoplan test with automerge --- server/events/automerger.go | 8 ++------ server/events/command_runner_test.go | 7 ++++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/server/events/automerger.go b/server/events/automerger.go index ee7bc9f530..b3c05e75e8 100644 --- a/server/events/automerger.go +++ b/server/events/automerger.go @@ -46,14 +46,10 @@ func (c *AutoMerger) automerge(ctx *command.Context, pullStatus models.PullStatu // automergeEnabled returns true if automerging is enabled in this context. func (c *AutoMerger) automergeEnabled(projectCmds []command.ProjectContext) bool { - // only automerge if all projects have automerge set; or if global automerge is set and there are no projects. + // Use project automerge settings if projects exist; otherwise, use global automerge settings. automerge := c.GlobalAutomerge if len(projectCmds) > 0 { - for _, prjCmd := range projectCmds { - if !prjCmd.AutomergeEnabled { - automerge = false - } - } + automerge = projectCmds[0].AutomergeEnabled } return automerge } diff --git a/server/events/command_runner_test.go b/server/events/command_runner_test.go index f69f010666..3b652d73db 100644 --- a/server/events/command_runner_test.go +++ b/server/events/command_runner_test.go @@ -695,16 +695,17 @@ func TestRunAutoplanCommandWithError_DeletePlans(t *testing.T) { Ok(t, err) dbUpdater.Backend = boltDB applyCommandRunner.Backend = boltDB - autoMerger.GlobalAutomerge = true defer func() { autoMerger.GlobalAutomerge = false }() When(projectCommandBuilder.BuildAutoplanCommands(Any[*command.Context]())). ThenReturn([]command.ProjectContext{ { - CommandName: command.Plan, + CommandName: command.Plan, + AutomergeEnabled: true, // Setting this manually, since this tests bypasses automerge param reconciliation logic and otherwise defaults to false. }, { - CommandName: command.Plan, + CommandName: command.Plan, + AutomergeEnabled: true, // Setting this manually, since this tests bypasses automerge param reconciliation logic and otherwise defaults to false. }, }, nil) callCount := 0