感谢你想为 Extraordinary.AutoUpdate 做贡献。为确保协作高效、可维护,请在提交 Issue 或 Pull Request 前阅读本文件并遵循其中规则。
- 报告 Issue
- 分支与工作流
- 提交信息规范
- 代码风格与格式化
- 本地开发与运行
- 单元测试 与 CI
- Pull Request 要求
- 代码审查 与 合并
- 安全与发布注意事项
- 联系方式
请在创建 Issue 前:
- 搜索现有 Issue,避免重复提交。
- 描述复现步骤、预期行为与实际行为。
- 提供环境信息(操作系统、.NET SDK 版本、日志摘录、截图或网络请求样例)。
- 如涉及 API,附上请求/响应示例。
良好的 Issue 模板示例:
- 标题:简短且描述性
- 描述:重现步骤、期望、实际、日志、环境
- 主分支:
master(始终为可发布状态)。 - 功能分支:
feature/<描述>(新增功能);修复分支:fix/<描述>。 - 发布分支(可选):
release/*。 - 在开始工作前,请从
master拉取最新代码并基于master创建分支。
请使用语义化且简洁的提交信息:
格式:
常用 type:
feat:新特性fix:修复 bugdocs:文档变更chore:构建/工具变更refactor:重构test:测试相关
- 目标平台:.NET 10,语言:C# 14。
- 请遵循仓库根目录的
.editorconfig。提交前运行格式化:- Visual Studio: 使用 Format Document(或快捷键)。
- CLI:
dotnet format
- 命名惯例:类型与方法使用 PascalCase,局部变量与参数使用 camelCase。
- 避免未使用的 using、保持每个方法职责单一、控制方法长度。
- 使用 Visual Studio 或
dotnetCLI 进行开发。 - 运行服务端:
- 在项目根目录:
dotnet run --project Extraordinary.WebApi - 或在 Visual Studio 中将
Extraordinary.WebApi设为启动项目并运行。
- 在项目根目录:
- 确保
wwwroot/packages存在且可写(上传功能依赖)。
- 请为新增功能或修复添加单元测试,放在
tests/(或现有测试项目)中。 - CI(如 GitHub Actions)至少应包含:
dotnet builddotnet test- 代码格式检查(
dotnet format --verify-no-changes)
- 所有 PR 必须通过 CI 检查后才能合并。
PR 描述请包含:
- 变更概述
- 关联 Issue(若有)
- 变更的验证步骤(如何本地复现/测试)
- 是否有破坏性变更或需迁移
- 测试覆盖情况
建议在 .github/PULL_REQUEST_TEMPLATE.md 提供模板。
- PR 需至少一名审阅者通过。
- 审阅重点:功能正确性、错误处理、安全(文件上传必须防止路径遍历)、边界条件、测试覆盖。
- 小而频繁的提交便于审查;合并前请 squash 或按团队约定整理提交。
- 上传接口仅允许
.zip、.exe、.msi,并进行 MD5 校验;在生产环境建议添加鉴权与防病毒扫描。 - 发布时请在 CI 中执行安全扫描与依赖漏洞检查。
- 推荐使用
IHttpClientFactory注入 HttpClient,统一控制超时与重试策略。
遇到问题请通过 Issue 提交,或按仓库说明联系维护者。贡献者应遵守友善礼仪与代码行为准则。
感谢你的贡献与审阅。若需要,我可以为你生成 PR 模板或把此文件写入仓库并创建一个 commit(可选)。```