Skip to content

feat: add intake queue commands - #7

Open
ericmaster wants to merge 1 commit into
cpatrickalves:mainfrom
ericmaster:feat/intake-commands
Open

feat: add intake queue commands#7
ericmaster wants to merge 1 commit into
cpatrickalves:mainfrom
ericmaster:feat/intake-commands

Conversation

@ericmaster

@ericmaster ericmaster commented Jul 31, 2026

Copy link
Copy Markdown

Disclaimer

This was created by my AI Agent, it was supposed to be an intake itlsef for later PR but it got carried away 😅. Anyway, the PR is created, if rejected no hard feelings.

Summary

Adds intake sub-command to planecli for managing project intake queues.

The Plane SDK does not expose intake endpoints, so these commands use direct HTTP calls.

Commands

Command Description
intake ls -p PROJECT List items in a project's intake queue
intake create "title" -p PROJECT [-d desc] [-P priority] Create a new intake item
intake accept ID -p PROJECT Accept/triage an intake item (converts to work item)
intake decline ID -p PROJECT Decline an intake item
intake delete ID -p PROJECT Delete an intake item
intake enabled PROJECT Check if intake_view is enabled for a project

All commands require -p/--project (fuzzy name/identifier/UUID resolved via resolve_project_async). The ls and create commands auto-check intake_view and warn if intake is disabled.

JSON output (--json) goes to stdout for scripting; tables go to stderr (consistent with existing commands).

Testing

Verified end-to-end against a self-hosted Plane instance:

  • intake enabled PROJ1_INTAKE_ENABLED → correctly reports true
  • intake enabled PROJ2_NO_INTAKE → correctly reports false
  • intake create → creates item with correct name, description_html, priority
  • intake ls → lists items with flattened issue_detail fields
  • intake delete → deletes by issue_detail UUID (204 response)
  • intake accept / intake decline → PATCH status 1 / -1

Notes

  • Delete uses the issue_detail.id (the actual issue UUID), not the intake wrapper id — this is a known gotcha with the Plane intake API.
  • Description is automatically wrapped in <p>…</p> for the required description_html field.
  • Priority defaults to none; valid values: none, low, medium, high, urgent.

…e, enabled)

The Plane SDK does not expose intake endpoints, so these commands use direct
HTTP calls (same pattern as the existing documents workaround).

- intake ls: list items in a project's intake queue
- intake create: create a new intake item (wraps description in <p> for HTML)
- intake accept: accept/triage an intake item (status=1)
- intake decline: decline an intake item (status=-1)
- intake delete: delete an intake item by issue_detail UUID
- intake enabled: check if a project has intake_view enabled

All commands require -p/--project (fuzzy name/identifier/UUID resolved via
resolve_project_async). The list and create commands auto-check intake_view
and warn if intake is disabled.

JSON output (--json) goes to stdout for scripting; tables go to stderr.
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.

1 participant