git-file-fetch is a lightweight CLI tool designed to fetch individual files from remote Git repositories and track them locally for reproducibility. This roadmap outlines our development phases, from initial release to future enhancements.
We're currently in the final stages of preparation before our first npm release. The core functionality is complete and tested across multiple platforms.
- Repository Setup: Renamed to
git-file-fetchwith aligned npm package name - License: MIT license added
- Package Metadata: Complete with all required fields
- Documentation: Comprehensive README with install, quickstart, CLI synopsis, examples
- CLI Help: Clear flags, examples, and exit codes
- Manifest Policy: Documented both commit and .gitignore patterns
- Security Basics: Token redaction, path traversal prevention, input validation, file size limits
- CI/CD: Matrix builds on Ubuntu, macOS, Windows across Node 22/23/24
- Release Workflow: Automated npm publish with provenance
- Smoke Tests: Validated against public repos on all platforms
- Error Handling: Documented non-zero exit codes with stable error identifiers
- Telemetry: None by default (documented)
- Final Dry-run: npm pack tested in fresh project
- NPM Token Setup: Set
NPM_TOKENin GitHub → Settings → Secrets → Actions
Timeline: Immediate post-release
Focus: Stability and essential features
- Config File Support: Add
--config <file>to read multiple refs from JSON - Error Handling: Better error codes/messages for CI (non-zero on any failure);
--jsonstructured output - Cross-Platform: Windows path normalization (
\and//); ensure safe relative writes - Core Flags:
--dry-run,--out <dir>,--cwd <dir>,--manifest <path> - Performance: Shallow operations with minimal
git fetch+git show; ready forgit archive - Network Resilience: Timeouts and retries with backoff for network/git operations
- Logging: Configurable verbosity levels (
--quiet,--verbose) - Testing: Basic e2e test - fetch file from GitHub public repo; verify content and path
- All v1.0 TODO items completed
- CI green across all platforms
- npm package published and accessible
- Smoke tests pass on all supported OS
Timeline: Q2 2024
Focus: Advanced workflows and provider support
- Update Command: Implement
updatecommand to re-fetch items from manifest - Verify Command: Add
verifycommand to diff local vs remote @ recorded ref (CI-friendly);--changed-onlyflag - Concurrency: Add concurrency flag for multiple fetches (Promise-based); sensible default, limit via
--concurrency - Provider Abstraction: Create provider support abstraction - GitHub first; prepare interfaces for GitLab/Bitbucket
- Enhanced Auth: Support auth modes -
GITHUB_TOKEN, PAT envs, SSH (optional), HTTPS with basic token; document precedence - Network Features: Add proxy support via envs; custom user-agent; rate-limit handling
- Promise-based concurrency with configurable limits
- Provider interface abstraction for future extensibility
- Enhanced authentication flow documentation
Timeline: Q3 2024
Focus: User experience and performance optimization
- Branded Config: Optional
.git-file-fetch.jsonbranded config (keep.git-remote-files.jsoncompatibility) - Archive Mode: Add
--archivemode to avoid full clone when possible - Unit Testing: Create basic unit tests - dry-run path, parser, manifest writing; coverage target ≥85%
- CLI UX: Better
--helpwith subcommands; examples; shell completion stubs (bash/zsh) - Performance: Implement cache for temp clones/archives per URL@ref within run; parallel fetch chunking
- Integrity: Add content integrity with checksum recording in manifest;
verifyvalidates checksum optionally
- Comprehensive test coverage
- Performance benchmarks established
- Enhanced user experience documentation
Timeline: Q4 2024
Focus: Nx workspace integration
- Executor Package: Spin out
nx-git-file-fetchexecutor +nx addgenerator - Example Workspace: Create E2E example workspace + docs (include CI usage)
- Caching Config: Add caching config for outputs if you add
update/verifytargets - Release Automation: Version alignment and release automation between core and plugin
- Version alignment between core and plugin
- Automated release coordination
- Comprehensive Nx workspace examples
- Documentation Site: Create docs site or README sections - configuration schema, examples, CI snippets (GitHub Actions, GitLab CI)
- Troubleshooting Guide: Document auth failures, SSH vs HTTPS, path issues, Windows notes
- Contribution Guide: Add
CONTRIBUTING.md, code of conduct, issue/PR templates - Release Documentation: Changelog automation and release notes style
- Examples: Create example manifests and before/after diffs
- Secret Handling: Ensure secret redaction in logs; zero token echo
- Path Security: Path sanitization; block absolute and parent (
..) escapes - Network Security: Limit network sources to declared providers; validate URLs
- Dependency Security: Dependency audit in CI (
npm auditor OSS review); lockfile committed - Supply Chain: Add provenance on publish; SLSA generator if feasible
- Versioning Policy: Document SemVer policy
- Pre-release Channel: Setup channel for canaries (e.g.,
@next) - Post-publish Validation: Smoke test on all OS with released version
- Rollback Process: Document rollback procedures
- GitLab Integration: Additional providers - GitLab with per-provider auth helpers
- Bitbucket Support: Bitbucket Cloud and Server compatibility
- Custom Providers: Plugin system for custom resolvers
- SSH-Only Environments: Enhanced SSH support; private submodules handling
- HTTP Caching: ETag/If-None-Match for hosted APIs
- Partial Fetch: Range-based downloads for large files (where API supports)
- VS Code Integration: Task templates and snippet examples
- Telemetry: Opt-in telemetry with privacy policy
- Plugin Architecture: Extensible resolver system
- Usage Analytics: Optional telemetry with privacy controls
- Documentation: Comprehensive guides and troubleshooting
- Platform Testing:
- OS: Linux, macOS, Windows
- Node: 22, 23, 24
- Providers: GitHub public, GitHub private (token), rate-limited scenario
- Feature Testing:
- Single file fetch
- Multiple files via
--config -
updatecommand functionality -
verifycommand functionality -
--archivemode - Windows path handling
- Edge Case Testing:
- Large file fetch tests
- Binary file fetch tests
- Path traversal attempts blocked
- CI/CD Pipeline:
- Cross-platform matrix builds
- Security scanning and dependency audits
- Release automation with provenance
- Semantic Versioning: Following SemVer 2.0 specification
- Patch releases: Bug fixes and minor improvements (1.0.x)
- Minor releases: New features, backward compatible (1.x.0)
- Major releases: Breaking changes (x.0.0)
- Pre-release Channels: Canary builds via
@nexttag - LTS Support: Extended support for stable releases
- Automated Testing: Full matrix validation
- Security Review: Dependency and code security audit
- Documentation: Updated guides and changelog
- Publishing: npm release with provenance
- Post-release Validation: Smoke tests on all platforms
We welcome community input on our roadmap priorities. Please:
- Review Issues: Check existing issues for feature requests
- Discuss Proposals: Open discussions for major features
- Submit PRs: Contribute to active development phases
- Report Bugs: Help maintain quality across platforms
- Pre-publish: All must-do items checked, CI green on matrix, npm package published, smoke tests pass
- v1.0: Flags and error model stable, docs updated, unit + e2e green
- v1.1:
update/verifyimplemented with concurrency, provider abstraction in place - v1.2: Config polish, archive mode, coverage target met, performance and integrity improvements
- v2.0: Full Nx integration with example workspace
- Test Coverage: ≥85% for v1.2+
- Performance: <2s for single file fetch
- Reliability: 99.9% success rate on supported platforms
- Documentation: Comprehensive guides for all features
Recommended labels for tracking work:
type:feat,type:fix,type:docs,type:ci,type:securityplatform:win,provider:github,area:cli,area:manifestgood first issue
This roadmap is a living document and will be updated as we progress through development phases. For the latest status, check our GitHub Issues and Releases.