feat: ✨ Implement azdo boards work-item list command - #197
Merged
Conversation
Add a new `workitem list` subcommand to the boards command group for querying and displaying work items with extensive filtering capabilities. The command supports filtering by: - Status (open, closed, resolved, all) - Work item types - Assigned to (including @me alias) - Severity classification - Priority - Area and iteration paths (with subtree support) - Result limiting
Add documentation for the new `azdo boards work-item` command and its `list` subcommand. Includes command reference, examples, and integration with the main boards documentation and help reference.
…ation The standard library's slices.CompactFunc was removed in favor of a custom uniqueByEq function because CompactFunc only removes consecutive matching elements This change: - Removes the import of "slices" package - Implements a manual deduplication algorithm that preserves order - Maintains the same public API for Unique, UniqueComparable, and UniqueFunc - Adds comprehensive test coverage for all unique functionality The new implementation handles empty and nil slices consistently and provides the same functionality without external dependencies.
Extract validation and rendering helpers and simplify state and identity resolution to reduce duplication and unnecessary client creation. Use a map-based approach for requested state categories and append-only helpers for collecting state names. Defer creating Extensions/Identity clients until an identity lookup is required. Use types.Unique for de-duplication and ensure WIQL Top is only set when a positive --limit is provided. BREAKING CHANGE: default value for --limit changed from 50 to 0 (no limit). WIQL Top is only applied when --limit > 0.
Add comprehensive debug logging to the git-credential helper using zap to aid troubleshooting of authentication flows. Generate an artificial username when the parsed input does not provide one, and output it instead of the previously hardcoded 'azdo' value.
* Add pre-configured StringBuilder variables for common generation patterns: StringBuilderString, StringBuilderPassword, and StringBuilderNumberedString. * Introduce MustGenerate as a convenience wrapper that panics on error for cases where generation failure indicates a programming error.
Extend the work item list command with advanced query capabilities: - Filter by exact workflow state (--state) - Filter by creator identity (--created-by, --authored-by alias) - Filter by tags (--tag) - Filter by changed and created dates (--changed-after, --created-after) - Custom sorting (--sort, --order) Update WIQL query builder to combine state categories with exact states, apply date bounds, tag predicates, and creator filters.
Add test coverage for work item list filtering and sorting, including sort resolution, date bound parsing, tag and state predicates, created-by identity resolution, and new flag shortcuts.
Modernize the codebase by replacing interface{} with the any alias across variable groups, PR, project, repo, security, and service endpoint packages. Also fixes import ordering and indentation in service endpoint and utility files where encountered.
Add .mise.toml to pin development tool versions and source environment variables from .env. Remove goconst and commented gocyclo from enabled linters in .golangci.yml.
* Replace the separate --sort and --order flags with a unified --sort flag that accepts field:direction syntax. This enables per-field sort direction control instead of a single global direction. * Change the default limit from 0 to 50 and set ChangedDate DESC as the implicit sort order when no sorting is specified.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes: #136