graph LR
CLI_Entrypoint_Command_Dispatcher["CLI Entrypoint & Command Dispatcher"]
Project_Lifecycle_Command_Handlers["Project Lifecycle Command Handlers"]
Configuration_Catalog_Manager["Configuration & Catalog Manager"]
Source_Code_Repository_Adapters["Source Code Repository Adapters"]
Orchestration_Execution_Engine["Orchestration & Execution Engine"]
Environment_System_Utilities["Environment & System Utilities"]
Unclassified["Unclassified"]
CLI_Entrypoint_Command_Dispatcher -- "dispatches commands to" --> Project_Lifecycle_Command_Handlers
Project_Lifecycle_Command_Handlers -- "accesses and updates configuration via" --> Configuration_Catalog_Manager
Project_Lifecycle_Command_Handlers -- "initiates task execution through" --> Orchestration_Execution_Engine
Configuration_Catalog_Manager -- "retrieves repository metadata from" --> Source_Code_Repository_Adapters
Orchestration_Execution_Engine -- "interacts with repositories via" --> Source_Code_Repository_Adapters
Orchestration_Execution_Engine -- "relies on" --> Environment_System_Utilities
CLI_Entrypoint_Command_Dispatcher -- "performs initial environment validation using" --> Environment_System_Utilities
Configuration_Catalog_Manager -- "utilizes" --> Environment_System_Utilities
Project_Lifecycle_Command_Handlers -- "leverages" --> Environment_System_Utilities
click Project_Lifecycle_Command_Handlers href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/poco/Project_Lifecycle_Command_Handlers.md" "Details"
click Orchestration_Execution_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/poco/Orchestration_Execution_Engine.md" "Details"
The poco project is structured around a command-line interface (CLI) that dispatches user commands to a set of specialized handlers. At its core, the CLI Entrypoint & Command Dispatcher component processes user input and routes it to the appropriate Project Lifecycle Command Handlers. These handlers, in turn, interact with the Configuration & Catalog Manager to access project settings and repository definitions. For source code management operations, the Source Code Repository Adapters provide a unified interface to various SCM systems. The Orchestration & Execution Engine is responsible for executing project-defined tasks, often leveraging external tools. All these components rely on the Environment & System Utilities for fundamental system interactions and environment checks. This modular design ensures clear separation of concerns and facilitates maintainability and extensibility.
The primary interface for poco, handling user input, command parsing, and dispatching to specific command handlers.
Related Classes/Methods:
Project Lifecycle Command Handlers [Expand]
A collection of modules, each implementing the logic for a specific poco command (e.g., init, start, clean, repo_add).
Related Classes/Methods:
poco.commands.abstract_command.AbstractCommand:5-29poco.commands.init.InitCommandpoco.commands.start.StartCommandpoco.commands.clean.CleanCommandpoco.commands.repo_add.RepoAddCommandpoco.commands.project_add.ProjectAddCommand
Manages all global and project-specific configurations, including repository definitions and project catalogs. Handles reading, writing, and validating configuration data.
Related Classes/Methods:
poco.services.config_handler.ConfigHandler:9-151poco.services.catalog_handler.CatalogHandler:14-218poco.services.state.StateHolder:4-74
Provides a unified abstraction layer for interacting with various Source Code Management (SCM) systems (Git, GitLab, Bitbucket, SVN, local file systems).
Related Classes/Methods:
poco.services.abstract_repository.AbstractRepository:14-89poco.services.git_repository.GitRepository:12-146poco.services.gitlab_repository.GitlabRepository:9-42poco.services.bitbucket_repository.BitbucketRepository:11-69poco.services.svn_repository.SvnRepository:9-21poco.services.file_repository.FileRepository:6-11
Orchestration & Execution Engine [Expand]
The core component for executing project-defined commands and scripts, integrating with external tools like Docker, Docker Compose, Kubernetes, and Helm.
Related Classes/Methods:
poco.services.command_handler.CommandHandler:13-181poco.services.command_runners.CommandRunnerspoco.services.compose_handler.ComposeHandler:10-115poco.services.package_handler.PackageHandler:11-109
A collection of foundational utility functions for interacting with the operating system, checking external tool installations, and performing file system operations.
Related Classes/Methods:
poco.services.environment_utils.EnvironmentUtils:12-103poco.services.file_utils.FileUtils:10-143poco.services.project_utils.ProjectUtils:10-81
Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)
Related Classes/Methods: None