project-update-items

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

project-update-items

project-update-items

プロジェクトアイテムのフィールド値を一括で更新します。ステータス変更、優先度変更、サイズ設定などに対応します。
批量更新GitHub Project项目项的字段值。支持状态变更、优先级变更、尺寸设置等操作。

前提条件

前提条件

  • 対象の GitHub Project にアイテムが存在すること
  • gh
    CLI がインストールされ、認証済みであること(
    project
    スコープ付き)
  • 目标GitHub Project中存在项目项
  • 已安装并完成
    gh
    CLI认证(需带有
    project
    权限范围)

フロー

流程

Step 1: 更新対象と更新内容を確認する

Step 1: 确认更新目标与更新内容

ユーザーから以下を確認:
  • 対象の指定方法:
    • クエリフィルタ(例:
      status:Todo
      ,
      label:bug
      ,
      assignee:@me
    • アイテム番号の直接指定
    • 全件
  • 更新するフィールド: Status, Priority, Size, またはカスタムフィールド
  • 新しい値: 例: Status → "In Progress", Priority → "High"
向用户确认以下信息:
  • 目标项目项的指定方式:
    • 查询过滤器(示例:
      status:Todo
      ,
      label:bug
      ,
      assignee:@me
    • 直接指定项目项编号
    • 全部项目项
  • 待更新字段: Status、Priority、Size或自定义字段
  • 新值: 示例: Status → "In Progress", Priority → "High"

Step 2: フィールドメタデータを取得する

Step 2: 获取字段元数据

bash
undefined
bash
undefined

プロジェクト ID を取得

获取项目ID

gh project view <number> --owner <owner> --format json -q '.id'
gh project view <number> --owner <owner> --format json -q '.id'

フィールド ID とオプション ID を取得

获取字段ID与选项ID

gh project field-list <number> --owner <owner> --format json

`jq` で対象フィールドの ID と、更新先の値に対応するオプション ID を解決する。
gh project field-list <number> --owner <owner> --format json

使用`jq`解析目标字段的ID,以及与更新目标值对应的选项ID。

Step 3: 対象アイテムを検索する

Step 3: 搜索目标项目项

bash
gh project item-list <number> \
  --owner <owner> \
  --format json \
  --limit 999
ユーザー指定の条件でアイテムをフィルタする。
--query
パラメータが使える場合はそちらを優先:
bash
gh project item-list <number> \
  --owner <owner> \
  --query "status:Todo" \
  --format json
bash
gh project item-list <number> \
  --owner <owner> \
  --format json \
  --limit 999
根据用户指定的条件过滤项目项。优先使用
--query
参数:
bash
gh project item-list <number> \
  --owner <owner> \
  --query "status:Todo" \
  --format json

Step 4: ユーザーに更新内容を確認する

Step 4: 向用户确认更新内容

更新対象と変更内容を一覧表示:
以下の N 件のアイテムを更新します:
- #1: ソーシャルログイン — Status: Todo → In Progress
- #2: パスワードリセット — Status: Todo → In Progress

実行しますか?
列出更新目标与变更内容:
将更新以下N个项目项:
- #1: 社交登录 — Status: Todo → In Progress
- #2: 密码重置 — Status: Todo → In Progress

是否执行?

Step 5: フィールド値を一括更新する

Step 5: 批量更新字段值

各アイテムに対してフィールド値を更新:
bash
gh project item-edit \
  --id <item-id> \
  --field-id <field-id> \
  --project-id <project-id> \
  --single-select-option-id <option-id>
フィールドタイプに応じて適切なフラグを使用:
  • SINGLE_SELECT:
    --single-select-option-id
  • TEXT:
    --text
  • NUMBER:
    --number
  • DATE:
    --date
    (YYYY-MM-DD 形式)
对每个项目项执行字段值更新:
bash
gh project item-edit \
  --id <item-id> \
  --field-id <field-id> \
  --project-id <project-id> \
  --single-select-option-id <option-id>
根据字段类型使用对应的参数:
  • SINGLE_SELECT:
    --single-select-option-id
  • TEXT:
    --text
  • NUMBER:
    --number
  • DATE:
    --date
    (格式为YYYY-MM-DD)

Step 6: 更新結果を報告する

Step 6: 报告更新结果

更新されたアイテムの一覧を表示:
#タイトルフィールド旧値新値
1ソーシャルログインStatusTodoIn Progress
2パスワードリセットStatusTodoIn Progress
显示已更新的项目项列表:
#标题字段旧值新值
1社交登录StatusTodoIn Progress
2密码重置StatusTodoIn Progress

注意事項

注意事项

  • バッチ更新前に必ずユーザーの確認を得る
  • オプション値がプロジェクトのフィールド定義に存在しない場合はエラーを報告する
  • 複数フィールドを同時に更新する場合は、フィールドごとに
    item-edit
    を実行する
  • GitHub API レート制限に注意し、大量更新時はバッチサイズを調整する
  • sandbox 環境では実行できない(後述の「sandbox 環境での実行」節を参照)
  • 批量更新前必须获得用户确认
  • 若选项值不存在于项目字段定义中,需报错
  • 同时更新多个字段时,需为每个字段单独执行
    item-edit
  • 注意GitHub API的速率限制,大量更新时需调整批量大小
  • 无法在sandbox环境中执行(请参考后文「sandbox环境执行说明」章节)

検証

验证

Step 6 完了後、以下で更新内容を確認する:
bash
gh project item-list <number> --owner <owner> --format json --limit 999
対象アイテムのフィールド値が新しい値に変わっていれば完了。
完成Step 6后,通过以下命令确认更新内容:
bash
gh project item-list <number> --owner <owner> --format json --limit 999
若目标项目项的字段值已更新为新值,则操作完成。

sandbox 環境での実行

sandbox环境执行说明

このスキルは sandbox 環境では実行できない。ネットワークアクセス・ファイルシステムへの書き込みが必要なため、通常の Claude Code セッションで実行すること。
本技能无法在sandbox环境中执行。由于需要网络访问与文件系统写入权限,请在常规Claude Code会话中运行。