Phase 3: Configuration listing (config service, CLI commands)#3
Merged
Conversation
…formatter) Implement multi-project configuration listing and detail retrieval: - Add ConfigService with resolve_projects(), list_configs(), get_config_detail() - Replace config command stubs with full Typer implementation - Add Rich table formatter grouped by project alias - Add config detail panel with configuration parameters display - Wire ConfigService into CLI context - Per-project errors collected without stopping other projects - Component type and component ID filtering support - 37 new tests covering service logic, CLI commands in JSON/human modes, partial failures, filtering, and exit codes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4 tasks
9 tasks
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.
Implementation Summary
Implements Phase 3 of the Keboola Agent CLI: multi-project configuration listing and detail retrieval. Adds a full
ConfigServicebusiness logic layer, replaces config command stubs with real Typer CLI commands, adds Rich table output formatters, and wires everything into the CLI context.Key changes:
config_service.py(NEW):ConfigServicewithresolve_projects(),list_configs(),get_config_detail()- supports multi-project aggregation with per-project error handlingcommands/config.py(REPLACED): Full implementation ofconfig listandconfig detailwith filtering, error handling, and dual output modesoutput.py(EXTENDED):format_configs_table()for Rich tables grouped by project,format_config_detail()for detail panels,warning()methodcli.py(EXTENDED): WireConfigServiceintoctx.objAcceptance Criteria
Tests
uv run pytest tests/ -v- 151 passed (114 existing + 37 new)New test classes:
TestConfigServiceListConfigs(13 tests): multi-project aggregation, type filtering, component_id filtering, partial failure, empty results, unknown alias, client cleanupTestConfigServiceGetConfigDetail(4 tests): success, unknown alias, API error, client cleanup on errorTestResolveProjects(4 tests): all projects, specific aliases, unknown alias, empty listTestConfigList(11 tests): JSON output, human output, project filter, multiple projects, type filter, component_id filter, unknown alias exit code 5, partial failure (JSON + human), empty results, invalid component type exit code 2TestConfigDetail(5 tests): JSON output, human output, unknown alias exit code 5, API error exit code, auth error exit code 3Files Changed
src/keboola_agent_cli/services/config_service.py(NEW)src/keboola_agent_cli/commands/config.py(REPLACED stubs)src/keboola_agent_cli/output.py(EXTENDED)src/keboola_agent_cli/cli.py(EXTENDED)tests/test_services.py(EXTENDED)tests/test_cli.py(EXTENDED)