jira-pilot 2.1.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
  [![NPM Version](https://img.shields.io/npm/v/jira-pilot.svg)](https://www.npmjs.com/package/jira-pilot)
5
5
  [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)
6
6
  [![Snyk Security](https://snyk.io/test/github/Aarul5/jira-pilot/badge.svg)](https://snyk.io/test/github/Aarul5/jira-pilot)
7
+ [![MCP Badge](https://lobehub.com/badge/mcp/aarul5-jira-pilot)](https://lobehub.com/mcp/aarul5-jira-pilot)
7
8
 
8
9
  **The AI-Powered Jira CLI and MCP Server for Humans and Agents.**
9
10
 
@@ -492,6 +493,36 @@ Add to your `.vscode/mcp.json` or equivalent:
492
493
  }
493
494
  ```
494
495
 
496
+ ### 📝 Prompts
497
+
498
+ Pre-defined templates to help LLMs interact with Jira effectively.
499
+
500
+ | Prompt | Arguments | Description |
501
+ |--------|-----------|-------------|
502
+ | **jira-assist** | None | System prompt that teaches the LLM how to use Jira Pilot tools best. |
503
+ | **jira-summarize-issue** | `issueKey` | Fetches an issue and instructs the LLM to provide a concise summary. |
504
+
505
+ ### 📦 Resources
506
+
507
+ Direct access to Jira data as context.
508
+
509
+ | URI | Description |
510
+ |-----|-------------|
511
+ | **jira://myself** | Details of the currently authenticated user (excluding sensitive PII). |
512
+ | **jira://projects** | List of all accessible Jira projects. |
513
+
514
+ ### 🔍 Verification
515
+
516
+ You can verify the MCP server implementation using the official inspector:
517
+
518
+ ```bash
519
+ # If running fro source
520
+ npx @modelcontextprotocol/inspector node dist/bin/jira.js mcp
521
+
522
+ # If installed globally (or via npx)
523
+ npx @modelcontextprotocol/inspector npx -y jira-pilot mcp
524
+ ```
525
+
495
526
  ---
496
527
 
497
528
  ## 📦 CLI Command Reference
@@ -4,6 +4,7 @@ import ora from '../utils/spinner.js';
4
4
  import enquirer from 'enquirer';
5
5
  import { api } from '../services/api-service.js';
6
6
  import { handleCommandError } from '../utils/error-handler.js';
7
+ import { API } from '../utils/api-paths.js';
7
8
  export function registerBulkCommand(program) {
8
9
  const bulkCmd = new Command('bulk')
9
10
  .description('Bulk operations on Jira issues')
@@ -27,7 +28,7 @@ Examples:
27
28
  .action(async (options) => {
28
29
  const spinner = ora('Finding matching issues...').start();
29
30
  try {
30
- const data = await api.post('/search/jql', {
31
+ const data = await api.post(API.SEARCH.JQL, {
31
32
  jql: options.jql,
32
33
  maxResults: parseInt(options.limit),
33
34
  fields: ['summary', 'status']
@@ -44,7 +45,7 @@ Examples:
44
45
  let targetStatus = options.status;
45
46
  if (!targetStatus) {
46
47
  // Get transitions from the first issue to show available statuses
47
- const transData = await api.get(`/issue/${data.issues[0].key}/transitions`);
48
+ const transData = await api.get(API.ISSUE.TRANSITIONS(data.issues[0].key));
48
49
  const { Select } = enquirer;
49
50
  const statusSelect = new Select({
50
51
  name: 'status',
@@ -69,10 +70,10 @@ Examples:
69
70
  let failed = 0;
70
71
  for (const issue of data.issues) {
71
72
  try {
72
- const transData = await api.get(`/issue/${issue.key}/transitions`);
73
+ const transData = await api.get(API.ISSUE.TRANSITIONS(issue.key));
73
74
  const transition = transData.transitions.find((t) => t.name.toLowerCase() === targetStatus.toLowerCase());
74
75
  if (transition) {
75
- await api.post(`/issue/${issue.key}/transitions`, {
76
+ await api.post(API.ISSUE.TRANSITIONS(issue.key), {
76
77
  transition: { id: transition.id }
77
78
  });
78
79
  success++;
@@ -102,7 +103,7 @@ Examples:
102
103
  .action(async (options) => {
103
104
  const spinner = ora('Finding issues...').start();
104
105
  try {
105
- const data = await api.post('/search/jql', {
106
+ const data = await api.post(API.SEARCH.JQL, {
106
107
  jql: options.jql,
107
108
  maxResults: 50,
108
109
  fields: ['summary', 'assignee']
@@ -125,7 +126,7 @@ Examples:
125
126
  assigneeId = userId;
126
127
  }
127
128
  if (assigneeId === 'me') {
128
- const me = await api.get('/myself');
129
+ const me = await api.get(API.USER.MYSELF);
129
130
  assigneeId = me.accountId;
130
131
  }
131
132
  if (!options.yes) {
@@ -139,7 +140,7 @@ Examples:
139
140
  }
140
141
  const processSpinner = ora('Assigning...').start();
141
142
  for (const issue of data.issues) {
142
- await api.put(`/issue/${issue.key}/assignee`, { accountId: assigneeId });
143
+ await api.put(API.ISSUE.ASSIGNEE(issue.key), { accountId: assigneeId });
143
144
  }
144
145
  processSpinner.succeed('Bulk assign complete.');
145
146
  }
@@ -162,7 +163,7 @@ Examples:
162
163
  }
163
164
  const spinner = ora('Finding issues...').start();
164
165
  try {
165
- const data = await api.post('/search/jql', {
166
+ const data = await api.post(API.SEARCH.JQL, {
166
167
  jql: options.jql,
167
168
  maxResults: 50,
168
169
  fields: ['summary', 'labels']
@@ -190,7 +191,7 @@ Examples:
190
191
  let newLabels = new Set(currentLabels);
191
192
  addList.forEach((l) => newLabels.add(l));
192
193
  removeList.forEach((l) => newLabels.delete(l));
193
- await api.put(`/issue/${issue.key}`, {
194
+ await api.put(API.ISSUE.GET(issue.key), {
194
195
  fields: { labels: Array.from(newLabels) }
195
196
  });
196
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../src/commands/bulk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../src/commands/bulk.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import ora from '../utils/spinner.js';
4
4
  import enquirer from 'enquirer';
5
5
  import { api } from '../services/api-service.js';
6
6
  import { handleCommandError } from '../utils/error-handler.js';
7
+ import { API } from '../utils/api-paths.js';
7
8
  // Utility for status icons
8
9
  const getStatusIcon = (status) => {
9
10
  const s = status.toLowerCase();
@@ -69,10 +70,10 @@ export function registerDashboardCommand(program) {
69
70
  console.clear();
70
71
  const spinner = ora('Loading dashboard...').start();
71
72
  try {
72
- const myself = await api.get('/myself');
73
+ const myself = await api.get(API.USER.MYSELF);
73
74
  // Fetch in parallel: my open issues + recently updated
74
75
  const [myIssues, recentIssues] = await Promise.all([
75
- api.post('/search/jql', {
76
+ api.post(API.SEARCH.JQL, {
76
77
  jql: 'assignee = currentUser() AND statusCategory != Done ORDER BY priority ASC, updated DESC', // Fixed Sort
77
78
  maxResults: 15,
78
79
  fields: ['summary', 'status', 'priority', 'updated', 'issuetype']
@@ -164,7 +165,7 @@ export function registerDashboardCommand(program) {
164
165
  if (issueAction === 'back')
165
166
  continue;
166
167
  if (issueAction === 'view') {
167
- const issue = await api.get(`/issue/${selectedKey}`);
168
+ const issue = await api.get(API.ISSUE.GET(selectedKey));
168
169
  console.log(chalk.bold(`\n${issue.key}: ${issue.fields.summary}`));
169
170
  console.log(chalk.grey('────────────────────────────────────────'));
170
171
  console.log(`${getStatusIcon(issue.fields.status.name)} ${issue.fields.status.name} | ${getPriorityColor(issue.fields.priority?.name || '', issue.fields.priority?.name || '')}`);
@@ -179,25 +180,25 @@ export function registerDashboardCommand(program) {
179
180
  });
180
181
  if (inputComment) {
181
182
  const { textToADF } = await import('../utils/text-to-adf.js');
182
- await api.post(`/issue/${selectedKey}/comment`, { body: textToADF(inputComment) });
183
+ await api.post(API.ISSUE.COMMENT(selectedKey), { body: textToADF(inputComment) });
183
184
  console.log(chalk.green('Comment added.'));
184
185
  await pause();
185
186
  }
186
187
  }
187
188
  if (issueAction === 'transition') {
188
- const transData = await api.get(`/issue/${selectedKey}/transitions`);
189
+ const transData = await api.get(API.ISSUE.TRANSITIONS(selectedKey));
189
190
  const { transId } = await enquirer.prompt({
190
191
  type: 'select',
191
192
  name: 'transId',
192
193
  message: 'Select Status:',
193
194
  choices: transData.transitions.map((t) => ({ name: t.id, message: t.to.name }))
194
195
  });
195
- await api.post(`/issue/${selectedKey}/transitions`, { transition: { id: transId } });
196
+ await api.post(API.ISSUE.TRANSITIONS(selectedKey), { transition: { id: transId } });
196
197
  console.log(chalk.green('Transitioned.'));
197
198
  await pause();
198
199
  }
199
200
  if (issueAction === 'assign') {
200
- await api.put(`/issue/${selectedKey}/assignee`, { accountId: myself.accountId });
201
+ await api.put(API.ISSUE.ASSIGNEE(selectedKey), { accountId: myself.accountId });
201
202
  console.log(chalk.green('Assigned to you.'));
202
203
  await pause();
203
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { registerWorklogCommand } from './issue-worklog.js';
13
13
  import { registerPrCommand } from './issue-pr.js';
14
14
  import { registerAttachCommand } from './issue-attach.js';
15
15
  import { ConfigService } from '../services/config-service.js';
16
+ import { API } from '../utils/api-paths.js';
16
17
  export function registerIssueCommand(program) {
17
18
  const issueCmd = new Command('issue')
18
19
  .description('Manage Jira issues')
@@ -68,21 +69,16 @@ Examples:
68
69
  if (options.jql)
69
70
  jqlParts.push(options.jql);
70
71
  // Order by updated desc by default if no JQL
71
- if (!options.jql && jqlParts.length === 0) {
72
- jqlParts.push('order by updated DESC');
73
- }
74
- else if (jqlParts.length > 0 && !options.jql) {
75
- // Add order if not custom jql
76
- // jqlParts.push('order by updated DESC');
77
- }
78
72
  const jql = jqlParts.join(' AND ');
79
- const searchApi = '/search/jql';
73
+ // Default to last 30 days if no filter provided to satisfy "unbounded" check
74
+ const defaultJql = 'updated >= -30d ORDER BY updated DESC';
75
+ const finalJql = jql || defaultJql;
80
76
  const body = {
81
- jql: jql || 'created is not empty',
77
+ jql: finalJql,
82
78
  maxResults: parseInt(options.limit),
83
- fields: ['summary', 'status', 'assignee', 'created', 'updated', 'description']
79
+ fields: ['summary', 'status', 'assignee', 'created', 'updated', 'description', 'priority', 'issuetype', 'project', 'reporter']
84
80
  };
85
- const data = await api.post(searchApi, body);
81
+ const data = await api.post(API.SEARCH.JQL, body);
86
82
  spinner.stop();
87
83
  if (!data.issues || data.issues.length === 0) {
88
84
  console.log(chalk.yellow('No issues found.'));
@@ -167,7 +163,7 @@ Examples:
167
163
  }
168
164
  const spinner = ora(`Fetching issue ${issueKey}...`).start();
169
165
  try {
170
- const issue = await api.get(`/issue/${issueKey}`);
166
+ const issue = await api.get(API.ISSUE.GET(issueKey));
171
167
  spinner.stop();
172
168
  if (options.output === 'json') {
173
169
  console.log(JSON.stringify({
@@ -242,7 +238,7 @@ Examples:
242
238
  let projectKey = options.project;
243
239
  if (!projectKey) {
244
240
  const spinner = ora('Fetching projects...').start();
245
- const projectData = await api.get('/project/search');
241
+ const projectData = await api.get(API.PROJECT.SEARCH);
246
242
  spinner.stop();
247
243
  if (!projectData.values || projectData.values.length === 0) {
248
244
  console.error(chalk.red('No projects found. Check your permissions.'));
@@ -267,13 +263,13 @@ Examples:
267
263
  let issueTypes = [];
268
264
  try {
269
265
  // Jira Cloud v3 - createmeta endpoint
270
- const metaData = await api.get(`/issue/createmeta/${projectKey}/issuetypes`);
266
+ const metaData = await api.get(API.ISSUE.CREATEMETA(projectKey));
271
267
  issueTypes = metaData.issueTypes || metaData.values || [];
272
268
  }
273
269
  catch (metaErr) {
274
270
  // Fallback: use project-level issue types
275
271
  try {
276
- const projectInfo = await api.get(`/project/${projectKey}`);
272
+ const projectInfo = await api.get(API.PROJECT.GET(projectKey));
277
273
  issueTypes = projectInfo.issueTypes || [];
278
274
  }
279
275
  catch {
@@ -328,7 +324,7 @@ Examples:
328
324
  if (!priorityName && !options.noInput) {
329
325
  const spinner = ora('Fetching priorities...').start();
330
326
  try {
331
- const priorities = await api.get('/priority');
327
+ const priorities = await api.get(API.PRIORITY.ALL);
332
328
  spinner.stop();
333
329
  if (Array.isArray(priorities) && priorities.length > 0) {
334
330
  const priorityChoices = priorities.map((p) => ({
@@ -355,7 +351,7 @@ Examples:
355
351
  if (componentIds.length === 0 && !options.noInput) {
356
352
  const compSpinner = ora('Fetching components...').start();
357
353
  try {
358
- const components = await api.get(`/project/${projectKey}/components`);
354
+ const components = await api.get(API.PROJECT.COMPONENTS(projectKey));
359
355
  compSpinner.stop();
360
356
  if (Array.isArray(components) && components.length > 0) {
361
357
  const { selectedComponents } = await enquirer.prompt({
@@ -391,7 +387,7 @@ Examples:
391
387
  if (fixVersionIds.length === 0 && !options.noInput) {
392
388
  const verSpinner = ora('Fetching versions...').start();
393
389
  try {
394
- const versions = await api.get(`/project/${projectKey}/versions`);
390
+ const versions = await api.get(API.PROJECT.VERSIONS(projectKey));
395
391
  verSpinner.stop();
396
392
  // Filter unreleased versions usually
397
393
  const unreleased = versions.filter((v) => !v.released);
@@ -441,7 +437,7 @@ Examples:
441
437
  if (assigneeChoice === 'me') {
442
438
  const spinner = ora('Fetching your account...').start();
443
439
  try {
444
- const myself = await api.get('/myself');
440
+ const myself = await api.get(API.USER.MYSELF);
445
441
  assigneeId = myself.accountId;
446
442
  spinner.stop();
447
443
  }
@@ -459,7 +455,7 @@ Examples:
459
455
  if (searchQuery.trim()) {
460
456
  const spinner = ora('Searching users...').start();
461
457
  try {
462
- const users = await api.get(`/user/search?query=${encodeURIComponent(searchQuery)}`);
458
+ const users = await api.get(`${API.USER.SEARCH}?query=${encodeURIComponent(searchQuery)}`);
463
459
  spinner.stop();
464
460
  if (Array.isArray(users) && users.length > 0) {
465
461
  const userChoices = users.map((u) => ({
@@ -493,7 +489,7 @@ Examples:
493
489
  // --assignee me flag: resolve to account ID
494
490
  const spinner = ora('Fetching your account...').start();
495
491
  try {
496
- const myself = await api.get('/myself');
492
+ const myself = await api.get(API.USER.MYSELF);
497
493
  assigneeId = myself.accountId;
498
494
  spinner.stop();
499
495
  }
@@ -566,7 +562,7 @@ Examples:
566
562
  }
567
563
  // ── Create Issue ────────────────────────────────────
568
564
  const spinner = ora('Creating issue...').start();
569
- const result = await api.post('/issue', issueBody);
565
+ const result = await api.post(API.ISSUE.BASE, issueBody);
570
566
  spinner.succeed(chalk.green(`Issue created: ${chalk.bold(result.key)}`));
571
567
  console.log(chalk.grey(`View it: jira issue view ${result.key}`));
572
568
  }
@@ -595,10 +591,10 @@ Examples:
595
591
  const spinner = ora(`Fetching transitions for ${issueKey}...`).start();
596
592
  try {
597
593
  // Fetch current issue to show context
598
- const issue = await api.get(`/issue/${issueKey}?fields=summary,status`);
594
+ const issue = await api.get(`${API.ISSUE.GET(issueKey)}?fields=summary,status`);
599
595
  const currentStatus = issue.fields.status.name;
600
596
  // Fetch available transitions
601
- const transData = await api.get(`/issue/${issueKey}/transitions`);
597
+ const transData = await api.get(API.ISSUE.TRANSITIONS(issueKey));
602
598
  spinner.stop();
603
599
  if (!transData.transitions || transData.transitions.length === 0) {
604
600
  console.log(chalk.yellow(`No transitions available for ${issueKey} (current status: ${currentStatus}).`));
@@ -636,7 +632,7 @@ Examples:
636
632
  }
637
633
  // Execute transition
638
634
  const execSpinner = ora(`Transitioning to "${targetTransition.to.name}"...`).start();
639
- await api.post(`/issue/${issueKey}/transitions`, {
635
+ await api.post(API.ISSUE.TRANSITIONS(issueKey), {
640
636
  transition: { id: targetTransition.id }
641
637
  });
642
638
  execSpinner.succeed(chalk.green(`${issueKey} transitioned: ${currentStatus} → ${chalk.bold(targetTransition.to.name)}`));
@@ -669,7 +665,7 @@ Examples:
669
665
  if (!assigneeId) {
670
666
  // Interactive selection
671
667
  const spinner = ora(`Fetching issue ${issueKey}...`).start();
672
- const issue = await api.get(`/issue/${issueKey}?fields=summary,assignee`);
668
+ const issue = await api.get(`${API.ISSUE.GET(issueKey)}?fields=summary,assignee`);
673
669
  spinner.stop();
674
670
  const currentAssignee = issue.fields.assignee?.displayName || 'Unassigned';
675
671
  console.log(chalk.bold(`\n${issue.key}: ${issue.fields.summary}`));
@@ -688,7 +684,7 @@ Examples:
688
684
  }
689
685
  if (assigneeId === 'me') {
690
686
  const spinner = ora('Fetching your account...').start();
691
- const myself = await api.get('/myself');
687
+ const myself = await api.get(API.USER.MYSELF);
692
688
  assigneeId = myself.accountId;
693
689
  spinner.stop();
694
690
  }
@@ -699,7 +695,7 @@ Examples:
699
695
  message: 'Search user by name or email:'
700
696
  });
701
697
  const spinner = ora('Searching users...').start();
702
- const users = await api.get(`/user/search?query=${encodeURIComponent(searchQuery)}`);
698
+ const users = await api.get(`${API.USER.SEARCH}?query=${encodeURIComponent(searchQuery)}`);
703
699
  spinner.stop();
704
700
  if (!Array.isArray(users) || users.length === 0) {
705
701
  console.log(chalk.yellow('No users found.'));
@@ -720,7 +716,7 @@ Examples:
720
716
  const body = assigneeId === 'none'
721
717
  ? { accountId: null }
722
718
  : { accountId: assigneeId };
723
- await api.put(`/issue/${issueKey}/assignee`, body);
719
+ await api.put(API.ISSUE.ASSIGNEE(issueKey), body);
724
720
  spinner.succeed(chalk.green(`${issueKey} ${assigneeId === 'none' ? 'unassigned' : 'assigned'} successfully.`));
725
721
  }
726
722
  catch (e) {
@@ -763,7 +759,7 @@ Examples:
763
759
  commentText = inputComment;
764
760
  }
765
761
  const spinner = ora('Adding comment...').start();
766
- await api.post(`/issue/${issueKey}/comment`, {
762
+ await api.post(API.ISSUE.COMMENT(issueKey), {
767
763
  body: textToADF(commentText)
768
764
  });
769
765
  spinner.succeed(chalk.green(`Comment added to ${issueKey}.`));
@@ -795,7 +791,7 @@ Examples:
795
791
  }
796
792
  const spinner = ora(`Fetching issue ${issueKey}...`).start();
797
793
  try {
798
- const issue = await api.get(`/issue/${issueKey}?fields=summary,description,priority`);
794
+ const issue = await api.get(`${API.ISSUE.GET(issueKey)}?fields=summary,description,priority`);
799
795
  spinner.stop();
800
796
  const updateBody = { fields: {} };
801
797
  const hasFlags = options.summary || options.description || options.priority || (options.custom && options.custom.length > 0);
@@ -851,7 +847,7 @@ Examples:
851
847
  updateBody.fields.description = textToADF(desc);
852
848
  }
853
849
  if (field === 'priority') {
854
- const priorities = await api.get('/priority');
850
+ const priorities = await api.get(API.PRIORITY.ALL);
855
851
  const prioSelect = new Select({
856
852
  name: 'priority',
857
853
  message: 'Select priority',
@@ -860,7 +856,7 @@ Examples:
860
856
  updateBody.fields.priority = { name: await prioSelect.run() };
861
857
  }
862
858
  if (field === 'components') {
863
- const components = await api.get(`/project/${issue.fields.project.key}/components`);
859
+ const components = await api.get(API.PROJECT.COMPONENTS(issue.fields.project.key));
864
860
  if (components.length > 0) {
865
861
  const compSelect = new Select({
866
862
  // Wait, fieldSelect was initialized from enquirer as any.
@@ -896,7 +892,7 @@ Examples:
896
892
  updateBody.fields.labels = labelStr.split(',').map((l) => l.trim()).filter((l) => l.length > 0);
897
893
  }
898
894
  if (field === 'fixVersions') {
899
- const versions = await api.get(`/project/${issue.fields.project.key}/versions`);
895
+ const versions = await api.get(API.PROJECT.VERSIONS(issue.fields.project.key));
900
896
  const unreleased = versions.filter((v) => !v.released);
901
897
  if (unreleased.length > 0) {
902
898
  const { selectedVersions } = await enquirer.prompt({
@@ -924,7 +920,7 @@ Examples:
924
920
  return;
925
921
  }
926
922
  const updateSpinner = ora('Updating issue...').start();
927
- await api.put(`/issue/${issueKey}`, updateBody);
923
+ await api.put(API.ISSUE.GET(issueKey), updateBody);
928
924
  updateSpinner.succeed(`${chalk.cyan(issueKey)} updated successfully`);
929
925
  }
930
926
  catch (e) {
@@ -952,7 +948,7 @@ Examples:
952
948
  if (options.project)
953
949
  jqlParts.push(`project = "${options.project}"`);
954
950
  const jql = jqlParts.join(' AND ') + ' ORDER BY updated DESC';
955
- const data = await api.post('/search/jql', {
951
+ const data = await api.post(API.SEARCH.JQL, {
956
952
  jql,
957
953
  maxResults: parseInt(options.limit),
958
954
  fields: ['summary', 'status', 'assignee', 'updated']
@@ -1132,7 +1128,7 @@ Examples:
1132
1128
  catch (err) {
1133
1129
  // Fallback to project fetch
1134
1130
  try {
1135
- const proj = await api.get(`/project/${projectKey}`);
1131
+ const proj = await api.get(API.PROJECT.GET(projectKey));
1136
1132
  subtaskTypes = (proj.issueTypes || []).filter((t) => t.subtask);
1137
1133
  }
1138
1134
  catch (e) {
@@ -1188,7 +1184,7 @@ Examples:
1188
1184
  issueBody.fields.assignee = { accountId: assigneeId };
1189
1185
  }
1190
1186
  const createSpinner = ora('Creating subtask...').start();
1191
- const result = await api.post('/issue', issueBody);
1187
+ const result = await api.post(API.ISSUE.BASE, issueBody);
1192
1188
  createSpinner.succeed(chalk.green(`Subtask created: ${chalk.bold(result.key)}`));
1193
1189
  }
1194
1190
  catch (e) {