Add initiative, label, and bulk operation support#1
Merged
Conversation
- team delete: with --move-issues option to migrate issues before deletion - initiative update: update name, description, status, owner, target date, color, icon - initiative unarchive: restore archived initiatives with confirmation - initiative delete: permanent deletion with typed name confirmation for safety All commands include proper safety confirmations for destructive operations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add shared bulk utilities (src/utils/bulk.ts): - collectBulkIds: supports --bulk, --bulk-file, --bulk-stdin - executeBulkOperations: concurrent execution with progress - printBulkSummary: formatted output with success/failure details - Add initiative-archive command with bulk support: - Single and bulk archive operations - Progress reporting during bulk operations - Update initiative-delete with bulk support: - Add --bulk, --bulk-file, --bulk-stdin flags - Refactor into handleSingleDelete/handleBulkDelete - Update issue-delete with bulk support: - Add --bulk, --bulk-file, --bulk-stdin flags - Refactor into handleSingleDelete/handleBulkDelete Example usage: linear init archive --bulk id1 id2 id3 linear issue delete --bulk TC-100 TC-101 TC-102 linear init archive --bulk-file initiatives-to-archive.txt linear issue list --state canceled --output-ids | linear issue delete --bulk-stdin 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add project-create.ts with: - GraphQL mutations for CreateProject and AddProjectToInitiative - Interactive mode with prompts for name, team, status, lead, dates - CLI flags: --name, --team, --description, --lead, --status, --start-date, --target-date, --initiative - Team lookup/validation via getTeamIdByKey - Status lookup from actual project statuses in org - Optional initiative linking at creation time - Register create command in project.ts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add label command with list, create, delete subcommands - label list: workspace/team filtering, JSON output - label create: name, color, description, team; interactive mode - label delete: by name or ID with team disambiguation - Register label command in main.ts with alias "l" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Adds two new subcommands for linking projects to initiatives: - `linear init add-project <initiative> <project>`: Link a project to an initiative - `linear init remove-project <initiative> <project>`: Unlink a project from an initiative Features: - Resolve initiatives/projects by UUID, slug, or name (case-insensitive) - Optional --sort-order for add-project to set position - Confirmation prompt for remove-project (skip with -y/--force) - Proper error handling for already-linked or not-linked cases 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- New initiative-create.ts with name, description, status, owner, target-date, color, and icon options - Supports both interactive mode (prompts) and flag-based creation - Status options: planned, active, paused, completed, canceled - Owner lookup via username, email, or @me - Registered create subcommand in initiative.ts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add initiative-list.ts: - Lists initiatives with filtering by status, owner, archived - Default: active only, use --all-statuses for all - Table output with SLUG, NAME, STATUS, HEALTH, OWNER, PROJ, TARGET - Color-coded status display - Supports --json, --web, --app options - Add initiative-view.ts: - View initiative details by UUID, slug, or name - Shows info, description, and linked projects grouped by status - Supports --json, --web, --app options - Update initiative.ts to register list (alias: ls) and view commands 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Rename duplicate GetInitiativeDetails to GetInitiativeForUpdate - Fix initiativeToProjects query (API doesn't support filter, use client-side filtering) - Fix initiativeUnarchive return type (use 'entity' not 'initiative') - Fix initiative status enum values (Planned, Active, Completed - capitalized) - Fix initiative list archivedAt filter (use includeArchived query param instead) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add label ID column to label list output - Fix label delete error handling for invalid input - Fix initiative unarchive to query with includeArchived Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Owner
Author
|
New commands work as expected |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds several major features to linear-cli:
project createcommand with interactive mode and initiative linkingteam deletecommand with confirmationNew Commands
Initiatives
linear initiative list- List all initiatives with filtering optionslinear initiative view <id>- View initiative details including linked projectslinear initiative create- Create new initiative (interactive or via flags)linear initiative archive <id>- Archive an initiativelinear initiative unarchive <id>- Unarchive an initiativelinear initiative update <id>- Update initiative propertieslinear initiative delete <id>- Delete an initiative (with confirmation)linear initiative add-project- Link a project to an initiativelinear initiative remove-project- Remove project from initiativeLabels
linear label list- List labels with optional team filterlinear label create- Create a new labellinear label delete <id>- Delete a labelProjects
linear project create- Create a new project with team, lead, dates, status, and optional initiative linkingTeams
linear team delete <id>- Delete a team (with confirmation)Test plan
linear initiative listshows initiativeslinear initiative view <id>displays initiative detailslinear initiative createworks in both interactive and CLI modeslinear label listandlinear label createworklinear project createcreates projects correctlylinear issue delete --bulk ID1 ID2 ID3🤖 Generated with Claude Code