- Differentiate logic when a URL is used for the clone command.
- Parse URL to get identifiers without cloning the repository.
- This avoids an implicit clone before the explicit one.
- Retain original `get_repo` behavior for other commands.
- Moved git repository handling logic from `gittools` to a new
`gitresolver` module for better code organization and reusability.
- Created a `GitUrlResolver` interface to abstract git URL resolution.
- Implemented a `GitToolsResolver` struct to adapt the existing
`gittools` functionality to the new interface. This allows for
future extensibility with different git repository management
strategies.
- Improved error handling and added more informative error messages.
- Improved the structure of the `heroscript` by breaking down the
actions into smaller, more manageable units.