Skip to content

Commit 43d6611

Browse files
committed
📝 Add project-specific configuration documentation
Document project-specific configuration capabilities This change expands the documentation to showcase project-specific configuration features: - Add project-specific configuration section to README - Document .irisconfig file usage and sharing capabilities - Add examples for common project configuration commands - Update man page with project-config command options - Reorganize usage sections for better readability - Add global options section for consistent command reference
1 parent 48db0ca commit 43d6611

File tree

2 files changed

+230
-83
lines changed

2 files changed

+230
-83
lines changed

Diff for: README.md

+151-77
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Git-Iris offers a suite of AI-powered tools to enhance your Git workflow:
3939
- **Dynamic Changelog Generation**: Create structured changelogs between any Git references
4040
- **Comprehensive Release Notes**: Generate release notes with summaries and key changes
4141
- **MCP Integration**: Connect directly with Claude, Cursor, VSCode and other compatible AI tools
42+
- **Project-Specific Configuration**: Maintain shared project settings in version control
4243

4344
### 💪 Advanced Capabilities
4445

@@ -153,7 +154,11 @@ For detailed instructions, examples, and CI/CD integration, see our [Docker Usag
153154

154155
## ⚙️ Configuration
155156

156-
Git-Iris uses a configuration file located at `~/.config/git-iris/config.toml`. Set up your preferred AI provider:
157+
Git-Iris offers both global configuration and project-specific configuration options.
158+
159+
### Global Configuration
160+
161+
Global settings are stored in `~/.config/git-iris/config.toml` and apply across all repositories:
157162

158163
```bash
159164
# For OpenAI
@@ -173,6 +178,26 @@ git-iris config --provider ollama
173178
git-iris config --provider <provider> --api-key YOUR_API_KEY
174179
```
175180

181+
### Project-Specific Configuration
182+
183+
Project settings are stored in `.irisconfig` in your repository root and can be shared with your team without sharing sensitive credentials:
184+
185+
```bash
186+
# Set project-specific LLM provider
187+
git-iris project-config --provider anthropic
188+
189+
# Configure project-specific preset
190+
git-iris project-config --preset conventional
191+
192+
# Set model for the project
193+
git-iris project-config --model claude-3-7-sonnet-20250219
194+
195+
# View current project configuration
196+
git-iris project-config --print
197+
```
198+
199+
Project configuration files do not store API keys for security reasons but can store other settings like models, presets, and custom instructions.
200+
176201
### Supported LLM Providers
177202

178203
Git-Iris supports the following LLM providers:
@@ -191,9 +216,6 @@ Git-Iris supports the following LLM providers:
191216
Additional configuration options:
192217

193218
```bash
194-
# Set default provider
195-
git-iris config --default-provider openai
196-
197219
# Enable/Disable Gitmoji
198220
git-iris config --gitmoji true
199221

@@ -217,6 +239,18 @@ For more detailed configuration information, please refer to our [Configuration
217239

218240
## 📖 Usage
219241

242+
### Global Options
243+
244+
These options apply to all commands:
245+
246+
- `-l`, `--log`: Log debug messages to a file
247+
- `--log-file`: Specify a custom log file path
248+
- `-q`, `--quiet`: Suppress non-essential output (spinners, waiting messages, etc.)
249+
- `-v`, `--version`: Display version information
250+
- `-r`, `--repo`: Use a remote repository URL instead of local repository
251+
252+
### Generate Commit Messages
253+
220254
Generate an AI-powered commit message:
221255

222256
```bash
@@ -227,13 +261,11 @@ Options:
227261

228262
- `-a`, `--auto-commit`: Automatically commit with the generated message
229263
- `-i`, `--instructions`: Provide custom instructions for this commit
230-
- `--provider`: Specify an LLM provider (supports multiple providers through the llm crate)
264+
- `--provider`: Specify an LLM provider
231265
- `--preset`: Use a specific instruction preset
232266
- `--no-gitmoji`: Disable Gitmoji for this commit
233-
- `-l`, `--log`: Enable logging to file
234267
- `-p`, `--print`: Print the generated message to stdout and exit
235268
- `--no-verify`: Skip verification steps (pre/post commit hooks)
236-
- `-r`, `--repo`: Specify a remote repository URL instead of using the local repository
237269

238270
Example:
239271

@@ -247,6 +279,102 @@ To generate a commit message and print it to stdout without starting the interac
247279
git-iris gen --print
248280
```
249281

282+
### AI-Powered Code Reviews
283+
284+
Get a comprehensive analysis of your staged changes:
285+
286+
```bash
287+
git-iris review
288+
```
289+
290+
Options:
291+
292+
- `-i`, `--instructions`: Provide custom instructions for this review
293+
- `--provider`: Specify an LLM provider
294+
- `--preset`: Use a specific instruction preset
295+
- `-p`, `--print`: Print the generated review to stdout and exit
296+
- `--include-unstaged`: Include unstaged changes in the review
297+
- `--commit`: Review a specific commit by ID (hash, branch, or reference)
298+
299+
Example:
300+
301+
```bash
302+
git-iris review -i "Focus on security" --preset security --include-unstaged
303+
```
304+
305+
### Generate Changelogs
306+
307+
Create a detailed changelog between Git references:
308+
309+
```bash
310+
git-iris changelog --from <from-ref> --to <to-ref>
311+
```
312+
313+
Options:
314+
315+
- `--from`: Starting Git reference (commit hash, tag, or branch name)
316+
- `--to`: Ending Git reference (defaults to HEAD if not specified)
317+
- `-i`, `--instructions`: Custom instructions for changelog generation
318+
- `--preset`: Select an instruction preset for changelog generation
319+
- `--detail-level`: Set the detail level (minimal, standard, detailed)
320+
- `--gitmoji`: Enable or disable Gitmoji in the changelog
321+
- `--update`: Update the changelog file with the new changes
322+
- `--file`: Path to the changelog file (defaults to CHANGELOG.md)
323+
324+
Example:
325+
326+
```bash
327+
git-iris changelog --from v1.0.0 --to v1.1.0 --detail-level detailed --update
328+
```
329+
330+
### Generate Release Notes
331+
332+
Create comprehensive release notes:
333+
334+
```bash
335+
git-iris release-notes --from <from-ref> --to <to-ref>
336+
```
337+
338+
Options:
339+
340+
- `--from`: Starting Git reference (commit hash, tag, or branch name)
341+
- `--to`: Ending Git reference (defaults to HEAD if not specified)
342+
- `-i`, `--instructions`: Custom instructions for release notes generation
343+
- `--preset`: Select an instruction preset for release notes generation
344+
- `--detail-level`: Set the detail level (minimal, standard, detailed)
345+
- `--gitmoji`: Enable or disable Gitmoji in the release notes
346+
347+
Example:
348+
349+
```bash
350+
git-iris release-notes --from v1.0.0 --to v1.1.0 --preset conventional
351+
```
352+
353+
### Project Configuration
354+
355+
Create or update project-specific settings:
356+
357+
```bash
358+
git-iris project-config
359+
```
360+
361+
Options:
362+
363+
- `--provider`: Set default LLM provider for this project
364+
- `--model`: Set model for the specified provider
365+
- `--token-limit`: Set token limit for the specified provider
366+
- `--param`: Set additional parameters for the specified provider
367+
- `-p`, `--print`: Print the current project configuration
368+
- `--gitmoji`: Enable or disable Gitmoji for this project
369+
- `-i`, `--instructions`: Set instructions for message generation
370+
- `--preset`: Set default instruction preset for this project
371+
372+
Example:
373+
374+
```bash
375+
git-iris project-config --provider anthropic --preset security --model claude-3-7-sonnet-20250219
376+
```
377+
250378
### Working with Remote Repositories
251379

252380
Git-Iris supports working with remote repositories directly without having to clone them manually:
@@ -267,16 +395,25 @@ git-iris gen --repo https://github.com/example/repo.git --print
267395

268396
Note: When working with remote repositories, Git-Iris operates in read-only mode. You can't commit changes directly to remote repositories.
269397

270-
### Using MCP with AI Tools
398+
### MCP Server for AI Integration
271399

272-
Git-Iris can be integrated with AI assistants and editors via the Model Context Protocol (MCP):
400+
Start an MCP (Model Context Protocol) server for integration with AI tools:
273401

274402
```bash
275-
# Start MCP server (default stdio transport)
276403
git-iris serve
404+
```
405+
406+
Options:
277407

278-
# Start with SSE transport for editor integration
279-
git-iris serve --transport sse --port 3077
408+
- `--dev`: Enable development mode with more verbose logging
409+
- `-t`, `--transport`: Transport type to use (stdio, sse)
410+
- `-p`, `--port`: Port to use for network transports
411+
- `--listen-address`: Listen address for network transports
412+
413+
Example:
414+
415+
```bash
416+
git-iris serve --transport sse --port 3077 --listen-address 127.0.0.1
280417
```
281418

282419
This allows you to use Git-Iris features directly from Claude, Cursor, VSCode, and other MCP-compatible tools. See [MCP.md](docs/MCP.md) for detailed documentation.
@@ -286,6 +423,7 @@ This allows you to use Git-Iris features directly from Claude, Cursor, VSCode, a
286423
All MCP tools **require** the `repository` parameter, which must be a local project path or a remote repository URL. This is necessary because some clients (like Cursor) do not reliably provide the project root.
287424

288425
**Example (local path):**
426+
289427
```json
290428
{
291429
"from": "v1.0.0",
@@ -296,6 +434,7 @@ All MCP tools **require** the `repository` parameter, which must be a local proj
296434
```
297435

298436
**Example (remote URL):**
437+
299438
```json
300439
{
301440
"from": "v1.0.0",
@@ -351,71 +490,6 @@ The review includes:
351490
- Test Coverage - Analyzes test coverage gaps or brittle tests
352491
- Best Practices - Checks adherence to language-specific conventions and design guidelines
353492

354-
Options:
355-
356-
- `-i`, `--instructions`: Provide custom instructions for this review
357-
- `--provider`: Specify an LLM provider (supports multiple providers through the llm crate)
358-
- `--preset`: Use a specific instruction preset
359-
- `-p`, `--print`: Print the generated review to stdout and exit
360-
361-
Example:
362-
363-
```bash
364-
git-iris review -i "Pay special attention to error handling" --provider anthropic
365-
```
366-
367-
This allows you to get valuable feedback on your code before committing it, improving code quality and catching potential issues early.
368-
369-
### Generating a Changelog
370-
371-
Git-Iris can generate changelogs between two Git references:
372-
373-
```bash
374-
git-iris changelog --from <from-ref> --to <to-ref>
375-
```
376-
377-
Options:
378-
379-
- `--from`: Starting Git reference (commit hash, tag, or branch name)
380-
- `--to`: Ending Git reference (defaults to HEAD if not specified)
381-
- `--instructions`: Custom instructions for changelog generation
382-
- `--preset`: Select an instruction preset for changelog generation
383-
- `--detail-level`: Set the detail level (minimal, standard, detailed)
384-
- `--gitmoji`: Enable or disable Gitmoji in the changelog
385-
386-
Example:
387-
388-
```bash
389-
git-iris changelog --from v1.0.0 --to v1.1.0 --detail-level detailed --gitmoji true
390-
```
391-
392-
This command generates a detailed changelog of changes between versions 1.0.0 and 1.1.0, including Gitmoji.
393-
394-
### Generating Release Notes
395-
396-
Git-Iris can also generate comprehensive release notes:
397-
398-
```bash
399-
git-iris release-notes --from <from-ref> --to <to-ref>
400-
```
401-
402-
Options:
403-
404-
- `--from`: Starting Git reference (commit hash, tag, or branch name)
405-
- `--to`: Ending Git reference (defaults to HEAD if not specified)
406-
- `--instructions`: Custom instructions for release notes generation
407-
- `--preset`: Select an instruction preset for release notes generation
408-
- `--detail-level`: Set the detail level (minimal, standard, detailed)
409-
- `--gitmoji`: Enable or disable Gitmoji in the release notes
410-
411-
Example:
412-
413-
```bash
414-
git-iris release-notes --from v1.0.0 --to v1.1.0 --preset conventional --detail-level standard
415-
```
416-
417-
This command generates standard-level release notes between versions 1.0.0 and 1.1.0 using the conventional commits preset.
418-
419493
## 🎛️ Custom Instructions and Presets
420494

421495
Git-Iris offers two powerful ways to guide the AI in generating commit messages: custom instructions and presets.

0 commit comments

Comments
 (0)