Skip to content

Commit 67d9ead

Browse files
committed
✨ Support explicit version name for changelog and release notes
Add --version-name option to changelog and release-notes commands - Introduce CLI, API, and MCP support for explicit version name overrides - Accept and plumb version_name through CLI args, MCP tool parameters, and internal generation logic for both changelogs and release notes - Update documentation, man page, and help output to highlight this option - Enhance changelog/release notes formatting and file update code to use custom version name if provided, overriding Git tag detection - Extend integration and unit tests to verify custom version name behavior This unlocks precise control and repeatability in release automation, enabling human-friendly, workflow-driven release documentation—regardless of Git ref structure. (CI/CD, here’s your BFF.) User experience win: teams can align changelogs and notes with manual or external versioning sources, creating clarity across tools and audiences.
1 parent 43d6611 commit 67d9ead

15 files changed

+1647
-59
lines changed

Diff for: README.md

+14
Original file line numberDiff line numberDiff line change
@@ -320,13 +320,20 @@ Options:
320320
- `--gitmoji`: Enable or disable Gitmoji in the changelog
321321
- `--update`: Update the changelog file with the new changes
322322
- `--file`: Path to the changelog file (defaults to CHANGELOG.md)
323+
- `--version-name`: Explicit version name to use in the changelog instead of getting it from Git
323324

324325
Example:
325326

326327
```bash
327328
git-iris changelog --from v1.0.0 --to v1.1.0 --detail-level detailed --update
328329
```
329330

331+
Example using explicit version name (useful in release workflows):
332+
333+
```bash
334+
git-iris changelog --from v1.0.0 --to HEAD --update --version-name v1.1.0
335+
```
336+
330337
### Generate Release Notes
331338

332339
Create comprehensive release notes:
@@ -343,13 +350,20 @@ Options:
343350
- `--preset`: Select an instruction preset for release notes generation
344351
- `--detail-level`: Set the detail level (minimal, standard, detailed)
345352
- `--gitmoji`: Enable or disable Gitmoji in the release notes
353+
- `--version-name`: Explicit version name to use in the release notes instead of getting it from Git
346354

347355
Example:
348356

349357
```bash
350358
git-iris release-notes --from v1.0.0 --to v1.1.0 --preset conventional
351359
```
352360

361+
Example using explicit version name:
362+
363+
```bash
364+
git-iris release-notes --from v1.0.0 --to HEAD --version-name v1.1.0
365+
```
366+
353367
### Project Configuration
354368

355369
Create or update project-specific settings:

Diff for: docs/MCP.md

+10-8
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ Generate a detailed changelog between two Git references.
114114
- `detail_level`: (string) Level of detail for the changelog (minimal, standard, detailed)
115115
- `custom_instructions`: (string) Custom instructions for the AI
116116
- `repository`: (string, required) Repository path (local) or URL (remote). **Required.**
117+
- `version_name`: (string) Explicit version name to use in the changelog instead of getting it from Git
117118

118119
Example (local path):
119120

@@ -127,15 +128,15 @@ Example (local path):
127128
}
128129
```
129130

130-
Example (remote URL):
131+
Example with version name (useful in release workflows):
131132

132133
```json
133134
{
134135
"from": "v1.0.0",
135-
"to": "v2.0.0",
136+
"to": "HEAD",
136137
"detail_level": "detailed",
137-
"custom_instructions": "Group changes by component",
138-
"repository": "https://github.com/example/repo.git"
138+
"version_name": "v2.0.0-beta",
139+
"repository": "/home/bliss/dev/myproject"
139140
}
140141
```
141142

@@ -150,6 +151,7 @@ Generate comprehensive release notes between two Git references.
150151
- `detail_level`: (string) Level of detail for the release notes (minimal, standard, detailed)
151152
- `custom_instructions`: (string) Custom instructions for the AI
152153
- `repository`: (string, required) Repository path (local) or URL (remote). **Required.**
154+
- `version_name`: (string) Explicit version name to use in the release notes instead of getting it from Git
153155

154156
Example (local path):
155157

@@ -163,15 +165,15 @@ Example (local path):
163165
}
164166
```
165167

166-
Example (remote URL):
168+
Example with version name:
167169

168170
```json
169171
{
170172
"from": "v1.0.0",
171-
"to": "v2.0.0",
173+
"to": "HEAD",
172174
"detail_level": "standard",
173-
"custom_instructions": "Highlight breaking changes",
174-
"repository": "https://github.com/example/repo.git"
175+
"version_name": "v2.0.0-rc1",
176+
"repository": "/home/bliss/dev/myproject"
175177
}
176178
```
177179

0 commit comments

Comments
 (0)