About create-release
create-release is a skill for preparing and publishing Gitee releases from merged pull requests. It gathers release history and changes, drafts a categorized changelog, and creates the release after confirmation.
Key features
- 01Review existing release history
- 02Collect merged pull requests
- 03Analyze branch or tag differences
- 04Categorize changes into a changelog
- 05Create a confirmed Gitee release
Use cases
- 01Preparing a release from merged PRs
- 02Checking version conventions and conflicts
- 03Drafting release notes with breaking changes
MCP support
It uses Gitee MCP Server tools to list releases and pull requests and create releases. The README recommends invoking them through mcporter when it is available.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ oschina/ gitee-agent-skills --skill create-releaseAfter installing, type/create-releasein Claude Code to confirm it loaded.
Details
From the project READMENote: 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.
Create Release via Gitee MCP
Auto-generate a changelog from merged PR history and publish a well-structured release on Gitee.
Prerequisites
- Gitee MCP Server configured (tools:
list_releases,list_repo_pulls,create_release) - User must provide: repository owner, repository name, version number
- Optional: previous version number (to determine the changelog range)
Steps
Step 1: Confirm the Version Number
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.
Step 2: Review Release History
Use list_releases to retrieve existing releases:
- Confirm the previous version number
- Understand the version naming convention (e.g., whether a
vprefix is used) - Avoid version number conflicts
Step 3: Collect PR Changes
Use list_repo_pulls to get PRs merged since the last release:
state:merged- Sort by merge time, filtering for PRs after the last release
Classify each PR:
feat/feature: new featurefix/bugfix: bug fixrefactor: code refactoringperf: performance improvementdocs: documentation updatechore: dependency / build / toolchain changesbreaking: breaking change (title containsbreakingor!:)
Step 4: Analyze Code Changes
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:
- Files changed (added, modified, deleted)
- Commit history between versions
- Code statistics (additions, deletions)
Use this to understand the actual code changes behind each PR, especially useful when PR titles are unclear.
Step 5: Generate Changelog
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.
Step 6: Confirm and Create the Release
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 totruefor pre-release versions (alpha / beta / rc)
After successful creation, output the link to the Release page.
Notes
- Use the
vprefix in version numbers (e.g.,v1.2.0) to match common project conventions - Breaking changes must be prominently highlighted to warn users upgrading
- If PR titles are not semantic, lightly rephrase them in the changelog while preserving the original intent
- Pre-release versions (alpha / beta / rc) should be marked
prerelease=trueso they don't affect the stable release line