Skip to content

Conversation

@adoval4
Copy link

@adoval4 adoval4 commented Sep 27, 2025

Summary

This PR adds support for setting and removing parent-child relationships between Linear issues using the linctl issue update command.

Features Added

  • New --parent-issue flag for the issue update command
  • Support for setting parent issues using issue identifiers (e.g., LIN-123)
  • Support for removing parent assignments with unassigned, none, or empty string
  • Validation to prevent self-reference (issue cannot be its own parent)
  • Validation to ensure parent issue exists before assignment
  • Enhanced GraphQL query to include parent information in responses

Usage Examples

# Set a parent issue
linctl issue update LIN-123 --parent-issue LIN-456

# Remove parent assignment
linctl issue update LIN-123 --parent-issue unassigned

# Combine with other updates
linctl issue update LIN-123 --parent-issue LIN-456 --title "New title" --priority 2

Implementation Details

  • Uses Linear's parentId field in IssueUpdateInput GraphQL mutation
  • Converts issue identifiers to UUIDs for API compatibility
  • Includes comprehensive error handling and validation
  • Maintains backward compatibility with existing functionality
  • All existing tests continue to pass

Testing

  • Manual testing with real Linear issues confirms functionality
  • Validation edge cases tested (self-reference, non-existent issues)
  • All smoke tests pass with no regressions
  • Combined field updates work correctly

This implementation follows the existing codebase patterns and maintains the same error handling and output formatting standards used throughout the CLI tool.

Implements --parent-issue flag for linctl issue update to enable setting
and removing parent-child relationships between issues. Includes validation
for non-existent issues and self-reference prevention.
Add documentation for the new --parent-issue flag in issue update command,
including usage examples and command reference details.
@adoval4
Copy link
Author

adoval4 commented Oct 3, 2025

@dorkitude what do you think about this?

raegislabs added a commit to raegislabs/linctl that referenced this pull request Nov 6, 2025
- Add CreateProject() and ArchiveProject() API methods
- Implement project create command with validation
- Implement project archive command with name output
- Add comprehensive tests for API and CLI
- Enhanced GetTeam to support key lookup with ID fallback
- All acceptance criteria met (AC #1-dorkitude#7)

Closes Story 1.2

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
memyselfandm pushed a commit to memyselfandm/linctl that referenced this pull request Dec 7, 2025
- Remove project-scratchpad.md (dev artifact)
- Port README documentation from PR dorkitude#7 (adapted for --parent flag)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@memyselfandm
Copy link

Closing in favor of PR #24 which has been merged.

Thank you @adoval4 for your contribution! Your comprehensive README documentation has been ported to PR #24 (adapted for the --parent flag naming).

Key differences in the merged implementation:

  • Flag name: --parent (shorter, consistent with other flags like --assignee)
  • Removal keyword: none instead of unassigned (more semantically appropriate for parent relationships)

Your documentation examples were invaluable - thanks for the contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants