bbk-cli 1.0.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.
Files changed (76) hide show
  1. package/.claude/bitbucket-config.local.md.example +58 -0
  2. package/.eslintcache +1 -0
  3. package/.github/dependabot.yml +15 -0
  4. package/.github/workflows/convetional-commit.yml +24 -0
  5. package/.github/workflows/publish-on-tag.yml +47 -0
  6. package/.github/workflows/release-please.yml +21 -0
  7. package/.github/workflows/run-tests.yml +75 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierignore +2 -0
  10. package/.prettierrc.cjs +17 -0
  11. package/.release-please-manifest.json +3 -0
  12. package/CHANGELOG.md +21 -0
  13. package/LICENSE +202 -0
  14. package/README.md +381 -0
  15. package/dist/cli/index.d.ts +2 -0
  16. package/dist/cli/index.d.ts.map +1 -0
  17. package/dist/cli/index.js +2 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/cli/wrapper.d.ts +38 -0
  20. package/dist/cli/wrapper.d.ts.map +1 -0
  21. package/dist/cli/wrapper.js +326 -0
  22. package/dist/cli/wrapper.js.map +1 -0
  23. package/dist/commands/helpers.d.ts +11 -0
  24. package/dist/commands/helpers.d.ts.map +1 -0
  25. package/dist/commands/helpers.js +40 -0
  26. package/dist/commands/helpers.js.map +1 -0
  27. package/dist/commands/index.d.ts +3 -0
  28. package/dist/commands/index.d.ts.map +1 -0
  29. package/dist/commands/index.js +3 -0
  30. package/dist/commands/index.js.map +1 -0
  31. package/dist/commands/runner.d.ts +7 -0
  32. package/dist/commands/runner.d.ts.map +1 -0
  33. package/dist/commands/runner.js +126 -0
  34. package/dist/commands/runner.js.map +1 -0
  35. package/dist/config/constants.d.ts +16 -0
  36. package/dist/config/constants.d.ts.map +1 -0
  37. package/dist/config/constants.js +171 -0
  38. package/dist/config/constants.js.map +1 -0
  39. package/dist/config/index.d.ts +2 -0
  40. package/dist/config/index.d.ts.map +1 -0
  41. package/dist/config/index.js +2 -0
  42. package/dist/config/index.js.map +1 -0
  43. package/dist/index.d.ts +3 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +24 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/utils/arg-parser.d.ts +7 -0
  48. package/dist/utils/arg-parser.d.ts.map +1 -0
  49. package/dist/utils/arg-parser.js +67 -0
  50. package/dist/utils/arg-parser.js.map +1 -0
  51. package/dist/utils/bitbucket-client.d.ts +122 -0
  52. package/dist/utils/bitbucket-client.d.ts.map +1 -0
  53. package/dist/utils/bitbucket-client.js +182 -0
  54. package/dist/utils/bitbucket-client.js.map +1 -0
  55. package/dist/utils/bitbucket-utils.d.ts +110 -0
  56. package/dist/utils/bitbucket-utils.d.ts.map +1 -0
  57. package/dist/utils/bitbucket-utils.js +491 -0
  58. package/dist/utils/bitbucket-utils.js.map +1 -0
  59. package/dist/utils/config-loader.d.ts +41 -0
  60. package/dist/utils/config-loader.d.ts.map +1 -0
  61. package/dist/utils/config-loader.js +76 -0
  62. package/dist/utils/config-loader.js.map +1 -0
  63. package/dist/utils/index.d.ts +5 -0
  64. package/dist/utils/index.d.ts.map +1 -0
  65. package/dist/utils/index.js +4 -0
  66. package/dist/utils/index.js.map +1 -0
  67. package/eslint.config.ts +15 -0
  68. package/package.json +62 -0
  69. package/release-please-config.json +33 -0
  70. package/tests/integration/cli-integration.test.ts +528 -0
  71. package/tests/unit/cli/wrapper.test.ts +727 -0
  72. package/tests/unit/commands/helpers.test.ts +268 -0
  73. package/tests/unit/commands/runner.test.ts +758 -0
  74. package/tests/unit/utils/arg-parser.test.ts +350 -0
  75. package/tests/unit/utils/config-loader.test.ts +158 -0
  76. package/vitest.config.ts +22 -0
