Skip to content

feat: Introduce azdo boards iteration project command group #142

@tmeckel

Description

@tmeckel

Introduce the azdo boards iteration project command group to handle project-scoped iteration (sprint) operations.

Command Group Description

Add a project subgroup under azdo boards iteration that scopes iteration management commands to a single project. This layer will host commands such as list to surface sprint hierarchies and schedule metadata.

Implementation Notes

  • Add internal/cmd/boards/iteration/project/project.go exposing NewCmd(ctx util.CmdContext) *cobra.Command.
  • Follow the [organization/]<project> positional pattern used across boards commands, reusing shared parsing helpers so organization defaults apply when omitted.
  • Register the subgroup in internal/cmd/boards/iteration/iteration.go and regenerate documentation.
  • Help text should clarify that commands in this subgroup enumerate or manage the iteration tree, including optional depth controls for nested sprints.

Command Wiring

  • Implement the subgroup in internal/cmd/boards/iteration/project/project.go and ensure NewCmd lives in that package.
  • Register it from internal/cmd/boards/iteration/iteration.go via cmd.AddCommand(project.NewCmd(ctx)) so the hierarchy is reachable from azdo boards iteration.
  • After wiring, run make docs so the Cobra documentation reflects the new command chain.

SDK / Client Requirements

  • This group acts as the parent for project-scoped iteration commands. The current codebase already exposes the Work Item Tracking client via ClientFactory().WorkItemTracking(...); leaf commands under this group must use that client for classification node operations.
  • If additional Azure DevOps SDK clients become necessary, follow the "Handling Missing Azure DevOps SDK Clients" guidance in AGENTS.md (extend ClientFactory, run go mod tidy and go mod vendor, update scripts/generate_mocks.sh, and implement the factory method) before implementing command logic.

Tooling & Validation

  • Format all touched Go files with gofmt/goimports.
  • Run go build ./cmd/azdo/... to catch missing imports or unresolved symbols.
  • Add/update hermetic tests and execute go test ./... to verify behavior.

References

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions