RepoHerd
9.1.0
Multi-repository Git dependency manager with SemVer version resolution, recursive dependency discovery, and cross-platform SSH support. Clone and checkout multiple Git repositories to pinned versions from a single JSON config. An alternative to git submodules for managing shared libraries across repos.
Minimum PowerShell version
7.6
Installation Options
Owners
Copyright
(c) LS Instruments AG. All rights reserved.
Package Details
Author(s)
- LS Instruments AG
Tags
Git Dependency SemVer Checkout MultiRepo DevOps Automation SSH CrossPlatform DependencyManagement VersionPinning Repository Submodules
Functions
Initialize-RepoHerd Write-ErrorWithContext Invoke-WithErrorContext Write-Log ConvertTo-VersionPattern Test-SemVerCompatibility Get-CompatibleVersionsForPattern Select-VersionFromIntersection Get-RepositoryVersions Get-SemVersionIntersection Format-SemVersion Test-DependencyConfiguration Show-ErrorDialog Show-ConfirmDialog Test-GitInstalled Test-GitLfsInstalled Test-SshTransportAvailable Get-RepositoryUrl Get-HostnameFromUrl Get-SshKeyForUrl Set-GitSshKey Get-GitTagDates Resolve-TagsByDate Reset-GitRepository Get-AbsoluteBasePath Get-TagIntersection Get-TagUnion Get-CustomDependencyFilePath Invoke-PostCheckoutScript Update-RepositoryDictionary Update-SemVerRepository Invoke-GitCheckout Invoke-DependencyFile Invoke-RecursiveDependencies Read-CredentialsFile Set-PostCheckoutScriptResult Export-CheckoutResults Show-Summary Invoke-RepoHerd
Dependencies
This module has no dependencies.
Release Notes
v9.1.0: Added Invoke-RepoHerd function for PowerShell Gallery users. Install-Module RepoHerd now provides a callable entry point.
FileList
- RepoHerd.nuspec
- CHANGELOG.md
- CLAUDE.md
- LICENSE
- README.md
- RepoHerd.code-workspace
- RepoHerd.ps1
- RepoHerd.psd1
- RepoHerd.psm1
- docs\advanced_topics.md
- docs\agnostic_mode.md
- docs\choosing_modes.md
- docs\comparison_guide.md
- docs\custom_dependency_files.md
- docs\developer_guide.md
- docs\drafts\reddit-hn-posts.md
- docs\media\repoherd-banner.png
- docs\media\repoherd-banner.svg
- docs\migration_guide.md
- docs\post_checkout_scripts.md
- docs\security_best_practices.md
- docs\semver_mode.md
- docs\ssh_setup.md
- docs\test_repositories_reference.md
- docs\testing_infrastructure.md
- docs\troubleshooting.md
- docs\version_migration.md
- examples\dependencies.custom-files.example.json
- examples\dependencies.enterprise.example.json
- examples\dependencies.example.json
- examples\dependencies.mixed-compatibility.example.json
- examples\dependencies.mixed-conventions.example.json
- examples\dependencies.post-checkout-script.example.json
- examples\example-post-checkout-script.ps1
- examples\git_credentials.example.json
- googlef1070a4948af79f1.html
- index.html
- robots.txt
- sitemap.xml
- tasks\BACKLOG.md
- tasks\DONE.md
- tests\RepoHerd.Integration.Tests.ps1
- tests\RepoHerd.Unit.Tests.ps1
- tests\RepoHerd_Errors.txt
- tests\agnostic-custom-dep-path\dependencies.json
- tests\agnostic-partial-api-overlap\dependencies.json
- tests\agnostic-post-checkout-scripts-2\dependencies.json
- tests\agnostic-post-checkout-scripts-depth-0\dependencies.json
- tests\agnostic-post-checkout-scripts\dependencies.json
- tests\agnostic-recursive\dependencies.json
- tests\api-incompatibility-agnostic\dependencies.json
- tests\api-incompatibility-semver\dependencies.json
- tests\api-incompatibility-semver\libs\test-a\LICENSE
- tests\api-incompatibility-semver\libs\test-a\Tag v3.0.0.txt
- tests\api-incompatibility-semver\libs\test-a\dependencies.json
- tests\api-incompatibility-semver\libs\test-b\LICENSE
- tests\api-incompatibility-semver\libs\test-b\Tag v3.0.0.txt
- tests\api-incompatibility-semver\libs\test-b\dependencies.json
- tests\api-incompatibility-semver\libs\test-c\LICENSE
- tests\api-incompatibility-semver\libs\test-c\Tag v4.0.0.txt
- tests\api-incompatibility-semver\test-root-a\LICENSE
- tests\api-incompatibility-semver\test-root-a\Tag v3.0.0.txt
- tests\api-incompatibility-semver\test-root-a\dependencies.json
- tests\api-incompatibility-semver\test-root-b\LICENSE
- tests\api-incompatibility-semver\test-root-b\Tag v3.1.0.txt
- tests\api-incompatibility-semver\test-root-b\dependencies.json
- tests\semver-basic\dependencies.json
- tests\semver-basic\libs\test-a\LICENSE
- tests\semver-basic\libs\test-a\Tag v3.0.0.txt
- tests\semver-basic\libs\test-a\dependencies.json
- tests\semver-basic\libs\test-b\LICENSE
- tests\semver-basic\libs\test-b\Tag v3.0.0.txt
- tests\semver-basic\libs\test-b\dependencies.json
- tests\semver-basic\libs\test-c\LICENSE
- tests\semver-basic\libs\test-c\Tag v3.0.0.txt
- tests\semver-basic\test-root-a\LICENSE
- tests\semver-basic\test-root-a\Tag v3.0.0.txt
- tests\semver-basic\test-root-a\dependencies.json
- tests\semver-basic\test-root-b\LICENSE
- tests\semver-basic\test-root-b\Tag v3.0.0.txt
- tests\semver-basic\test-root-b\dependencies.json
- tests\semver-custom-dep-path-1\dependencies.json
- tests\semver-custom-dep-path-2\dependencies.json
- tests\semver-floating-versions-2\dependencies.json
- tests\semver-floating-versions\dependencies.json
- tests\semver-post-checkout-scripts-2\dependencies.json
- tests\semver-post-checkout-scripts-depth-0\dependencies.json
- tests\semver-post-checkout-scripts\dependencies.json
- tests\semver-ssh-basic\dependencies.json
- tests\semver-ssh-submodules\dependencies.json
- tests\v8.0.0-validation-plan.md
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 9.1.0 (current version) | 11 | 4/5/2026 |
| 9.0.0 | 6 | 4/5/2026 |