Add bulk issue label and milestone operations #90

Open
opened 2026-07-07 21:41:20 +01:00 by vnprc-agent · 0 comments
Contributor

User story: So that I can triage many issues from the CLI without repetitive one-by-one edits, forge needs safe bulk label and milestone operations with all-target preflight checks.

Part of the "Forge / workspace CLI tooling" arc.


Problem

The issue organization workflow needs to apply labels and milestones across many issues. Current forge issue edit, forge issue labels, and forge issue milestone commands operate on one issue at a time.

That makes repo-wide triage noisy and error-prone.

Desired Behavior

Add bulk operations while copying gh CLI parameters as closely as practical.

Target shape:

forge issue edit <issue>... --add-label <label> --remove-label <label>
forge issue edit <issue>... --milestone <milestone>
forge issue edit <issue>... --remove-milestone

Compatibility goals:

  • Accept multiple issue numbers and/or issue URLs in one invocation if gh issue edit does.
  • Preserve existing single-issue behavior.
  • Reuse the current --add-label, --remove-label, --milestone, and --remove-milestone names.
  • Support repeated label flags.
  • Fail before mutating when any target issue, label, or milestone cannot be resolved, unless a deliberate --continue-on-error flag is added later.

Validation

Tests should cover multiple issues, repeated labels, milestone set/remove, cross-repo URL targets when supported, and preflight failure that leaves all issues unchanged.

**User story:** So that I can triage many issues from the CLI without repetitive one-by-one edits, `forge` needs safe bulk label and milestone operations with all-target preflight checks. _Part of the "Forge / workspace CLI tooling" arc._ --- ## Problem The issue organization workflow needs to apply labels and milestones across many issues. Current `forge issue edit`, `forge issue labels`, and `forge issue milestone` commands operate on one issue at a time. That makes repo-wide triage noisy and error-prone. ## Desired Behavior Add bulk operations while copying `gh` CLI parameters as closely as practical. Target shape: ```sh forge issue edit <issue>... --add-label <label> --remove-label <label> forge issue edit <issue>... --milestone <milestone> forge issue edit <issue>... --remove-milestone ``` Compatibility goals: - Accept multiple issue numbers and/or issue URLs in one invocation if `gh issue edit` does. - Preserve existing single-issue behavior. - Reuse the current `--add-label`, `--remove-label`, `--milestone`, and `--remove-milestone` names. - Support repeated label flags. - Fail before mutating when any target issue, label, or milestone cannot be resolved, unless a deliberate `--continue-on-error` flag is added later. ## Validation Tests should cover multiple issues, repeated labels, milestone set/remove, cross-repo URL targets when supported, and preflight failure that leaves all issues unchanged.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
allod/tools#90
No description provided.