@@ -0,0 +1,326 @@
1
+ import readline from 'readline';
2
+ import { getCurrentVersion, printAvailableCommands, printCommandDetail } from '../commands/index.js';
3
+ import { COMMANDS } from '../config/index.js';
4
+ import { clearClients, createIssue, createPullRequest, getIssue, getPullRequest, getRepository, getUser, listBranches, listCommits, listIssues, listPipelines, listPullRequests, listRepositories, loadConfig, testConnection, } from '../utils/index.js';
5
+ /**
6
+ * Main CLI class for Bitbucket interaction
7
+ */
8
+ export class wrapper {
9
+ rl;
10
+ config = null;
11
+ currentProfile = null;
12
+ currentFormat = 'json';
13
+ constructor() {
14
+ this.rl = readline.createInterface({
15
+ input: process.stdin,
16
+ output: process.stdout,
17
+ prompt: 'bbk> ',
18
+ });
19
+ }
20
+ /**
21
+ * Initialize the CLI and load configuration
22
+ */
23
+ async connect() {
24
+ try {
25
+ const projectRoot = process.env.CLAUDE_PROJECT_ROOT || process.cwd();
26
+ this.config = loadConfig(projectRoot);
27
+ this.currentProfile = this.config.defaultProfile;
28
+ this.currentFormat = this.config.defaultFormat;
29
+ this.printHelp();
30
+ }
31
+ catch (error) {
32
+ const errorMessage = error instanceof Error ? error.message : String(error);
33
+ console.error('Failed to load configuration:', errorMessage);
34
+ console.error('\nMake sure:');
35
+ console.error('1. .claude/bitbucket-config.local.md exists');
36
+ console.error('2. The file contains valid Bitbucket profiles in YAML frontmatter');
37
+ process.exit(1);
38
+ }
39
+ }
40
+ /**
41
+ * Handles user input commands
42
+ * @param input - The raw user input string
43
+ */
44
+ async handleCommand(input) {
45
+ const trimmed = input.trim();
46
+ if (!trimmed) {
47
+ this.rl.prompt();
48
+ return;
49
+ }
50
+ // Handle special commands
51
+ if (trimmed === 'exit' || trimmed === 'quit' || trimmed === 'q') {
52
+ await this.disconnect();
53
+ return;
54
+ }
55
+ if (trimmed === 'help' || trimmed === '?') {
56
+ this.printHelp();
57
+ this.rl.prompt();
58
+ return;
59
+ }
60
+ if (trimmed === 'commands') {
61
+ printAvailableCommands();
62
+ this.rl.prompt();
63
+ return;
64
+ }
65
+ if (trimmed === 'clear') {
66
+ console.clear();
67
+ this.rl.prompt();
68
+ return;
69
+ }
70
+ if (trimmed.startsWith('profile ')) {
71
+ const newProfile = trimmed.substring(8).trim();
72
+ if (this.config && this.config.profiles[newProfile]) {
73
+ this.currentProfile = newProfile;
74
+ console.log(`Switched to profile: ${newProfile}`);
75
+ }
76
+ else {
77
+ const available = this.config ? Object.keys(this.config.profiles).join(', ') : 'none';
78
+ console.error(`ERROR: Profile "${newProfile}" not found. Available: ${available}`);
79
+ }
80
+ this.rl.prompt();
81
+ return;
82
+ }
83
+ if (trimmed.startsWith('format ')) {
84
+ const newFormat = trimmed.substring(7).trim();
85
+ if (['json', 'toon'].includes(newFormat)) {
86
+ this.currentFormat = newFormat;
87
+ console.log(`Output format set to: ${newFormat}`);
88
+ }
89
+ else {
90
+ console.error('ERROR: Invalid format. Choose: json or toon');
91
+ }
92
+ this.rl.prompt();
93
+ return;
94
+ }
95
+ if (trimmed === 'profiles') {
96
+ if (this.config) {
97
+ console.log('\nAvailable profiles:');
98
+ Object.keys(this.config.profiles).forEach((name, i) => {
99
+ const current = name === this.currentProfile ? ' (current)' : '';
100
+ console.log(`${i + 1}. ${name}${current}`);
101
+ });
102
+ }
103
+ this.rl.prompt();
104
+ return;
105
+ }
106
+ // Parse command invocation: command [args...]
107
+ const firstSpaceIndex = trimmed.indexOf(' ');
108
+ const command = firstSpaceIndex === -1 ? trimmed : trimmed.substring(0, firstSpaceIndex);
109
+ const arg = firstSpaceIndex === -1 ? '' : trimmed.substring(firstSpaceIndex + 1).trim();
110
+ if (arg === '-h') {
111
+ printCommandDetail(command);
112
+ this.rl.prompt();
113
+ return;
114
+ }
115
+ await this.runCommand(command, arg);
116
+ }
117
+ /**
118
+ * Runs a Bitbucket command
119
+ * @param command - The command name to execute
120
+ * @param arg - JSON string or null for the command arguments
121
+ */
122
+ async runCommand(command, arg) {
123
+ if (!this.config || !this.currentProfile) {
124
+ console.log('Configuration not loaded!');
125
+ this.rl.prompt();
126
+ return;
127
+ }
128
+ try {
129
+ // Parse arguments
130
+ const args = arg && arg.trim() !== '' ? JSON.parse(arg) : {};
131
+ const profile = args.profile || this.currentProfile;
132
+ const format = args.format || this.currentFormat;
133
+ let result;
134
+ switch (command) {
135
+ case 'list-repositories':
136
+ if (!args.workspace) {
137
+ console.error('ERROR: "workspace" parameter is required');
138
+ this.rl.prompt();
139
+ return;
140
+ }
141
+ result = await listRepositories(profile, args.workspace, format);
142
+ break;
143
+ case 'get-repository':
144
+ if (!args.workspace || !args.repoSlug) {
145
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
146
+ this.rl.prompt();
147
+ return;
148
+ }
149
+ result = await getRepository(profile, args.workspace, args.repoSlug, format);
150
+ break;
151
+ case 'list-pullrequests':
152
+ if (!args.workspace || !args.repoSlug) {
153
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
154
+ this.rl.prompt();
155
+ return;
156
+ }
157
+ result = await listPullRequests(profile, args.workspace, args.repoSlug, args.state, format);
158
+ break;
159
+ case 'get-pullrequest':
160
+ if (!args.workspace || !args.repoSlug || !args.pullRequestId) {
161
+ console.error('ERROR: "workspace", "repoSlug", and "pullRequestId" parameters are required');
162
+ this.rl.prompt();
163
+ return;
164
+ }
165
+ result = await getPullRequest(profile, args.workspace, args.repoSlug, args.pullRequestId, format);
166
+ break;
167
+ case 'create-pullrequest':
168
+ if (!args.workspace || !args.repoSlug || !args.title || !args.sourceBranch || !args.destinationBranch) {
169
+ console.error('ERROR: "workspace", "repoSlug", "title", "sourceBranch", and "destinationBranch" parameters are required');
170
+ this.rl.prompt();
171
+ return;
172
+ }
173
+ result = await createPullRequest(profile, args.workspace, args.repoSlug, args.title, args.sourceBranch, args.destinationBranch, args.description, format);
174
+ break;
175
+ case 'list-branches':
176
+ if (!args.workspace || !args.repoSlug) {
177
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
178
+ this.rl.prompt();
179
+ return;
180
+ }
181
+ result = await listBranches(profile, args.workspace, args.repoSlug, args.q, args.sort, format);
182
+ break;
183
+ case 'list-commits':
184
+ if (!args.workspace || !args.repoSlug) {
185
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
186
+ this.rl.prompt();
187
+ return;
188
+ }
189
+ result = await listCommits(profile, args.workspace, args.repoSlug, args.branch, format);
190
+ break;
191
+ case 'list-issues':
192
+ if (!args.workspace || !args.repoSlug) {
193
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
194
+ this.rl.prompt();
195
+ return;
196
+ }
197
+ result = await listIssues(profile, args.workspace, args.repoSlug, format);
198
+ break;
199
+ case 'get-issue':
200
+ if (!args.workspace || !args.repoSlug || !args.issueId) {
201
+ console.error('ERROR: "workspace", "repoSlug", and "issueId" parameters are required');
202
+ this.rl.prompt();
203
+ return;
204
+ }
205
+ result = await getIssue(profile, args.workspace, args.repoSlug, args.issueId, format);
206
+ break;
207
+ case 'create-issue':
208
+ if (!args.workspace || !args.repoSlug || !args.title) {
209
+ console.error('ERROR: "workspace", "repoSlug", and "title" parameters are required');
210
+ this.rl.prompt();
211
+ return;
212
+ }
213
+ result = await createIssue(profile, args.workspace, args.repoSlug, args.title, args.content, args.kind, args.priority, format);
214
+ break;
215
+ case 'list-pipelines':
216
+ if (!args.workspace || !args.repoSlug) {
217
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
218
+ this.rl.prompt();
219
+ return;
220
+ }
221
+ result = await listPipelines(profile, args.workspace, args.repoSlug, format);
222
+ break;
223
+ case 'get-user':
224
+ result = await getUser(profile, args.username, format);
225
+ break;
226
+ case 'test-connection':
227
+ result = await testConnection(profile);
228
+ break;
229
+ default:
230
+ console.error(`Unknown command: ${command}. Type "commands" to see available commands.`);
231
+ this.rl.prompt();
232
+ return;
233
+ }
234
+ // Display result
235
+ if (result.success) {
236
+ console.log('\n' + result.result);
237
+ }
238
+ else {
239
+ console.error('\n' + result.error);
240
+ }
241
+ }
242
+ catch (error) {
243
+ const errorMessage = error instanceof Error ? error.message : String(error);
244
+ console.error('Error running command:', errorMessage);
245
+ }
246
+ this.rl.prompt();
247
+ }
248
+ /**
249
+ * Prints help message
250
+ */
251
+ printHelp() {
252
+ const version = getCurrentVersion();
253
+ const currentProfile = this.currentProfile || 'none';
254
+ const currentFormat = this.currentFormat;
255
+ const commandList = COMMANDS.join(', ');
256
+ console.log(`
257
+ Bitbucket CLI v${version}
258
+
259
+ Current Settings:
260
+ Profile: ${currentProfile}
261
+ Format: ${currentFormat}
262
+
263
+ Usage:
264
+
265
+ commands list all available Bitbucket commands
266
+ <command> -h quick help on <command>
267
+ <command> <arg> run <command> with JSON argument
268
+ profile <name> switch to a different Bitbucket profile
269
+ profiles list all available profiles
270
+ format <type> set output format (json, toon)
271
+ clear clear the screen
272
+ exit, quit, q exit the CLI
273
+
274
+ All commands:
275
+
276
+ ${commandList}
277
+
278
+ Examples:
279
+ list-repositories {"workspace":"myworkspace"}
280
+ get-repository {"workspace":"myworkspace","repoSlug":"my-repo"}
281
+ list-pullrequests {"workspace":"myworkspace","repoSlug":"my-repo","state":"OPEN"}
282
+ get-pullrequest {"workspace":"myworkspace","repoSlug":"my-repo","pullRequestId":123}
283
+ create-pullrequest {"workspace":"myworkspace","repoSlug":"my-repo","title":"Feature PR","sourceBranch":"feature/new","destinationBranch":"main"}
284
+ test-connection
285
+
286
+ `);
287
+ }
288
+ /**
289
+ * Starts the interactive REPL loop
290
+ */
291
+ async start() {
292
+ this.rl.prompt();
293
+ this.rl.on('line', async (line) => {
294
+ await this.handleCommand(line);
295
+ });
296
+ this.rl.on('close', async () => {
297
+ clearClients();
298
+ process.exit(0);
299
+ });
300
+ const gracefulShutdown = async () => {
301
+ try {
302
+ await this.disconnect();
303
+ }
304
+ catch (error) {
305
+ console.error('Error during shutdown:', error);
306
+ }
307
+ finally {
308
+ process.exit(0);
309
+ }
310
+ };
311
+ ['SIGINT', 'SIGTERM'].forEach(sig => {
312
+ process.on(sig, () => {
313
+ gracefulShutdown();
314
+ });
315
+ });
316
+ }
317
+ /**
318
+ * Disconnects from Bitbucket and closes the CLI
319
+ */
320
+ async disconnect() {
321
+ console.log('\nClosing Bitbucket connections...');
322
+ clearClients();
323
+ this.rl.close();
324
+ }
325
+ }
326
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/cli/wrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Prints all available commands with their descriptions
3
+ */
4
+ export declare const printAvailableCommands: () => void;
5
+ /**
6
+ * Prints detailed information about a specific command
7
+ * @param command - The command name to get details for
8
+ */
9
+ export declare const printCommandDetail: (command: string) => void;
10
+ export declare const getCurrentVersion: () => string;
11
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/commands/helpers.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAAO,IAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,IAmBpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAMpC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { COMMANDS, COMMANDS_DETAIL, COMMANDS_INFO } from '../config/index.js';
2
+ /**
3
+ * Prints all available commands with their descriptions
4
+ */
5
+ export const printAvailableCommands = () => {
6
+ console.log('\nAvailable commands:');
7
+ COMMANDS.forEach((name, i) => {
8
+ const info = COMMANDS_INFO[i];
9
+ console.log(`${i + 1}. ${name}: ${info}`);
10
+ });
11
+ };
12
+ /**
13
+ * Prints detailed information about a specific command
14
+ * @param command - The command name to get details for
15
+ */
16
+ export const printCommandDetail = (command) => {
17
+ const name = (command || '').trim();
18
+ if (!name) {
19
+ console.log('Please provide a command name.');
20
+ printAvailableCommands();
21
+ return;
22
+ }
23
+ const idx = COMMANDS.indexOf(name);
24
+ if (idx === -1) {
25
+ console.log(`Unknown command: ${name}`);
26
+ printAvailableCommands();
27
+ return;
28
+ }
29
+ const info = COMMANDS_INFO[idx] || 'No additional information available.';
30
+ const detail = (COMMANDS_DETAIL[idx] || '').trim();
31
+ console.log(`${name}\n${info}${detail ? `\n${detail}` : ''}`);
32
+ };
33
+ export const getCurrentVersion = () => {
34
+ // If moved update release-please config
35
+ // x-release-please-start-version
36
+ const VERSION = '1.0.0';
37
+ // x-release-please-end
38
+ return VERSION;
39
+ };
40
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/commands/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAS,EAAE;IAC/C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAQ,EAAE;IAC1D,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,sBAAsB,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QACxC,sBAAsB,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,sCAAsC,CAAC;IAC1E,MAAM,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,wCAAwC;IACxC,iCAAiC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC;IACxB,uBAAuB;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { printAvailableCommands, printCommandDetail, getCurrentVersion } from './helpers.js';
2
+ export { runCommand } from './runner.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { printAvailableCommands, printCommandDetail, getCurrentVersion } from './helpers.js';
2
+ export { runCommand } from './runner.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Execute a Bitbucket command in headless mode
3
+ * @param command - The command name to execute
4
+ * @param arg - JSON string or null for the command arguments
5
+ */
6
+ export declare const runCommand: (command: string, arg: string | null, _flag: string | null) => Promise<void>;
7
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/commands/runner.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,SAAS,MAAM,EACf,KAAK,MAAM,GAAG,IAAI,EAElB,OAAO,MAAM,GAAG,IAAI,KACnB,OAAO,CAAC,IAAI,CAuJd,CAAC"}
@@ -0,0 +1,126 @@
1
+ import { clearClients, createIssue, createPullRequest, getIssue, getPullRequest, getRepository, getUser, listBranches, listCommits, listIssues, listPipelines, listPullRequests, listRepositories, loadConfig, testConnection, } from '../utils/index.js';
2
+ /**
3
+ * Execute a Bitbucket command in headless mode
4
+ * @param command - The command name to execute
5
+ * @param arg - JSON string or null for the command arguments
6
+ */
7
+ export const runCommand = async (command, arg,
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ _flag) => {
10
+ try {
11
+ // Load config to get default profile
12
+ const projectRoot = process.env.CLAUDE_PROJECT_ROOT || process.cwd();
13
+ const config = loadConfig(projectRoot);
14
+ // Parse arguments
15
+ const args = arg && arg.trim() !== '' ? JSON.parse(arg) : {};
16
+ const profile = args.profile || config.defaultProfile;
17
+ const format = args.format || config.defaultFormat;
18
+ let result;
19
+ switch (command) {
20
+ case 'list-repositories':
21
+ if (!args.workspace) {
22
+ console.error('ERROR: "workspace" parameter is required');
23
+ process.exit(1);
24
+ }
25
+ result = await listRepositories(profile, args.workspace, format);
26
+ break;
27
+ case 'get-repository':
28
+ if (!args.workspace || !args.repoSlug) {
29
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
30
+ process.exit(1);
31
+ }
32
+ result = await getRepository(profile, args.workspace, args.repoSlug, format);
33
+ break;
34
+ case 'list-pullrequests':
35
+ if (!args.workspace || !args.repoSlug) {
36
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
37
+ process.exit(1);
38
+ }
39
+ result = await listPullRequests(profile, args.workspace, args.repoSlug, args.state, format);
40
+ break;
41
+ case 'get-pullrequest':
42
+ if (!args.workspace || !args.repoSlug || !args.pullRequestId) {
43
+ console.error('ERROR: "workspace", "repoSlug", and "pullRequestId" parameters are required');
44
+ process.exit(1);
45
+ }
46
+ result = await getPullRequest(profile, args.workspace, args.repoSlug, args.pullRequestId, format);
47
+ break;
48
+ case 'create-pullrequest':
49
+ if (!args.workspace || !args.repoSlug || !args.title || !args.sourceBranch || !args.destinationBranch) {
50
+ console.error('ERROR: "workspace", "repoSlug", "title", "sourceBranch", and "destinationBranch" parameters are required');
51
+ process.exit(1);
52
+ }
53
+ result = await createPullRequest(profile, args.workspace, args.repoSlug, args.title, args.sourceBranch, args.destinationBranch, args.description, format);
54
+ break;
55
+ case 'list-branches':
56
+ if (!args.workspace || !args.repoSlug) {
57
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
58
+ process.exit(1);
59
+ }
60
+ result = await listBranches(profile, args.workspace, args.repoSlug, args.q, args.sort, format);
61
+ break;
62
+ case 'list-commits':
63
+ if (!args.workspace || !args.repoSlug) {
64
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
65
+ process.exit(1);
66
+ }
67
+ result = await listCommits(profile, args.workspace, args.repoSlug, args.branch, format);
68
+ break;
69
+ case 'list-issues':
70
+ if (!args.workspace || !args.repoSlug) {
71
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
72
+ process.exit(1);
73
+ }
74
+ result = await listIssues(profile, args.workspace, args.repoSlug, format);
75
+ break;
76
+ case 'get-issue':
77
+ if (!args.workspace || !args.repoSlug || !args.issueId) {
78
+ console.error('ERROR: "workspace", "repoSlug", and "issueId" parameters are required');
79
+ process.exit(1);
80
+ }
81
+ result = await getIssue(profile, args.workspace, args.repoSlug, args.issueId, format);
82
+ break;
83
+ case 'create-issue':
84
+ if (!args.workspace || !args.repoSlug || !args.title) {
85
+ console.error('ERROR: "workspace", "repoSlug", and "title" parameters are required');
86
+ process.exit(1);
87
+ }
88
+ result = await createIssue(profile, args.workspace, args.repoSlug, args.title, args.content, args.kind, args.priority, format);
89
+ break;
90
+ case 'list-pipelines':
91
+ if (!args.workspace || !args.repoSlug) {
92
+ console.error('ERROR: "workspace" and "repoSlug" parameters are required');
93
+ process.exit(1);
94
+ }
95
+ result = await listPipelines(profile, args.workspace, args.repoSlug, format);
96
+ break;
97
+ case 'get-user':
98
+ result = await getUser(profile, args.username, format);
99
+ break;
100
+ case 'test-connection':
101
+ result = await testConnection(profile);
102
+ break;
103
+ default:
104
+ console.error(`Unknown command: ${command}`);
105
+ process.exit(1);
106
+ }
107
+ // Display result
108
+ if (result.success) {
109
+ console.log(result.result);
110
+ clearClients();
111
+ process.exit(0);
112
+ }
113
+ else {
114
+ console.error(result.error);
115
+ clearClients();
116
+ process.exit(1);
117
+ }
118
+ }
119
+ catch (error) {
120
+ const errorMessage = error instanceof Error ? error.message : String(error);
121
+ console.error('Error executing command:', errorMessage);
122
+ clearClients();
123
+ process.exit(1);
124
+ }
125
+ };
126
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/commands/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Bitbucket CLI Commands Configuration
3
+ */
4
+ /**
5
+ * Available Bitbucket commands
6
+ */
7
+ export declare const COMMANDS: string[];
8
+ /**
9
+ * Brief descriptions for each command
10
+ */
11
+ export declare const COMMANDS_INFO: string[];
12
+ /**
13
+ * Detailed parameter information for each command
14
+ */
15
+ export declare const COMMANDS_DETAIL: string[];
16
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,EAc5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,EAcjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,EA+HnC,CAAC"}