关于 github-release
指导项目完成 GitHub 公开发布前的安全检查与发布流程。适用于已配置 gh、gitleaks 和 Git 远程仓库的维护者,流程涵盖清理、版本标签及发布创建。
主要功能
- 01扫描仓库中的密钥
- 02检查并清理个人文件
- 03核验许可证、README 和忽略规则
- 04运行构建与依赖审计
- 05创建版本标签并推送
- 06创建 GitHub Release
适用场景
- 01发布前排查仓库中的敏感信息
- 02准备项目文件并验证发布条件
- 03为版本打标签并创建 GitHub 发布
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jezweb/ claude-skills --skill github-release安装后在 Claude Code 中输入/github-release确认已加载。
附带文件references/release-workflow.mdreferences/safety-checklist.md
详细介绍
GitHub 发布
清理项目并发布到 GitHub。分两个阶段:先进行安全检查,然后打标签并发布。
前提条件
- 已安装并完成身份验证的
ghCLI(gh auth status) - 已安装用于扫描机密信息的
gitleaks(brew install gitleaks或从 GitHub 下载) - 已配置远程仓库的 Git 仓库
工作流
阶段 1:清理
进行任何公开发布前,先运行这些检查。遇到阻碍项时停止。
1. 扫描机密信息(阻碍项)
gitleaks detect --no-git --source=. --verbose
如果发现机密信息:停止。删除机密信息,并将其移至环境变量中。使用 git log -S "secret_value" 检查 Git 历史记录——如果机密信息出现在历史记录中,请使用 BFG Repo-Cleaner。
如果未安装 gitleaks,请手动检查:
# Check for .env files
find . -name ".env*" -not -path "*/node_modules/*"
# Check config files for hardcoded secrets
grep -ri "api_key\|token\|secret\|password" wrangler.toml wrangler.jsonc .dev.vars 2>/dev/null
2. 移除个人文件
检查并移除不应发布的会话文件和规划文件:
SESSION.md— 会话状态planning/、screenshots/— 工作目录test-*.ts、test-*.js— 本地测试文件
删除这些文件,或将其添加到 .gitignore。
3. 验证 LICENSE
ls LICENSE LICENSE.md LICENSE.txt 2>/dev/null
如果缺少许可证:创建一个。检查仓库的可见性(gh repo view --json visibility -q '.visibility')。公开仓库使用 MIT 许可证。对于私有仓库,可以考虑使用专有许可证。
4. 验证 README
检查 README 是否存在,并包含基本章节:
grep -i "## Install\|## Usage\|## License" README.md
如果缺少章节,请在发布前补上。
5. 检查 .gitignore
确认其中包含必要的匹配规则:
grep -E "node_modules|\.env|dist/|\.dev\.vars" .gitignore
6. 构建测试(非阻碍项)
npm run build 2>&1
7. 依赖项审计(非阻碍项)
npm audit --audit-level=high
8. 创建清理提交
如果清理过程中有任何更改:
git add -A
git commit -m "chore: prepare for release"
阶段 2:发布
1. 确定版本
检查 package.json 中的当前版本,或询问用户。确保版本以 v 为前缀。
2. 检查标签是否已存在
git tag -l "v[version]"
如果标签已存在,询问用户是要删除并重新创建,还是使用其他版本。
3. 显示发布内容
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
if [ -z "$LAST_TAG" ]; then
git log --oneline --no-merges HEAD | head -20
else
git log --oneline --no-merges ${LAST_TAG}..HEAD
fi
4. 创建标签并推送
git tag -a v[version] -m "Release v[version]"
git push origin $(git branch --show-current)
git push origin --tags
5. 创建 GitHub 发布
gh release create v[version] \
--title "Release v[version]" \
--notes "[auto-generated from commits]"
对于预发布版本,添加 --prerelease。对于草稿,添加 --draft。
6. 汇报
向用户展示:
- 发布 URL
- 后续步骤(如适用,发布到 npm;发布公告)
参考文件
| 适用情况 | 阅读 |
|---|---|
| 详细的安全检查 | references/safety-checklist.md |
| 发布流程 | references/release-workflow.md |
评论
支持 Markdown