centy 0.0.24 → 0.0.26
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/dist/commands/add/plan.d.ts +18 -0
- package/dist/commands/add/plan.d.ts.map +1 -0
- package/dist/commands/add/plan.js +87 -0
- package/dist/commands/add/plan.js.map +1 -0
- package/dist/commands/assign/issue.d.ts +19 -0
- package/dist/commands/assign/issue.d.ts.map +1 -0
- package/dist/commands/assign/issue.js +79 -0
- package/dist/commands/assign/issue.js.map +1 -0
- package/dist/commands/close/issue.d.ts +16 -0
- package/dist/commands/close/issue.d.ts.map +1 -0
- package/dist/commands/close/issue.js +54 -0
- package/dist/commands/close/issue.js.map +1 -0
- package/dist/commands/close/org-issue.d.ts +17 -0
- package/dist/commands/close/org-issue.d.ts.map +1 -0
- package/dist/commands/close/org-issue.js +69 -0
- package/dist/commands/close/org-issue.js.map +1 -0
- package/dist/commands/close.d.ts +22 -0
- package/dist/commands/close.d.ts.map +1 -0
- package/dist/commands/close.js +198 -0
- package/dist/commands/close.js.map +1 -0
- package/dist/commands/create/issue.d.ts +1 -0
- package/dist/commands/create/issue.d.ts.map +1 -1
- package/dist/commands/create/issue.js +6 -0
- package/dist/commands/create/issue.js.map +1 -1
- package/dist/commands/create/user.d.ts +18 -0
- package/dist/commands/create/user.d.ts.map +1 -0
- package/dist/commands/create/user.js +85 -0
- package/dist/commands/create/user.js.map +1 -0
- package/dist/commands/delete/plan.d.ts +17 -0
- package/dist/commands/delete/plan.d.ts.map +1 -0
- package/dist/commands/delete/plan.js +74 -0
- package/dist/commands/delete/plan.js.map +1 -0
- package/dist/commands/delete/user.d.ts +17 -0
- package/dist/commands/delete/user.d.ts.map +1 -0
- package/dist/commands/delete/user.js +73 -0
- package/dist/commands/delete/user.js.map +1 -0
- package/dist/commands/duplicate/doc.d.ts +19 -0
- package/dist/commands/duplicate/doc.d.ts.map +1 -0
- package/dist/commands/duplicate/doc.js +87 -0
- package/dist/commands/duplicate/doc.js.map +1 -0
- package/dist/commands/duplicate/issue.d.ts +18 -0
- package/dist/commands/duplicate/issue.d.ts.map +1 -0
- package/dist/commands/duplicate/issue.js +82 -0
- package/dist/commands/duplicate/issue.js.map +1 -0
- package/dist/commands/get/issue.d.ts +1 -0
- package/dist/commands/get/issue.d.ts.map +1 -1
- package/dist/commands/get/issue.js +38 -1
- package/dist/commands/get/issue.js.map +1 -1
- package/dist/commands/get/plan.d.ts +18 -0
- package/dist/commands/get/plan.d.ts.map +1 -0
- package/dist/commands/get/plan.js +68 -0
- package/dist/commands/get/plan.js.map +1 -0
- package/dist/commands/get/user.d.ts +17 -0
- package/dist/commands/get/user.d.ts.map +1 -0
- package/dist/commands/get/user.js +75 -0
- package/dist/commands/get/user.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +43 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list/issues.d.ts +1 -0
- package/dist/commands/list/issues.d.ts.map +1 -1
- package/dist/commands/list/issues.js +9 -1
- package/dist/commands/list/issues.js.map +1 -1
- package/dist/commands/list/users.d.ts +15 -0
- package/dist/commands/list/users.d.ts.map +1 -0
- package/dist/commands/list/users.js +67 -0
- package/dist/commands/list/users.js.map +1 -0
- package/dist/commands/move/doc.d.ts +18 -0
- package/dist/commands/move/doc.d.ts.map +1 -0
- package/dist/commands/move/doc.js +82 -0
- package/dist/commands/move/doc.js.map +1 -0
- package/dist/commands/move/issue.d.ts +17 -0
- package/dist/commands/move/issue.d.ts.map +1 -0
- package/dist/commands/move/issue.js +74 -0
- package/dist/commands/move/issue.js.map +1 -0
- package/dist/commands/project/title.d.ts +19 -0
- package/dist/commands/project/title.d.ts.map +1 -0
- package/dist/commands/project/title.js +76 -0
- package/dist/commands/project/title.js.map +1 -0
- package/dist/commands/sync/users.d.ts +17 -0
- package/dist/commands/sync/users.d.ts.map +1 -0
- package/dist/commands/sync/users.js +105 -0
- package/dist/commands/sync/users.js.map +1 -0
- package/dist/commands/unassign/issue.d.ts +19 -0
- package/dist/commands/unassign/issue.d.ts.map +1 -0
- package/dist/commands/unassign/issue.js +79 -0
- package/dist/commands/unassign/issue.js.map +1 -0
- package/dist/commands/update/issue.d.ts +1 -0
- package/dist/commands/update/issue.d.ts.map +1 -1
- package/dist/commands/update/issue.js +7 -1
- package/dist/commands/update/issue.js.map +1 -1
- package/dist/commands/update/user.d.ts +20 -0
- package/dist/commands/update/user.d.ts.map +1 -0
- package/dist/commands/update/user.js +88 -0
- package/dist/commands/update/user.js.map +1 -0
- package/dist/daemon/daemon-assign-issue.d.ts +6 -0
- package/dist/daemon/daemon-assign-issue.d.ts.map +1 -0
- package/dist/daemon/daemon-assign-issue.js +17 -0
- package/dist/daemon/daemon-assign-issue.js.map +1 -0
- package/dist/daemon/daemon-create-user.d.ts +6 -0
- package/dist/daemon/daemon-create-user.d.ts.map +1 -0
- package/dist/daemon/daemon-create-user.js +17 -0
- package/dist/daemon/daemon-create-user.js.map +1 -0
- package/dist/daemon/daemon-delete-plan.d.ts +6 -0
- package/dist/daemon/daemon-delete-plan.d.ts.map +1 -0
- package/dist/daemon/daemon-delete-plan.js +17 -0
- package/dist/daemon/daemon-delete-plan.js.map +1 -0
- package/dist/daemon/daemon-delete-user.d.ts +6 -0
- package/dist/daemon/daemon-delete-user.d.ts.map +1 -0
- package/dist/daemon/daemon-delete-user.js +17 -0
- package/dist/daemon/daemon-delete-user.js.map +1 -0
- package/dist/daemon/daemon-duplicate-doc.d.ts +6 -0
- package/dist/daemon/daemon-duplicate-doc.d.ts.map +1 -0
- package/dist/daemon/daemon-duplicate-doc.js +17 -0
- package/dist/daemon/daemon-duplicate-doc.js.map +1 -0
- package/dist/daemon/daemon-duplicate-issue.d.ts +6 -0
- package/dist/daemon/daemon-duplicate-issue.d.ts.map +1 -0
- package/dist/daemon/daemon-duplicate-issue.js +17 -0
- package/dist/daemon/daemon-duplicate-issue.js.map +1 -0
- package/dist/daemon/daemon-get-plan.d.ts +6 -0
- package/dist/daemon/daemon-get-plan.d.ts.map +1 -0
- package/dist/daemon/daemon-get-plan.js +17 -0
- package/dist/daemon/daemon-get-plan.js.map +1 -0
- package/dist/daemon/daemon-get-user.d.ts +6 -0
- package/dist/daemon/daemon-get-user.d.ts.map +1 -0
- package/dist/daemon/daemon-get-user.js +17 -0
- package/dist/daemon/daemon-get-user.js.map +1 -0
- package/dist/daemon/daemon-list-users.d.ts +6 -0
- package/dist/daemon/daemon-list-users.d.ts.map +1 -0
- package/dist/daemon/daemon-list-users.js +17 -0
- package/dist/daemon/daemon-list-users.js.map +1 -0
- package/dist/daemon/daemon-move-doc.d.ts +6 -0
- package/dist/daemon/daemon-move-doc.d.ts.map +1 -0
- package/dist/daemon/daemon-move-doc.js +17 -0
- package/dist/daemon/daemon-move-doc.js.map +1 -0
- package/dist/daemon/daemon-move-issue.d.ts +6 -0
- package/dist/daemon/daemon-move-issue.d.ts.map +1 -0
- package/dist/daemon/daemon-move-issue.js +17 -0
- package/dist/daemon/daemon-move-issue.js.map +1 -0
- package/dist/daemon/daemon-set-project-title.d.ts +7 -0
- package/dist/daemon/daemon-set-project-title.d.ts.map +1 -0
- package/dist/daemon/daemon-set-project-title.js +18 -0
- package/dist/daemon/daemon-set-project-title.js.map +1 -0
- package/dist/daemon/daemon-set-project-user-title.d.ts +7 -0
- package/dist/daemon/daemon-set-project-user-title.d.ts.map +1 -0
- package/dist/daemon/daemon-set-project-user-title.js +18 -0
- package/dist/daemon/daemon-set-project-user-title.js.map +1 -0
- package/dist/daemon/daemon-spawn-agent.d.ts +6 -0
- package/dist/daemon/daemon-spawn-agent.d.ts.map +1 -0
- package/dist/daemon/daemon-spawn-agent.js +17 -0
- package/dist/daemon/daemon-spawn-agent.js.map +1 -0
- package/dist/daemon/daemon-sync-users.d.ts +6 -0
- package/dist/daemon/daemon-sync-users.d.ts.map +1 -0
- package/dist/daemon/daemon-sync-users.js +17 -0
- package/dist/daemon/daemon-sync-users.js.map +1 -0
- package/dist/daemon/daemon-unassign-issue.d.ts +6 -0
- package/dist/daemon/daemon-unassign-issue.d.ts.map +1 -0
- package/dist/daemon/daemon-unassign-issue.js +17 -0
- package/dist/daemon/daemon-unassign-issue.js.map +1 -0
- package/dist/daemon/daemon-update-plan.d.ts +6 -0
- package/dist/daemon/daemon-update-plan.d.ts.map +1 -0
- package/dist/daemon/daemon-update-plan.js +17 -0
- package/dist/daemon/daemon-update-plan.js.map +1 -0
- package/dist/daemon/daemon-update-user.d.ts +6 -0
- package/dist/daemon/daemon-update-user.d.ts.map +1 -0
- package/dist/daemon/daemon-update-user.js +17 -0
- package/dist/daemon/daemon-update-user.js.map +1 -0
- package/dist/daemon/load-proto.d.ts +20 -1
- package/dist/daemon/load-proto.d.ts.map +1 -1
- package/dist/daemon/load-proto.js.map +1 -1
- package/dist/daemon/types.d.ts +242 -0
- package/dist/daemon/types.d.ts.map +1 -1
- package/dist/hooks/postrun.d.ts +4 -0
- package/dist/hooks/postrun.d.ts.map +1 -0
- package/dist/hooks/postrun.js +17 -0
- package/dist/hooks/postrun.js.map +1 -0
- package/dist/lib/create-issue/create-issue.d.ts.map +1 -1
- package/dist/lib/create-issue/create-issue.js +3 -0
- package/dist/lib/create-issue/create-issue.js.map +1 -1
- package/dist/lib/init/init.d.ts +7 -0
- package/dist/lib/init/init.d.ts.map +1 -1
- package/dist/lib/init/init.js +51 -1
- package/dist/lib/init/init.js.map +1 -1
- package/dist/lib/install-daemon/github-api.d.ts.map +1 -1
- package/dist/lib/install-daemon/github-api.js +50 -39
- package/dist/lib/install-daemon/github-api.js.map +1 -1
- package/dist/tui/components/domain/AssetList.js +1 -3
- package/dist/tui/components/domain/AssetList.js.map +1 -1
- package/dist/tui/components/domain/ConfigPanel.js +1 -3
- package/dist/tui/components/domain/ConfigPanel.js.map +1 -1
- package/dist/tui/components/domain/DocCreate.d.ts.map +1 -1
- package/dist/tui/components/domain/DocCreate.js +10 -43
- package/dist/tui/components/domain/DocCreate.js.map +1 -1
- package/dist/tui/components/domain/IssueCreate.d.ts.map +1 -1
- package/dist/tui/components/domain/IssueCreate.js +11 -55
- package/dist/tui/components/domain/IssueCreate.js.map +1 -1
- package/dist/tui/components/domain/IssueEdit.d.ts.map +1 -1
- package/dist/tui/components/domain/IssueEdit.js +15 -54
- package/dist/tui/components/domain/IssueEdit.js.map +1 -1
- package/dist/tui/components/domain/IssueList.js +1 -1
- package/dist/tui/components/domain/IssueList.js.map +1 -1
- package/dist/tui/components/domain/PRCreate.d.ts.map +1 -1
- package/dist/tui/components/domain/PRCreate.js +12 -47
- package/dist/tui/components/domain/PRCreate.js.map +1 -1
- package/dist/tui/components/domain/PREdit.d.ts.map +1 -1
- package/dist/tui/components/domain/PREdit.js +17 -51
- package/dist/tui/components/domain/PREdit.js.map +1 -1
- package/dist/tui/components/domain/PRList.js +1 -1
- package/dist/tui/components/domain/PRList.js.map +1 -1
- package/dist/tui/components/domain/ProjectCreate.d.ts.map +1 -1
- package/dist/tui/components/domain/ProjectCreate.js +5 -13
- package/dist/tui/components/domain/ProjectCreate.js.map +1 -1
- package/dist/tui/components/domain/ProjectList.js +1 -3
- package/dist/tui/components/domain/ProjectList.js.map +1 -1
- package/dist/tui/components/form/FormInput.d.ts +12 -0
- package/dist/tui/components/form/FormInput.d.ts.map +1 -0
- package/dist/tui/components/form/FormInput.js +6 -0
- package/dist/tui/components/form/FormInput.js.map +1 -0
- package/dist/tui/components/form/FormTextarea.d.ts +11 -0
- package/dist/tui/components/form/FormTextarea.d.ts.map +1 -0
- package/dist/tui/components/form/FormTextarea.js +13 -0
- package/dist/tui/components/form/FormTextarea.js.map +1 -0
- package/dist/tui/components/form/index.d.ts +3 -0
- package/dist/tui/components/form/index.d.ts.map +1 -0
- package/dist/tui/components/form/index.js +3 -0
- package/dist/tui/components/form/index.js.map +1 -0
- package/dist/tui/components/layout/Sidebar.js +1 -1
- package/dist/tui/components/layout/Sidebar.js.map +1 -1
- package/dist/tui/hooks/useNavigation.d.ts +1 -0
- package/dist/tui/hooks/useNavigation.d.ts.map +1 -1
- package/dist/tui/hooks/useNavigation.js +4 -0
- package/dist/tui/hooks/useNavigation.js.map +1 -1
- package/dist/tui/state/app-state.d.ts +4 -0
- package/dist/tui/state/app-state.d.ts.map +1 -1
- package/dist/tui/state/app-state.js +7 -0
- package/dist/tui/state/app-state.js.map +1 -1
- package/dist/types/create-issue-options.d.ts +2 -0
- package/dist/types/create-issue-options.d.ts.map +1 -1
- package/dist/types/init-options.d.ts +14 -0
- package/dist/types/init-options.d.ts.map +1 -1
- package/dist/utils/is-valid-uuid.js +2 -2
- package/dist/utils/is-valid-uuid.js.map +1 -1
- package/oclif.manifest.json +1270 -155
- package/package.json +9 -3
- package/proto/centy.proto +230 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Add or update an issue's plan
|
|
4
|
+
*/
|
|
5
|
+
export default class AddPlan extends Command {
|
|
6
|
+
static aliases: string[];
|
|
7
|
+
static args: {
|
|
8
|
+
issueId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
+
};
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
};
|
|
16
|
+
run(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/add/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAE1C,OAAgB,OAAO,WAA8B;IAGrD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAkC;IAG7D,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;MAMpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDlC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
// eslint-disable-next-line import/order
|
|
3
|
+
import { Args, Command, Flags } from '@oclif/core';
|
|
4
|
+
import { daemonUpdatePlan } from '../../daemon/daemon-update-plan.js';
|
|
5
|
+
import { projectFlag } from '../../flags/project-flag.js';
|
|
6
|
+
import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
|
|
7
|
+
import { resolveProjectPath } from '../../utils/resolve-project-path.js';
|
|
8
|
+
/**
|
|
9
|
+
* Add or update an issue's plan
|
|
10
|
+
*/
|
|
11
|
+
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
12
|
+
export default class AddPlan extends Command {
|
|
13
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
14
|
+
static aliases = ['update:plan', 'set:plan'];
|
|
15
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
16
|
+
static args = {
|
|
17
|
+
issueId: Args.string({
|
|
18
|
+
description: 'Issue ID or display number',
|
|
19
|
+
required: true,
|
|
20
|
+
}),
|
|
21
|
+
};
|
|
22
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
23
|
+
static description = "Add or update an issue's plan";
|
|
24
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
25
|
+
static examples = [
|
|
26
|
+
'<%= config.bin %> add plan 1 --file ./plan.md',
|
|
27
|
+
'<%= config.bin %> add plan abc123 --file ./plan.md',
|
|
28
|
+
'echo "# Plan" | <%= config.bin %> add plan 1',
|
|
29
|
+
'<%= config.bin %> add plan 1 --project centy-daemon --file ./plan.md',
|
|
30
|
+
];
|
|
31
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
32
|
+
static flags = {
|
|
33
|
+
file: Flags.string({
|
|
34
|
+
char: 'f',
|
|
35
|
+
description: 'Path to the plan file (reads from stdin if not provided)',
|
|
36
|
+
}),
|
|
37
|
+
project: projectFlag,
|
|
38
|
+
};
|
|
39
|
+
async run() {
|
|
40
|
+
const { args, flags } = await this.parse(AddPlan);
|
|
41
|
+
const cwd = await resolveProjectPath(flags.project);
|
|
42
|
+
try {
|
|
43
|
+
await ensureInitialized(cwd);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (error instanceof NotInitializedError) {
|
|
47
|
+
this.error(error.message);
|
|
48
|
+
}
|
|
49
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
50
|
+
}
|
|
51
|
+
let content;
|
|
52
|
+
if (flags.file) {
|
|
53
|
+
try {
|
|
54
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
55
|
+
content = await readFile(flags.file, 'utf-8');
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
59
|
+
if (msg.includes('ENOENT')) {
|
|
60
|
+
this.error(`File not found: ${flags.file}`);
|
|
61
|
+
}
|
|
62
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (!process.stdin.isTTY) {
|
|
66
|
+
// Read from stdin
|
|
67
|
+
const chunks = [];
|
|
68
|
+
for await (const chunk of process.stdin) {
|
|
69
|
+
chunks.push(Buffer.from(chunk));
|
|
70
|
+
}
|
|
71
|
+
content = Buffer.concat(chunks).toString('utf-8');
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.error('No input provided. Use --file or pipe content via stdin.');
|
|
75
|
+
}
|
|
76
|
+
const response = await daemonUpdatePlan({
|
|
77
|
+
projectPath: cwd,
|
|
78
|
+
issueId: args.issueId,
|
|
79
|
+
content,
|
|
80
|
+
});
|
|
81
|
+
if (!response.success) {
|
|
82
|
+
this.error(response.error);
|
|
83
|
+
}
|
|
84
|
+
this.log(`Plan updated for issue ${args.issueId}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/add/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Assign users to an issue
|
|
4
|
+
*/
|
|
5
|
+
export default class AssignIssue extends Command {
|
|
6
|
+
static args: {
|
|
7
|
+
issueId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
userIds: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
+
};
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
};
|
|
16
|
+
static strict: boolean;
|
|
17
|
+
run(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=issue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/assign/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAE9C,OAAgB,IAAI;;;MASnB;IAGD,OAAgB,WAAW,SAA6B;IAGxD,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;MAMpB;IAGD,OAAgB,MAAM,UAAQ;IAEjB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8ClC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// eslint-disable-next-line import/order
|
|
2
|
+
import { Args, Command, Flags } from '@oclif/core';
|
|
3
|
+
import { daemonAssignIssue } from '../../daemon/daemon-assign-issue.js';
|
|
4
|
+
import { projectFlag } from '../../flags/project-flag.js';
|
|
5
|
+
import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
|
|
6
|
+
import { resolveProjectPath } from '../../utils/resolve-project-path.js';
|
|
7
|
+
/**
|
|
8
|
+
* Assign users to an issue
|
|
9
|
+
*/
|
|
10
|
+
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
11
|
+
export default class AssignIssue extends Command {
|
|
12
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
13
|
+
static args = {
|
|
14
|
+
issueId: Args.string({
|
|
15
|
+
description: 'Issue ID (UUID) or display number',
|
|
16
|
+
required: true,
|
|
17
|
+
}),
|
|
18
|
+
userIds: Args.string({
|
|
19
|
+
description: 'User IDs to assign (space-separated)',
|
|
20
|
+
required: true,
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
24
|
+
static description = 'Assign users to an issue';
|
|
25
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
26
|
+
static examples = [
|
|
27
|
+
'<%= config.bin %> assign issue 1 john-doe',
|
|
28
|
+
'<%= config.bin %> assign issue abc123-uuid alice bob',
|
|
29
|
+
'<%= config.bin %> assign issue 1 john-doe --project centy-daemon',
|
|
30
|
+
];
|
|
31
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
32
|
+
static flags = {
|
|
33
|
+
json: Flags.boolean({
|
|
34
|
+
description: 'Output as JSON',
|
|
35
|
+
default: false,
|
|
36
|
+
}),
|
|
37
|
+
project: projectFlag,
|
|
38
|
+
};
|
|
39
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
40
|
+
static strict = false;
|
|
41
|
+
async run() {
|
|
42
|
+
const { args, argv, flags } = await this.parse(AssignIssue);
|
|
43
|
+
const cwd = await resolveProjectPath(flags.project);
|
|
44
|
+
try {
|
|
45
|
+
await ensureInitialized(cwd);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
if (error instanceof NotInitializedError) {
|
|
49
|
+
this.error(error.message);
|
|
50
|
+
}
|
|
51
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
52
|
+
}
|
|
53
|
+
// Get all user IDs from argv (everything after the issue ID)
|
|
54
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
55
|
+
const userIds = argv.slice(1);
|
|
56
|
+
if (userIds.length === 0) {
|
|
57
|
+
this.error('At least one user ID is required');
|
|
58
|
+
}
|
|
59
|
+
const response = await daemonAssignIssue({
|
|
60
|
+
projectPath: cwd,
|
|
61
|
+
issueId: args.issueId,
|
|
62
|
+
userIds,
|
|
63
|
+
});
|
|
64
|
+
if (!response.success) {
|
|
65
|
+
this.error(response.error);
|
|
66
|
+
}
|
|
67
|
+
if (flags.json) {
|
|
68
|
+
this.log(JSON.stringify(response.issue, null, 2));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const issue = response.issue;
|
|
72
|
+
if (issue !== undefined) {
|
|
73
|
+
this.log(`Assigned ${userIds.join(', ')} to issue #${issue.displayNumber}`);
|
|
74
|
+
const assignees = issue.metadata.assignees;
|
|
75
|
+
this.log(`Current assignees: ${assignees.length > 0 ? assignees.join(', ') : 'none'}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/assign/issue.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAExE;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,gDAAgD;IAChD,MAAM,CAAU,IAAI,GAAG;QACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,0BAA0B,CAAA;IAExD,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,2CAA2C;QAC3C,sDAAsD;QACtD,kEAAkE;KACnE,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,WAAW;KACrB,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,MAAM,GAAG,KAAK,CAAA;IAEvB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC3D,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,6DAA6D;QAC7D,gDAAgD;QAChD,MAAM,OAAO,GAAI,IAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;YACvC,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACjD,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CACN,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,aAAa,EAAE,CAClE,CAAA;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAA;YAC1C,IAAI,CAAC,GAAG,CACN,sBAAsB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAC7E,CAAA;QACH,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Close an issue by setting its status to closed
|
|
4
|
+
*/
|
|
5
|
+
export default class CloseIssue extends Command {
|
|
6
|
+
static args: {
|
|
7
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static description: string;
|
|
10
|
+
static examples: string[];
|
|
11
|
+
static flags: {
|
|
12
|
+
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=issue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/close/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAA;AAU3C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAE7C,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAmB;IAG9C,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;MAEpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyBlC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// eslint-disable-next-line import/order
|
|
2
|
+
import { Args, Command } from '@oclif/core';
|
|
3
|
+
import { daemonUpdateIssue } from '../../daemon/daemon-update-issue.js';
|
|
4
|
+
import { projectFlag } from '../../flags/project-flag.js';
|
|
5
|
+
import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
|
|
6
|
+
import { resolveProjectPath } from '../../utils/resolve-project-path.js';
|
|
7
|
+
/**
|
|
8
|
+
* Close an issue by setting its status to closed
|
|
9
|
+
*/
|
|
10
|
+
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
11
|
+
export default class CloseIssue extends Command {
|
|
12
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
13
|
+
static args = {
|
|
14
|
+
id: Args.string({
|
|
15
|
+
description: 'Issue ID (UUID) or display number',
|
|
16
|
+
required: true,
|
|
17
|
+
}),
|
|
18
|
+
};
|
|
19
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
20
|
+
static description = 'Close an issue';
|
|
21
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
22
|
+
static examples = [
|
|
23
|
+
'<%= config.bin %> close issue 1',
|
|
24
|
+
'<%= config.bin %> close issue abc123-uuid',
|
|
25
|
+
'<%= config.bin %> close issue 1 --project centy-daemon',
|
|
26
|
+
];
|
|
27
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
28
|
+
static flags = {
|
|
29
|
+
project: projectFlag,
|
|
30
|
+
};
|
|
31
|
+
async run() {
|
|
32
|
+
const { args, flags } = await this.parse(CloseIssue);
|
|
33
|
+
const cwd = await resolveProjectPath(flags.project);
|
|
34
|
+
try {
|
|
35
|
+
await ensureInitialized(cwd);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
if (error instanceof NotInitializedError) {
|
|
39
|
+
this.error(error.message);
|
|
40
|
+
}
|
|
41
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
42
|
+
}
|
|
43
|
+
const response = await daemonUpdateIssue({
|
|
44
|
+
projectPath: cwd,
|
|
45
|
+
issueId: args.id,
|
|
46
|
+
status: 'closed',
|
|
47
|
+
});
|
|
48
|
+
if (!response.success) {
|
|
49
|
+
this.error(response.error);
|
|
50
|
+
}
|
|
51
|
+
this.log(`Closed issue #${response.issue.displayNumber}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/close/issue.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAExE;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,gDAAgD;IAChD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,gBAAgB,CAAA;IAE9C,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,iCAAiC;QACjC,2CAA2C;QAC3C,wDAAwD;KACzD,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,OAAO,EAAE,WAAW;KACrB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;YACvC,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAA;IAC3D,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Close an organization-level issue by setting its status to closed
|
|
4
|
+
*/
|
|
5
|
+
export default class CloseOrgIssue extends Command {
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static args: {
|
|
9
|
+
identifier: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
+
};
|
|
11
|
+
static flags: {
|
|
12
|
+
org: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=org-issue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-issue.d.ts","sourceRoot":"","sources":["../../../src/commands/close/org-issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAEhD,OAAgB,WAAW,SAAsC;IAGjE,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,KAAK;;;MAUpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoClC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// eslint-disable-next-line import/order
|
|
2
|
+
import { Args, Command, Flags } from '@oclif/core';
|
|
3
|
+
import { daemonGetOrgIssueByDisplayNumber } from '../../daemon/daemon-get-org-issue-by-display-number.js';
|
|
4
|
+
import { daemonUpdateOrgIssue } from '../../daemon/daemon-update-org-issue.js';
|
|
5
|
+
/**
|
|
6
|
+
* Close an organization-level issue by setting its status to closed
|
|
7
|
+
*/
|
|
8
|
+
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
9
|
+
export default class CloseOrgIssue extends Command {
|
|
10
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
11
|
+
static description = 'Close an organization-level issue';
|
|
12
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
13
|
+
static examples = [
|
|
14
|
+
'<%= config.bin %> close org-issue --org my-org 1',
|
|
15
|
+
'<%= config.bin %> close org-issue --org my-org #1',
|
|
16
|
+
'<%= config.bin %> close org-issue -o centy-io abc123',
|
|
17
|
+
];
|
|
18
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
19
|
+
static args = {
|
|
20
|
+
identifier: Args.string({
|
|
21
|
+
description: 'Issue ID or display number (#N or just N)',
|
|
22
|
+
required: true,
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
26
|
+
static flags = {
|
|
27
|
+
org: Flags.string({
|
|
28
|
+
char: 'o',
|
|
29
|
+
description: 'Organization slug',
|
|
30
|
+
required: true,
|
|
31
|
+
}),
|
|
32
|
+
json: Flags.boolean({
|
|
33
|
+
description: 'Output as JSON',
|
|
34
|
+
default: false,
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
async run() {
|
|
38
|
+
const { args, flags } = await this.parse(CloseOrgIssue);
|
|
39
|
+
// Resolve issue ID from display number if needed
|
|
40
|
+
let issueId;
|
|
41
|
+
const identifier = args.identifier;
|
|
42
|
+
const displayNumberMatch = identifier.match(/^#?(\d+)$/);
|
|
43
|
+
if (displayNumberMatch) {
|
|
44
|
+
const displayNumber = Number.parseInt(displayNumberMatch[1], 10);
|
|
45
|
+
const issue = await daemonGetOrgIssueByDisplayNumber({
|
|
46
|
+
orgSlug: flags.org,
|
|
47
|
+
displayNumber,
|
|
48
|
+
});
|
|
49
|
+
issueId = issue.id;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
issueId = identifier;
|
|
53
|
+
}
|
|
54
|
+
const response = await daemonUpdateOrgIssue({
|
|
55
|
+
orgSlug: flags.org,
|
|
56
|
+
issueId,
|
|
57
|
+
status: 'closed',
|
|
58
|
+
});
|
|
59
|
+
if (!response.success) {
|
|
60
|
+
this.error(response.error);
|
|
61
|
+
}
|
|
62
|
+
if (flags.json) {
|
|
63
|
+
this.log(JSON.stringify(response.issue, null, 2));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
this.log(`Closed organization issue #${response.issue.displayNumber}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=org-issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-issue.js","sourceRoot":"","sources":["../../../src/commands/close/org-issue.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wDAAwD,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAA;AAE9E;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,mCAAmC,CAAA;IAEjE,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,kDAAkD;QAClD,mDAAmD;QACnD,sDAAsD;KACvD,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,IAAI,GAAG;QACrB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAEvD,iDAAiD;QACjD,IAAI,OAAe,CAAA;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAClC,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAExD,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAChE,MAAM,KAAK,GAAG,MAAM,gCAAgC,CAAC;gBACnD,OAAO,EAAE,KAAK,CAAC,GAAG;gBAClB,aAAa;aACd,CAAC,CAAA;YACF,OAAO,GAAG,KAAK,CAAC,EAAE,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,CAAA;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC1C,OAAO,EAAE,KAAK,CAAC,GAAG;YAClB,OAAO;YACP,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACjD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,8BAA8B,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAA;IACxE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Generic close command for issues, PRs, and org-issues
|
|
4
|
+
*/
|
|
5
|
+
export default class Close extends Command {
|
|
6
|
+
static args: {
|
|
7
|
+
identifier: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static description: string;
|
|
10
|
+
static examples: string[];
|
|
11
|
+
static flags: {
|
|
12
|
+
type: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
org: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
};
|
|
17
|
+
run(): Promise<void>;
|
|
18
|
+
private closeIssue;
|
|
19
|
+
private closePr;
|
|
20
|
+
private closeOrgIssue;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=close.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAuBlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IAExC,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAC2B;IAGtD,OAAgB,QAAQ,WAOvB;IAGD,OAAgB,KAAK;;;;;MAepB;IAGY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAmGnB,UAAU;YA4BV,OAAO;YA4BP,aAAa;CA6B5B"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
// eslint-disable-next-line import/order
|
|
3
|
+
import { Args, Command, Flags } from '@oclif/core';
|
|
4
|
+
import { daemonGetIssueByDisplayNumber } from '../daemon/daemon-get-issue-by-display-number.js';
|
|
5
|
+
import { daemonGetOrgIssueByDisplayNumber } from '../daemon/daemon-get-org-issue-by-display-number.js';
|
|
6
|
+
import { daemonGetPrByDisplayNumber } from '../daemon/daemon-get-pr-by-display-number.js';
|
|
7
|
+
import { daemonUpdateIssue } from '../daemon/daemon-update-issue.js';
|
|
8
|
+
import { daemonUpdateOrgIssue } from '../daemon/daemon-update-org-issue.js';
|
|
9
|
+
import { daemonUpdatePr } from '../daemon/daemon-update-pr.js';
|
|
10
|
+
import { projectFlag } from '../flags/project-flag.js';
|
|
11
|
+
import { ensureInitialized, NotInitializedError, } from '../utils/ensure-initialized.js';
|
|
12
|
+
import { resolveProjectPath } from '../utils/resolve-project-path.js';
|
|
13
|
+
/**
|
|
14
|
+
* Generic close command for issues, PRs, and org-issues
|
|
15
|
+
*/
|
|
16
|
+
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
17
|
+
export default class Close extends Command {
|
|
18
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
19
|
+
static args = {
|
|
20
|
+
identifier: Args.string({
|
|
21
|
+
description: 'Display number (#N or N) or UUID',
|
|
22
|
+
required: true,
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
26
|
+
static description = 'Close an issue, PR, or org-issue by display number';
|
|
27
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
28
|
+
static examples = [
|
|
29
|
+
'<%= config.bin %> close 1',
|
|
30
|
+
'<%= config.bin %> close #1',
|
|
31
|
+
'<%= config.bin %> close 1 --type issue',
|
|
32
|
+
'<%= config.bin %> close 1 --type pr',
|
|
33
|
+
'<%= config.bin %> close 1 --org my-org',
|
|
34
|
+
'<%= config.bin %> close 1 --project centy-daemon',
|
|
35
|
+
];
|
|
36
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
37
|
+
static flags = {
|
|
38
|
+
type: Flags.string({
|
|
39
|
+
char: 't',
|
|
40
|
+
description: 'Entity type (issue, pr, org-issue)',
|
|
41
|
+
options: ['issue', 'pr', 'org-issue'],
|
|
42
|
+
}),
|
|
43
|
+
org: Flags.string({
|
|
44
|
+
char: 'o',
|
|
45
|
+
description: 'Organization slug (for org-issues)',
|
|
46
|
+
}),
|
|
47
|
+
project: projectFlag,
|
|
48
|
+
json: Flags.boolean({
|
|
49
|
+
description: 'Output as JSON',
|
|
50
|
+
default: false,
|
|
51
|
+
}),
|
|
52
|
+
};
|
|
53
|
+
// eslint-disable-next-line max-lines-per-function
|
|
54
|
+
async run() {
|
|
55
|
+
const { args, flags } = await this.parse(Close);
|
|
56
|
+
// Parse display number (supports #1 or 1 format)
|
|
57
|
+
const displayNumberMatch = args.identifier.match(/^#?(\d+)$/);
|
|
58
|
+
if (!displayNumberMatch) {
|
|
59
|
+
this.error('Invalid identifier. Please provide a display number (e.g., 1 or #1)');
|
|
60
|
+
}
|
|
61
|
+
const displayNumber = Number.parseInt(displayNumberMatch[1], 10);
|
|
62
|
+
// Handle org-issue case
|
|
63
|
+
if (flags.org !== undefined || flags.type === 'org-issue') {
|
|
64
|
+
if (flags.org === undefined) {
|
|
65
|
+
this.error('Organization slug is required for org-issues. Use --org <slug>');
|
|
66
|
+
}
|
|
67
|
+
await this.closeOrgIssue(flags.org, displayNumber, flags.json);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Resolve project path for local entities
|
|
71
|
+
const cwd = await resolveProjectPath(flags.project);
|
|
72
|
+
try {
|
|
73
|
+
await ensureInitialized(cwd);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (error instanceof NotInitializedError) {
|
|
77
|
+
this.error(error.message);
|
|
78
|
+
}
|
|
79
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
80
|
+
}
|
|
81
|
+
// If type is specified, close that type directly
|
|
82
|
+
if (flags.type !== undefined) {
|
|
83
|
+
if (flags.type === 'issue') {
|
|
84
|
+
await this.closeIssue(cwd, displayNumber, flags.json);
|
|
85
|
+
}
|
|
86
|
+
else if (flags.type === 'pr') {
|
|
87
|
+
await this.closePr(cwd, displayNumber, flags.json);
|
|
88
|
+
}
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// Search for entities with this display number
|
|
92
|
+
const foundEntities = [];
|
|
93
|
+
// Try to find issue
|
|
94
|
+
try {
|
|
95
|
+
const issue = await daemonGetIssueByDisplayNumber({
|
|
96
|
+
projectPath: cwd,
|
|
97
|
+
displayNumber,
|
|
98
|
+
});
|
|
99
|
+
foundEntities.push({
|
|
100
|
+
type: 'issue',
|
|
101
|
+
id: issue.id,
|
|
102
|
+
displayNumber: issue.displayNumber,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Issue not found, continue
|
|
107
|
+
}
|
|
108
|
+
// Try to find PR
|
|
109
|
+
try {
|
|
110
|
+
const pr = await daemonGetPrByDisplayNumber({
|
|
111
|
+
projectPath: cwd,
|
|
112
|
+
displayNumber,
|
|
113
|
+
});
|
|
114
|
+
foundEntities.push({
|
|
115
|
+
type: 'pr',
|
|
116
|
+
id: pr.id,
|
|
117
|
+
displayNumber: pr.displayNumber,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// PR not found, continue
|
|
122
|
+
}
|
|
123
|
+
// Handle results
|
|
124
|
+
if (foundEntities.length === 0) {
|
|
125
|
+
this.error(`No issue or PR found with display number #${displayNumber}`);
|
|
126
|
+
}
|
|
127
|
+
if (foundEntities.length > 1) {
|
|
128
|
+
const types = foundEntities.map(e => e.type).join(', ');
|
|
129
|
+
this.error(`Ambiguous: found multiple entities with #${displayNumber} (${types}). Use --type to specify which to close.`);
|
|
130
|
+
}
|
|
131
|
+
// Close the single found entity
|
|
132
|
+
const entity = foundEntities[0];
|
|
133
|
+
if (entity.type === 'issue') {
|
|
134
|
+
await this.closeIssue(cwd, displayNumber, flags.json);
|
|
135
|
+
}
|
|
136
|
+
else if (entity.type === 'pr') {
|
|
137
|
+
await this.closePr(cwd, displayNumber, flags.json);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async closeIssue(projectPath, displayNumber, jsonOutput) {
|
|
141
|
+
const issue = await daemonGetIssueByDisplayNumber({
|
|
142
|
+
projectPath,
|
|
143
|
+
displayNumber,
|
|
144
|
+
});
|
|
145
|
+
const response = await daemonUpdateIssue({
|
|
146
|
+
projectPath,
|
|
147
|
+
issueId: issue.id,
|
|
148
|
+
status: 'closed',
|
|
149
|
+
});
|
|
150
|
+
if (!response.success) {
|
|
151
|
+
this.error(response.error);
|
|
152
|
+
}
|
|
153
|
+
if (jsonOutput) {
|
|
154
|
+
this.log(JSON.stringify({ type: 'issue', ...response.issue }, null, 2));
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
this.log(`Closed issue #${response.issue.displayNumber}`);
|
|
158
|
+
}
|
|
159
|
+
async closePr(projectPath, displayNumber, jsonOutput) {
|
|
160
|
+
const pr = await daemonGetPrByDisplayNumber({
|
|
161
|
+
projectPath,
|
|
162
|
+
displayNumber,
|
|
163
|
+
});
|
|
164
|
+
const response = await daemonUpdatePr({
|
|
165
|
+
projectPath,
|
|
166
|
+
prId: pr.id,
|
|
167
|
+
status: 'closed',
|
|
168
|
+
});
|
|
169
|
+
if (!response.success) {
|
|
170
|
+
this.error(response.error);
|
|
171
|
+
}
|
|
172
|
+
if (jsonOutput) {
|
|
173
|
+
this.log(JSON.stringify({ type: 'pr', ...response.pr }, null, 2));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
this.log(`Closed PR #${response.pr.displayNumber}`);
|
|
177
|
+
}
|
|
178
|
+
async closeOrgIssue(orgSlug, displayNumber, jsonOutput) {
|
|
179
|
+
const issue = await daemonGetOrgIssueByDisplayNumber({
|
|
180
|
+
orgSlug,
|
|
181
|
+
displayNumber,
|
|
182
|
+
});
|
|
183
|
+
const response = await daemonUpdateOrgIssue({
|
|
184
|
+
orgSlug,
|
|
185
|
+
issueId: issue.id,
|
|
186
|
+
status: 'closed',
|
|
187
|
+
});
|
|
188
|
+
if (!response.success) {
|
|
189
|
+
this.error(response.error);
|
|
190
|
+
}
|
|
191
|
+
if (jsonOutput) {
|
|
192
|
+
this.log(JSON.stringify({ type: 'org-issue', ...response.issue }, null, 2));
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
this.log(`Closed organization issue #${response.issue.displayNumber}`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=close.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export default class CreateIssue extends Command {
|
|
|
10
10
|
description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
status: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
draft: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
14
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
15
|
};
|
|
15
16
|
run(): Promise<void>;
|