gitlink-cli/doc/changes/workflow-release-notes.md

66 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Workflow Release Notes Generator
## Summary
Adds `gitlink-cli workflow +release-notes`, a read-only workflow command that turns merged pull request metadata into structured release notes for maintainers, CI jobs, and AI agents.
## What It Does
- Reads PR data from a local JSON file or fetches merged pull requests from GitLink in read-only mode.
- Reuses the existing PR summary classifier to group changes into features, fixes, docs, tests, refactors, CI, mixed changes, and unknown changes.
- Highlights notable feature and high-risk PRs.
- Detects common breaking-change wording such as "breaking change", "incompatible", and "migration required".
- Produces suggested verification notes from PR analysis.
- Supports `json`, `table`, and `markdown`; markdown is the default when no global `--format` is set.
## Examples
```bash
# Generate markdown release notes from merged PRs.
gitlink-cli workflow +release-notes \
--owner Gitlink --repo gitlink-cli \
--version v1.2.0 --limit 20
# Generate release notes from local PR metadata for scripts or offline workflows.
gitlink-cli workflow +release-notes \
--from release-prs.json \
--from-ref v1.1.0 --to-ref v1.2.0 \
--format json
```
## Input Shape
`--from` accepts either a `ReleaseNotesInput` object:
```json
{
"repository": "Gitlink/gitlink-cli",
"version": "v1.2.0",
"from_ref": "v1.1.0",
"to_ref": "v1.2.0",
"pull_requests": [
{
"number": 42,
"title": "feat: add export workflow",
"author": "alice",
"changed_files": [
{"filename": "shortcuts/export/export.go", "additions": 120}
],
"commits": [
{"sha": "abc123", "message": "feat: add export workflow"}
]
}
]
}
```
or a raw `[]PRSummaryInput` array.
## Tests
Unit tests cover shortcut registration, local object and array inputs, release note grouping, remote merged PR fetch parameters, markdown rendering, and table rendering.
## 中文说明
`workflow +release-notes` 面向发布前整理变更说明的场景。维护者可以从 GitLink 只读拉取已合并 PR也可以在 CI 或离线脚本中传入本地 JSON。命令会复用现有 PR 分析规则把变更自动归入新增能力、修复、文档、测试、重构、CI 等分组,并提取重点变更、潜在破坏性变更和建议验证项。它只生成本地输出,不会评论、审批、合并或修改远端数据,适合放进 Release 发布流程和比赛交付材料中。