Skip to main content

🏥 Fork Doctor

CI PyPI License: MIT Downloads

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.

Fork Doctor demo

✨ 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+
  • gh CLI authenticated (gh auth login)
  • Git configured

🤝 Contributing

See CONTRIBUTING.md for guidelines. Bug reports and pull requests welcome!

📄 License

MIT

🔖 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)

Source distribution for fork-doctor 0.3.0
File Size Uploaded Provenance
fork_doctor-0.3.0.tar.gz 2.6 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fork-doctor 0.3.0
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page