diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..7b1eb508 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,28 @@ +# ⚠️ 提交说明 / PR Notice +> [!IMPORTANT] +> +> - 请提供**人工撰写**的简洁摘要,避免直接粘贴未经整理的 AI 输出。 + +## 📝 变更描述 / Description +(简述:做了什么?为什么这样改能生效?请基于你对代码逻辑的理解来写,避免粘贴未经整理的内容) + +## 🚀 变更类型 / Type of change +- [ ] 🐛 Bug 修复 (Bug fix) - *请关联对应 Issue,避免将设计取舍、理解偏差或预期不一致直接归类为 bug* +- [ ] ✨ 新功能 (New feature) - *重大特性建议先通过 Issue 沟通* +- [ ] ⚡ 性能优化 / 重构 (Refactor) +- [ ] 📝 文档更新 (Documentation) + +## 🔗 关联任务 / Related Issue +- Closes # (如有) + +## ✅ 提交前检查项 / Checklist +- [ ] **人工确认:** 我已亲自整理并撰写此描述,没有直接粘贴未经处理的 AI 输出。 +- [ ] **非重复提交:** 我已搜索现有的 [Issues](https://github.com/QuantumNous/new-api/issues) 与 [PRs](https://github.com/QuantumNous/new-api/pulls),确认不是重复提交。 +- [ ] **Bug fix 说明:** 若此 PR 标记为 `Bug fix`,我已提交或关联对应 Issue,且不会将设计取舍、预期不一致或理解偏差直接归类为 bug。 +- [ ] **变更理解:** 我已理解这些更改的工作原理及可能影响。 +- [ ] **范围聚焦:** 本 PR 未包含任何与当前任务无关的代码改动。 +- [ ] **本地验证:** 已在本地运行并通过测试或手动验证,维护者可以据此复核结果。 +- [ ] **安全合规:** 代码中无敏感凭据,且符合项目代码规范。 + +## 📸 运行证明 / Proof of Work +(请在此粘贴截图、关键日志或测试报告,以证明变更生效) diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md deleted file mode 100644 index 11b07ddf..00000000 --- a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +++ /dev/null @@ -1,29 +0,0 @@ -# ⚠️ 提交警告 / PR Warning -> **请注意:** 请提供**人工撰写**的简洁摘要。包含大量 AI 灌水内容、逻辑混乱或无视模版的 PR **可能会被无视或直接关闭**。 - ---- - -## 💡 沟通提示 / Pre-submission -> **重大功能变更?** 请先提交 Issue 交流,避免无效劳动。 - -## 📝 变更描述 / Description -(简述:做了什么?为什么这样改能生效?你必须理解代码逻辑,禁止粘贴 AI 废话) - -## 🚀 变更类型 / Type of change -- [ ] 🐛 Bug 修复 (Bug fix) -- [ ] ✨ 新功能 (New feature) - *重大特性建议先 Issue 沟通* -- [ ] ⚡ 性能优化 / 重构 (Refactor) -- [ ] 📝 文档更新 (Documentation) - -## 🔗 关联任务 / Related Issue -- Closes # (如有) - -## ✅ 提交前检查项 / Checklist -- [ ] **人工确认:** 我已亲自撰写此描述,去除了 AI 原始输出的冗余。 -- [ ] **深度理解:** 我已**完全理解**这些更改的工作原理及潜在影响。 -- [ ] **范围聚焦:** 本 PR 未包含任何与当前任务无关的代码改动。 -- [ ] **本地验证:** 已在本地运行并通过了测试或手动验证。 -- [ ] **安全合规:** 代码中无敏感凭据,且符合项目代码规范。 - -## 📸 运行证明 / Proof of Work -(请在此粘贴截图、关键日志或测试报告,以证明变更生效) \ No newline at end of file diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 00000000..2dcda35e --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,33 @@ +name: PR Check + +permissions: + contents: read + issues: read + pull-requests: read + +on: + pull_request_target: + types: [opened, reopened] + +jobs: + pr-quality: + runs-on: ubuntu-latest + steps: + - uses: peakoss/anti-slop@v0.2.1 + with: + max-failures: 4 + require-description: true + + # require-linked-issue: false + blocked-terms: | + 🤖 Generated with Claude Code + + require-pr-template: true + strict-pr-template-sections: "✅ 提交前检查项 / Checklist" + + detect-spam-usernames: true + min-account-age: 30 + + failure-add-pr-labels: "pr-check-failed" + failure-pr-message: "感谢您的提交。由于该 PR 未遵循我们的贡献模板,且被识别为缺乏人工参与的纯 AI 生成内容 (AI Slop),我们将先予以关闭。我们更欢迎经过人工审核、验证并带有个人思考的贡献。如果您认为这其中存在误解,请回复告知。/ Thank you for your submission. This PR has been closed because it does not follow our contribution template and has been identified as purely AI-generated content (AI Slop) without meaningful human involvement. We prioritize contributions that are human-verified and reflect individual effort. If you believe this is a mistake, please let us know by replying to this comment." + close-pr: true