release-please
GitHub指导用户在仓库中配置 release-please,实现基于约定式提交的自动化版本管理与发布。涵盖 GitHub Actions 工作流创建、配置文件生成、单体/多包仓库设置及现有仓库引导,支持 Node、Python、Go 等语言。
Trigger Scenarios
Install
npx skills add NeverSight/learn-skills.dev --skill release-please -g -y
SKILL.md
Frontmatter
{
"name": "release-please",
"description": "Set up release-please for automated releases in a repository. Use this skill when users want to add release-please to their project, configure GitHub Actions for automated releases, set up conventional commit workflows, create release-please config files, or bootstrap release-please in a new or existing repository."
}
Setting Up Release-Please
This skill guides you through setting up release-please in a repository.
Before You Start
Ask the user (if not clear from context):
- What language/framework? (determines
release-type) - Single package or monorepo?
- Current version of the package(s)?
Setup Steps
1. Create GitHub Actions Workflow
Create .github/workflows/release-please.yml:
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
with:
release-type: <type> # See references/release-types.md
If the user needs CI to run on release PRs (common), they need a PAT:
with:
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
2. Create Config Files (for advanced setups)
For monorepos or custom config, create manifest files instead of using release-type input.
release-please-config.json:
{
"packages": {
".": {
"release-type": "<type>"
}
}
}
.release-please-manifest.json:
{
".": "<current-version>"
}
Then update the workflow to omit release-type:
- uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
3. Bootstrap Existing Repository
For repos with existing releases, set the current version in .release-please-manifest.json to match the latest release tag.
If there's extensive commit history, add bootstrap-sha to config to limit changelog scope:
{
"bootstrap-sha": "<commit-sha-before-first-desired-commit>",
"packages": { ... }
}
Common Setup Patterns
Node.js Package
release-type: node- Updates
package.jsonandCHANGELOG.md
Python Package
release-type: python- Updates
pyproject.toml/setup.pyandCHANGELOG.md
Go Module
release-type: go- Updates
CHANGELOG.mdonly (version from tags)
Monorepo
- Use manifest config with multiple packages
- Consider
node-workspaceorcargo-workspaceplugins - See
references/manifest-config.md
Post-Setup Checklist
Tell the user:
- Commit and push the new files
- Start using conventional commits:
feat:,fix:,feat!: - Use squash-merge for PRs (cleaner changelogs)
- Release-please will create a Release PR after releasable commits
- Merge the Release PR to create the GitHub release
Reference Files
Read these for detailed options:
references/release-types.md- All supported languagesreferences/github-actions.md- Action inputs, outputs, examplesreferences/manifest-config.md- Full config options, plugins, monorepos
Version History
- e0220ca Current 2026-07-05 22:10


