ns-gitlab-board-sync
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGitLab Board Sync
GitLab Board 同步
Mirror local SDD planning/execution state onto existing GitLab issues. Does not create issues.
将本地SDD规划/执行状态镜像到现有GitLab issues中。不支持创建新issues。
Prerequisites
前置条件
- GitLab MCP available — follow for all tool calls
mcp-gitlab-usage - If multiple GitLab MCP servers: ask human which to use
- validated
{product_root}/docs/context/gitlab-sync-config.md - For post-planning batch: exists
gitlab-issue-feature-map.md
- 需具备可用的GitLab MCP —— 所有工具调用请遵循规范
mcp-gitlab-usage - 若存在多个GitLab MCP服务器:询问相关人员使用哪一个
- 已验证配置文件
{product_root}/docs/context/gitlab-sync-config.md - 规划后批量同步场景:需存在文件
gitlab-issue-feature-map.md
Configuration
配置说明
Read for expected fields:
references/gitlab-sync-config.template.md- ,
project_id,milestone_idassignee_default - ,
status_backlog,status_in_progress,status_donestatus_blocked - ,
rf_label_format,base_branch,work_branchmr_target_branch
Discover unknown status labels via — confirm with human.
list_project_labels请阅读了解所需配置字段:
references/gitlab-sync-config.template.md- 、
project_id、milestone_idassignee_default - 、
status_backlog、status_in_progress、status_donestatus_blocked - 、
rf_label_format、base_branch、work_branchmr_target_branch
可通过查询未知状态标签——需与相关人员确认。
list_project_labelsFlow C — Pre-implementation read
流程C —— 预实施读取
When task lists GitLab issue IIDs:
- for description + recent comments
read_issue - Non-blocking if inaccessible — log warning, continue
- Do not mutate issue in this flow
当任务列表包含GitLab issue IID时:
- 调用获取描述及最新评论
read_issue - 若无法访问则不阻塞流程——记录警告并继续执行
- 此流程中请勿修改issue
Flow A — Post-planning batch
流程A —— 规划后批量同步
Per issue in map (excluding ):
exclude_issues- Validate milestone (project + group)
- with
update_issuemilestone_id - One —
set_issue_labels+remove_labelsatomically (RF, Status, Equipe)add_labels assign_issue- from linked task header (seconds) only if
set_issue_estimateis empty — never overwrite; skip values < 60time_stats.time_estimate
针对映射文件中的每个issue(排除列表中的项):
exclude_issues- 验证里程碑(项目及组级别)
- 调用设置
update_issuemilestone_id - 单次调用原子操作——同时执行
set_issue_labels和remove_labels(RF标签、状态标签、团队标签)add_labels - 调用分配经办人
assign_issue - 仅当为空时,从关联任务标题中获取数据调用
time_stats.time_estimate(单位:秒)——绝不覆盖已有值;跳过小于60秒的数值set_issue_estimate
Flow B — Per-task execution sync
流程B —— 单任务执行同步
Task start (before coding)
任务启动(编码前)
remove: status_backlog
add: status_in_progressRecord / when coding starts (for wall-clock — see ).
START_TIMESTART_EPOCHadd_issue_spent_time../ns-execution-gitlab-issue/references/time-tracking.mdremove: status_backlog
add: status_in_progress编码开始时记录 / (用于计算实际耗时,调用——详见)。
START_TIMESTART_EPOCHadd_issue_spent_time../ns-execution-gitlab-issue/references/time-tracking.mdTask complete (after validation)
任务完成(验证后)
Only if already :
status_in_progressremove: status_in_progress
add: status_done, RF: NNN
add_issue_spent_time
add_issue_comment (internal=true)Never backlog → done in one step.
仅当issue当前状态为时执行:
status_in_progressremove: status_in_progress
add: status_done, RF: NNN
add_issue_spent_time
add_issue_comment (internal=true)禁止直接从待办状态(backlog)一步切换至完成状态(done)。
Anti-patterns
反模式
| Wrong | Right |
|---|---|
| |
| Two label calls for one transition | Single atomic |
Manual | |
| |
| Skip — preserve existing |
Plan/ | Epoch delta only ( |
| Public comment for internal notes | |
| 错误做法 | 正确做法 |
|---|---|
在 | 调用 |
| 单次状态转换调用两次标签接口 | 调用单次原子操作 |
手动添加 | 在 |
使用 | 调用 |
已有预估时间时仍调用 | 跳过——保留已有值 |
将规划/ | 仅使用时间戳差值(详见 |
| 公开评论用于内部记录 | 设置 |
References
参考资料
| File | When |
|---|---|
| Bootstrap config |
| Tool schemas and gates |
| 文件路径 | 使用场景 |
|---|---|
| 初始化配置 |
| 工具 schema 及权限控制 |