Skip to content

Commit 5784b77

Browse files
committed
feat: Separate SSH credentials from repository configuration (#1)
BREAKING CHANGE: Major refactoring of SSH key management for improved security - Move SSH key configuration from dependencies.json to separate git_credentials.json file - SSH keys are now mapped by hostname instead of per-repository - Remove "SSH Key Path" field from repository and submodule configurations - Remove "Submodule Config" section entirely (submodules are auto-discovered) - Rename -Debug parameter to -EnableDebug to avoid PowerShell conflicts New features: - Add -CredentialsFile parameter for specifying custom credentials file - Implement automatic hostname extraction from repository URLs - Support multiple URL formats: git@, ssh://, https:// - Add comprehensive debug logging for hostname extraction and key lookup Security improvements: - Repository configurations can now be safely committed to version control - User-specific credentials are kept in a separate, gitignore-able file - Better separation of concerns between configuration and authentication Technical improvements: - Fix hostname extraction for SSH URLs with usernames and ports - Improve debug logging throughout the credential lookup process - Simplify codebase by removing manual submodule configuration This change allows teams to share repository configurations without exposing personal SSH key paths, making the tool more suitable for collaborative environments. Closes #1
1 parent f9940c5 commit 5784b77

File tree

5 files changed

+337
-122
lines changed

5 files changed

+337
-122
lines changed

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,27 @@ All notable changes to LsiGitCheckout will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.0.0] - 2025-01-14
9+
10+
### Changed
11+
- **BREAKING**: Moved SSH key configuration from dependencies.json to separate git_credentials.json file
12+
- SSH keys are now mapped by hostname instead of per-repository
13+
- Improved security by separating credentials from repository configuration
14+
15+
### Added
16+
- New `-CredentialsFile` parameter to specify custom SSH credentials file
17+
- Automatic hostname extraction from repository URLs
18+
- Support for hostnames with and without `ssh://` prefix in credentials file
19+
20+
### Removed
21+
- "SSH Key Path" field from Repository configuration in dependencies.json
22+
- "SSH Key Path" field from Submodule Config in dependencies.json
23+
24+
### Migration Guide
25+
1. Create a new `git_credentials.json` file with hostname-to-key mappings
26+
2. Remove all "SSH Key Path" fields from your dependencies.json
27+
3. The script will automatically look up SSH keys based on repository hostnames
28+
829
## [2.1.2] - 2025-01-10
930

1031
### Removed

0 commit comments

Comments
 (0)