i-plane 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +149 -3
- package/dist/cli.js +82 -65
- package/docs/api-coverage.md +74 -0
- package/package.json +2 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# API coverage
|
|
2
|
+
|
|
3
|
+
Paths below are relative to `/api/v1/workspaces/{workspace_slug}/`. The command
|
|
4
|
+
registry defines the supported CLI surface, including value flags and aliases;
|
|
5
|
+
`tests/registry.test.ts` checks it against the dispatch table and exercises the
|
|
6
|
+
actual handlers. `tests/cli.test.ts` verifies the entry point's flag validation.
|
|
7
|
+
|
|
8
|
+
| Resource | Supported operations | CLI |
|
|
9
|
+
| --- | --- | --- |
|
|
10
|
+
| Projects | GET/POST `projects/`; PATCH/DELETE `projects/{project}/`; POST `projects/{project}/archive/` | `projects`, `project create`, `project update`, `project rm`, `project archive` |
|
|
11
|
+
| Work items | GET/POST `projects/{project}/issues/`; GET/PATCH/DELETE `projects/{project}/issues/{issue}/`; GET `issues/{ref}/` | `list`, `create`, `show`, `update`, `done`, `delete` |
|
|
12
|
+
| Work item fields | `parent`, `assignees`, `labels`, `start_date`, `target_date`, `name`, `state`, `priority`, `description_html` | `create` and `update` flags; `done` forwards update fields except state |
|
|
13
|
+
| Labels | GET/POST `projects/{project}/labels/`; DELETE `projects/{project}/labels/{label}/` | `labels`, `label create`, `label rm` |
|
|
14
|
+
| States | GET/POST `projects/{project}/states/`; PATCH/DELETE `projects/{project}/states/{state}/` | `states`, `state create`, `state update`, `state rm` |
|
|
15
|
+
| Comments | GET/POST `projects/{project}/issues/{issue}/comments/` | `comments`, `comment`, `show --comments` |
|
|
16
|
+
| Cycles | GET/POST `projects/{project}/cycles/`; PATCH `projects/{project}/cycles/{cycle}/`; GET `projects/{project}/cycles-lite/`; GET/POST `projects/{project}/cycles/{cycle}/cycle-issues/`; POST `projects/{project}/cycles/{cycle}/transfer-issues/` | `cycles`, `cycle create`, `cycle update`, `cycle add`, `cycle issues`, `cycle transfer` |
|
|
17
|
+
| Modules | GET/POST `projects/{project}/modules/`; GET `projects/{project}/modules-lite/`; GET/POST `projects/{project}/modules/{module}/module-issues/` | `modules`, `module create`, `module add`, `module issues` |
|
|
18
|
+
| Intake | GET/POST `projects/{project}/intake-issues/`; GET/PATCH/DELETE `projects/{project}/intake-issues/{issue}/` | `intake list`, `intake create`, `intake show`, `intake update`, `intake rm` |
|
|
19
|
+
| Project features | `cycle_view`, `module_view`, `intake_view` on project POST/PATCH | `project create` and `project update`: `--cycles`, `--modules`, `--intake` |
|
|
20
|
+
| Search | GET `issues/search/` | `search` |
|
|
21
|
+
| Members | GET `members-lite/` | `members`, named assignee resolution |
|
|
22
|
+
| Current user | GET `/api/v1/users/me/` | `whoami` |
|
|
23
|
+
| Summary | GET `projects/{project}/summary/` | `summary` |
|
|
24
|
+
|
|
25
|
+
The compatibility target uses the `issues/` routes. The current public
|
|
26
|
+
[work item reference](https://developers.plane.so/api-reference/issue/overview)
|
|
27
|
+
documents `work-items/` instead. A route migration must be verified against the
|
|
28
|
+
target server; do not change paths solely to match a newer documentation release.
|
|
29
|
+
|
|
30
|
+
## Compatibility details
|
|
31
|
+
|
|
32
|
+
Enabling intake on project creation requires a follow-up project PATCH to create
|
|
33
|
+
the queue. A creation flag alone can leave `intake_view=true` without an intake
|
|
34
|
+
record, causing the first submission to fail with HTTP 500. The CLI initializes
|
|
35
|
+
the queue explicitly and reports partial setup without encouraging a duplicate
|
|
36
|
+
project creation.
|
|
37
|
+
|
|
38
|
+
Cycle updates explicitly preserve `owned_by` when no owner is supplied: some
|
|
39
|
+
servers otherwise default it to the requesting user. Calendar dates are formatted
|
|
40
|
+
in the project's timezone; the JSON model keeps the API timestamps.
|
|
41
|
+
|
|
42
|
+
Expired snoozes can be filtered out of intake GET and ordinary triage work item
|
|
43
|
+
lookup. Update and delete therefore accept underlying work item UUIDs without
|
|
44
|
+
requiring an intake GET. A hidden readable reference cannot be resolved by these
|
|
45
|
+
API endpoints; the diagnostic points to `issueId` from an earlier JSON response.
|
|
46
|
+
|
|
47
|
+
## Remaining gaps
|
|
48
|
+
|
|
49
|
+
- Label updates and comment updates/deletions are not exposed.
|
|
50
|
+
- Cycle/module archive, delete and membership removal are not exposed; module
|
|
51
|
+
details cannot yet be edited. The planning tasks cover listing, creation,
|
|
52
|
+
membership and cycle transfer.
|
|
53
|
+
- This is an inventory of the implemented surface, not a claim to cover every
|
|
54
|
+
endpoint in every edition of Plane.
|
|
55
|
+
|
|
56
|
+
## Adding a command
|
|
57
|
+
|
|
58
|
+
1. Add the command and all options to `src/registry.ts`. The parser gets value
|
|
59
|
+
flags from the registry, including those of multiword commands.
|
|
60
|
+
2. Add an online handler to `src/dispatch.ts`. Both missing handlers and handlers
|
|
61
|
+
absent from the registry fail the command-set test.
|
|
62
|
+
3. Add a fixture invocation and valid option values to the registry suite. Test
|
|
63
|
+
the requested method, path and body, and assert observable output. Merely
|
|
64
|
+
accepting a flag in `--help` is insufficient.
|
|
65
|
+
4. Extend the live acceptance script when the command contributes to project
|
|
66
|
+
setup. Verify writes by reading them back, and clean up temporary data.
|
|
67
|
+
5. Update this table and README examples.
|
|
68
|
+
|
|
69
|
+
Reference: [projects](https://developers.plane.so/api-reference/project/add-project),
|
|
70
|
+
[labels](https://developers.plane.so/api-reference/label/add-label),
|
|
71
|
+
[states](https://developers.plane.so/api-reference/state/add-state),
|
|
72
|
+
[cycles](https://developers.plane.so/api-reference/cycle/transfer-cycle-work-items),
|
|
73
|
+
[modules](https://developers.plane.so/api-reference/module/add-module),
|
|
74
|
+
[intake](https://developers.plane.so/api-reference/intake-issue/overview).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "i-plane",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "CLI \u0434\u043b\u044f Plane \u0441 \u043f\u043b\u043e\u0442\u043d\u044b\u043c \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u043f\u043e\u0434 \u0430\u0433\u0435\u043d\u0442\u0430",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist",
|
|
20
|
+
"docs/api-coverage.md",
|
|
20
21
|
"AGENTS.md",
|
|
21
22
|
"CLAUDE.md"
|
|
22
23
|
],
|