Skip to content

[plan] Split checkout_manager.go into state management and step generation #23908

@github-actions

Description

@github-actions

Objective

Split pkg/workflow/checkout_manager.go (1,005 lines) by moving all step generation functions to a new file, separating state management from YAML step generation.

Context

From discussion #23903 (Repository Quality: File Size Discipline). This file conflates CheckoutManager state management with GitHub Actions YAML step generation. The step generation functions are independently testable and have a natural seam for extraction.

Approach

  1. Create pkg/workflow/checkout_step_generator.go in the same package (package workflow)
  2. Move these functions to the new file:
    • GenerateCheckoutAppTokenSteps
    • GenerateCheckoutAppTokenInvalidationSteps
    • GenerateAdditionalCheckoutSteps
    • GenerateGitHubFolderCheckoutStep
    • GenerateDefaultCheckoutStep
    • generateCheckoutStepLines
  3. Keep CheckoutManager type definition, NewCheckoutManager, all getters/setters, and resolver logic in checkout_manager.go

Rules

  • Same package (package workflow)
  • Do NOT change any function signatures
  • Run make fmt after changes
  • Run go test ./pkg/workflow/ -run ".*[Cc]heckout.*" to validate
  • Run make agent-finish before committing

Acceptance Criteria

  • pkg/workflow/checkout_step_generator.go contains all Generate* / generate* step functions
  • pkg/workflow/checkout_manager.go reduced to type definition + state management — under 400 lines
  • Both files under 500 lines
  • All existing checkout-related tests pass

Generated by Plan Command for issue #discussion #23903 ·

  • expires on Apr 3, 2026, 2:40 PM UTC

Metadata

Metadata

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions