{"id":28484152,"url":"https://github.com/mustafagenc/nitroterm","last_synced_at":"2025-06-29T12:32:38.242Z","repository":{"id":295646868,"uuid":"990716668","full_name":"mustafagenc/nitroterm","owner":"mustafagenc","description":"Powerful terminal application written in Rust that provides comprehensive project management functionalities, automatic release notes generation, and intelligent dependency management.","archived":false,"fork":false,"pushed_at":"2025-05-29T02:09:35.000Z","size":688,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-25T17:14:20.305Z","etag":null,"topics":["poweshell","rust","shell","showcase"],"latest_commit_sha":null,"homepage":"https://terminal.nitrokit.tr","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mustafagenc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["mustafagenc"]}},"created_at":"2025-05-26T14:21:53.000Z","updated_at":"2025-06-02T20:25:37.000Z","dependencies_parsed_at":"2025-05-28T12:32:03.401Z","dependency_job_id":null,"html_url":"https://github.com/mustafagenc/nitroterm","commit_stats":null,"previous_names":["mustafagenc/nitrokit-terminal","mustafagenc/nitroterm"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mustafagenc/nitroterm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafagenc%2Fnitroterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafagenc%2Fnitroterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafagenc%2Fnitroterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafagenc%2Fnitroterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mustafagenc","download_url":"https://codeload.github.com/mustafagenc/nitroterm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafagenc%2Fnitroterm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262594076,"owners_count":23334125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["poweshell","rust","shell","showcase"],"created_at":"2025-06-07T22:06:28.095Z","updated_at":"2025-06-29T12:32:38.232Z","avatar_url":"https://github.com/mustafagenc.png","language":"Rust","funding_links":["https://github.com/sponsors/mustafagenc"],"categories":[],"sub_categories":[],"readme":"# 🚀 Nitroterm Terminal Tool for [@nitrokit](https://github.com/mustafagenc/nitrokit)\n\n[![codecov](https://codecov.io/gh/mustafagenc/nitroterm/graph/badge.svg?token=NjiFgkfn9G)](https://codecov.io/gh/mustafagenc/nitroterm) [![Release](https://github.com/mustafagenc/nitroterm/actions/workflows/release.yml/badge.svg)](https://github.com/mustafagenc/nitroterm/actions/workflows/release.yml)  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Rust Version](https://img.shields.io/badge/rust-1.70%2B-blue.svg)](https://www.rust-lang.org) \u003c!-- [![Crates.io](https://img.shields.io/crates/v/nitroterm.svg)](https://crates.io/crates/nitroterm) [![Downloads](https://img.shields.io/crates/d/nitroterm.svg)](https://crates.io/crates/nitroterm) --\u003e\n\nNitroterm is a powerful terminal application written in Rust that provides comprehensive project management functionalities. It automatically generates detailed release notes from git history and intelligently manages project dependencies across multiple programming languages and package managers.\n\n![screenshot-v0.1.0-alpha.1](assets/screenshot-v0.1.0-alpha.1.png)\n\n## ✨ Features\n\n### 📋 Release Notes Generation\n\n- **Smart Git Analysis**: Automatically analyzes git commit history\n- **Conventional Commits**: Supports conventional commit format (feat, fix, docs, etc.)\n- **Categorized Output**: Groups commits by type (features, fixes, breaking changes)\n- **Multiple Tag Formats**: Handles various version tag formats (v1.0.0, 1.0.0, etc.)\n- **Contributor Statistics**: Includes detailed contributor information\n- **Repository Integration**: Generates links for GitHub, GitLab, and Bitbucket\n- **Markdown Export**: Creates beautifully formatted markdown files\n\n### 🔄 Version Management\n\n- **Semantic Versioning**: Automatic version bumping (patch, minor, major)\n- **Git Tag Creation**: Creates and pushes version tags\n- **Release Creation**: Automated GitHub/GitLab release creation\n- **Changelog Generation**: Maintains CHANGELOG.md files\n\n### 📦 Dependency Management\n\n- **Multi-Language Support**:\n  - 📦 **Node.js** (npm, yarn, pnpm)\n  - 🦀 **Rust** (Cargo)\n  - 🐍 **Python** (pip, requirements.txt)\n  - 🐘 **PHP** (Composer)\n- **Smart Detection**: Automatically detects project types and package managers\n- **Backup \u0026 Restore**: Creates backups before making changes\n- **Security Auditing**: Runs security checks on dependencies\n- **Update Verification**: Ensures updates don't break your project\n- **Detailed Reporting**: Provides comprehensive update summaries\n\n### 🌐 Translation Management\n\n- **JSON Translation Sync**: Synchronizes translation files across languages\n- **Missing Key Detection**: Identifies missing translation keys\n- **Key Validation**: Validates translation file structure\n- **Multi-format Support**: JSON, YAML, and more\n\n### 🎯 Interactive Mode\n\n- **User-Friendly Menu**: Easy-to-use interactive interface\n- **Command Validation**: Input validation and error handling\n- **Progress Indicators**: Visual feedback for long-running operations\n- **Colored Output**: Beautiful, colored terminal output\n\n## 🛠️ Installation\n\n#### Install Script (Unix/Linux/macOS)\n\n```bash\ncurl -sSL https://raw.githubusercontent.com/mustafagenc/nitroterm/refs/heads/main/scripts/install.sh | bash\n```\n\n#### Manual Installation\n\n```bash\n# Download and install (example for Linux)\nwget https://github.com/mustafagenc/nitroterm/releases/latest/download/nitroterm-linux-x86_64\nchmod +x nitroterm-linux-x86_64\nsudo mv nitroterm-linux-x86_64 /usr/local/bin/nitroterm\n```\n\n## 🚀 Usage\n\n### Command Line Interface\n\n```bash\n# Interactive mode (default)\nnitroterm\n\n# Generate release notes\nnitroterm release-notes\n\n# Create new release with version bump\nnitroterm create-release patch    # 1.0.0 -\u003e 1.0.1\nnitroterm create-release minor    # 1.0.0 -\u003e 1.1.0\nnitroterm create-release major    # 1.0.0 -\u003e 2.0.0\n\n# Update dependencies\nnitroterm update-dependencies\n\n# Sync translation files\nnitroterm sync-translations\n\n# Show help\nnitroterm --help\n```\n\n### Interactive Mode\n\nLaunch interactive mode for a user-friendly experience:\n\n```bash\nnitroterm\n```\n\nThis will present you with a menu:\n\n```\n🚀 Nitroterm v0.1.2\nAvailable commands:\n  1. release-notes        Generate release notes from git commits\n  2. create-release       Create a new release with version bump\n  3. update-dependencies  Analyze and update project dependencies\n  4. sync-translations    Synchronize translation files\n  5. help                 Show this help menu\n  6. exit                 Exit Nitroterm\n\nnitroterm\u003e\n```\n\n### Examples\n\n#### Release Notes Generation\n\n```bash\n# Generate release notes for current repository\ncd your-project\nnitroterm release-notes\n```\n\n**Output Example:**\n```markdown\n# Release Notes v1.2.0\n\n## 🚀 Features\n- feat: add user authentication system\n- feat: implement dark mode support\n\n## 🐛 Bug Fixes\n- fix: resolve memory leak in parser\n- fix: handle edge case in validation\n\n## 📚 Documentation\n- docs: update API documentation\n- docs: add installation guide\n\n## 👥 Contributors\n- Alice Smith (5 commits)\n- Bob Johnson (3 commits)\n```\n\n#### Create Release\n\n```bash\n# Create a patch release (1.0.0 -\u003e 1.0.1)\nnitroterm create-release patch\n\n# Create with custom version\nnitroterm create-release --version 2.0.0-beta.1\n```\n\n#### Dependency Updates\n\n```bash\n# Update all dependencies in current project\ncd your-project\nnitroterm update-dependencies\n```\n\n**Sample Output:**\n```\n[INFO] Scanning for dependency files...\n[INFO] Found: package.json, Cargo.toml, requirements.txt\n\n📦 Node.js Dependencies:\n[INFO] Using package manager: pnpm\n[SUCCESS] Updated 5 dependencies\n[INFO] Security audit: No vulnerabilities found\n\n🦀 Rust Dependencies:\n[SUCCESS] Updated 3 dependencies\n[INFO] All dependencies are up to date\n\n🐍 Python Dependencies:\n[WARNING] pip not found, skipping Python updates\n```\n\n#### Translation Sync\n\n```bash\n# Sync translation files\nnitroterm sync-translations\n\n# Output\n[INFO] Found base language: en\n[INFO] Syncing: fr.json, de.json, es.json\n[SUCCESS] Added 5 missing keys to fr.json\n[SUCCESS] Added 3 missing keys to de.json\n[INFO] es.json is up to date\n```\n\n## 🏗️ Project Structure\n\n```\nnitroterm/\n├── src/\n│   ├── commands/           # Command implementations\n│   │   ├── dependency_update.rs\n│   │   ├── release_notes.rs\n│   │   ├── create_release.rs\n│   │   ├── sync_translations.rs\n│   │   └── mod.rs\n│   ├── utils/              # Utility functions\n│   │   ├── file_system.rs\n│   │   ├── formatting.rs\n│   │   ├── git.rs\n│   │   ├── logging.rs\n│   │   ├── version.rs\n│   │   └── mod.rs\n│   ├── tests/              # Test modules\n│   │   ├── dependency_update_test.rs\n│   │   ├── release_notes_test.rs\n│   │   └── mod.rs\n│   └── main.rs             # Application entry point\n├── .github/\n│   └── workflows/          # CI/CD workflows\n│       ├── release.yml\n│       └── test.yml\n├── build.rs                # Build script for Windows resources\n├── Cargo.toml              # Rust dependencies\n├── README.md\n└── LICENSE\n```\n\n## 🧪 Testing\n\n```bash\n# Run all tests\ncargo test\n\n# Run tests with output\ncargo test -- --nocapture\n\n# Run specific test module\ncargo test dependency_update_test\n\n# Run tests with coverage\ncargo test --all-features\n```\n\n## 🚀 Development\n\n### Building from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/mustafagenc/nitroterm.git\ncd nitroterm\n\n# Debug build\ncargo build\n\n# Release build (optimized)\ncargo build --release\n\n# Run with logging\nRUST_LOG=debug cargo run\n\n# Install locally\ncargo install --path .\n```\n\n### Code Quality\n\n```bash\n# Format code\ncargo fmt\n\n# Run clippy for linting\ncargo clippy\n\n# Generate documentation\ncargo doc --open\n```\n\n## 📦 Supported Package Managers\n\n| Language | Package Manager | Status | Features |\n|----------|----------------|--------|----------|\n| Node.js  | npm           | ✅     | Update, audit, backup |\n| Node.js  | yarn          | ✅     | Update, audit, backup |\n| Node.js  | pnpm          | ✅     | Update, audit, backup |\n| Rust     | Cargo         | ✅     | Update, backup |\n| Python   | pip           | ✅     | Update from requirements.txt |\n| PHP      | Composer      | ✅     | Update, backup |\n\n## 🔧 Configuration\n\nNitroterm works out of the box without configuration, but you can customize behavior through:\n\n- **Environment Variables**:\n  - `RUST_LOG=debug` for verbose logging\n  - `NITROKIT_CONFIG_PATH` for custom config location\n- **Git Configuration**: Uses your existing git setup\n- **Package Manager Settings**: Respects your existing package manager configurations\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'feat: add amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n### Development Guidelines\n\n- Follow [Conventional Commits](https://www.conventionalcommits.org/)\n- Add tests for new features\n- Update documentation as needed\n- Ensure all tests pass: `cargo test`\n- Format code: `cargo fmt`\n- Run clippy: `cargo clippy`\n\n## 📈 Roadmap\n\n- [x] **Basic CLI Interface** - Interactive terminal interface\n- [x] **Release Notes Generation** - Git commit analysis\n- [x] **Dependency Management** - Multi-language support\n- [x] **Translation Sync** - JSON translation file management\n- [ ] **GUI Version** - Desktop application with native UI\n- [ ] **More Languages** - Go, Java, C#, Swift support\n- [ ] **Cloud Integration** - GitHub/GitLab API integration\n- [ ] **Template System** - Customizable release note templates\n- [ ] **Plugin System** - Extensible architecture for custom commands\n- [ ] **Database Support** - SQLite for project history\n- [ ] **Configuration Management** - YAML/TOML config files\n\n## 📊 Stats\n\n- **Languages Supported**: 4 (Node.js, Rust, Python, PHP)\n- **Package Managers**: 6 (npm, yarn, pnpm, cargo, pip, composer)\n- **Platforms**: Windows, macOS, Linux\n- **License**: MIT\n- **Minimum Rust Version**: 1.70\n\n## 🐛 Issue Reporting\n\nFound a bug? Please [open an issue](https://github.com/mustafagenc/nitroterm/issues) with:\n\n- **Environment**: OS, Rust version, package manager versions\n- **Expected Behavior**: What should happen\n- **Actual Behavior**: What actually happened\n- **Steps to Reproduce**: How to reproduce the issue\n- **Additional Context**: Screenshots, logs, config files\n\n## 💬 Community\n\n- **GitHub Discussions**: [Ask questions and share ideas](https://github.com/mustafagenc/nitroterm/discussions)\n- **Issue Tracker**: [Report bugs and request features](https://github.com/mustafagenc/nitroterm/issues)\n- **Email**: eposta@mustafagenc.info\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Clap](https://crates.io/crates/clap) - Command line argument parsing\n- [Git2](https://crates.io/crates/git2) - Git repository interaction\n- [Colored](https://crates.io/crates/colored) - Terminal color support\n- [Serde](https://crates.io/crates/serde) - Serialization framework\n- [Tokio](https://crates.io/crates/tokio) - Async runtime\n- [SQLx](https://crates.io/crates/sqlx) - Async SQL toolkit\n- [Reqwest](https://crates.io/crates/reqwest) - HTTP client\n\n---\n\n⭐ **Star this repository if you find it helpful!**\n\nMade with ❤️ by [Mustafa Genc](https://github.com/mustafagenc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustafagenc%2Fnitroterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmustafagenc%2Fnitroterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustafagenc%2Fnitroterm/lists"}