Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions