Download the PHP package techrays-labs/laravel-debt-tracker without Composer

On this page you can find all versions of the php package techrays-labs/laravel-debt-tracker. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-debt-tracker

Laravel Debt Tracker

Built by Techrays Labs   Latest Stable Version   Total Downloads   PHP Version   Laravel Version   Pulse Cards Included   License

Scan, score, and report technical debt in your Laravel application — right from the CLI.


"We should fix this eventually" — every engineering team, forever.

Laravel Debt Tracker makes the invisible visible. It scans your codebase for technical debt across nine detectors, assigns a score, estimates developer hours to resolve, and produces a Markdown or JSON report you can actually show your product manager.


Features


Requirements

Requirement Version
PHP 8.2, 8.3, 8.4
Laravel 10, 11, 12, 13

Support policy: Only the current release (v1.3.x) receives bug fixes, security patches, and updates. All versions below v1.3 have reached end of life. If you are on v1.0, v1.1, or v1.2 please upgrade — see CHANGELOG.md for what changed.


Installation

That's it. The package auto-discovers itself.

Optionally publish the config:


Usage

Full scan

Export to Markdown

Writes DEBT_REPORT.md to your project root — ready to commit or share.

Export to JSON

Writes DEBT_REPORT.json — machine-readable output for dashboards, scripts, or CI integrations.

Export both at once

CI-friendly summary

Scan a specific path

Run specific detectors only

Every detector has a key you can pass to --only. Combine as many as you need with commas.

Note: --only works at the detector level. For example, --only=dead_code reports unused private methods, properties, and constants together — there is no sub-filter within a detector.

Inspect a single file or class


CI Debt Gate

Block a pull request when technical debt crosses a line you set. Both debt:scan and debt:summary accept two opt-in flags:

Flag Fails (exit 1) when
--fail-on-grade=C the grade is C or worse (C, D, F)
--max-score=500 the total debt score is greater than 500

If both are set, the gate fails when either threshold is breached.

Exit codes: 0 = passed (or gate not configured), 1 = a threshold was breached, 2 = invalid flag value (bad grade letter or non-numeric score).

Set the policy once in config

Instead of repeating flags in every workflow, set defaults in config/debt-tracker.php — a CLI flag always overrides the config value:

GitHub Actions

Note on debt:summary: without any gate flag or ci config, debt:summary keeps its historical exit codes (0 for A/B, 1 for C, 2 for D/F). Passing a gate flag (or setting the ci config) switches it to the gate's 0/1 scheme.


Configuration


Laravel Pulse Integration

Laravel Debt Tracker ships with four built-in Pulse dashboard cards. No extra package needed — the cards activate automatically when laravel/pulse and livewire/livewire are present in your app.

Requirements

  • laravel/pulse ^1.0 — tested with v1.0 through v1.7
  • livewire/livewire ^3.0 — pulled in automatically as a dependency of Pulse
  • MySQL 8 or MariaDB — MySQL 9 is not currently supported due to a bug in Pulse's DatabaseStorage where key_hash is omitted from INSERTs on MySQL 9, causing a strict-mode constraint failure. Track progress at laravel/pulse#476 (or check the Pulse changelog for a fix).

Neither package is a hard dependency of laravel-debt-tracker. Install them in your app and the integration activates on its own.

Card Component tag What it shows
Debt Summary <livewire:debt-tracker-summary-card> Current grade (A–F), total score, estimated hours, category breakdown
Score Over Time <livewire:debt-tracker-score-card> Debt score trend chart — see when PRs made things worse
Hottest Files <livewire:debt-tracker-files-card> Top 10 files by debt score, updated every scan
Top Debt Authors <livewire:debt-tracker-authors-card> Top 10 authors by total debt score via git blame

Setup

1. Publish the card views (optional — only needed to customise them):

2. Add the cards to your Pulse dashboard in resources/views/vendor/pulse/dashboard.blade.php:

The cols values above fill a standard 12-column Pulse grid row. Adjust to your layout.

3. Populate the cards — run a scan:

Cards update automatically every time debt:scan runs.

Scheduled scans

To keep your dashboard up to date automatically, schedule debt:scan in routes/console.php:

Disabling Pulse push

To run ad-hoc scans without updating the dashboard, set in config/debt-tracker.php:


How Scoring Works

Each detected debt item gets a base score multiplied by an age multiplier:

Debt Type Base Score
TODO / FIXME 2
Long method 5
God class 15
Deep nesting 4
Untested class 8
Outdated major dep 10
Abandoned package 20
N+1 property fetch 6
N+1 chained query 10
Dangerous function call (eval/exec) 20
Unsafe unserialize 20
Hardcoded credential 15
SQL concatenation 15
Weak hashing (md5/sha1) 10
Debug leakage (dd/dump) 5
Unused private method 8
Unused private property 5
Unused private constant 3
Debt Age Multiplier
< 30 days 1.0×
30–90 days 1.5×
90–180 days 2.0×
180+ days 3.0×
Total Score Grade
0–100 A — Healthy
101–300 B — Manageable
301–600 C — Concerning
601–1000 D — Critical
1000+ F — Emergency

Reports

Markdown

The exported DEBT_REPORT.md includes a shields.io badge you can embed in your README:

JSON

DEBT_REPORT.json uses a stable schema suitable for CI dashboards or custom tooling:


Contributing

Contributions are welcome!


License

MIT · © Techrays Labs


Built with ❤️ by Techrays Labs · Ahmedabad, India
We build software and the teams that build software.


All versions of laravel-debt-tracker with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/console Version ^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
laravel/prompts Version ^0.1|^0.2|^0.3
nikic/php-parser Version ^5.0
symfony/console Version ^6.0|^7.0|^8.0
symfony/finder Version ^6.0|^7.0|^8.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package techrays-labs/laravel-debt-tracker contains the following files

Loading the files please wait ...