用途
本技能用于批量更新项目条目(GitHub Project 中的 item)的字段值,支持状态变更、优先级调整、尺寸设置等场景。可通过查询过滤条件或直接指定条目进行筛选,对符合条件的目标一次性应用新值。
主要能力
- 按字段更新项目条目的值,覆盖 SINGLE_SELECT、TEXT、NUMBER、DATE 字段类型。
- 支持三种目标指定方式:查询过滤(如 status:Todo、label:bug、assignee:@me)、条目编号直接指定、全部条目。
- 更新字段可为 Status、Priority、Size 或自定义字段。
- 批量更新前会列出将受影响的条目及旧值到新值的变化,并在用户确认后执行。
使用方式
- 确认更新对象与更新内容:明确目标指定方法、要更新的字段、新的值。
- 获取字段元数据:使用 gh project view 获取项目 ID,使用 gh project field-list 获取字段 ID 与选项 ID,并借助 jq 解析出目标值与对应选项 ID。
- 检索目标条目:使用 gh project item-list 拉取条目列表,在支持 --query 参数时优先使用查询过滤。
- 向用户确认:列出将更新的条目清单及各字段旧值到新值的变化,请求执行确认。
- 执行更新:对每个条目调用 gh project item-edit,并按字段类型选用对应参数:SINGLE_SELECT 使用 --single-select-option-id,TEXT 使用 --text,NUMBER 使用 --number,DATE 使用 --date(YYYY-MM-DD 格式)。多字段更新时按字段分别执行 item-edit。
- 报告结果:展示已更新条目列表,包含编号、标题、字段、旧值、新值。
适用场景
需要在 GitHub Project 中批量维护条目字段时使用,例如将若干条目的状态统一改为 In Progress、批量调整优先级或设置尺寸。
前置条件
- 目标 GitHub Project 中已存在条目。
- 已安装 gh CLI 并完成认证(需具备 project 作用域)。
限制与注意事项
- 批量更新前必须取得用户确认。
- 若选项值不存在于项目字段定义中,应报告错误。
- 需注意 GitHub API 速率限制,大量更新时应调整批量大小。
- 需要网络访问,主要通过 API 执行;相关命令需在命令级别禁用 sandbox 才能运行,无法解除网络阻断的环境不具备执行条件。
验证
在更新步骤完成后,可通过 gh project item-list 再次拉取条目列表,确认目标条目的字段值已变为新值。