Skip to main content

A CLI tool that audits GitHub repositories and suggests practical improvements for better open-source presentation.

Project description

RepoBoost

CI PyPI Python License RepoBoost

RepoBoost is a command-line tool that audits a GitHub repository and suggests practical improvements for better open-source presentation.

It checks whether a project has the basic things visitors expect before they star, use, or contribute to a repository.

RepoBoost demo

Installation

Install RepoBoost from PyPI:

pip install repoboost

Check that it works:

repoboost --version

Expected output:

RepoBoost 0.1.1

Features

  • Scores a repository from 0 to 100
  • Gives a grade from A to F
  • Supports configurable scoring with .repoboost.toml
  • Checks for README, license, .gitignore, tests, and CI
  • Detects installation and usage sections
  • Detects screenshots, badges, and demo links
  • Gives practical next-step suggestions
  • Shows top improvement priorities with doctor mode
  • Suggests useful GitHub topics
  • Detects project type, languages, frameworks, and tools
  • Recommends project-specific next steps
  • Generates a RepoBoost README badge
  • Generates a GitHub Actions workflow for CI usage
  • Saves scan reports as JSON files
  • Supports JSON output for automation
  • Supports score thresholds for CI usage

Usage

Scan the current repository:

repoboost scan .

Scan another local repository:

repoboost scan path/to/project

Show only the most important improvement priorities:

repoboost doctor .

Suggest GitHub topics:

repoboost topics .

Inspect project type, languages, frameworks, and tools:

repoboost inspect .

Get project-specific recommendations:

repoboost recommend .

Generate a README badge:

repoboost badge .

Generate a GitHub Actions workflow:

repoboost ci .

Generate a configuration file:

repoboost init-config .

Use a custom configuration file:

repoboost scan . --config .repoboost.toml

Get JSON output:

repoboost scan . --json

Save the scan report to a JSON file:

repoboost scan . --output repoboost-report.json

Fail if the repository score is below a required threshold:

repoboost scan . --fail-under 80

Configurable Scoring

RepoBoost can use a .repoboost.toml file to customize scoring for different repository types.

Create a default config file:

repoboost init-config .

Example .repoboost.toml:

profile = "python-cli"
fail_under = 90
disabled_checks = []

[weights]
readme = 18
license = 12
gitignore = 8
installation = 10
usage = 10
screenshots = 10
demo_link = 8
badges = 6
contributing = 6
tests = 6
ci = 6

[recommendations]
focus = [
  "documentation",
  "automation",
  "distribution",
  "code-quality"
]

You can increase or decrease the weight of each check depending on the type of project.

For example, a Python CLI tool may prioritize installation, usage, tests, and CI. A visual machine learning project may prioritize screenshots, examples, evaluation results, and documentation.

Example Output

RepoBoost Score: 72/100 — Grade C

MISS  Screenshots or media 0/10   No screenshots or visual media detected.
MISS  Badges               0/6    No README badges detected.
MISS  Contributing guide   0/6    No contributing guide found.
MISS  CI workflow          0/6    No GitHub Actions workflow detected.

Next best improvements:
1. Add a screenshot, GIF, or demo image to make the repository easier to understand quickly.
2. Add small badges for license, tests, or package version after the project title.
3. Add CONTRIBUTING.md if you want other developers to contribute.

Commands

scan

repoboost scan .

Runs a full repository audit.

Useful options:

repoboost scan . --json
repoboost scan . --output repoboost-report.json
repoboost scan . --fail-under 90
repoboost scan . --config .repoboost.toml

doctor

repoboost doctor .

Shows the most important missing improvements.

topics

repoboost topics .

Suggests GitHub topics for the repository.

inspect

repoboost inspect .

Detects project type, languages, frameworks, tools, and important files.

recommend

repoboost recommend .

Shows project-specific recommendations.

badge

repoboost badge .

Generates a Markdown badge for the repository score.

ci

repoboost ci .

Generates a GitHub Actions workflow for running RepoBoost in CI.

init-config

repoboost init-config .

Creates a .repoboost.toml file for configurable scoring.

Why RepoBoost?

Many repositories contain useful code, but visitors leave because the project is not presented clearly.

RepoBoost helps developers improve the first impression of their repositories by checking the details that make a project easier to trust, understand, and share.

Development

Clone the repository:

git clone https://github.com/mohammad-azimi/RepoBoost.git
cd RepoBoost

Create and activate a virtual environment:

python -m venv .venv
.venv\Scripts\activate

Install the project in editable mode:

pip install -e ".[dev]"

Run the test suite:

pytest

Build the package locally:

python -m build
python -m twine check dist/*

Run RepoBoost on itself:

repoboost scan . --fail-under 90

Release

RepoBoost is available on PyPI:

pip install repoboost

Release notes are available in:

CHANGELOG.md

Release documentation is available in:

docs/RELEASE.md
docs/TESTPYPI.md
docs/PYPI.md

Roadmap

  • Add automatic README section generation
  • Add smarter GitHub topic suggestions
  • Add portfolio-readiness score
  • Add more project-type specific recommendations
  • Add configurable scoring presets

Contributing

Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repoboost-0.1.1.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repoboost-0.1.1-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file repoboost-0.1.1.tar.gz.

File metadata

  • Download URL: repoboost-0.1.1.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for repoboost-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7e73b1cf2b92a55e689b1f60ce7352551e44e1cdd208088827cab288323f84d1
MD5 fd92d6f6a4d03bd527272f1465fc3001
BLAKE2b-256 dbad68bc477871e139b50c95ecca048d718f3846148e18e56bfda203269462e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for repoboost-0.1.1.tar.gz:

Publisher: publish-pypi.yml on mohammad-azimi/RepoBoost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file repoboost-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: repoboost-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for repoboost-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 07e30c0a12827cf21a1168857a49d9ef2570ed2775c6885cd40e9d2c629144e1
MD5 f3be12ec4a23ae6e1b32744d5ee02efb
BLAKE2b-256 55ec416a7f6e64751bd3197b4a9322c14d0934181b4c81774b49dec840aeecf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for repoboost-0.1.1-py3-none-any.whl:

Publisher: publish-pypi.yml on mohammad-azimi/RepoBoost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page