Skip to content

Split base_github_projects engine by command boundary #927

Description

@codeforester

Problem

cli/python/base_github_projects/engine.py is currently about 994 lines and owns project doctor, project configure, and issue field update behavior in one module. These operations share GitHub Project infrastructure, but they have different command paths, error contracts, and output expectations.

Desired outcome

Refactor the GitHub Projects Python implementation into clearer command-boundary modules without changing user-visible behavior.

Scope

  • Identify stable shared Project V2 helpers that should remain common.
  • Move doctor-specific behavior into a focused module.
  • Move configure-specific behavior into a focused module.
  • Move issue field update behavior into a focused module.
  • Preserve CLI behavior, text output, JSON/structured behavior if any, and exception handling.
  • Keep tests focused on behavior rather than module internals.

Non-goals

  • Do not redesign the GitHub Project schema.
  • Do not change issue/project field semantics.
  • Do not add new GitHub workflow features as part of the refactor.

Acceptance criteria

  • base_github_projects command paths remain behaviorally compatible.
  • The main engine module no longer owns all doctor, configure, and issue field update logic directly.
  • Existing tests pass, with focused coverage added if extraction exposes missing command-boundary cases.
  • Documentation or developer notes are updated only if the public or contributor-facing structure changes.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions