RepoDoctor.Tool
0.5.0
dotnet tool install --global RepoDoctor.Tool --version 0.5.0
dotnet new tool-manifest
dotnet tool install --local RepoDoctor.Tool --version 0.5.0
#tool dotnet:?package=RepoDoctor.Tool&version=0.5.0
nuke :add-package RepoDoctor.Tool --version 0.5.0
RepoDoctor
A cross-platform .NET command-line tool that checks whether a repository contains the essential files and automation expected from a healthy open-source project.
Use in GitHub Actions
- uses: actions/checkout@v7
- uses: berkcantmr/RepoDoctor@v0.5.0
with:
min-score: 80
The Action supports strict mode, JSON/Markdown reports, configuration files, and report artifacts. See the complete GitHub Action guide.
RepoDoctor v0.5.0 uses Node.js 24-based GitHub Actions. GitHub-hosted runners are supported; self-hosted runners must be current enough to run Node.js 24 Actions.
Current checks
- README
- Open-source license
- Contribution guide
- Code of conduct
.gitignore- Security policy
- Changelog
- Automated tests
- Continuous integration
- Git repository initialization
- Editor configuration
- Pull request template
- Dependency update configuration
- Issue templates
Checks are offline filename-based heuristics, not a security audit or proof of project quality. Configuration, check IDs and limitations.
Requirements
Run from source
git clone https://github.com/berkcantmr/RepoDoctor.git
cd RepoDoctor
dotnet run --project src/RepoDoctor -- scan .
Example output:
RepoDoctor report: /projects/example
[PASS] README: Found README.md.
[WARN] License: Missing license.
Next: Choose an open-source license and add it to the repository root.
Score: 50/100 (7 passed, 7 warnings)
Commands
# Scan the current directory
dotnet run --project src/RepoDoctor -- scan .
# Produce machine-readable output
dotnet run --project src/RepoDoctor -- scan . --format json
# Return exit code 1 when findings exist (useful in CI)
dotnet run --project src/RepoDoctor -- scan . --strict
# Save a Markdown report to a new file
dotnet run --project src/RepoDoctor -- scan . --format markdown --output report.md
# Fail CI below a minimum readiness score
dotnet run --project src/RepoDoctor -- scan . --min-score 80
# Discover IDs usable in disabledChecks
dotnet run --project src/RepoDoctor -- --list-checks
Build and test
dotnet restore RepoDoctor.sln
dotnet build RepoDoctor.sln --configuration Release --no-restore
dotnet test RepoDoctor.sln --configuration Release --no-build
Install from NuGet
dotnet tool install --global RepoDoctor.Tool --version 0.5.0
repodoctor scan .
Configuration
Create .repodoctor.json in the scanned repository (optional):
{
"disabledChecks": ["git"],
"excludeDirectories": ["generated"],
"minScore": 80
}
Use --config path/to/policy.json for an explicit configuration. Command-line score thresholds override configuration. Exit codes: 0 success, 1 failed strict/score gate, 2 usage/configuration/I/O error. Scan results without a gate return 0 even with warnings.
Releases
After successful main-branch CI, the Release workflow builds, tests and installs the exact tested commit before publishing v0.5.0 with a downloadable .nupkg. Existing releases are never replaced. Release notes.
NuGet.org publication uses a separate, manually triggered OIDC trusted-publishing workflow. It requests a short-lived credential only after rebuilding and testing the selected release tag; no permanent API key is stored.
CI runs on Linux, Windows and macOS and installs the actual package before self-scanning this repository. Scanning never executes code from the target repository.
Contributions are welcome. See CONTRIBUTING.md before opening a pull request.
License
Licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
Dependency refresh for GitHub Actions and test infrastructure, including Node.js 24-based Actions. See https://github.com/berkcantmr/RepoDoctor/releases/tag/v0.5.0