Releases: AllDotPy/Forklet
🎉🚀 Forklet v0.1.2 is out!
We’re thrilled to announce the release of Forklet v0.1.2, a major step forward in stability, testing coverage, developer experience, and overall project robustness.
This update brings a huge wave of improvements, thanks to an amazing global community of contributors!
🔥 What’s New in v0.1.2
Here are all the changes included in this release:
✅ Testing & Reliability
- ✔️ Added basic unit tests for the error handler (#22) — by @debangshu919
- ✔️ Added comprehensive unit tests for the RetryManager — by @awanishmani26
- ✔️ Added unit tests for the RateLimiter class — by @ArjunDixit1
- ✔️ Added 6 scenario-based tests for the Filter Engine — by @bshmanair
- ✔️ Added unit tests for the Python API of GitHubDownloader — by @Tamjid17
- ✔️ Added Orchestrator unit tests — by @ArjunDixit1
🔧 Refactoring & Improvements
- 🔄 Split models into clearer, domain-specific modules (GitHub, Download, Logging, etc.) — by @ADITYATIWARI342005
- 🔄 Merged duplicate DownloadConfig models into one unified model (#35) — by @PriyankaGowda2005
- 🔄 General refactoring & code cleanup, including fixing coroutine attribute errors — by @Einswilli
- 🔄 Removed unused dataclass — by @iw4p
- 🔄 Fixed compatibility for Python 3.8+ by replacing deprecated typing syntax — by @iw4p
⚙️ Features & Enhancements
- 🔥 Added Pause / Resume / Cancel download control (#53) — by @Kcodess2807
- 🔥 Added verbose mode support to the Python API — by @Kcodess2807
- 🧪 Added dry-run mode to both the CLI (
--dry-run) and API — by @sangampaudel530 - 🛠 Enhanced DownloadOrchestrator control methods (#37) — by @PriyankaGowda2005
🐛 Bug Fixes
- 🩹 Fixed CLI issue:
--no-progressnow correctly disables/enables tqdm progress bars (#43) — by @PriyankaGowda2005
💙 Community & Project Metadata
- 📄 Added FUNDING.yml — by @Einswilli
- 🔄 Updated FUNDING.yml (improved sponsorship metadata) — by @Einswilli
🌟 Welcome to Our New Contributors!
Forklet v0.1.2 has been a truly community-driven release.
Massive thanks to these contributors making their first-ever PR to Forklet:
- @debangshu919
- @awanishmani26
- @ArjunDixit1
- @bshmanair
- @ADITYATIWARI342005
- @Tamjid17
- @PriyankaGowda2005
- @iw4p
- @Kcodess2807
- @sangampaudel530
Thank you all for your hard work, ideas, tests, refactors, and improvements.
Welcome to the Forklet family 💙🐙
🚀 Full Changelog
🤝 We’d love your help!
Forklet is growing fast, and we’re committed to making it the most reliable and flexible tool for selective GitHub repository downloads — via CLI and Python API.
If you want to:
- write simple or advanced tests
- build new features
- improve performance
- extend async support
- refine UX and CLI ergonomics
- help design next big steps
…there is a place for you in the project! 🌍✨
🔗 Start here → https://github.com/AllDotPy/Forklet/issues
⭐ Star the project
🗣️ Share it with other developers
🎉 Join us for future releases
Let’s keep building Forklet together — the best is yet to come! 🚀💙
🚀 Forklet v0.1.1 is here!
This release makes Forklet more powerful, reliable, and ready for real-world pipelines.
✨ Highlights
- 🛠️ Fix:
--target-pathsnow works consistently (#15) - 📝 New: Shared logger with
--verbosesupport for better debugging - ⚡ Async support – paving the way for faster downloads and integrations
- 📦 PyPI configs added →
pip install forkletis now smoother than ever - 📖 Improved README for easier onboarding
👥 New Contributor
A huge thank you to @jondominguezv 🎉 for their first contribution!
🔗 Full changelog: here
👉 Forklet helps you:
- Download GitHub repos, files, or folders with filters
- Integrate directly into CI/CD pipelines
- Use via CLI or Python API
⭐ Give us a star & try it out today: https://github.com/AllDotPy/Forklet
🚀 Forklet v0.1.0 – First Release!
We’re excited to announce the first official release of Forklet 🎉
A CLI + Python API tool that makes it simple to access and manage GitHub repositories inside your CI/CD pipelines, DevSecOps workflows, and automation scripts.
🔥 Why Forklet?
👉 Because cloning an entire repo isn’t always the smartest choice.
With Forklet, you can:
- Download only the files you need (filter by extension, size, patterns).
- Fetch specific branches, directories, or files without hassle.
- Work with public or private repos (auth supported).
- Seamlessly plug into CI/CD pipelines to fetch artifacts, scan code, or prepare builds.
Forklet was originally built to power Valkyrie, our security scanner (detecting secrets, vulnerable dependencies, IAM misconfigurations…) used in pull requests before merges.
But it’s designed to be generic, reusable, and DevOps-friendly.
Installation
# with pip
pip install forklet
# Or with uv
uv add forklet⚡ Quick CLI examples
# Download an entire repo
forklet download octocat/hello-world ./downloads
# Download a specific branch
forklet download octocat/hello-world ./downloads --ref develop
# Filter by extension and max size
forklet download octocat/hello-world ./downloads \
--include "*.py" \
--exclude "test_*" \
--max-size 1000000
# Download with authentication
forklet download private-owner/private-repo ./downloads --token $GITHUB_TOKEN
# Show repo information
forklet info octocat/hello-world ⚙️ Quick Python API example
from forklet import GitHubDownloader
from pathlib import Path
downloader = GitHubDownloader(auth_token="your_github_token")
# Download an entire repo
result = downloader.download(
owner="octocat",
repo="hello-world",
destination=Path("./downloads"),
ref="main",
include_patterns=["*.py", "*.md"],
exclude_patterns=["test_*"]
)
print(f"Downloaded {len(result.downloaded_files)} files")
print(f"Total size: {result.progress.downloaded_bytes} bytes")✨ Highlights of v0.1.0
- ✅ CLI + Python API ready to use
- ⚡ Thread-safe rate limiter for GitHub API
- 🔄 Robust retry manager for critical requests
- 📦 Download orchestrator for artifacts
- 🔐 Authentication support for private repos
- ⚙️ Centralized settings & config
⭐ Give it a star, try it out, and join the journey → Forklet on GitHub