GitHub Projects + Issues + PR 管理制度正式版 GitHub Projects + Issues + PR 管理制度正式版 总则 本制度适用于公司所有以 GitHub 为研发协作平台的项目、仓库和研发团队,用于规范需求管理、任务编排、代码评审、合并发布与进度追踪。GitHub Projects 用于承载项目视图与状态流转,Issues 用于承载任务与缺陷,PR 用于承载代码变更与交付审查。 本制度的目标是建立“需求可追踪、任务可分配、代码可审查、状态可回溯、交付可验收”的研发闭环。GitHub Projects 支持用表格、看板和路线图视图管理 Issues 与 PR,并可通过自定义字段、自动化和模板适配团队流程。 适用范围 本制度适用于产品需求、研发任务、缺陷修复、技术债务、版本发布、紧急修复等所有需要进入研发协作流程的事项。所有进入研发执行的工作项,原则上必须以 Issue 形式创建,并绑定到对应 Project 中进行管理。 以下场景也纳入本制度:跨团队协作、外包协作、线上事故处理、发布窗口管理、架构治理、CI/CD 改进等。对于仅需讨论不需执行的内容,应使用 Discussion 或内部文档,不得占用 Issue 队列。 角色定义 项目负责人负责需求排序、版本目标、资源协调和最终验收。技术负责人负责技术方案、任务拆分、代码质量和发布决策。开发人员负责实现、联调、测试和 PR 提交。Reviewer负责代码审查和合并把关。项目管理员负责 Projects 配置、字段维护、模板、自动化和权限治理。 每个 Issue 必须指定一个主负责人;每个 PR 必须指定至少一个主要开发者和一个 Reviewer。若任务涉及多团队协作,项目负责人应明确接口人,避免出现无人负责或多头负责。 组织原则 所有研发工作以 GitHub 内数据为唯一工作事实来源,禁止在聊天软件、口头沟通或私有备忘中替代正式任务记录。项目状态、负责人、优先级、截止时间和验收结果,必须统一记录在 Project 或关联的 Issue/PR 中。 项目管理应遵循“小粒度、可验证、可回退、可审计”的原则。GitHub Projects 可以通过筛选、分组和自定义字段管理 backlog、迭代和路线图,因此应优先将任务拆分到可在一个迭代内完成的粒度。 Project 规范 每个团队至少维护一个主 Project,作为团队总看板;如有多个产品线,可按产品或版本拆分为多个 Project。Project 必须至少包含以下视图:Backlog 视图、迭代视图、执行看板、发布视图。 Project 必填字段如下: 字段 说明 规则 Status 工作状态 必须包含 Backlog、Ready、In Progress、Review、Blocked、Done Priority 优先级 必须分级,建议 P0-P3 Iteration 迭代归属 必须绑定当前迭代或版本 Owner 主负责人 必填且唯一 Type 类型 Feature、Bug、Tech Debt、Ops 等 Due date 截止时间 有明确交付承诺时填写 Project 中的字段设计应保持稳定,避免频繁改名或增删导致历史数据失效。GitHub Projects 支持自定义字段和自动化,因此字段应尽量少而精,保证整个团队都能一致使用。 Issue 规范 Issue 是任务单,不是聊天记录,也不是临时想法记录。每个 Issue 必须只描述一个清晰目标,具备背景、目标、范围、验收标准、依赖关系和负责人。 Issue 标题建议采用统一前缀: feat: 功能说明 fix: 缺陷说明 refactor: 重构说明 chore: 运维或杂项 tech: 技术治理 Issue 正文必须包含以下内容: 背景说明。 目标说明。 影响范围。 验收标准。 风险与依赖。 负责人。 截止时间,如有。 Issue 创建后应尽快补充标签、优先级和关联里程碑或迭代,保证进入 Projects 后可直接进入排期。 Issue 生命周期 Issue 默认生命周期如下:Backlog -> Ready -> In Progress -> Review -> Done。如存在阻塞,则进入 Blocked 状态,并标注阻塞原因、依赖对象和预计恢复时间。 状态定义如下: Backlog:已收集但未排期。 Ready:已确认可执行,等待开发。 In Progress:已开始实现。 Review:已提交 PR,等待审核。 Blocked:受外部因素阻塞。 Done:已验收完成并关闭。 除项目负责人或技术负责人批准外,不得跳过 Ready 直接进入 In Progress。Blocked 状态超过两个工作日未解除的,必须在例会上同步原因和处理计划。 PR 规范 PR 是代码变更的交付单,也是代码审查和发布控制的核心对象。每个 PR 必须由分支提交,不得直接向主分支提交代码;PR 标题和描述必须说明解决了什么问题、如何验证、是否有风险。 PR 必填内容如下: 关联 Issue 编号。 变更摘要。 测试结果。 风险说明。 回滚方案。 截图、日志或示例,如适用。 PR 命名建议与 Issue 保持一致,例如 feat: add retry for payment page。对于较大的功能,应拆分为多个逻辑清晰的 PR,避免一个 PR 混合大量无关改动。 分支规范 建议采用以下分支模型: main:稳定发布分支。 dev:日常集成分支。 feature/*:功能开发分支。 bugfix/*:缺陷修复分支。 hotfix/*:紧急修复分支。 开发分支必须从指定基线分支拉出,不得直接在 main 上开发。所有代码修改必须通过 PR 合并进入目标分支,任何绕过审查的直接合并均视为违规。 紧急修复允许缩短评审链路,但不得取消 PR、不得取消最小验证、不得取消关联记录。紧急修复完成后必须补齐变更说明、回顾和必要的测试记录。 评审规范 PR 至少需要一名 Reviewer 审核,高风险模块、核心链路、数据库变更、权限变更等场景建议双人审核。Review 重点检查正确性、可维护性、性能、回归风险和测试覆盖,不以“看过了”作为审核结论。 Review 规则如下: 审核意见应具体到文件、函数或行为。 存在阻断性问题时,必须明确标记为需要修改后再合并。 Reviewer 不得长期无响应,超过约定时限需自动升级提醒。 对争议性修改,应先同步讨论再决定是否合并。 自动化规范 GitHub Projects 支持自动化状态更新、字段更新和项目项管理,团队应优先通过自动化减少人工维护成本。 建议配置以下自动化: Issue 创建后自动加入 Backlog。 Issue 打上 ready 标签后自动转入 Ready。 PR 创建后自动切换 Review。 PR 合并后关联 Issue 自动关闭。 Issue 关闭后自动标记 Done。 blocked 标签自动切换 Blocked。 长时间无更新的任务自动提醒。 如团队规模较大,可进一步使用 GitHub Actions 执行测试、Lint、通知和状态同步。自动化规则应优先服务于状态流转,而不是增加额外的管理负担。 权限与安全 GitHub 作为任务编排系统时,必须同时考虑仓库权限、Project 可见性、组织成员分组和审计能力。企业级 GitHub 支持组织层权限、审计和协作能力,但仍应坚持最小权限原则。 安全要求如下: 仅授予完成工作所需的最低权限。 敏感仓库与普通仓库分离。 开启 2FA、SSO 和必要的审计日志。 禁止在 Issue/PR 中提交密钥、密码、令牌和敏感客户信息。 定期复核成员权限和外部协作者名单。 若项目涉及高敏感数据,需额外规定代码仓库、Issue 内容、讨论区和附件的保密级别,必要时采用私有仓库或更严格的访问控制。 日常运行 团队应建立固定节奏来运行这套制度: 每日:检查本日阻塞项、Review 队列和高优先级任务。 每周:梳理 backlog、确认迭代容量、调整优先级。 每迭代:计划、评审、回顾、问题复盘。 每月:复查模板、字段、自动化和权限。 建议关注的核心指标包括:任务平均交付周期、Review 等待时间、Blocked 数量、迭代完成率、PR 合并周期。GitHub Projects 可用视图和图表辅助这些统计与观察。 违规处理 以下行为视为流程违规: 直接向主分支提交代码。 不关联 Issue 即发起 PR。 Issue 缺少验收标准就进入开发。 在聊天中口头安排工作但不入 Project。 在 Issue/PR 中记录敏感信息。 长期阻塞不更新状态。 对于首次轻微违规,由项目负责人提醒并补正;重复违规则由技术负责人或项目负责人进行流程纠正,必要时暂停合并权限或提升审批级别。 附则 本制度由研发负责人和项目管理负责人共同维护,建议每季度评审一次,结合团队规模、项目复杂度和工具能力进行修订。GitHub Projects、Issues 和 PR 本身强调灵活性,因此制度应明确底线规则,但保留对具体工作法的适配空间。