nixelo 0.0.1
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 +98 -0
- package/dist/commands/apiKeys.d.ts +3 -0
- package/dist/commands/apiKeys.d.ts.map +1 -0
- package/dist/commands/apiKeys.js +200 -0
- package/dist/commands/apiKeys.js.map +1 -0
- package/dist/commands/auth.d.ts +7 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +201 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/automations.d.ts +3 -0
- package/dist/commands/automations.d.ts.map +1 -0
- package/dist/commands/automations.js +302 -0
- package/dist/commands/automations.js.map +1 -0
- package/dist/commands/commandTree.d.ts +10 -0
- package/dist/commands/commandTree.d.ts.map +1 -0
- package/dist/commands/commandTree.js +36 -0
- package/dist/commands/commandTree.js.map +1 -0
- package/dist/commands/completion.d.ts +6 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +101 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +133 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/documents.d.ts +3 -0
- package/dist/commands/documents.d.ts.map +1 -0
- package/dist/commands/documents.js +200 -0
- package/dist/commands/documents.js.map +1 -0
- package/dist/commands/fields.d.ts +3 -0
- package/dist/commands/fields.d.ts.map +1 -0
- package/dist/commands/fields.js +199 -0
- package/dist/commands/fields.js.map +1 -0
- package/dist/commands/filters.d.ts +3 -0
- package/dist/commands/filters.d.ts.map +1 -0
- package/dist/commands/filters.js +243 -0
- package/dist/commands/filters.js.map +1 -0
- package/dist/commands/global.d.ts +5 -0
- package/dist/commands/global.d.ts.map +1 -0
- package/dist/commands/global.js +42 -0
- package/dist/commands/global.js.map +1 -0
- package/dist/commands/index.d.ts +23 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +23 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/invites.d.ts +3 -0
- package/dist/commands/invites.d.ts.map +1 -0
- package/dist/commands/invites.js +113 -0
- package/dist/commands/invites.js.map +1 -0
- package/dist/commands/issues/filter.d.ts +19 -0
- package/dist/commands/issues/filter.d.ts.map +1 -0
- package/dist/commands/issues/filter.js +72 -0
- package/dist/commands/issues/filter.js.map +1 -0
- package/dist/commands/issues/options.d.ts +33 -0
- package/dist/commands/issues/options.d.ts.map +1 -0
- package/dist/commands/issues/options.js +68 -0
- package/dist/commands/issues/options.js.map +1 -0
- package/dist/commands/issues/output.d.ts +12 -0
- package/dist/commands/issues/output.d.ts.map +1 -0
- package/dist/commands/issues/output.js +285 -0
- package/dist/commands/issues/output.js.map +1 -0
- package/dist/commands/issues.d.ts +3 -0
- package/dist/commands/issues.d.ts.map +1 -0
- package/dist/commands/issues.js +483 -0
- package/dist/commands/issues.js.map +1 -0
- package/dist/commands/labels.d.ts +3 -0
- package/dist/commands/labels.d.ts.map +1 -0
- package/dist/commands/labels.js +222 -0
- package/dist/commands/labels.js.map +1 -0
- package/dist/commands/notifications.d.ts +3 -0
- package/dist/commands/notifications.d.ts.map +1 -0
- package/dist/commands/notifications.js +127 -0
- package/dist/commands/notifications.js.map +1 -0
- package/dist/commands/projects.d.ts +5 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +749 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/registerAll.d.ts +3 -0
- package/dist/commands/registerAll.d.ts.map +1 -0
- package/dist/commands/registerAll.js +54 -0
- package/dist/commands/registerAll.js.map +1 -0
- package/dist/commands/sprints.d.ts +3 -0
- package/dist/commands/sprints.d.ts.map +1 -0
- package/dist/commands/sprints.js +359 -0
- package/dist/commands/sprints.js.map +1 -0
- package/dist/commands/stats.d.ts +3 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +206 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/teams.d.ts +3 -0
- package/dist/commands/teams.d.ts.map +1 -0
- package/dist/commands/teams.js +435 -0
- package/dist/commands/teams.js.map +1 -0
- package/dist/commands/templates.d.ts +3 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +264 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/commands/time.d.ts +3 -0
- package/dist/commands/time.d.ts.map +1 -0
- package/dist/commands/time.js +191 -0
- package/dist/commands/time.js.map +1 -0
- package/dist/commands/tokens.d.ts +3 -0
- package/dist/commands/tokens.d.ts.map +1 -0
- package/dist/commands/tokens.js +76 -0
- package/dist/commands/tokens.js.map +1 -0
- package/dist/commands/users.d.ts +5 -0
- package/dist/commands/users.d.ts.map +1 -0
- package/dist/commands/users.js +160 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/commands/version.d.ts +3 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +17 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/commands/webhooks.d.ts +3 -0
- package/dist/commands/webhooks.d.ts.map +1 -0
- package/dist/commands/webhooks.js +407 -0
- package/dist/commands/webhooks.js.map +1 -0
- package/dist/commands/workspaces.d.ts +3 -0
- package/dist/commands/workspaces.d.ts.map +1 -0
- package/dist/commands/workspaces.js +424 -0
- package/dist/commands/workspaces.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +20 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +80 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/convex.d.ts +1243 -0
- package/dist/lib/convex.d.ts.map +1 -0
- package/dist/lib/convex.js +675 -0
- package/dist/lib/convex.js.map +1 -0
- package/dist/lib/options.d.ts +10 -0
- package/dist/lib/options.d.ts.map +1 -0
- package/dist/lib/options.js +79 -0
- package/dist/lib/options.js.map +1 -0
- package/dist/lib/output.d.ts +19 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +60 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/project-key.d.ts +5 -0
- package/dist/lib/project-key.d.ts.map +1 -0
- package/dist/lib/project-key.js +56 -0
- package/dist/lib/project-key.js.map +1 -0
- package/dist/lib/prompt.d.ts +5 -0
- package/dist/lib/prompt.d.ts.map +1 -0
- package/dist/lib/prompt.js +28 -0
- package/dist/lib/prompt.js.map +1 -0
- package/dist/lib/user-picker.d.ts +4 -0
- package/dist/lib/user-picker.d.ts.map +1 -0
- package/dist/lib/user-picker.js +57 -0
- package/dist/lib/user-picker.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
import { addIssueComment, archiveIssue, bulkAssignIssues, bulkIssueLifecycle, bulkMoveIssuesToSprint, bulkUpdateIssueDate, bulkUpdateIssueLabels, bulkUpdateIssuePriority, bulkUpdateIssueStatus, createIssue, deleteIssue, getIssue, listIssueActivity, listIssueComments, listIssueSubtasks, listIssues, listSimilarIssues, moveIssue, restoreIssue, updateIssue } from "../lib/convex.js";
|
|
2
|
+
import { parseCommaSeparatedListOption, parseNullableDateOption, parsePositiveIntegerOption } from "../lib/options.js";
|
|
3
|
+
import { printError } from "../lib/output.js";
|
|
4
|
+
import { resolveOptionalProjectKey, resolveRequiredProjectKey } from "../lib/project-key.js";
|
|
5
|
+
import { canPrompt, promptText, requireConfirmation } from "../lib/prompt.js";
|
|
6
|
+
import { addOutputOptions } from "./global.js";
|
|
7
|
+
import { filterAndSortIssues, ISSUE_SEARCH_DEFAULT_LIMIT, normalizeFilterValue } from "./issues/filter.js";
|
|
8
|
+
import { buildIssueUpdateInput, parseIssueMoveOrder, resolveCommentBody } from "./issues/options.js";
|
|
9
|
+
import { printIssueActivityResult, printIssueBulkResult, printIssueCommentResult, printIssueCommentsResult, printIssueCreateResult, printIssueDeleteResult, printIssueList, printIssueListResult, printIssueMutationResult, printIssueViewResult } from "./issues/output.js";
|
|
10
|
+
async function resolveIssueTitle(explicitTitle) {
|
|
11
|
+
const title = explicitTitle?.trim();
|
|
12
|
+
if (title)
|
|
13
|
+
return title;
|
|
14
|
+
if (canPrompt()) {
|
|
15
|
+
const promptedTitle = await promptText("Issue title");
|
|
16
|
+
if (promptedTitle)
|
|
17
|
+
return promptedTitle;
|
|
18
|
+
}
|
|
19
|
+
throw new Error("Issue title is required. Pass --title <text>.");
|
|
20
|
+
}
|
|
21
|
+
const ISSUE_PRIORITY_VALUES = new Set(["highest", "high", "medium", "low", "lowest"]);
|
|
22
|
+
function readBulkIssueKeys(keys) {
|
|
23
|
+
const uniqueKeys = [...new Set(keys.map(key => key.trim().toUpperCase()).filter(Boolean))];
|
|
24
|
+
if (uniqueKeys.length === 0)
|
|
25
|
+
throw new Error("Pass at least one issue key.");
|
|
26
|
+
return uniqueKeys;
|
|
27
|
+
}
|
|
28
|
+
function addBulkIssueSelectionOptions(command) {
|
|
29
|
+
return command
|
|
30
|
+
.argument("[keys...]", "Issue keys (for example ENG-1 ENG-2)")
|
|
31
|
+
.option("--all", "Select up to 100 issues matching explicit filters")
|
|
32
|
+
.option("--filter-project <key>", "Filter selection by project key")
|
|
33
|
+
.option("--filter-status <status>", "Filter selection by workflow status")
|
|
34
|
+
.option("--filter-priority <priority>", "Filter selection by priority")
|
|
35
|
+
.option("--filter-type <type>", "Filter selection by issue type")
|
|
36
|
+
.option("--filter-assignee <user>", "Filter selection by assignee")
|
|
37
|
+
.option("--filter-label <name>", "Filter selection by label")
|
|
38
|
+
.option("--filter-sprint <id>", "Filter selection by sprint ID")
|
|
39
|
+
.option("--filter-epic <key>", "Filter selection by epic key")
|
|
40
|
+
.option("--filter-search <query>", "Filter selection by full-text search");
|
|
41
|
+
}
|
|
42
|
+
async function resolveBulkIssueKeys(keys, options) {
|
|
43
|
+
const filters = {
|
|
44
|
+
assignee: normalizeFilterValue(options.filterAssignee),
|
|
45
|
+
epic: normalizeFilterValue(options.filterEpic),
|
|
46
|
+
label: normalizeFilterValue(options.filterLabel),
|
|
47
|
+
priority: normalizeFilterValue(options.filterPriority),
|
|
48
|
+
project: normalizeFilterValue(options.filterProject),
|
|
49
|
+
search: normalizeFilterValue(options.filterSearch),
|
|
50
|
+
sprintId: normalizeFilterValue(options.filterSprint),
|
|
51
|
+
status: normalizeFilterValue(options.filterStatus),
|
|
52
|
+
type: normalizeFilterValue(options.filterType)
|
|
53
|
+
};
|
|
54
|
+
const hasFilterOption = [
|
|
55
|
+
options.filterAssignee,
|
|
56
|
+
options.filterEpic,
|
|
57
|
+
options.filterLabel,
|
|
58
|
+
options.filterPriority,
|
|
59
|
+
options.filterProject,
|
|
60
|
+
options.filterSearch,
|
|
61
|
+
options.filterSprint,
|
|
62
|
+
options.filterStatus,
|
|
63
|
+
options.filterType
|
|
64
|
+
].some(value => value !== undefined);
|
|
65
|
+
const hasFilter = Object.values(filters).some(value => value !== undefined);
|
|
66
|
+
if (!options.all) {
|
|
67
|
+
if (hasFilterOption)
|
|
68
|
+
throw new Error("Bulk selection filters require --all.");
|
|
69
|
+
return readBulkIssueKeys(keys);
|
|
70
|
+
}
|
|
71
|
+
if (keys.length > 0)
|
|
72
|
+
throw new Error("Pass explicit issue keys or --all, not both.");
|
|
73
|
+
if (!hasFilter)
|
|
74
|
+
throw new Error("Pass at least one --filter-* option with --all.");
|
|
75
|
+
const issues = await listIssues({ ...filters, limit: ISSUE_SEARCH_DEFAULT_LIMIT });
|
|
76
|
+
if (issues.length === 0)
|
|
77
|
+
throw new Error("No issues matched the bulk selection filters.");
|
|
78
|
+
return readBulkIssueKeys(issues.map(issue => issue.key));
|
|
79
|
+
}
|
|
80
|
+
function registerBulkIssueDateCommand(bulkCmd, name, field) {
|
|
81
|
+
addBulkIssueSelectionOptions(addOutputOptions(bulkCmd.command(name)))
|
|
82
|
+
.option("--date <date>", "Set date (YYYY-MM-DD)")
|
|
83
|
+
.option("--clear", "Clear the date")
|
|
84
|
+
.description(`Update issue ${name}s in bulk`)
|
|
85
|
+
.action(async (keys, opts) => {
|
|
86
|
+
try {
|
|
87
|
+
const value = parseNullableDateOption(opts.date, opts.clear, "--date", "--clear");
|
|
88
|
+
if (value === undefined)
|
|
89
|
+
throw new Error("Pass either --date <date> or --clear.");
|
|
90
|
+
printIssueBulkResult(await bulkUpdateIssueDate(await resolveBulkIssueKeys(keys, opts), field, value));
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function registerBulkIssueLifecycleCommand(bulkCmd, action) {
|
|
99
|
+
const command = addBulkIssueSelectionOptions(addOutputOptions(bulkCmd.command(action)));
|
|
100
|
+
if (action === "delete")
|
|
101
|
+
command.option("-y, --yes", "Confirm bulk issue deletion");
|
|
102
|
+
command
|
|
103
|
+
.description(`${action} issues in bulk`)
|
|
104
|
+
.action(async (keys, opts) => {
|
|
105
|
+
try {
|
|
106
|
+
const issueKeys = await resolveBulkIssueKeys(keys, opts);
|
|
107
|
+
if (action === "delete") {
|
|
108
|
+
await requireConfirmation(`Delete ${issueKeys.length} issues?`, opts.yes === true);
|
|
109
|
+
}
|
|
110
|
+
printIssueBulkResult(await bulkIssueLifecycle(issueKeys, action));
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
export function registerIssuesCommands(program) {
|
|
119
|
+
const issuesCmd = program.command("issues").description("Manage issues");
|
|
120
|
+
const bulkCmd = issuesCmd.command("bulk").description("Update multiple issues");
|
|
121
|
+
addBulkIssueSelectionOptions(addOutputOptions(bulkCmd.command("assign")))
|
|
122
|
+
.option("--assignee <user>", "Assignee ID, email, or unique name")
|
|
123
|
+
.option("--clear", "Clear the assignee")
|
|
124
|
+
.description("Assign issues in bulk")
|
|
125
|
+
.action(async (keys, opts) => {
|
|
126
|
+
try {
|
|
127
|
+
if (opts.assignee !== undefined && opts.clear) {
|
|
128
|
+
throw new Error("Pass either --assignee or --clear, not both.");
|
|
129
|
+
}
|
|
130
|
+
const assignee = opts.clear ? null : opts.assignee?.trim();
|
|
131
|
+
if (assignee === undefined || assignee === "") {
|
|
132
|
+
throw new Error("Pass either --assignee <user> or --clear.");
|
|
133
|
+
}
|
|
134
|
+
printIssueBulkResult(await bulkAssignIssues(await resolveBulkIssueKeys(keys, opts), assignee));
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
addBulkIssueSelectionOptions(addOutputOptions(bulkCmd.command("label")))
|
|
142
|
+
.option("--add <labels>", "Comma-separated labels to add")
|
|
143
|
+
.option("--remove <labels>", "Comma-separated labels to remove")
|
|
144
|
+
.description("Add or remove issue labels in bulk")
|
|
145
|
+
.action(async (keys, opts) => {
|
|
146
|
+
try {
|
|
147
|
+
if (opts.add !== undefined && opts.remove !== undefined) {
|
|
148
|
+
throw new Error("Pass either --add or --remove, not both.");
|
|
149
|
+
}
|
|
150
|
+
const action = opts.add !== undefined ? "add" : "remove";
|
|
151
|
+
const labels = parseCommaSeparatedListOption(opts.add ?? opts.remove);
|
|
152
|
+
if (!labels || labels.length === 0) {
|
|
153
|
+
throw new Error("Pass either --add <labels> or --remove <labels>.");
|
|
154
|
+
}
|
|
155
|
+
printIssueBulkResult(await bulkUpdateIssueLabels(await resolveBulkIssueKeys(keys, opts), action, labels));
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
addBulkIssueSelectionOptions(addOutputOptions(bulkCmd.command("sprint")))
|
|
163
|
+
.option("--sprint <id>", "Sprint ID")
|
|
164
|
+
.option("--clear", "Remove issues from their sprint")
|
|
165
|
+
.description("Move issues to or from a sprint in bulk")
|
|
166
|
+
.action(async (keys, opts) => {
|
|
167
|
+
try {
|
|
168
|
+
if (opts.sprint !== undefined && opts.clear) {
|
|
169
|
+
throw new Error("Pass either --sprint or --clear, not both.");
|
|
170
|
+
}
|
|
171
|
+
const sprint = opts.clear ? null : opts.sprint?.trim();
|
|
172
|
+
if (sprint === undefined || sprint === "") {
|
|
173
|
+
throw new Error("Pass either --sprint <id> or --clear.");
|
|
174
|
+
}
|
|
175
|
+
printIssueBulkResult(await bulkMoveIssuesToSprint(await resolveBulkIssueKeys(keys, opts), sprint));
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
registerBulkIssueLifecycleCommand(bulkCmd, "delete");
|
|
183
|
+
registerBulkIssueLifecycleCommand(bulkCmd, "archive");
|
|
184
|
+
registerBulkIssueLifecycleCommand(bulkCmd, "restore");
|
|
185
|
+
registerBulkIssueDateCommand(bulkCmd, "due-date", "dueDate");
|
|
186
|
+
registerBulkIssueDateCommand(bulkCmd, "start-date", "startDate");
|
|
187
|
+
addBulkIssueSelectionOptions(addOutputOptions(bulkCmd.command("priority")))
|
|
188
|
+
.requiredOption("--priority <priority>", "Target issue priority")
|
|
189
|
+
.description("Update issue priorities in bulk")
|
|
190
|
+
.action(async (keys, opts) => {
|
|
191
|
+
try {
|
|
192
|
+
const priority = opts.priority.trim().toLowerCase();
|
|
193
|
+
if (!ISSUE_PRIORITY_VALUES.has(priority)) {
|
|
194
|
+
throw new Error("Priority must be highest, high, medium, low, or lowest.");
|
|
195
|
+
}
|
|
196
|
+
printIssueBulkResult(await bulkUpdateIssuePriority(await resolveBulkIssueKeys(keys, opts), priority));
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
200
|
+
process.exit(1);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
addBulkIssueSelectionOptions(addOutputOptions(bulkCmd.command("status")))
|
|
204
|
+
.requiredOption("--status <id>", "Target workflow status ID")
|
|
205
|
+
.description("Update issue statuses in bulk")
|
|
206
|
+
.action(async (keys, opts) => {
|
|
207
|
+
try {
|
|
208
|
+
const status = opts.status.trim();
|
|
209
|
+
if (!status)
|
|
210
|
+
throw new Error("Status is required. Pass --status <id>.");
|
|
211
|
+
printIssueBulkResult(await bulkUpdateIssueStatus(await resolveBulkIssueKeys(keys, opts), status));
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
215
|
+
process.exit(1);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
addOutputOptions(issuesCmd.command("list"))
|
|
219
|
+
.option("-p, --project <key>", "Filter by project key")
|
|
220
|
+
.option("-s, --status <status>", "Filter by status")
|
|
221
|
+
.option("--priority <priority>", "Filter by priority")
|
|
222
|
+
.option("--type <type>", "Filter by issue type")
|
|
223
|
+
.option("--assignee <user>", "Filter by assignee ID, email, or unique name")
|
|
224
|
+
.option("--label <name>", "Filter by label name")
|
|
225
|
+
.option("--sprint <id>", "Filter by sprint ID")
|
|
226
|
+
.option("--epic <key>", "Filter by epic issue key")
|
|
227
|
+
.option("--search <query>", "Full-text search across accessible issues")
|
|
228
|
+
.option("--sort <field>", "Sort by: created, key, priority, status, title")
|
|
229
|
+
.option("--order <direction>", "Sort order: asc or desc")
|
|
230
|
+
.option("-n, --limit <number>", "Max results", "20")
|
|
231
|
+
.description("List issues")
|
|
232
|
+
.action(async (opts) => {
|
|
233
|
+
try {
|
|
234
|
+
const issues = await listIssues({
|
|
235
|
+
assignee: normalizeFilterValue(opts.assignee),
|
|
236
|
+
epic: normalizeFilterValue(opts.epic),
|
|
237
|
+
label: normalizeFilterValue(opts.label),
|
|
238
|
+
project: (await resolveOptionalProjectKey(opts.project)) ?? undefined,
|
|
239
|
+
priority: normalizeFilterValue(opts.priority),
|
|
240
|
+
search: normalizeFilterValue(opts.search),
|
|
241
|
+
sprintId: normalizeFilterValue(opts.sprint),
|
|
242
|
+
status: opts.status,
|
|
243
|
+
type: normalizeFilterValue(opts.type),
|
|
244
|
+
limit: parsePositiveIntegerOption(opts.limit)
|
|
245
|
+
});
|
|
246
|
+
printIssueList(filterAndSortIssues(issues, opts));
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
250
|
+
process.exit(1);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
addOutputOptions(issuesCmd.command("search"))
|
|
254
|
+
.argument("<query>", "Full-text search matched against issue key, title, and description")
|
|
255
|
+
.option("-p, --project <key>", "Filter by project key")
|
|
256
|
+
.option("-s, --status <status>", "Filter by status")
|
|
257
|
+
.option("--priority <priority>", "Filter by priority")
|
|
258
|
+
.option("--type <type>", "Filter by issue type")
|
|
259
|
+
.option("--assignee <user>", "Filter by assignee ID, email, or unique name")
|
|
260
|
+
.option("--label <name>", "Filter by label name")
|
|
261
|
+
.option("--sprint <id>", "Filter by sprint ID")
|
|
262
|
+
.option("--epic <key>", "Filter by epic issue key")
|
|
263
|
+
.option("--sort <field>", "Sort by: created, key, priority, status, title")
|
|
264
|
+
.option("--order <direction>", "Sort order: asc or desc")
|
|
265
|
+
.option("-n, --limit <number>", "Max search results", String(ISSUE_SEARCH_DEFAULT_LIMIT))
|
|
266
|
+
.description("Search issues across accessible projects")
|
|
267
|
+
.action(async (query, opts) => {
|
|
268
|
+
try {
|
|
269
|
+
const trimmedQuery = query.trim();
|
|
270
|
+
if (!trimmedQuery)
|
|
271
|
+
throw new Error("Search query is required.");
|
|
272
|
+
const issues = await listIssues({
|
|
273
|
+
assignee: normalizeFilterValue(opts.assignee),
|
|
274
|
+
epic: normalizeFilterValue(opts.epic),
|
|
275
|
+
label: normalizeFilterValue(opts.label),
|
|
276
|
+
project: (await resolveOptionalProjectKey(opts.project)) ?? undefined,
|
|
277
|
+
priority: normalizeFilterValue(opts.priority),
|
|
278
|
+
search: trimmedQuery,
|
|
279
|
+
sprintId: normalizeFilterValue(opts.sprint),
|
|
280
|
+
status: opts.status,
|
|
281
|
+
type: normalizeFilterValue(opts.type),
|
|
282
|
+
limit: parsePositiveIntegerOption(opts.limit)
|
|
283
|
+
});
|
|
284
|
+
printIssueList(filterAndSortIssues(issues, opts));
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
288
|
+
process.exit(1);
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
addOutputOptions(issuesCmd.command("view"))
|
|
292
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
293
|
+
.description("View issue details")
|
|
294
|
+
.action(async (key) => {
|
|
295
|
+
try {
|
|
296
|
+
printIssueViewResult(await getIssue(key), key);
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
300
|
+
process.exit(1);
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
addOutputOptions(issuesCmd.command("create"))
|
|
304
|
+
.option("-p, --project <key>", "Project key (e.g. ENG); defaults to config.defaultProject")
|
|
305
|
+
.option("-t, --title <text>", "Issue title")
|
|
306
|
+
.option("-y, --priority <priority>", "Priority (highest, high, medium, low, lowest)")
|
|
307
|
+
.option("--type <type>", "Issue type (task, bug, story, epic)")
|
|
308
|
+
.description("Create an issue")
|
|
309
|
+
.action(async (opts) => {
|
|
310
|
+
try {
|
|
311
|
+
const projectKey = await resolveRequiredProjectKey(opts.project);
|
|
312
|
+
const title = await resolveIssueTitle(opts.title);
|
|
313
|
+
const issue = await createIssue({
|
|
314
|
+
projectKey,
|
|
315
|
+
title,
|
|
316
|
+
priority: opts.priority,
|
|
317
|
+
type: opts.type
|
|
318
|
+
});
|
|
319
|
+
printIssueCreateResult(issue);
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
323
|
+
process.exit(1);
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
addOutputOptions(issuesCmd.command("update"))
|
|
327
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
328
|
+
.option("-t, --title <text>", "Set issue title")
|
|
329
|
+
.option("-d, --description <text>", "Set issue description")
|
|
330
|
+
.option("-y, --priority <priority>", "Set priority")
|
|
331
|
+
.option("--type <type>", "Set issue type")
|
|
332
|
+
.option("--assignee <id>", "Assign to user ID")
|
|
333
|
+
.option("--clear-assignee", "Clear assignee")
|
|
334
|
+
.option("--epic <key>", "Assign to epic issue key")
|
|
335
|
+
.option("--clear-epic", "Remove from epic")
|
|
336
|
+
.option("--sprint <id>", "Assign to sprint ID")
|
|
337
|
+
.option("--clear-sprint", "Remove from sprint")
|
|
338
|
+
.option("--labels <labels>", "Replace labels with comma-separated names")
|
|
339
|
+
.option("--start-date <date>", "Set start date as YYYY-MM-DD")
|
|
340
|
+
.option("--clear-start-date", "Clear start date")
|
|
341
|
+
.option("--due-date <date>", "Set due date as YYYY-MM-DD")
|
|
342
|
+
.option("--clear-due-date", "Clear due date")
|
|
343
|
+
.option("--estimated-hours <number>", "Set estimated hours")
|
|
344
|
+
.option("--story-points <number>", "Set story points")
|
|
345
|
+
.description("Update issue fields")
|
|
346
|
+
.action(async (key, opts) => {
|
|
347
|
+
try {
|
|
348
|
+
const issue = await updateIssue(key, buildIssueUpdateInput(opts));
|
|
349
|
+
printIssueMutationResult(issue, key, updated => `Updated ${updated.key}: ${updated.title}`);
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
353
|
+
process.exit(1);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
addOutputOptions(issuesCmd.command("move"))
|
|
357
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
358
|
+
.argument("<status>", "Target workflow status ID")
|
|
359
|
+
.option("--order <number>", "Target order in the status column")
|
|
360
|
+
.description("Move an issue to a workflow status")
|
|
361
|
+
.action(async (key, status, opts) => {
|
|
362
|
+
try {
|
|
363
|
+
const trimmedStatus = status.trim();
|
|
364
|
+
if (!trimmedStatus)
|
|
365
|
+
throw new Error("Status is required.");
|
|
366
|
+
const issue = await moveIssue(key, {
|
|
367
|
+
status: trimmedStatus,
|
|
368
|
+
order: parseIssueMoveOrder(opts.order)
|
|
369
|
+
});
|
|
370
|
+
printIssueMutationResult(issue, key, moved => `Moved ${moved.key} to ${moved.status}: ${moved.title}`);
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
374
|
+
process.exit(1);
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
addOutputOptions(issuesCmd.command("delete"))
|
|
378
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
379
|
+
.option("-y, --yes", "Confirm issue deletion")
|
|
380
|
+
.description("Soft-delete an issue")
|
|
381
|
+
.action(async (key, opts) => {
|
|
382
|
+
try {
|
|
383
|
+
await requireConfirmation(`Delete issue ${key}?`, opts.yes === true);
|
|
384
|
+
printIssueDeleteResult(await deleteIssue(key), key);
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
388
|
+
process.exit(1);
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
addOutputOptions(issuesCmd.command("archive"))
|
|
392
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
393
|
+
.description("Archive a completed issue")
|
|
394
|
+
.action(async (key) => {
|
|
395
|
+
try {
|
|
396
|
+
const issue = await archiveIssue(key);
|
|
397
|
+
printIssueMutationResult(issue, key, archived => `Archived ${archived.key}: ${archived.title}`);
|
|
398
|
+
}
|
|
399
|
+
catch (error) {
|
|
400
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
401
|
+
process.exit(1);
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
addOutputOptions(issuesCmd.command("restore"))
|
|
405
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
406
|
+
.description("Restore an archived issue")
|
|
407
|
+
.action(async (key) => {
|
|
408
|
+
try {
|
|
409
|
+
const issue = await restoreIssue(key);
|
|
410
|
+
printIssueMutationResult(issue, key, restored => `Restored ${restored.key}: ${restored.title}`);
|
|
411
|
+
}
|
|
412
|
+
catch (error) {
|
|
413
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
414
|
+
process.exit(1);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
addOutputOptions(issuesCmd.command("subtasks"))
|
|
418
|
+
.argument("<key>", "Parent issue key (e.g. ENG-42)")
|
|
419
|
+
.option("-n, --limit <number>", "Max subtasks", "20")
|
|
420
|
+
.description("List issue subtasks")
|
|
421
|
+
.action(async (key, opts) => {
|
|
422
|
+
try {
|
|
423
|
+
printIssueListResult(await listIssueSubtasks(key, { limit: parsePositiveIntegerOption(opts.limit) }), key);
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
427
|
+
process.exit(1);
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
addOutputOptions(issuesCmd.command("similar"))
|
|
431
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
432
|
+
.option("-n, --limit <number>", "Max similar issues", "5")
|
|
433
|
+
.description("Find similar issues")
|
|
434
|
+
.action(async (key, opts) => {
|
|
435
|
+
try {
|
|
436
|
+
printIssueListResult(await listSimilarIssues(key, { limit: parsePositiveIntegerOption(opts.limit) }), key);
|
|
437
|
+
}
|
|
438
|
+
catch (error) {
|
|
439
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
440
|
+
process.exit(1);
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
addOutputOptions(issuesCmd.command("comments"))
|
|
444
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
445
|
+
.option("-n, --limit <number>", "Max comments", "20")
|
|
446
|
+
.description("List issue comments")
|
|
447
|
+
.action(async (key, opts) => {
|
|
448
|
+
try {
|
|
449
|
+
printIssueCommentsResult(await listIssueComments(key, { limit: parsePositiveIntegerOption(opts.limit) }), key);
|
|
450
|
+
}
|
|
451
|
+
catch (error) {
|
|
452
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
453
|
+
process.exit(1);
|
|
454
|
+
}
|
|
455
|
+
});
|
|
456
|
+
addOutputOptions(issuesCmd.command("comment"))
|
|
457
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
458
|
+
.option("--body <text>", "Comment body")
|
|
459
|
+
.description("Add an issue comment")
|
|
460
|
+
.action(async (key, opts) => {
|
|
461
|
+
try {
|
|
462
|
+
printIssueCommentResult(await addIssueComment(key, resolveCommentBody(opts.body)), key);
|
|
463
|
+
}
|
|
464
|
+
catch (error) {
|
|
465
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
466
|
+
process.exit(1);
|
|
467
|
+
}
|
|
468
|
+
});
|
|
469
|
+
addOutputOptions(issuesCmd.command("activity"))
|
|
470
|
+
.argument("<key>", "Issue key (e.g. ENG-42)")
|
|
471
|
+
.option("-n, --limit <number>", "Max activity rows", "20")
|
|
472
|
+
.description("List issue activity")
|
|
473
|
+
.action(async (key, opts) => {
|
|
474
|
+
try {
|
|
475
|
+
printIssueActivityResult(await listIssueActivity(key, { limit: parsePositiveIntegerOption(opts.limit) }), key);
|
|
476
|
+
}
|
|
477
|
+
catch (error) {
|
|
478
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
479
|
+
process.exit(1);
|
|
480
|
+
}
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/commands/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/commands/labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiLxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF7D"}
|