orcommit 1.1.6 → 1.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -582
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/modules/core.d.ts.map +1 -1
- package/dist/modules/core.js +77 -0
- package/dist/modules/core.js.map +1 -1
- package/dist/modules/diff-filter.js +2 -2
- package/dist/modules/diff-filter.js.map +1 -1
- package/dist/modules/secret-scanner.d.ts +100 -0
- package/dist/modules/secret-scanner.d.ts.map +1 -0
- package/dist/modules/secret-scanner.js +151 -0
- package/dist/modules/secret-scanner.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,665 +1,185 @@
|
|
|
1
|
-
# ORCommit
|
|
1
|
+
# ORCommit
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<img src="https://unpkg.com/orcommit@latest/preview.png" alt="ORCommit Banner" width="600">
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
> **AI-powered git automation** for developers: Generate professional commit messages instantly using OpenAI, Claude, or local AI models
|
|
3
|
+
### AI-powered Git commits with security, standards, and full control
|
|
8
4
|
|
|
9
5
|
<p align="center">
|
|
10
|
-
<
|
|
11
|
-
<a href="https://github.com/ellerbrock/typescript-badges/"><img src="https://badges.frapsoft.com/typescript/code/typescript.svg?v=101" alt="TypeScript"></a>
|
|
12
|
-
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
6
|
+
<img src="https://unpkg.com/orcommit@latest/preview.png" alt="ORCommit Banner" width="600" />
|
|
13
7
|
</p>
|
|
14
8
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Perfect for developers seeking **automated git commits**, **AI-powered development tools**, and **developer productivity** automation with support for **Conventional Commits** format.
|
|
18
|
-
|
|
19
|
-
## ✨ Key Features - Why Choose ORCommit?
|
|
20
|
-
|
|
21
|
-
### 🤖 **Multi-Provider AI Support**
|
|
22
|
-
Generate commit messages with your choice of AI:
|
|
23
|
-
- **OpenAI** (GPT-4, GPT-4 Turbo, GPT-3.5)
|
|
24
|
-
- **Anthropic Claude** (via OpenRouter)
|
|
25
|
-
- **OpenRouter** (access to 200+ AI models)
|
|
26
|
-
- **Local AI Models** (Ollama support - free & private)
|
|
27
|
-
|
|
28
|
-
### 🔄 **Interactive Regeneration with Feedback**
|
|
29
|
-
Not happy with the generated message? Provide feedback and regenerate:
|
|
30
|
-
- Accept, cancel, or improve commit messages
|
|
31
|
-
- Two-stage AI processing for higher quality
|
|
32
|
-
- Up to 5 regeneration attempts with user guidance
|
|
33
|
-
- Smart caching for instant responses
|
|
34
|
-
|
|
35
|
-
### 🎯 **Custom Prompts & Context**
|
|
36
|
-
Full control over AI behavior:
|
|
37
|
-
- Override default prompts with `--prompt`
|
|
38
|
-
- Add project context with `--context`
|
|
39
|
-
- Save team-specific prompts to config
|
|
40
|
-
- Perfect for corporate standards and coding guidelines
|
|
41
|
-
|
|
42
|
-
### 📦 **Intelligent Diff Processing**
|
|
43
|
-
Handles codebases of any size:
|
|
44
|
-
- Token-aware chunking for large files
|
|
45
|
-
- Smart filtering (100+ patterns for generated files)
|
|
46
|
-
- Supports all ecosystems: JS, Python, Rust, Go, .NET, Flutter
|
|
47
|
-
- Filters lock files, build outputs, and dependencies
|
|
48
|
-
|
|
49
|
-
### 🚀 **Seamless Git Workflow**
|
|
50
|
-
Complete git automation:
|
|
51
|
-
- Interactive push prompts with upstream setup
|
|
52
|
-
- Git hooks integration for automated commits
|
|
53
|
-
- Conventional Commits format support
|
|
54
|
-
- Emoji support (Gitmoji compatible)
|
|
55
|
-
- Breaking change detection
|
|
56
|
-
|
|
57
|
-
### ⚡ **Lightning Fast Performance**
|
|
58
|
-
Optimized for speed:
|
|
59
|
-
- Two-level caching (memory + disk)
|
|
60
|
-
- Concurrent API processing
|
|
61
|
-
- Exponential backoff for rate limits
|
|
62
|
-
- Instant cached responses
|
|
63
|
-
|
|
64
|
-
### 🔒 **Enterprise-Ready Security**
|
|
65
|
-
Built with security in mind:
|
|
66
|
-
- **NEW: Strict blocking of dependency directories** (`node_modules/`, `vendor/`) - cannot be overridden
|
|
67
|
-
- Secure API key storage (600 permissions)
|
|
68
|
-
- No logging of sensitive data
|
|
69
|
-
- Environment variable support
|
|
70
|
-
- Prevents accidental secret commits
|
|
71
|
-
- Smart detection of package manager files and build artifacts
|
|
72
|
-
|
|
73
|
-
### 🎨 **Beautiful Developer Experience**
|
|
74
|
-
Polished UI/UX:
|
|
75
|
-
- Elegant progress indicators
|
|
76
|
-
- Clear success/failure states
|
|
77
|
-
- Timing information
|
|
78
|
-
- Structured phase-based output
|
|
79
|
-
- Verbose mode for debugging
|
|
80
|
-
|
|
81
|
-
### ✅ **Production-Ready Quality**
|
|
82
|
-
Thoroughly tested and reliable:
|
|
83
|
-
- **78 comprehensive tests** (100% passing)
|
|
84
|
-
- Full unit and integration test coverage
|
|
85
|
-
- TypeScript strict mode enabled
|
|
86
|
-
- Clean commit message generation (removes AI noise)
|
|
87
|
-
- Intelligent whitespace filtering
|
|
88
|
-
- Robust error handling
|
|
89
|
-
|
|
90
|
-
## 🚀 Installation
|
|
91
|
-
|
|
92
|
-
Install globally via npm:
|
|
9
|
+
> Generate **accurate, conventional, and secure** git commit messages using **OpenAI, Claude, OpenRouter, or local models (Ollama)**.
|
|
93
10
|
|
|
94
11
|
```bash
|
|
95
|
-
|
|
12
|
+
git add .
|
|
13
|
+
orc commit
|
|
96
14
|
```
|
|
97
15
|
|
|
98
|
-
|
|
16
|
+
✔ Conventional Commits
|
|
17
|
+
✔ Secret scanning (Gitleaks)
|
|
18
|
+
✔ Cloud & local AI
|
|
19
|
+
✔ Zero-config to start
|
|
99
20
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="https://badge.fury.io/js/orcommit"><img src="https://badge.fury.io/js/orcommit.svg" alt="npm version"></a>
|
|
23
|
+
<a href="https://github.com/ellerbrock/typescript-badges/"><img src="https://badges.frapsoft.com/typescript/code/typescript.svg?v=101" alt="TypeScript"></a>
|
|
24
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
25
|
+
</p>
|
|
105
26
|
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
# Global installation (recommended)
|
|
109
|
-
npm install -g orcommit
|
|
27
|
+
---
|
|
110
28
|
|
|
111
|
-
|
|
112
|
-
npx orcommit
|
|
113
|
-
```
|
|
29
|
+
## TL;DR
|
|
114
30
|
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
# Option 1: OpenRouter (recommended - access to 200+ models)
|
|
118
|
-
orc config set openrouter your-api-key-here
|
|
31
|
+
**ORCommit** is a production-grade CLI that:
|
|
119
32
|
|
|
120
|
-
|
|
121
|
-
|
|
33
|
+
* analyzes your staged git diff
|
|
34
|
+
* generates a high-quality commit message via LLMs
|
|
35
|
+
* enforces Conventional Commits
|
|
36
|
+
* blocks secrets and dependency folders **before** commit
|
|
37
|
+
* works with both **cloud and local** AI models
|
|
122
38
|
|
|
123
|
-
|
|
124
|
-
# Install Ollama first: https://ollama.ai
|
|
125
|
-
orc config model openrouter ollama/mistral
|
|
126
|
-
```
|
|
39
|
+
If you care about **clean history, security, and standards** — this tool is for you.
|
|
127
40
|
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
# Stage your changes
|
|
131
|
-
git add .
|
|
41
|
+
---
|
|
132
42
|
|
|
133
|
-
|
|
134
|
-
orc commit
|
|
43
|
+
## ✨ Key Features
|
|
135
44
|
|
|
136
|
-
|
|
137
|
-
orc commit --yes
|
|
45
|
+
### 🤖 AI Providers
|
|
138
46
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
47
|
+
* OpenAI (GPT‑4, GPT‑3.5)
|
|
48
|
+
* Claude via OpenRouter (200+ models)
|
|
49
|
+
* Local models via **Ollama** (offline & private)
|
|
142
50
|
|
|
143
|
-
|
|
51
|
+
### 🧠 Smart Commit Generation
|
|
144
52
|
|
|
145
|
-
|
|
53
|
+
* Token-aware diff chunking (large repos supported)
|
|
54
|
+
* Interactive regeneration with feedback
|
|
55
|
+
* Custom prompts & project context
|
|
56
|
+
* Conventional Commits by default
|
|
146
57
|
|
|
147
|
-
###
|
|
148
|
-
Generate and create a commit message for staged changes.
|
|
58
|
+
### 🔐 Security by Default
|
|
149
59
|
|
|
150
|
-
**
|
|
60
|
+
* Secret scanning via **Gitleaks** (100+ patterns)
|
|
61
|
+
* Blocks API keys, tokens, private keys
|
|
62
|
+
* Prevents committing `node_modules/`, `vendor/`, etc.
|
|
63
|
+
* Secure API key storage (600 permissions)
|
|
151
64
|
|
|
152
|
-
|
|
153
|
-
- `-y, --yes` - Skip confirmation and auto-commit
|
|
154
|
-
- `-d, --dry-run` - Generate message without creating commit
|
|
155
|
-
- `-v, --verbose` - Enable verbose logging
|
|
156
|
-
- `-w, --watch` - Watch for changes and auto-generate commits
|
|
65
|
+
### ⚙️ Git-Native Workflow
|
|
157
66
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
67
|
+
* Breaking change detection
|
|
68
|
+
* Optional push after commit
|
|
69
|
+
* Git hooks support
|
|
161
70
|
|
|
162
|
-
|
|
163
|
-
- `-s, --scope <scope>` - Specify commit scope (e.g., auth, ui, api)
|
|
164
|
-
- `-t, --type <type>` - Specify commit type (feat, fix, docs, etc.)
|
|
165
|
-
- `-b, --breaking` - Mark as breaking change
|
|
166
|
-
- `--emoji` - Include appropriate emoji in commit message
|
|
167
|
-
- `--one-line` - Generate single-line commit message
|
|
168
|
-
- `--description-length <length>` - Maximum description length
|
|
71
|
+
### ⚡ Fast & Reliable
|
|
169
72
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
- `--ignore-generated` - Ignore auto-generated files (default: true)
|
|
174
|
-
- `--ignore-whitespace` - Ignore whitespace-only changes (default: true)
|
|
73
|
+
* Memory + disk cache
|
|
74
|
+
* Parallel API calls
|
|
75
|
+
* Strict TypeScript + comprehensive tests
|
|
175
76
|
|
|
176
|
-
|
|
177
|
-
- `--no-cache` - Disable caching for this commit
|
|
178
|
-
- `--clear-cache` - Clear cache before generating
|
|
77
|
+
---
|
|
179
78
|
|
|
180
|
-
|
|
181
|
-
- `--push` - Push changes to remote after commit
|
|
182
|
-
- `--auto-push` - Automatically push all future commits
|
|
79
|
+
## 🚀 Quick Start
|
|
183
80
|
|
|
184
|
-
**Examples:**
|
|
185
81
|
```bash
|
|
186
|
-
|
|
187
|
-
orc
|
|
188
|
-
|
|
189
|
-
# Auto-confirm and push to remote
|
|
190
|
-
orc commit --yes --push
|
|
191
|
-
|
|
192
|
-
# Custom prompt for specific style
|
|
193
|
-
orc commit --prompt "Generate a detailed technical commit message with examples"
|
|
194
|
-
|
|
195
|
-
# Add context for better AI understanding
|
|
196
|
-
orc commit --context "This fixes a critical security vulnerability in JWT validation"
|
|
197
|
-
|
|
198
|
-
# Combine context with custom settings
|
|
199
|
-
orc commit --context "Refactoring for performance" --type refactor --scope api
|
|
200
|
-
|
|
201
|
-
# Generate with emoji and conventional commits
|
|
202
|
-
orc commit --emoji --one-line --type feat --scope ui
|
|
203
|
-
|
|
204
|
-
# Breaking change with detailed description
|
|
205
|
-
orc commit --breaking --type feat --description-length 100
|
|
82
|
+
npm install -g orcommit
|
|
83
|
+
orc config set openrouter YOUR_API_KEY
|
|
206
84
|
|
|
207
|
-
|
|
208
|
-
orc commit
|
|
85
|
+
git add .
|
|
86
|
+
orc commit
|
|
87
|
+
```
|
|
209
88
|
|
|
210
|
-
|
|
211
|
-
orc commit --provider openai --clear-cache
|
|
89
|
+
That’s it.
|
|
212
90
|
|
|
213
|
-
|
|
214
|
-
orc commit --max-files 10 --no-cache --ignore-generated
|
|
215
|
-
```
|
|
91
|
+
---
|
|
216
92
|
|
|
217
|
-
|
|
218
|
-
Manage configuration settings and customize AI behavior.
|
|
93
|
+
## 🛠 Common Commands
|
|
219
94
|
|
|
220
|
-
**Subcommands:**
|
|
221
95
|
```bash
|
|
222
|
-
#
|
|
223
|
-
orc
|
|
224
|
-
orc
|
|
96
|
+
orc commit # interactive commit
|
|
97
|
+
orc commit --yes # auto-confirm
|
|
98
|
+
orc commit --context "..." # extra context
|
|
99
|
+
orc commit --emoji # gitmoji
|
|
100
|
+
orc commit --breaking # breaking change
|
|
101
|
+
orc commit --dry-run # preview only
|
|
102
|
+
```
|
|
225
103
|
|
|
226
|
-
|
|
227
|
-
orc config model openrouter anthropic/claude-3-haiku:beta
|
|
228
|
-
orc config model openrouter openai/gpt-4-turbo
|
|
229
|
-
orc config model openai gpt-4
|
|
104
|
+
👉 Full CLI reference: `docs/cli.md`
|
|
230
105
|
|
|
231
|
-
|
|
232
|
-
orc config prompt "Generate concise commit messages following our team standards"
|
|
233
|
-
orc config prompt # Clear custom prompt (revert to default)
|
|
106
|
+
---
|
|
234
107
|
|
|
235
|
-
|
|
236
|
-
orc config get
|
|
237
|
-
orc config get openrouter
|
|
108
|
+
## 🔐 Security Highlights
|
|
238
109
|
|
|
239
|
-
|
|
240
|
-
orc config path
|
|
241
|
-
```
|
|
110
|
+
ORCommit includes **mandatory security checks**:
|
|
242
111
|
|
|
243
|
-
|
|
244
|
-
|
|
112
|
+
* 🔍 Secret scanning via **Gitleaks**
|
|
113
|
+
* 🚫 Blocks API keys, tokens, private keys
|
|
114
|
+
* 🚫 Prevents committing dependency folders
|
|
245
115
|
|
|
246
|
-
|
|
247
|
-
# Show cache statistics
|
|
248
|
-
orc cache stats
|
|
116
|
+
These checks run **before** commit creation and cannot be bypassed accidentally.
|
|
249
117
|
|
|
250
|
-
|
|
251
|
-
orc cache clear
|
|
118
|
+
👉 Details: `docs/security.md`
|
|
252
119
|
|
|
253
|
-
|
|
254
|
-
orc cache cleanup
|
|
255
|
-
```
|
|
120
|
+
---
|
|
256
121
|
|
|
257
|
-
|
|
258
|
-
Test API connection for configured providers.
|
|
122
|
+
## 💡 Who Is ORCommit For?
|
|
259
123
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
124
|
+
* **Teams** — enforce commit standards automatically
|
|
125
|
+
* **Open Source** — keep contribution quality high
|
|
126
|
+
* **Enterprise** — prevent leaks and ensure compliance
|
|
263
127
|
|
|
264
|
-
|
|
265
|
-
orc test openrouter
|
|
266
|
-
orc test openai
|
|
267
|
-
```
|
|
128
|
+
---
|
|
268
129
|
|
|
269
130
|
## ⚙️ Configuration
|
|
270
131
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
### Default Configuration
|
|
132
|
+
Config is stored at `~/.config/orcommit.json` (permissions `600`).
|
|
274
133
|
|
|
275
134
|
```json
|
|
276
135
|
{
|
|
277
|
-
"providers": {
|
|
278
|
-
"openrouter": {
|
|
279
|
-
"baseUrl": "https://openrouter.ai/api/v1",
|
|
280
|
-
"timeout": 60000
|
|
281
|
-
},
|
|
282
|
-
"openai": {
|
|
283
|
-
"baseUrl": "https://api.openai.com/v1",
|
|
284
|
-
"timeout": 60000
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
136
|
"preferences": {
|
|
288
137
|
"defaultProvider": "openrouter",
|
|
289
|
-
"
|
|
290
|
-
"temperature": 0.6
|
|
291
|
-
"autoConfirm": false,
|
|
292
|
-
"language": "en",
|
|
293
|
-
"commitFormat": "conventional"
|
|
138
|
+
"commitFormat": "conventional",
|
|
139
|
+
"temperature": 0.6
|
|
294
140
|
}
|
|
295
141
|
}
|
|
296
142
|
```
|
|
297
143
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
When using `--type` option, these conventional commit types are supported:
|
|
301
|
-
|
|
302
|
-
- `feat` - New features
|
|
303
|
-
- `fix` - Bug fixes
|
|
304
|
-
- `docs` - Documentation changes
|
|
305
|
-
- `style` - Code style changes (formatting, etc.)
|
|
306
|
-
- `refactor` - Code refactoring
|
|
307
|
-
- `test` - Adding or updating tests
|
|
308
|
-
- `chore` - Maintenance tasks
|
|
309
|
-
- `perf` - Performance improvements
|
|
310
|
-
- `ci` - CI/CD changes
|
|
311
|
-
- `build` - Build system changes
|
|
312
|
-
- `revert` - Reverting previous commits
|
|
313
|
-
|
|
314
|
-
## 💡 Use Cases - Who Benefits from ORCommit?
|
|
315
|
-
|
|
316
|
-
### 👨💻 **Individual Developers**
|
|
317
|
-
- Save time writing commit messages
|
|
318
|
-
- Maintain consistent commit history
|
|
319
|
-
- Learn best practices from AI-generated messages
|
|
320
|
-
- Never forget to document important changes
|
|
321
|
-
|
|
322
|
-
### 👥 **Development Teams**
|
|
323
|
-
- Enforce team commit message standards with custom prompts
|
|
324
|
-
- Ensure conventional commits compliance
|
|
325
|
-
- Improve code review efficiency
|
|
326
|
-
- Track changes across large codebases
|
|
327
|
-
|
|
328
|
-
### 🏢 **Enterprise & Agencies**
|
|
329
|
-
- Maintain corporate coding standards
|
|
330
|
-
- Audit trail for compliance
|
|
331
|
-
- Multi-language project support
|
|
332
|
-
- Integration with existing git workflows
|
|
333
|
-
|
|
334
|
-
### 🎓 **Students & Learning**
|
|
335
|
-
- Learn git best practices
|
|
336
|
-
- Understand what makes a good commit message
|
|
337
|
-
- Practice conventional commits format
|
|
338
|
-
- Build portfolio with professional commits
|
|
339
|
-
|
|
340
|
-
### 🚀 **Open Source Projects**
|
|
341
|
-
- Maintain consistent contribution quality
|
|
342
|
-
- Help new contributors write better commits
|
|
343
|
-
- Save maintainer time on commit message reviews
|
|
344
|
-
- Support for multiple languages and formats
|
|
345
|
-
|
|
346
|
-
## 🏗 Architecture & Technology Stack
|
|
347
|
-
|
|
348
|
-
Built with modern TypeScript and cutting-edge AI technology:
|
|
349
|
-
|
|
350
|
-
### Core Modules
|
|
351
|
-
|
|
352
|
-
- **CLI Module**: Command-line interface using Commander.js with @clack/prompts
|
|
353
|
-
- **Config Module**: Secure configuration management with file permissions (600)
|
|
354
|
-
- **Git Module**: Advanced Git repository interaction with intelligent diff parsing
|
|
355
|
-
- **API Module**: Robust HTTP client with exponential backoff and concurrency control
|
|
356
|
-
- **Logger Module**: Elegant progress indicators with timing and structured output
|
|
357
|
-
- **Tokenizer Module**: Token-aware chunking using tiktoken for accurate processing
|
|
358
|
-
- **Cache Module**: Two-level caching (memory + disk) with TTL and cleanup
|
|
359
|
-
- **Diff Filter Module**: Smart filtering of generated files and irrelevant changes
|
|
360
|
-
- **Core Orchestrator**: Main coordination with phase-based processing
|
|
361
|
-
|
|
362
|
-
### Key Features
|
|
363
|
-
|
|
364
|
-
- **Token-Based Chunking**: Uses tiktoken to respect actual model token limits
|
|
365
|
-
- **Intelligent Caching**: Memory + disk caching with automatic cleanup and TTL
|
|
366
|
-
- **Smart Filtering**: Automatically filters out generated files, lock files, and whitespace-only changes
|
|
367
|
-
- **Interactive Push**: Prompts user for push with automatic upstream configuration
|
|
368
|
-
- **Elegant UI**: Phase-based progress with emojis, timing, and structured output
|
|
369
|
-
- **Robust Error Handling**: Comprehensive error types with timeout protection
|
|
370
|
-
- **Type Safety**: Full TypeScript coverage with strict mode enabled
|
|
371
|
-
- **Production Ready**: Extensive test suite with unit and integration tests
|
|
372
|
-
|
|
373
|
-
## 🔧 Advanced Usage
|
|
374
|
-
|
|
375
|
-
### Environment Variables
|
|
376
|
-
|
|
377
|
-
You can set API keys via environment variables:
|
|
378
|
-
|
|
379
|
-
```bash
|
|
380
|
-
export OPENROUTER_API_KEY="your-key-here"
|
|
381
|
-
export OPENAI_API_KEY="your-openai-key"
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
### Smart File Processing
|
|
385
|
-
|
|
386
|
-
The tool intelligently processes large codebases:
|
|
387
|
-
|
|
388
|
-
**Token-Aware Chunking:**
|
|
389
|
-
- Uses tiktoken for accurate token counting
|
|
390
|
-
- Respects model-specific token limits (GPT-4: 8K, Claude: 100K)
|
|
391
|
-
- Preserves context at logical boundaries (files, functions)
|
|
392
|
-
- Dynamic chunk sizing based on available tokens
|
|
393
|
-
|
|
394
|
-
**Intelligent Filtering:**
|
|
395
|
-
- Auto-detects and skips generated files (dist/, build/, .lock files)
|
|
396
|
-
- Filters out whitespace-only changes
|
|
397
|
-
- Relevancy scoring to focus on meaningful changes
|
|
398
|
-
- Configurable file size limits (default: 1MB per file)
|
|
399
|
-
|
|
400
|
-
**Performance:**
|
|
401
|
-
- Memory + disk caching for instant repeated requests
|
|
402
|
-
- Concurrent API processing (up to 3 parallel requests)
|
|
403
|
-
- Exponential backoff for rate limit handling
|
|
404
|
-
|
|
405
|
-
### Custom Models
|
|
406
|
-
|
|
407
|
-
Configure specific models for each provider:
|
|
408
|
-
|
|
409
|
-
```bash
|
|
410
|
-
# ORCommit models
|
|
411
|
-
orc config model openrouter anthropic/claude-3-haiku:beta
|
|
412
|
-
orc config model openrouter openai/gpt-4-turbo-preview
|
|
413
|
-
|
|
414
|
-
# OpenAI models
|
|
415
|
-
orc config model openai gpt-4
|
|
416
|
-
orc config model openai gpt-3.5-turbo
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
### Interactive Experience
|
|
420
|
-
|
|
421
|
-
**Elegant Progress Display:**
|
|
422
|
-
```
|
|
423
|
-
🔍 Analyzing changes...
|
|
424
|
-
✓ Found 15 staged files
|
|
425
|
-
✓ Ready to analyze 12 files
|
|
426
|
-
|
|
427
|
-
🤖 Generating commit message...
|
|
428
|
-
✓ Commit message generated (1.2s)
|
|
429
|
-
|
|
430
|
-
💾 Creating commit...
|
|
431
|
-
✓ Commit created
|
|
432
|
-
✓ Commit: feat(ui): add interactive push prompts
|
|
433
|
-
|
|
434
|
-
Do you want to push to remote? › Yes
|
|
435
|
-
🚀 Pushing to remote...
|
|
436
|
-
✓ Pushed to main (2.1s)
|
|
437
|
-
✓ Changes pushed successfully
|
|
438
|
-
```
|
|
439
|
-
|
|
440
|
-
**Smart Push Integration:**
|
|
441
|
-
- Interactive prompts for push decisions
|
|
442
|
-
- Automatic upstream branch setup
|
|
443
|
-
- Support for multiple remotes
|
|
444
|
-
- Graceful handling of push failures
|
|
445
|
-
|
|
446
|
-
## 🧪 Development
|
|
447
|
-
|
|
448
|
-
### Setup
|
|
449
|
-
|
|
450
|
-
```bash
|
|
451
|
-
git clone <repository>
|
|
452
|
-
cd orcommit
|
|
453
|
-
npm install
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
### Available Scripts
|
|
144
|
+
Environment variables are also supported:
|
|
457
145
|
|
|
458
146
|
```bash
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
npm run test # Run tests
|
|
462
|
-
npm run test:watch # Run tests in watch mode
|
|
463
|
-
npm run lint # Run ESLint
|
|
464
|
-
npm run format # Format code with Prettier
|
|
465
|
-
```
|
|
466
|
-
|
|
467
|
-
### Testing
|
|
468
|
-
|
|
469
|
-
The project includes comprehensive tests:
|
|
470
|
-
|
|
471
|
-
```bash
|
|
472
|
-
# Run all tests
|
|
473
|
-
npm test
|
|
474
|
-
|
|
475
|
-
# Run with coverage
|
|
476
|
-
npm run test:coverage
|
|
477
|
-
|
|
478
|
-
# Run specific test file
|
|
479
|
-
npm test -- utils.test.ts
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
## 📋 Requirements
|
|
483
|
-
|
|
484
|
-
- Node.js >= 16.0.0
|
|
485
|
-
- Git repository
|
|
486
|
-
- ORCommit or OpenAI API key
|
|
487
|
-
|
|
488
|
-
## 🔐 Security
|
|
489
|
-
|
|
490
|
-
### API Key Security
|
|
491
|
-
- API keys are stored with 600 file permissions (owner read/write only)
|
|
492
|
-
- No API keys are logged or exposed in error messages
|
|
493
|
-
- Secure HTTP client with proper timeout and retry handling
|
|
494
|
-
|
|
495
|
-
### Dependency Directory Protection (NEW in v1.1.6)
|
|
496
|
-
|
|
497
|
-
**ORCommit automatically blocks commits containing dependency directories:**
|
|
498
|
-
|
|
499
|
-
- `node_modules/` - npm/yarn/pnpm dependencies
|
|
500
|
-
- `vendor/` - Composer/Go dependencies
|
|
501
|
-
- `bower_components/` - Bower dependencies
|
|
502
|
-
- `.pnpm/` - pnpm store
|
|
503
|
-
|
|
504
|
-
**This protection:**
|
|
505
|
-
- ✅ **Always active** - cannot be disabled even with `--yes` flag
|
|
506
|
-
- ✅ **Prevents repository bloat** - saves gigabytes of space
|
|
507
|
-
- ✅ **Avoids merge conflicts** - keeps your team's git history clean
|
|
508
|
-
- ✅ **Follows best practices** - dependencies should never be committed
|
|
509
|
-
|
|
510
|
-
**Example of blocked commit:**
|
|
511
|
-
```bash
|
|
512
|
-
$ git add .
|
|
513
|
-
$ orc commit
|
|
514
|
-
|
|
515
|
-
🚨 BLOCKED: Cannot commit dependency directories
|
|
516
|
-
|
|
517
|
-
The following were detected in staging area:
|
|
518
|
-
• node_modules directory detected
|
|
519
|
-
|
|
520
|
-
To fix this issue:
|
|
521
|
-
1. Unstage unwanted files: git reset HEAD node_modules/
|
|
522
|
-
2. Update your .gitignore file
|
|
523
|
-
3. Stage only the files you want to commit
|
|
147
|
+
export OPENROUTER_API_KEY="your-key"
|
|
148
|
+
export OPENAI_API_KEY="your-key"
|
|
524
149
|
```
|
|
525
150
|
|
|
526
|
-
|
|
527
|
-
Accidentally committing `node_modules/` is one of the most common Git mistakes. It can:
|
|
528
|
-
- Increase repository size by gigabytes
|
|
529
|
-
- Cause merge conflicts in team environments
|
|
530
|
-
- Slow down git operations significantly
|
|
531
|
-
- Expose outdated or vulnerable dependencies
|
|
532
|
-
- Violate industry best practices
|
|
533
|
-
|
|
534
|
-
**Recommended .gitignore:**
|
|
535
|
-
```gitignore
|
|
536
|
-
# Dependencies
|
|
537
|
-
node_modules/
|
|
538
|
-
.pnpm/
|
|
539
|
-
bower_components/
|
|
540
|
-
vendor/
|
|
541
|
-
|
|
542
|
-
# Build outputs
|
|
543
|
-
dist/
|
|
544
|
-
build/
|
|
545
|
-
.next/
|
|
546
|
-
.nuxt/
|
|
547
|
-
```
|
|
548
|
-
|
|
549
|
-
## 🐛 Troubleshooting
|
|
550
|
-
|
|
551
|
-
### Common Issues
|
|
552
|
-
|
|
553
|
-
**"🚨 BLOCKED: Cannot commit dependency directories"** (NEW in v1.1.6)
|
|
554
|
-
- This is a safety feature, not an error
|
|
555
|
-
- **Solution 1:** Unstage the directories: `git reset HEAD node_modules/ vendor/`
|
|
556
|
-
- **Solution 2:** Add them to `.gitignore` and stage only source files
|
|
557
|
-
- **Note:** This block cannot be overridden with `--yes` (by design)
|
|
558
|
-
- **Why:** Committing dependencies is a common mistake that bloats repositories
|
|
559
|
-
|
|
560
|
-
**"Not in a git repository"**
|
|
561
|
-
- Ensure you're running the command inside a Git repository
|
|
562
|
-
|
|
563
|
-
**"No staged changes found"**
|
|
564
|
-
- Use `git add` to stage files before generating commits
|
|
565
|
-
- Check if files are in .gitignore
|
|
566
|
-
|
|
567
|
-
**"API key not configured"**
|
|
568
|
-
- Set your API key: `orc config set openrouter your-key`
|
|
569
|
-
- Verify with: `orc config get`
|
|
570
|
-
|
|
571
|
-
**"All changes were filtered out"**
|
|
572
|
-
- Check if only generated files were changed
|
|
573
|
-
- Try with `--ignore-generated=false` to include all files
|
|
574
|
-
- Use `--verbose` to see what was filtered
|
|
575
|
-
|
|
576
|
-
**"Operation timed out"**
|
|
577
|
-
- Large repositories may take time - operations auto-timeout at 30s
|
|
578
|
-
- Try with `--max-files 10` to limit scope
|
|
579
|
-
- Check your internet connection and API key validity
|
|
580
|
-
|
|
581
|
-
**"Push failed"**
|
|
582
|
-
- Ensure you have push permissions to the repository
|
|
583
|
-
- Check if upstream branch is configured: `git branch -vv`
|
|
584
|
-
- Try manual push first: `git push`
|
|
585
|
-
|
|
586
|
-
### Debug Mode
|
|
151
|
+
---
|
|
587
152
|
|
|
588
|
-
|
|
153
|
+
## 📚 Documentation
|
|
589
154
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
155
|
+
* CLI Reference → `docs/cli.md`
|
|
156
|
+
* Security Model → `docs/security.md`
|
|
157
|
+
* Architecture → `docs/architecture.md`
|
|
158
|
+
* Advanced Usage → `docs/advanced.md`
|
|
593
159
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
MIT License - see [LICENSE](LICENSE) file for details.
|
|
160
|
+
---
|
|
597
161
|
|
|
598
162
|
## 🤝 Contributing
|
|
599
163
|
|
|
600
164
|
1. Fork the repository
|
|
601
165
|
2. Create a feature branch
|
|
602
|
-
3.
|
|
603
|
-
4.
|
|
604
|
-
5. Submit a pull request
|
|
605
|
-
|
|
606
|
-
## 📞 Support
|
|
607
|
-
|
|
608
|
-
- GitHub Issues: [Report bugs or request features](https://github.com/markolofsen/openrouter-commit/issues)
|
|
609
|
-
- Documentation: [Additional guides and examples](./docs/)
|
|
610
|
-
|
|
611
|
-
## 🙏 Acknowledgments
|
|
612
|
-
|
|
613
|
-
- [OpenRouter](https://openrouter.ai/) for providing access to multiple AI models
|
|
614
|
-
- [OpenAI](https://openai.com/) for their powerful language models
|
|
615
|
-
- The open-source community for the excellent tools and libraries used in this project
|
|
166
|
+
3. Add tests
|
|
167
|
+
4. Submit a pull request
|
|
616
168
|
|
|
617
169
|
---
|
|
618
170
|
|
|
619
|
-
## 🏢
|
|
620
|
-
|
|
621
|
-
**ORCommit** is developed and maintained by **[Reforms.ai](https://reforms.ai)**, a leading AI SaaS development company specializing in cutting-edge AI-powered solutions for modern development workflows.
|
|
622
|
-
|
|
623
|
-
### 🚀 About Reforms.ai
|
|
171
|
+
## 🏢 About the Maintainers
|
|
624
172
|
|
|
625
|
-
|
|
173
|
+
ORCommit is built and maintained by **[Reforms.ai](https://reforms.ai)** — a team specializing in AI-powered developer tools.
|
|
626
174
|
|
|
627
|
-
|
|
175
|
+
Commercial support, consulting, and custom AI integrations are available.
|
|
628
176
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
- **[Django CFG](https://github.com/markolofsen/django-cfg)** - Advanced configuration management for Django projects with environment-based settings, type safety, and validation
|
|
632
|
-
- **AI-powered development tools** - Automation solutions for modern dev workflows
|
|
633
|
-
- **Custom AI integrations** - Tailored AI solutions for enterprise clients
|
|
634
|
-
- **SaaS platforms** - Scalable cloud-based applications with AI capabilities
|
|
635
|
-
|
|
636
|
-
### 🤝 Work With Us
|
|
637
|
-
|
|
638
|
-
Reforms.ai offers:
|
|
639
|
-
- **Custom AI Development** - Build AI-powered features for your products
|
|
640
|
-
- **SaaS Consulting** - Architecture, scaling, and best practices
|
|
641
|
-
- **AI Integration Services** - Integrate OpenAI, Claude, and other AI providers
|
|
642
|
-
- **Developer Tools** - Open-source and commercial solutions for developers
|
|
643
|
-
|
|
644
|
-
**Interested in AI-powered solutions for your business?**
|
|
645
|
-
Visit [reforms.ai](https://reforms.ai) or contact us for custom development, consulting, or partnership opportunities.
|
|
646
|
-
|
|
647
|
-
### 🌟 Support Our Work
|
|
177
|
+
---
|
|
648
178
|
|
|
649
|
-
|
|
650
|
-
- ⭐ Starring the repository
|
|
651
|
-
- 🐛 Reporting bugs and suggesting features
|
|
652
|
-
- 💬 Sharing with other developers
|
|
653
|
-
- 🤝 Contributing to the project
|
|
654
|
-
- 💼 Hiring us for custom AI development
|
|
179
|
+
## 📄 License
|
|
655
180
|
|
|
656
|
-
|
|
657
|
-
- Website: [https://reforms.ai](https://reforms.ai)
|
|
658
|
-
- GitHub: [@markolofsen](https://github.com/markolofsen)
|
|
659
|
-
- Email: contact@reforms.ai
|
|
181
|
+
MIT License — see [LICENSE](LICENSE).
|
|
660
182
|
|
|
661
183
|
---
|
|
662
184
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
*Empowering developers with intelligent automation since 2024.*
|
|
185
|
+
Built with ❤️ using TypeScript and modern AI tooling.
|