graph TD %% 定义样式 classDef reporter fill:#fce4ec,stroke:#c2185b,stroke-width:2px,rx:5,ry:5; classDef dev fill:#e3f2fd,stroke:#1565c0,stroke-width:2px,rx:5,ry:5; classDef lead fill:#fff9c4,stroke:#fbc02d,stroke-width:2px,rx:5,ry:5; classDef pm fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,rx:5,ry:5; classDef note fill:#ffffff,stroke:#333,stroke-dasharray: 5 5; %% ---------------- 角色:提单人 ---------------- subgraph Reporter ["📝 提单人 (QA/User/PM)"] direction TB Start((开始)) --> Found[1. 发现Bug或提出需求] Found --> OpenIssue[2. 在Gitea创建工单
Create Issue #101] class Start,Found,OpenIssue reporter; end %% ---------------- 角色:程序员 ---------------- subgraph Developer ["👨‍💻 程序员 (Developer)"] direction TB PickIssue[3. 认领/被指派工单] --> CreateBranch[4. 创建关联分支
git checkout -b fix/101-crash] CreateBranch --> Coding[5. 编写代码 & 本地提交] Coding --> Push[6. 推送分支] Push --> CreatePR[7. 发起合并请求
描述中写: Fixes #101] FixCode[7b. 根据意见修改] --> Coding class PickIssue,CreateBranch,Coding,Push,CreatePR,FixCode dev; end %% ---------------- 角色:主要程序员 ---------------- subgraph Lead ["🔎 主要程序员 (Tech Lead)"] direction TB ReceivePR[8. 收到 MR 通知] --> Review[9. 代码审查 Code Review] Review --> Decision{10. 审查结果?} Decision -- ❌ 需修改 --> RequestChange[11. 驳回并评论
Request Changes] Decision -- ✅ 通过 --> Approve[12. 批准合并
Approve] class ReceivePR,Review,Decision,RequestChange,Approve lead; end %% ---------------- 角色:项目负责人 ---------------- subgraph PM ["🚀 项目负责人 (Project Manager)"] direction TB CheckStatus[13. 确认批准状态] --> Merge[14. 执行合并
Merge to Main] Merge --> AutoClose[15. 系统自动关闭工单
Issue #101 Closed] AutoClose --> Deploy((16. 发布上线)) class CheckStatus,Merge,AutoClose,Deploy pm; end %% ---------------- 跨角色交互连线 ---------------- OpenIssue --> PickIssue CreatePR --> ReceivePR RequestChange --> FixCode Approve --> CheckStatus %% ---------------- 关键说明 ---------------- Note1["关联分支名规范:
type/issue-id-name"] --- CreateBranch Note2["Magic Word:
在MR描述中写 'Fixes #ID'
可实现合并后自动关单"] --- CreatePR class Note1,Note2 note;