🏥 Fork Doctor
Automated fork analysis and structural improvement for GitHub repositories.
Fork Doctor forks a repo, analyzes what's missing (CI, security scanning, templates, etc.), and optionally creates a PR with all improvements applied.
✨ Features
- 12 health checks — CI, CodeQL, Dependabot, pre-commit, issue/PR templates, CONTRIBUTING, release automation, devcontainers, README badges, license, benchmarks, SBOM
- Language-aware — auto-detects Python, JavaScript, TypeScript, Go, Rust and generates appropriate configs
- Dry-run mode — preview changes without committing
- Rich output — beautiful tables, progress bars, colored terminal output
- One command — fork, analyze, improve, and open a PR in seconds
📦 Installation
pip install fork-doctor
Or with uv:
uv tool install fork-doctor
🚀 Usage
Analyze a repo
fork-doctor analyze https://github.com/owner/repo
Apply improvements
fork-doctor improve https://github.com/owner/repo
Generate a report (no fork)
fork-doctor report https://github.com/owner/repo
Options
| Flag | Description |
|---|---|
--dry-run |
Preview changes without committing or pushing |
--language <lang> |
Override auto-detected language (python/javascript/typescript/go/rust) |
--verbose |
Show detailed output |
Programmatic usage
from fork_doctor import ForkDoctor
fd = ForkDoctor("https://github.com/owner/repo")
results = fd.analyze()
print(results)
# {'ci': True, 'codeql': False, 'dependabot': False, ...}
📋 What It Checks
| # | Check | Description |
|---|---|---|
| 1 | CI | GitHub Actions CI/CD pipeline |
| 2 | CodeQL | CodeQL security scanning |
| 3 | Dependabot | Automated dependency updates |
| 4 | Pre-commit | Pre-commit hook configuration |
| 5 | Issue Templates | Structured issue templates |
| 6 | PR Templates | Pull request templates |
| 7 | Contributing | CONTRIBUTING.md guide |
| 8 | Release | Semantic versioning + release automation |
| 9 | DevContainer | Dev container configuration |
| 10 | README Badges | Badges and improved structure |
| 11 | License | License file and compliance |
| 12 | Benchmark | Performance benchmarking setup |
| 13 | SBOM | Software Bill of Materials generation |
🛠️ Requirements
- Python 3.9+
ghCLI authenticated (gh auth login)- Git configured
🤝 Contributing
See CONTRIBUTING.md for guidelines. Bug reports and pull requests welcome!
📄 License
🔖 GitHub Topics
python github repository-health devops automation ci-cd security sbom
Metadata
Release files for fork-doctor 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fork_doctor-0.3.0.tar.gz | 2.6 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fork_doctor-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.6 MB
Release files / fork_doctor-0.3.0.tar.gz
| Download URL | fork_doctor-0.3.0.tar.gz |
|---|---|
| Size | 2.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
16a358bdf389c5acbafa51e88bd2aebcdc61f609b35b0b44f15bb4b695795078
|
|
BLAKE2b-256 checksum How to use checksums |
ffaed91aece5be0428be51cd0b6d89ae0086eb507b17f9d7e5ca89166c0bd3eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / fork_doctor-0.3.0-py3-none-any.whl
| Download URL | fork_doctor-0.3.0-py3-none-any.whl |
|---|---|
| Size | 19.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87a8d3f020d784ac9f51eb00273ef7229b5afe9632d117ed85e828fd97d1acfb
|
|
BLAKE2b-256 checksum How to use checksums |
dfd619444bcac2cd4ca6712d335aeb852feaecda6d9a1265bb56886188dbcb1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Security for fork-doctor 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.