Use this skill when the user asks to publish a release, create a release, "create release", "create-release", "tag a release", or generate a changelog. Requi...
Note: If you have
mcporterinstalled locally, you should usemcporterto invoke the MCP tool instead of directly calling the MCP tool. ThemcporterCLI provides a more convenient interface and better error handling.
Auto-generate a changelog from merged PR history and publish a well-structured release on Gitee.
list_releases, list_repo_pulls, create_release)Confirm the version number with the user, following Semantic Versioning:
vMAJOR.MINOR.PATCH
- MAJOR: incompatible API changes
- MINOR: backward-compatible new features
- PATCH: backward-compatible bug fixes
If the user hasn't provided one, suggest an appropriate version based on the nature of the changes.
Use list_releases to retrieve existing releases:
v prefix is used)Use list_repo_pulls to get PRs merged since the last release:
state: mergedClassify each PR:
feat / feature: new featurefix / bugfix: bug fixrefactor: code refactoringperf: performance improvementdocs: documentation updatechore: dependency / build / toolchain changesbreaking: breaking change (title contains breaking or !:)As a supplement to PR titles, use compare_branches_tags to get a more detailed diff analysis:
compare_branches_tags(owner="[owner]", repo="[repo]", target="[current_branch]", base="[previous_version_tag]")
This returns:
Use this to understand the actual code changes behind each PR, especially useful when PR titles are unclear.
Generate the changelog using this template:
## [v{version}] - YYYY-MM-DD
### ⚠️ Breaking Changes
- [PR title] (#PR number) @author
### ✨ New Features
- [PR title] (#PR number) @author
- [PR title] (#PR number) @author
### 🐛 Bug Fixes
- [PR title] (#PR number) @author
### ⚡ Performance
- [PR title] (#PR number) @author
### 📖 Documentation
- [PR title] (#PR number) @author
### 🔧 Other
- [PR title] (#PR number) @author
---
**Full changelog**: [link comparing previous version...current version]
Omit sections with no changes.
Show the generated changelog to the user for confirmation. After confirmation, use create_release with these parameters:
tag_name: version number (e.g., v1.2.0)name: release title (e.g., Release v1.2.0)body: changelog generated in Step 4prerelease: set to true for pre-release versions (alpha / beta / rc)After successful creation, output the link to the Release page.
v prefix in version numbers (e.g., v1.2.0) to match common project conventionsprerelease=true so they don't affect the stable release lineZIP package — ready to use