mcpField
G
github-release

github-release

github.com/jezweb开发1.1k1.3k 次安装3 周前更新
代码仓库

关于 github-release

指导项目完成 GitHub 公开发布前的安全检查与发布流程。适用于已配置 gh、gitleaks 和 Git 远程仓库的维护者,流程涵盖清理、版本标签及发布创建。

主要功能

  1. 01扫描仓库中的密钥
  2. 02检查并清理个人文件
  3. 03核验许可证、README 和忽略规则
  4. 04运行构建与依赖审计
  5. 05创建版本标签并推送
  6. 06创建 GitHub Release

适用场景

  1. 01发布前排查仓库中的敏感信息
  2. 02准备项目文件并验证发布条件
  3. 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。分两个阶段:先进行安全检查,然后打标签并发布。

前提条件

  • 已安装并完成身份验证的 gh CLI(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