feat: add project creation and archival commands#16
Closed
raegislabs wants to merge 2 commits intodorkitude:masterfrom
Closed
feat: add project creation and archival commands#16raegislabs wants to merge 2 commits intodorkitude:masterfrom
raegislabs wants to merge 2 commits intodorkitude:masterfrom
Conversation
Implement complete project lifecycle management with create and archive commands, enabling users to manage projects entirely from the CLI. Features: - `linctl project create` with required (name, team) and optional fields - Optional: description, state, priority, target-date - Team key resolution (auto-converts to UUID) - Pre-API validation for state and priority - `linctl project archive` to archive completed projects - Displays project name in success output - Comprehensive test coverage (API + CLI) Technical changes: - pkg/api/queries.go: Add CreateProject(), ArchiveProject(), enhanced GetTeam() - cmd/project.go: Add projectCreateCmd, projectArchiveCmd - Tests for API methods and CLI output formats Examples: linctl project create --name "Q1 Backend" --team ENG linctl project create --name "API Refactor" --team ENG --state started --priority 2 linctl project archive <project-uuid> All acceptance criteria tested against Linear API.
12 tasks
Owner
|
Thanks for the thoughtful contribution here, and for the clear implementation notes and examples. Closing this as superseded by newer merged work on
Relevant docs:
Reproducing your command examples for reference: # Create project with minimal required fields
linctl project create --name "Q1 Backend Improvements" --team ENG
# Create project with all options
linctl project create \
--name "API Refactor" \
--team ENG \
--description "Stabilize auth flows" \
--state planned \
--priority 2 \
--target-date 2025-03-31
# Archive a project
linctl project archive 3c7b1d1a-1234-5678-9abc-dedededededeCurrent equivalent for archive in # Archive (soft-delete) a project
linctl project delete PROJECT-ID
# Permanently delete a project
linctl project delete PROJECT-ID --permanent --forceAnd for issue-project assignment from the prerequisite flow: linctl issue update LIN-123 --project "Q1 Platform"
linctl issue update LIN-123 --project "Q1 Platform" --project-milestone "Phase 1" |
Owner
|
Closing as superseded by merged work on master (project CRUD/archive + issue project/milestone linking), with the equivalent command paths documented in README. |
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.
Dependencies
Depends on #15 – builds on the issue‑project assignment feature.
Summary
Adds
project createandproject archivecommands, enabling complete project lifecycle management from the CLI.Builds on PR #15 (issue‑project assignment) to provide a comprehensive project management workflow.
Motivation
Users need to create and archive projects as part of their terminal workflow. Currently, project creation requires using the Linear web interface, which interrupts CLI‑based productivity.
Changes
New Features
linctl project createcommand--name,--team--description,--state,--priority,--target-datelinctl project archivecommandImplementation Details
pkg/api/queries.go:CreateProject()method with GraphQL mutationArchiveProject()methodGetTeam()to support lookup by key (with ID fallback)cmd/project.go:projectCreateCmdwith comprehensive validationprojectArchiveCmdwith name displaycmd/project_cmd_test.go,cmd/project_test.go: Full test coverageUsage Examples
Validation
planned|started|paused|completed|canceledYYYY‑MM‑DDTesting
Unit Tests
Smoke/Build
make test(smoke tests) passingmake fmtappliedBreaking Changes
None – new commands only.
Architecture Notes
Checklist
Contributor Checklist (Contributing.md)
make depsas neededmake fmtappliedmake testpasses (read‑only smoke tests)