RepoDoctor.Tool 0.5.0

dotnet tool install --global RepoDoctor.Tool --version 0.5.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local RepoDoctor.Tool --version 0.5.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=RepoDoctor.Tool&version=0.5.0
                    
nuke :add-package RepoDoctor.Tool --version 0.5.0
                    

RepoDoctor

CI Release NuGet License: MIT

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.5.0 76 9/16/2026
0.4.0 72 9/16/2026

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