diff --git a/pkg/cli/checks_command.go b/pkg/cli/checks_command.go index 2974a2d77f..7f308332cc 100644 --- a/pkg/cli/checks_command.go +++ b/pkg/cli/checks_command.go @@ -163,7 +163,7 @@ func FetchChecksResult(repoOverride string, prNumber string) (*ChecksResult, err } state := classifyCheckState(checkRuns, statuses) - requiredState := classifyCheckState(checkRuns, policyStatuses(statuses)) + requiredState := classifyCheckState(checkRuns, filterCommitStatusesToPolicyChecks(statuses)) return &ChecksResult{ State: state, @@ -318,10 +318,10 @@ func isPolicyCheck(name string) bool { return false } -// policyStatuses returns only the commit statuses whose context matches a policy/account-gate +// filterCommitStatusesToPolicyChecks returns only the commit statuses whose context matches a policy/account-gate // pattern. Used to compute required_state, which excludes optional third-party commit statuses // (e.g. Vercel, Netlify deployments) but still surfaces policy_blocked when policy gates fail. -func policyStatuses(statuses []PRCommitStatus) []PRCommitStatus { +func filterCommitStatusesToPolicyChecks(statuses []PRCommitStatus) []PRCommitStatus { if len(statuses) == 0 { return nil } diff --git a/pkg/cli/checks_command_test.go b/pkg/cli/checks_command_test.go index 6f890629af..1a5f5f9673 100644 --- a/pkg/cli/checks_command_test.go +++ b/pkg/cli/checks_command_test.go @@ -299,7 +299,7 @@ func TestRequiredStateIgnoresCommitStatusFailures(t *testing.T) { assert.Equal(t, CheckStateFailed, aggregate, "aggregate state should be failed when commit status fails") // required_state excludes non-policy commit statuses. - required := classifyCheckState(runs, policyStatuses(statuses)) + required := classifyCheckState(runs, filterCommitStatusesToPolicyChecks(statuses)) assert.Equal(t, CheckStateSuccess, required, "required_state should be success when check runs all pass and only Vercel fails") } @@ -314,7 +314,7 @@ func TestRequiredStateNetlifyDeployFailure(t *testing.T) { aggregate := classifyCheckState(runs, statuses) assert.Equal(t, CheckStateFailed, aggregate, "aggregate state should be failed for Netlify failure") - required := classifyCheckState(runs, policyStatuses(statuses)) + required := classifyCheckState(runs, filterCommitStatusesToPolicyChecks(statuses)) assert.Equal(t, CheckStateSuccess, required, "required_state should be success when only Netlify fails") } @@ -331,7 +331,7 @@ func TestRequiredStateCheckRunFailureStillFails(t *testing.T) { aggregate := classifyCheckState(runs, statuses) assert.Equal(t, CheckStateFailed, aggregate, "aggregate state should be failed when check run fails") - required := classifyCheckState(runs, policyStatuses(statuses)) + required := classifyCheckState(runs, filterCommitStatusesToPolicyChecks(statuses)) assert.Equal(t, CheckStateFailed, required, "required_state should be failed when a check run fails") } @@ -346,7 +346,7 @@ func TestRequiredStateNoCheckRunsOnlyCommitStatus(t *testing.T) { aggregate := classifyCheckState(nil, statuses) assert.Equal(t, CheckStateSuccess, aggregate, "aggregate state should be success") - required := classifyCheckState(nil, policyStatuses(statuses)) + required := classifyCheckState(nil, filterCommitStatusesToPolicyChecks(statuses)) assert.Equal(t, CheckStateNoChecks, required, "required_state should be no_checks when there are no check runs and no policy statuses") } @@ -362,12 +362,12 @@ func TestRequiredStatePolicyCommitStatusStillSurfaced(t *testing.T) { } // required_state should be policy_blocked (not success), because the policy gate failed. - required := classifyCheckState(runs, policyStatuses(statuses)) + required := classifyCheckState(runs, filterCommitStatusesToPolicyChecks(statuses)) assert.Equal(t, CheckStatePolicyBlocked, required, "required_state should be policy_blocked when a policy commit status fails") } // --------------------------------------------------------------------------- -// policyStatuses – filter helper tests +// filterCommitStatusesToPolicyChecks – filter helper tests // --------------------------------------------------------------------------- func TestPolicyStatuses_FiltersNonPolicy(t *testing.T) { @@ -376,14 +376,14 @@ func TestPolicyStatuses_FiltersNonPolicy(t *testing.T) { {Context: "netlify/deploy", State: "failure"}, {Context: "branch protection rule check", State: "failure"}, } - filtered := policyStatuses(statuses) + filtered := filterCommitStatusesToPolicyChecks(statuses) require.Len(t, filtered, 1, "should retain only policy statuses") assert.Equal(t, "branch protection rule check", filtered[0].Context) } func TestPolicyStatuses_EmptyInput(t *testing.T) { - assert.Nil(t, policyStatuses(nil), "nil input should return nil") - assert.Nil(t, policyStatuses([]PRCommitStatus{}), "empty input should return nil") + assert.Nil(t, filterCommitStatusesToPolicyChecks(nil), "nil input should return nil") + assert.Nil(t, filterCommitStatusesToPolicyChecks([]PRCommitStatus{}), "empty input should return nil") } func TestClassifyGHAPIError_NotFound(t *testing.T) { diff --git a/pkg/cli/codemod_activation_outputs.go b/pkg/cli/codemod_activation_outputs.go index 59562e82f8..05450f4ca7 100644 --- a/pkg/cli/codemod_activation_outputs.go +++ b/pkg/cli/codemod_activation_outputs.go @@ -8,8 +8,8 @@ import ( var activationOutputsCodemodLog = logger.New("cli:codemod_activation_outputs") -// getActivationOutputsCodemod creates a codemod for transforming needs.activation.outputs.* to steps.sanitized.outputs.* -func getActivationOutputsCodemod() Codemod { +// newActivationOutputsCodemod creates a codemod for transforming needs.activation.outputs.* to steps.sanitized.outputs.* +func newActivationOutputsCodemod() Codemod { return Codemod{ ID: "activation-outputs-to-sanitized-step", Name: "Transform activation outputs to sanitized step", diff --git a/pkg/cli/codemod_activation_outputs_test.go b/pkg/cli/codemod_activation_outputs_test.go index f66e8eba00..d38161f30d 100644 --- a/pkg/cli/codemod_activation_outputs_test.go +++ b/pkg/cli/codemod_activation_outputs_test.go @@ -8,7 +8,7 @@ import ( ) func TestActivationOutputsCodemod(t *testing.T) { - codemod := getActivationOutputsCodemod() + codemod := newActivationOutputsCodemod() tests := []struct { name string @@ -198,7 +198,7 @@ Some other content: "${{ github.event.issue.number }}" } func TestActivationOutputsCodemodMetadata(t *testing.T) { - codemod := getActivationOutputsCodemod() + codemod := newActivationOutputsCodemod() assert.Equal(t, "activation-outputs-to-sanitized-step", codemod.ID) assert.Equal(t, "Transform activation outputs to sanitized step", codemod.Name) diff --git a/pkg/cli/fix_codemods.go b/pkg/cli/fix_codemods.go index dd000ea39b..2fd0c6b390 100644 --- a/pkg/cli/fix_codemods.go +++ b/pkg/cli/fix_codemods.go @@ -39,7 +39,7 @@ func GetAllCodemods() []Codemod { getMCPModeToTypeCodemod(), getInstallScriptURLCodemod(), getBashAnonymousRemovalCodemod(), // Replace bash: with bash: false - getActivationOutputsCodemod(), // Transform needs.activation.outputs.* to steps.sanitized.outputs.* + newActivationOutputsCodemod(), // Transform needs.activation.outputs.* to steps.sanitized.outputs.* getRolesToOnRolesCodemod(), // Move top-level roles to on.roles getBotsToOnBotsCodemod(), // Move top-level bots to on.bots getEngineStepsToTopLevelCodemod(), // Move engine.steps to top-level steps