PilotSharedSource contains reusable shared assets (scripts, templates, and utility content) that are consumed by other Pilot repositories through a Git submodule.
- Centralize shared source used by multiple Pilot repositories.
- Reduce duplication and drift between repositories.
- Version shared content independently and consume pinned revisions from each dependent repository.
- Keep content modular and reusable across repositories.
- Prefer backward-compatible changes; document breaking changes in commit messages and PR descriptions.
- Avoid repository-specific assumptions (paths, branch names, environment variables) unless clearly parameterized.
- Keep scripts idempotent where possible so repeat executions are safe.
- Include usage examples for any new script or shared asset.
- Do not add high-level application languages (for example: C#, Java) to this repository.
- Allowed scripting languages include Python and PowerShell when they provide automation value across repositories.
- Every script must include clear documentation covering:
- Purpose
- Required inputs/arguments
- Required environment/dependencies
- Example usage
- Expected outputs and failure behavior
The recommended approach in a consuming repository is to place this submodule under a shared path such as shared/PilotSharedSource.
git submodule add https://github.com/MikeLooper/PilotSharedSource.git shared/PilotSharedSource
git submodule update --init --recursivegit clone --recurse-submodules <consumer-repo-url>If already cloned without submodules:
git submodule update --init --recursivegit submodule update --remote --recursive shared/PilotSharedSource
git add shared/PilotSharedSource
git commit -m "Update PilotSharedSource submodule"- Ensure CI checks out submodules (
submodules: recursiveor equivalent). - Pin submodule revisions through regular commits in the consuming repository for predictable builds.
- Do not make local edits inside the submodule directory in consuming repositories; contribute changes to this repository directly.
Notable contents of this repository:
- OpenAPI\PilotApi_v1.yaml - An OpenAPI specification for an API based upon the Northwind database.