linear-sdk-cli 0.3.3 → 0.5.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/CHANGELOG.md +15 -0
- package/COVERAGE.md +13 -9
- package/MIGRATING.md +6 -0
- package/README.md +280 -86
- package/package.json +5 -5
- package/skills/linear-sdk-cli/SKILL.md +10 -0
- package/skills/linear-sdk-cli/references/auth.md +1 -0
- package/skills/linear-sdk-cli/references/config.md +10 -7
- package/skills/linear-sdk-cli/references/custom-view.md +205 -0
- package/skills/linear-sdk-cli/references/initiative.md +10 -5
- package/skills/linear-sdk-cli/references/issue.md +222 -77
- package/skills/linear-sdk-cli/references/notification.md +3 -3
- package/skills/linear-sdk-cli/references/project.md +9 -4
- package/src/cli.ts +2 -0
- package/src/commands/custom-view.ts +279 -0
- package/src/commands/initiative.ts +23 -6
- package/src/commands/issue.ts +313 -12
- package/src/commands/meta.ts +55 -9
- package/src/commands/notification.ts +5 -3
- package/src/commands/project.ts +21 -3
- package/src/config.ts +111 -10
- package/src/lib/delegation.ts +240 -0
- package/src/lib/json-input.ts +46 -0
- package/src/lib/options.ts +23 -3
- package/src/lib/output-shapes.ts +102 -3
- package/src/output/lifecycle.ts +10 -0
- package/src/services/custom-view.ts +376 -0
- package/src/services/initiative.ts +12 -3
- package/src/services/issue.ts +498 -21
- package/src/services/project.ts +14 -3
|
@@ -22,10 +22,11 @@ apiKeySource: string
|
|
|
22
22
|
accessToken: string
|
|
23
23
|
accessTokenSource: string
|
|
24
24
|
credentialWorkspace: string | null
|
|
25
|
+
workspaceProfile: string | null
|
|
25
26
|
team: string | null
|
|
26
27
|
workspace: string | null
|
|
27
28
|
sort: string
|
|
28
|
-
origins: {team: {source: string, path?: string, key?: string}, workspace: {source: string, path?: string, key?: string}, sort: {source: string, path?: string, key?: string}}
|
|
29
|
+
origins: {team: {source: string, path?: string, key?: string, workspace?: string}, workspace: {source: string, path?: string, key?: string, workspace?: string}, sort: {source: string, path?: string, key?: string, workspace?: string}}
|
|
29
30
|
userConfigPath: string
|
|
30
31
|
projectConfigPath: string | null
|
|
31
32
|
globalConfigPath: string | null
|
|
@@ -57,16 +58,16 @@ sort?: string
|
|
|
57
58
|
|
|
58
59
|
### `linear config set`
|
|
59
60
|
|
|
60
|
-
Set one project setting (team, workspace, sort)
|
|
61
|
+
Set one project or user setting (team, workspace, sort)
|
|
61
62
|
|
|
62
63
|
```
|
|
63
64
|
linear config set [options] <key> <value>
|
|
64
65
|
```
|
|
65
66
|
|
|
66
|
-
| Option | Description
|
|
67
|
-
| --------------- |
|
|
68
|
-
| `--user` | write the user config (
|
|
69
|
-
| `--path <file>` | write this file instead of the project config in effect
|
|
67
|
+
| Option | Description |
|
|
68
|
+
| --------------- | ------------------------------------------------------------------------- |
|
|
69
|
+
| `--user` | write the user config (team + --workspace targets that workspace profile) |
|
|
70
|
+
| `--path <file>` | write this file instead of the project config in effect |
|
|
70
71
|
|
|
71
72
|
**Output (`--json`)**: a receipt object
|
|
72
73
|
|
|
@@ -75,6 +76,7 @@ success: boolean
|
|
|
75
76
|
path: string
|
|
76
77
|
key: string
|
|
77
78
|
value: string
|
|
79
|
+
workspace?: string
|
|
78
80
|
```
|
|
79
81
|
|
|
80
82
|
### `linear config show`
|
|
@@ -93,10 +95,11 @@ apiKeySource: string
|
|
|
93
95
|
accessToken: string
|
|
94
96
|
accessTokenSource: string
|
|
95
97
|
credentialWorkspace: string | null
|
|
98
|
+
workspaceProfile: string | null
|
|
96
99
|
team: string | null
|
|
97
100
|
workspace: string | null
|
|
98
101
|
sort: string
|
|
99
|
-
origins: {team: {source: string, path?: string, key?: string}, workspace: {source: string, path?: string, key?: string}, sort: {source: string, path?: string, key?: string}}
|
|
102
|
+
origins: {team: {source: string, path?: string, key?: string, workspace?: string}, workspace: {source: string, path?: string, key?: string, workspace?: string}, sort: {source: string, path?: string, key?: string, workspace?: string}}
|
|
100
103
|
userConfigPath: string
|
|
101
104
|
projectConfigPath: string | null
|
|
102
105
|
globalConfigPath: string | null
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# linear custom-view
|
|
2
|
+
|
|
3
|
+
> Create and manage saved custom views
|
|
4
|
+
|
|
5
|
+
Group alias: `cv`
|
|
6
|
+
|
|
7
|
+
_Generated from `linear commands --json`. `linear custom-view --help` (or `<subcommand> --help`) is authoritative._
|
|
8
|
+
|
|
9
|
+
Every command also accepts the global flags `-j/--json`, `--no-input`, `-y/--yes`, `-q/--quiet`, `--workspace <slug>`, `--api-key <key>`, `--access-token <token>`, `-t/--team <key>`, `-n/--limit <n>`, `--all`, `-f/--fields <a,b,c>`, `--no-ansi` (alias `--no-color`), and `--debug`. Only command-specific options are listed below.
|
|
10
|
+
|
|
11
|
+
### `linear custom-view`
|
|
12
|
+
|
|
13
|
+
Create and manage saved custom views
|
|
14
|
+
|
|
15
|
+
Aliases: `cv`
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
linear custom-view [options]
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Output (`--json`)**: a bare object — runs `custom-view view` by default
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
id: string
|
|
25
|
+
name: string
|
|
26
|
+
type: string
|
|
27
|
+
shared: boolean
|
|
28
|
+
owner: {id: string, displayName: string} | null
|
|
29
|
+
team: {id: string, key: string, name: string} | null
|
|
30
|
+
slugId: string
|
|
31
|
+
updatedAt: string
|
|
32
|
+
description: string | null
|
|
33
|
+
filter: object
|
|
34
|
+
color: string | null
|
|
35
|
+
icon: string | null
|
|
36
|
+
creator: {id: string, displayName: string} | null
|
|
37
|
+
createdAt: string
|
|
38
|
+
archivedAt: string | null
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### `linear custom-view create`
|
|
42
|
+
|
|
43
|
+
Create an issue, project, or initiative custom view
|
|
44
|
+
|
|
45
|
+
Aliases: `new`
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
linear custom-view create [options]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
| Option | Description |
|
|
52
|
+
| ------------------------------- | ---------------------------------------------- |
|
|
53
|
+
| `--name <name>` | view name |
|
|
54
|
+
| `--type <type>` | entity type |
|
|
55
|
+
| `--owner <who>` | owner (me\|email\|name\|id) |
|
|
56
|
+
| `--color <hex>` | icon color |
|
|
57
|
+
| `--icon <icon>` | emoji or decorative icon identifier |
|
|
58
|
+
| `--scope-team <key\|name\|id>` | attach the view to a team |
|
|
59
|
+
| `--scope-project <id\|name>` | attach the view to a project |
|
|
60
|
+
| `--scope-initiative <id\|name>` | attach the view to an initiative |
|
|
61
|
+
| `-d, --description <text>` | view description |
|
|
62
|
+
| `--description-file <path>` | read description from a file ('-' = stdin) |
|
|
63
|
+
| `--filter <json>` | typed Linear filter as a JSON object |
|
|
64
|
+
| `--filter-file <path>` | read the filter JSON from a file ('-' = stdin) |
|
|
65
|
+
| `--shared` | share the view with the workspace |
|
|
66
|
+
| `--personal` | make the view owner-only |
|
|
67
|
+
|
|
68
|
+
**Output (`--json`)**: a receipt object
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
id: string
|
|
72
|
+
name: string
|
|
73
|
+
type: string
|
|
74
|
+
shared: boolean
|
|
75
|
+
slugId: string
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### `linear custom-view delete`
|
|
79
|
+
|
|
80
|
+
Delete a custom view by UUID
|
|
81
|
+
|
|
82
|
+
Aliases: `rm`
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
linear custom-view delete [options] <id>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Output (`--json`)**: a receipt object
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
id: string
|
|
92
|
+
name: string
|
|
93
|
+
deleted: boolean
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### `linear custom-view list`
|
|
97
|
+
|
|
98
|
+
List accessible workspace and team custom views
|
|
99
|
+
|
|
100
|
+
Aliases: `ls`
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
linear custom-view list [options]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Output (`--json`)**: a bare array of objects
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
id: string
|
|
110
|
+
name: string
|
|
111
|
+
type: string
|
|
112
|
+
shared: boolean
|
|
113
|
+
owner: {id: string, displayName: string} | null
|
|
114
|
+
team: {id: string, key: string, name: string} | null
|
|
115
|
+
slugId: string
|
|
116
|
+
updatedAt: string
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### `linear custom-view results`
|
|
120
|
+
|
|
121
|
+
List issues, projects, or initiatives matched by a view UUID
|
|
122
|
+
|
|
123
|
+
Aliases: `items`
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
linear custom-view results [options] <id>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Output (`--json`)**: a bare array of objects
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
type: string
|
|
133
|
+
id: string
|
|
134
|
+
identifier: string | null
|
|
135
|
+
name: string
|
|
136
|
+
url: string
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### `linear custom-view update`
|
|
140
|
+
|
|
141
|
+
Update mutable fields on a custom view UUID
|
|
142
|
+
|
|
143
|
+
Aliases: `edit`
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
linear custom-view update [options] <id>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
| Option | Description |
|
|
150
|
+
| ------------------------------ | ---------------------------------------------- |
|
|
151
|
+
| `--name <name>` | new name |
|
|
152
|
+
| `--owner <who>` | new owner (me\|email\|name\|id) |
|
|
153
|
+
| `--color <hex>` | new icon color |
|
|
154
|
+
| `--clear-color` | clear the icon color |
|
|
155
|
+
| `--icon <icon>` | new icon |
|
|
156
|
+
| `--clear-icon` | clear the icon |
|
|
157
|
+
| `--clear-description` | clear the description |
|
|
158
|
+
| `--scope-team <key\|name\|id>` | set the public team scope |
|
|
159
|
+
| `--clear-team-scope` | clear the public team scope |
|
|
160
|
+
| `-d, --description <text>` | new description |
|
|
161
|
+
| `--description-file <path>` | read description from a file ('-' = stdin) |
|
|
162
|
+
| `--filter <json>` | typed Linear filter as a JSON object |
|
|
163
|
+
| `--filter-file <path>` | read the filter JSON from a file ('-' = stdin) |
|
|
164
|
+
| `--shared` | share the view with the workspace |
|
|
165
|
+
| `--personal` | make the view owner-only |
|
|
166
|
+
|
|
167
|
+
**Output (`--json`)**: a receipt object
|
|
168
|
+
|
|
169
|
+
```text
|
|
170
|
+
id: string
|
|
171
|
+
name: string
|
|
172
|
+
type: string
|
|
173
|
+
shared: boolean
|
|
174
|
+
slugId: string
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### `linear custom-view view`
|
|
178
|
+
|
|
179
|
+
Show a custom view by UUID
|
|
180
|
+
|
|
181
|
+
Aliases: `show`
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
linear custom-view view [options] <id>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Output (`--json`)**: a bare object
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
id: string
|
|
191
|
+
name: string
|
|
192
|
+
type: string
|
|
193
|
+
shared: boolean
|
|
194
|
+
owner: {id: string, displayName: string} | null
|
|
195
|
+
team: {id: string, key: string, name: string} | null
|
|
196
|
+
slugId: string
|
|
197
|
+
updatedAt: string
|
|
198
|
+
description: string | null
|
|
199
|
+
filter: object
|
|
200
|
+
color: string | null
|
|
201
|
+
icon: string | null
|
|
202
|
+
creator: {id: string, displayName: string} | null
|
|
203
|
+
createdAt: string
|
|
204
|
+
archivedAt: string | null
|
|
205
|
+
```
|
|
@@ -38,6 +38,7 @@ updatedAt: string
|
|
|
38
38
|
startedAt: string | null
|
|
39
39
|
completedAt: string | null
|
|
40
40
|
archivedAt: string | null
|
|
41
|
+
trashed: boolean
|
|
41
42
|
owner: string | null
|
|
42
43
|
creator: string | null
|
|
43
44
|
projects: Array<{id: string, name: string, status: {name: string, type: string} | null}>
|
|
@@ -138,11 +139,12 @@ Aliases: `ls`
|
|
|
138
139
|
linear initiative list [options]
|
|
139
140
|
```
|
|
140
141
|
|
|
141
|
-
| Option
|
|
142
|
-
|
|
|
143
|
-
| `--status <name>`
|
|
144
|
-
| `--owner <who>`
|
|
145
|
-
| `--archived`
|
|
142
|
+
| Option | Description |
|
|
143
|
+
| -------------------- | -------------------------------------------------------------------- |
|
|
144
|
+
| `--status <name>` | filter by status (Planned, Active, Completed, Canceled, Proposed) |
|
|
145
|
+
| `--owner <who>` | filter by owner (me\|email\|name\|id) |
|
|
146
|
+
| `--include-archived` | include archived resources (the API may also return trashed records) |
|
|
147
|
+
| `--archived` | compatibility alias of --include-archived |
|
|
146
148
|
|
|
147
149
|
**Output (`--json`)**: a bare array of objects
|
|
148
150
|
|
|
@@ -154,6 +156,8 @@ priority: number
|
|
|
154
156
|
targetDate: string | null
|
|
155
157
|
health: string | null
|
|
156
158
|
url: string
|
|
159
|
+
archivedAt: string | null
|
|
160
|
+
trashed: boolean
|
|
157
161
|
```
|
|
158
162
|
|
|
159
163
|
### `linear initiative remove-project`
|
|
@@ -250,6 +254,7 @@ updatedAt: string
|
|
|
250
254
|
startedAt: string | null
|
|
251
255
|
completedAt: string | null
|
|
252
256
|
archivedAt: string | null
|
|
257
|
+
trashed: boolean
|
|
253
258
|
owner: string | null
|
|
254
259
|
creator: string | null
|
|
255
260
|
projects: Array<{id: string, name: string, status: {name: string, type: string} | null}>
|