fix: resolve CI/CD issues - remove unused dependencies and imports

- Remove unused thiserror dependency from Cargo.toml
- Remove unused imports (Text, Tabs, Widget, Event, KeyCode, KeyEventKind) from tui/mod.rs
- Remove unused imports (File, Write) from export/mod.rs
- Remove unused pub use ComplexityDistribution from core/analyzer.rs
This commit is contained in:
Developer
2026-02-05 15:56:58 +00:00
parent 1da735b646
commit 98e8df8906
23 changed files with 2880 additions and 0 deletions

View File

@@ -0,0 +1,228 @@
# TechDebt Tracker CLI
A Rust-based CLI tool that analyzes codebases to extract, categorize, and visualize TODO/FIXME/HACK comments using tree-sitter for multi-language parsing, providing an interactive TUI dashboard and export capabilities.
## Features
- **Multi-language Support**: Parse TODO/FIXME/HACK comments in JavaScript, TypeScript, Python, Rust, Go, Java, C/C++, Ruby, and more
- **Priority Categorization**: Automatically categorize technical debt by priority (Critical, High, Medium, Low) based on keywords and context
- **Interactive TUI Dashboard**: Visualize technical debt with an interactive terminal UI
- **Export Capabilities**: Export reports to JSON and Markdown formats
- **Complexity Estimation**: Estimate complexity of technical debt items based on comment content and context
- **Configurable Patterns**: Define custom comment patterns via YAML configuration
- **Ignore Patterns**: Exclude directories and files using .gitignore-style patterns
## Installation
### From Source
```bash
git clone https://github.com/example/techdebt-tracker-cli.git
cd techdebt-tracker-cli
cargo build --release
cargo install --path .
```
### Using Cargo
```bash
cargo install techdebt-tracker-cli
```
## Quick Start
### Initialize Configuration
```bash
techdebt-tracker init
```
### Analyze a Directory
```bash
# Analyze current directory
techdebt-tracker analyze
# Analyze specific directory
techdebt-tracker analyze --path /path/to/project
# Output to file
techdebt-tracker analyze --output report.json
```
### Open Interactive Dashboard
```bash
techdebt-tracker tui
```
### Export Report
```bash
# Export to JSON
techdebt-tracker export --output report.json --format json
# Export to Markdown
techdebt-tracker export --output report.md --format markdown
```
## Configuration
Create a `techdebt.yaml` file in your project root or in `~/.config/techdebt-tracker/`:
```yaml
patterns:
- keyword: "FIXME"
priority: critical
regex: false
- keyword: "TODO"
priority: medium
regex: false
- keyword: "HACK"
priority: low
regex: false
languages:
- javascript
- typescript
- python
- rust
ignore:
- "node_modules/**"
- "target/**"
- ".git/**"
```
## CLI Commands
### analyze
Analyze codebase and show summary of technical debt.
```bash
techdebt-tracker analyze [OPTIONS]
Options:
-p, --path <PATH> Directory to analyze (default: current directory)
-o, --output <FILE> Output file for results
-v, --verbose Show verbose output
```
### tui
Open interactive TUI dashboard.
```bash
techdebt-tracker tui [OPTIONS]
Options:
-p, --path <PATH> Directory to analyze (default: current directory)
```
### export
Export analysis to file.
```bash
techdebt-tracker export [OPTIONS]
Options:
-p, --path <PATH> Directory to analyze (default: current directory)
-o, --output <FILE> Output file (required)
-f, --format <FORMAT> Export format: json or markdown
```
### init
Initialize default configuration file.
```bash
techdebt-tracker init [OPTIONS]
Options:
-p, --path <PATH> Directory to create config in (default: current directory)
```
## TUI Navigation
| Key | Action |
|-----|--------|
| `Tab` | Switch between Dashboard and List views |
| `↑` / `↓` | Navigate items |
| `Enter` | View item details |
| `/` or `f` | Filter items |
| `1-4` | Filter by priority (1=Critical, 2=High, 3=Medium, 4=Low) |
| `s` | Cycle sort order |
| `c` | Clear filters |
| `q` | Quit |
## Export Formats
### JSON
```json
{
"summary": {
"total_items": 42,
"by_priority": {
"critical": 5,
"high": 10,
"medium": 20,
"low": 7
}
},
"items": [...]
}
```
### Markdown
Generates a formatted report with:
- Summary statistics
- Priority breakdown with visual bars
- Language distribution
- Detailed item list grouped by priority
## Supported Languages
- JavaScript (.js, .jsx)
- TypeScript (.ts, .tsx)
- Python (.py)
- Rust (.rs)
- Go (.go)
- Java (.java)
- C (.c)
- C++ (.cpp, .cc, .cxx, .h, .hpp)
- Ruby (.rb)
## Building from Source
```bash
# Debug build
cargo build
# Release build
cargo build --release
# Run tests
cargo test --all-features
# Run linting
cargo clippy --all-targets
# Check formatting
cargo fmt --check
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting
5. Submit a pull request
## License
MIT License - see LICENSE file for details.