mcpField
C
create-pr

create-pr

github.com/n8n-io开发209.2k847 次安装今天更新
代码仓库

关于 create-pr

面向 n8n 贡献者的技能,指导创建 GitHub 拉取请求,涵盖标题校验、正文撰写和安全修复审查。

主要功能

  1. 01PR 标题格式规则
  2. 02变更类型与范围指引
  3. 03PR 正文和清单指引
  4. 04安全修复信息审查

适用场景

  1. 01为 n8n 准备 GitHub PR
  2. 02按 CI 规则检查标题
  3. 03撰写 PR 说明和清单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/n8n-io/n8n --skill create-pr

安装后在 Claude Code 中输入/create-pr确认已加载。

详细介绍

创建 Pull Request

创建标题符合 n8n check-pr-title CI 验证要求的 GitHub PR。

PR 标题格式

<type>(<scope>): <summary>
类型(必填)
类型描述更新日志
feat新功能是
fix修复 Bug是
perf性能改进是
test添加或修正测试否
docs仅文档否
refactor代码变更(不涉及 Bug 修复或新功能)否
build构建系统或依赖项否
ciCI 配置否
chore常规任务、维护否
范围(可选,但建议填写)
  • API - 公共 API 变更
  • benchmark - 基准测试 CLI 变更
  • core - 核心/后端/私有 API
  • editor - 编辑器 UI 变更
  • * Node - 特定节点(例如,Slack Node、GitHub Node)
摘要规则
  • 使用祈使语气的现在时:“Add”,而不是“Added”
  • 首字母大写
  • 末尾不加句号
  • 不包含工单 ID(例如,N8N-1234)
  • 添加 (no-changelog) 后缀,以排除在更新日志之外

步骤

  1. 检查当前状态:

    git status
    git diff --stat
    git log origin/master..HEAD --oneline
    
  2. 检查是否有实现计划:在 .claude/plans/ 中查找与当前分支工单 ID 匹配的计划文件(例如,如果分支为 scdekov/PAY-1234-some-feature,则检查是否存在 .claude/plans/PAY-1234.md)。 如果存在计划文件,询问用户是否要将其作为可折叠的 <details> 部分加入 PR 描述(见下文“计划部分”)。 仅当用户明确同意时才加入计划。

  3. 如果这是安全修复,继续之前先审查所有面向公众的内容(见下文“安全修复”)。

  4. 分析变更,确定:

    • 类型:这是什么类型的变更?
    • 范围:影响哪个软件包/区域?
    • 摘要:这项变更做了什么?
  5. 如有需要,推送分支:

    git push -u origin HEAD
    
  6. 使用 gh CLI 和 .github/pull_request_template.md 中的模板创建 PR:

    gh pr create --draft --title "<type>(<scope>): <summary>" --body "$(cat <<'EOF'
    ## Summary
    
    <Describe what the PR does and how to test. Photos and videos are recommended.>
    
    ## Related Linear tickets, Github issues, and Community forum posts
    
    
    
    
    ## Review / Merge checklist
    
    - [ ] PR title and summary are descriptive. ([conventions](../blob/master/.github/pull_request_title_conventions.md))
    - [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up ticket created.
    - [ ] Tests included.
    - [ ] PR Labeled with `release/backport` (if the PR is an urgent fix that needs to be backported)
    EOF
    )"
    

PR 正文指南

参照 .github/pull_request_template.md:

摘要部分
  • 描述 PR 的作用
  • 说明如何测试这些变更
  • 对于 UI 变更,附上截图/视频
相关链接部分
  • 链接到 Linear 工单:https://linear.app/n8n/issue/[TICKET-ID]
  • 使用可自动关闭问题的关键词链接到 GitHub 问题:
    • closes #123 / fixes #123 / resolves #123
  • 如适用,链接到社区论坛帖子
检查清单

合并前应完成所有项目:

  • PR 标题符合规范
  • 文档已更新,或已创建后续工单
  • 已包含测试(Bug 修复需要回归测试,新功能需要测试覆盖)
  • 如紧急修复需要回移植,添加 release/backport 标签

示例

编辑器中的新功能
feat(editor): Add workflow performance metrics display
核心功能的 Bug 修复
fix(core): Resolve memory leak in execution engine
特定节点的变更
fix(Slack Node): Handle rate limiting in message send
破坏性变更(在冒号前添加感叹号)
feat(API)!: Remove deprecated v1 endpoints
不生成更新日志条目
refactor(core): Simplify error handling (no-changelog)
不指定范围(影响多个区域)
chore: Update dependencies to latest versions

验证

PR 标题必须符合以下模式:

^(feat|fix|perf|test|docs|refactor|build|ci|chore|revert)(\([a-zA-Z0-9 ]+( Node)?\))?!?: [A-Z].+[^.]$

主要验证规则:

  • 类型必须是允许的类型之一
  • 范围为可选项;如果填写,必须放在括号内
  • 破坏性变更的感叹号应放在冒号之前
  • 摘要必须以大写字母开头
  • 摘要末尾不得有句号

计划部分

如果在 .claude/plans/ 中找到匹配的计划文件,且用户已同意将其加入 PR 正文,则在 PR 正文末尾(检查清单之后、EOF 之前)添加一个可折叠部分:

<details>
<summary>Implementation plan</summary>



</details>

安全修复

此仓库是公开的。切勿在任何公开内容中暴露攻击途径。 描述代码的作用,而不是它防范的威胁。

内容不当示例合适示例
分支fix-sql-injection-in-webhookfix-webhook-input-validation
PR 标题fix(core): Prevent SSRFfix(core): Validate outgoing URLs
提交信息fix: prevent denial of servicefix: add payload size validation
PR 正文“攻击者可能触发 SSRF……”“验证 URL 协议和主机”
Linear 引用带有 slug 的 URL(会泄露标题)不带 slug 的 URL,或仅使用工单 ID
测试名称'should prevent SQL injection''should sanitize query parameters'

**推送安全修复前,请确认:**分支名称、提交、PR 标题、PR 正文、Linear URL、测试名称或代码注释均未暗示该漏洞。

评论

支持 Markdown