@atlassian-dc-mcp/jira 0.26.0 → 0.28.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 (34) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +77 -0
  3. package/build/__tests__/jira-download.test.d.ts +2 -0
  4. package/build/__tests__/jira-download.test.d.ts.map +1 -0
  5. package/build/__tests__/jira-download.test.js +89 -0
  6. package/build/__tests__/jira-download.test.js.map +1 -0
  7. package/build/__tests__/jira-service.test.js +85 -1
  8. package/build/__tests__/jira-service.test.js.map +1 -1
  9. package/build/__tests__/jira-upload.test.d.ts +2 -0
  10. package/build/__tests__/jira-upload.test.d.ts.map +1 -0
  11. package/build/__tests__/jira-upload.test.js +58 -0
  12. package/build/__tests__/jira-upload.test.js.map +1 -0
  13. package/build/__tests__/response-body.test.d.ts +2 -0
  14. package/build/__tests__/response-body.test.d.ts.map +1 -0
  15. package/build/__tests__/response-body.test.js +34 -0
  16. package/build/__tests__/response-body.test.js.map +1 -0
  17. package/build/index.js +38 -2
  18. package/build/index.js.map +1 -1
  19. package/build/jira-client/core/request.d.ts.map +1 -1
  20. package/build/jira-client/core/request.js +5 -1
  21. package/build/jira-client/core/request.js.map +1 -1
  22. package/build/jira-service.d.ts +63 -0
  23. package/build/jira-service.d.ts.map +1 -1
  24. package/build/jira-service.js +126 -2
  25. package/build/jira-service.js.map +1 -1
  26. package/package.json +3 -3
  27. package/src/__tests__/jira-download.test.ts +111 -0
  28. package/src/__tests__/jira-service.test.ts +106 -1
  29. package/src/__tests__/jira-upload.test.ts +70 -0
  30. package/src/__tests__/response-body.test.ts +43 -0
  31. package/src/index.ts +77 -2
  32. package/src/jira-client/core/request.ts +5 -1
  33. package/src/jira-service.ts +170 -2
  34. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/jira-client/core/request.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAE9F,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAE9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAEvD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,IAW5C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,QAEhD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,KAAG,MAOpC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAgC5D,CAAC;AAqBF,eAAO,MAAM,WAAW,GAAI,SAAS,iBAAiB,KAAG,QAAQ,GAAG,SAyBnE,CAAC;AAEF,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAW9D,eAAO,MAAM,OAAO,GAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAK9G,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,QAAQ,aAAa,EAAE,SAAS,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAyCnG,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,iBAAiB,KAAG,GAW3D,CAAC;AAEF,eAAO,MAAM,WAAW,GACpB,QAAQ,aAAa,EACrB,SAAS,iBAAiB,EAC1B,KAAK,MAAM,EACX,MAAM,GAAG,EACT,UAAU,QAAQ,GAAG,SAAS,EAC9B,SAAS,OAAO,EAChB,UAAU,QAAQ,KACnB,OAAO,CAAC,QAAQ,CAyBlB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,QAAQ,EAAE,iBAAiB,MAAM,KAAG,MAAM,GAAG,SAQxF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,UAAU,QAAQ,KAAG,OAAO,CAAC,GAAG,CAkBrE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,SAAS,iBAAiB,EAAE,QAAQ,SAAS,KAAG,IAgC/E,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,aAAa,EAAE,SAAS,iBAAiB,KAAG,iBAAiB,CAAC,CAAC,CA6BjG,CAAC"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/jira-client/core/request.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAE9F,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAE9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAEvD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,IAW5C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,QAEhD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,KAAG,MAOpC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAgC5D,CAAC;AAqBF,eAAO,MAAM,WAAW,GAAI,SAAS,iBAAiB,KAAG,QAAQ,GAAG,SAyBnE,CAAC;AAEF,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAW9D,eAAO,MAAM,OAAO,GAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAK9G,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,QAAQ,aAAa,EAAE,SAAS,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAyCnG,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,iBAAiB,KAAG,GAW3D,CAAC;AAEF,eAAO,MAAM,WAAW,GACpB,QAAQ,aAAa,EACrB,SAAS,iBAAiB,EAC1B,KAAK,MAAM,EACX,MAAM,GAAG,EACT,UAAU,QAAQ,GAAG,SAAS,EAC9B,SAAS,OAAO,EAChB,UAAU,QAAQ,KACnB,OAAO,CAAC,QAAQ,CAyBlB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,QAAQ,EAAE,iBAAiB,MAAM,KAAG,MAAM,GAAG,SAQxF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,UAAU,QAAQ,KAAG,OAAO,CAAC,GAAG,CAsBrE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,SAAS,iBAAiB,EAAE,QAAQ,SAAS,KAAG,IAgC/E,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,aAAa,EAAE,SAAS,iBAAiB,KAAG,iBAAiB,CAAC,CAAC,CA6BjG,CAAC"}
@@ -216,7 +216,11 @@ export const getResponseBody = async (response) => {
216
216
  const jsonTypes = ['application/json', 'application/problem+json'];
217
217
  const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type));
218
218
  if (isJSON) {
219
- return await response.json();
219
+ // Some endpoints (e.g. POST /issueLink) return a success status with
220
+ // Content-Type: application/json but an empty body; parsing that as JSON
221
+ // throws. Read the text first and only parse when there is something to parse.
222
+ const text = await response.text();
223
+ return text ? JSON.parse(text) : undefined;
220
224
  }
221
225
  else {
222
226
  return await response.text();
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/jira-client/core/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/jira-client/core/request.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { z } from 'zod';
2
+ import { type AttachmentContentEncoding, type AttachmentGatewaySide } from '@atlassian-dc-mcp/common';
2
3
  type DevelopmentDataType = 'pullrequest' | 'repository' | 'branch';
3
4
  type DevelopmentApplicationType = 'stash' | 'bitbucket' | 'github' | 'githube';
4
5
  export declare class JiraService {
5
6
  private readonly getPageSize;
7
+ private readonly tokenProvider;
6
8
  constructor(host: string | undefined, token: string | (() => string | undefined), apiBasePath?: string, getPageSize?: () => number);
7
9
  searchIssues(jql: string, startAt?: number, expand?: string[], maxResults?: number, fields?: string[]): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<import("./jira-client/index.js").SearchResultsBean>>;
8
10
  getIssue(issueKey: string, expand?: string, fields?: string[]): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<import("./jira-client/index.js").IssueBean>>;
@@ -31,6 +33,41 @@ export declare class JiraService {
31
33
  fields?: Record<string, any>;
32
34
  customFields?: Record<string, any>;
33
35
  }): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<void>>;
36
+ uploadAttachment(issueKey: string, sourcePath: string, uploadSide: AttachmentGatewaySide, filename?: string): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<import("./jira-client/index.js").AttachmentJsonBean>>;
37
+ /**
38
+ * Download attachments from a JIRA issue, or a single attachment by its id.
39
+ * Exactly one of `attachmentId` or `issueKey` must be provided.
40
+ * @param params.attachmentId Download a single attachment by its numeric id
41
+ * @param params.issueKey Download attachments from this issue (optionally filtered by filename)
42
+ * @param params.filename When using issueKey, download only attachments with this exact filename
43
+ * @param params.save Whether to write the attachment(s) to the operator-configured download directory
44
+ * @param params.saveName Optional file name (basename only) when saving a single attachment
45
+ * @param params.returnContent Whether/how to embed the bytes inline in the response
46
+ * @param params.maxInlineBytes Inline embedding cap
47
+ * @param params.downloadSide Resolved download gateway (roots, size limit, enabled flag)
48
+ */
49
+ downloadAttachments(params: {
50
+ attachmentId?: string;
51
+ issueKey?: string;
52
+ filename?: string;
53
+ save?: boolean;
54
+ saveName?: string;
55
+ returnContent?: AttachmentContentEncoding;
56
+ maxInlineBytes?: number;
57
+ downloadSide: AttachmentGatewaySide;
58
+ }): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<{
59
+ count: number;
60
+ attachments: import("@atlassian-dc-mcp/common").AttachmentDownloadResult[];
61
+ }>>;
62
+ private resolveAttachmentBeans;
63
+ getIssueLinkTypes(): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<import("./jira-client/index.js").IssueLinkTypesBean>>;
64
+ linkIssues(params: {
65
+ inwardIssueKey: string;
66
+ outwardIssueKey: string;
67
+ linkType: string;
68
+ comment?: string;
69
+ }): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<any>>;
70
+ unlinkIssues(linkId: string): Promise<import("@atlassian-dc-mcp/common").ApiErrorResponse<void>>;
34
71
  validateSetup(): Promise<void>;
35
72
  static validateConfig(): string[];
36
73
  }
@@ -85,6 +122,32 @@ export declare const jiraToolSchemas: {
85
122
  fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
86
123
  customFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
87
124
  };
125
+ uploadAttachment: {
126
+ issueKey: z.ZodString;
127
+ sourcePath: z.ZodString;
128
+ filename: z.ZodOptional<z.ZodString>;
129
+ };
130
+ downloadAttachment: {
131
+ issueKey: z.ZodOptional<z.ZodString>;
132
+ attachmentId: z.ZodOptional<z.ZodString>;
133
+ filename: z.ZodOptional<z.ZodString>;
134
+ returnContent: z.ZodOptional<z.ZodEnum<["none", "base64", "text"]>>;
135
+ maxInlineBytes: z.ZodOptional<z.ZodNumber>;
136
+ };
137
+ downloadAttachmentSaveFields: {
138
+ save: z.ZodOptional<z.ZodBoolean>;
139
+ saveName: z.ZodOptional<z.ZodString>;
140
+ };
141
+ getIssueLinkTypes: {};
142
+ linkIssues: {
143
+ inwardIssueKey: z.ZodString;
144
+ outwardIssueKey: z.ZodString;
145
+ linkType: z.ZodString;
146
+ comment: z.ZodOptional<z.ZodString>;
147
+ };
148
+ unlinkIssues: {
149
+ linkId: z.ZodString;
150
+ };
88
151
  };
89
152
  export {};
90
153
  //# sourceMappingURL=jira-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jira-service.d.ts","sourceRoot":"","sources":["../src/jira-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,KAAK,mBAAmB,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAC;AACnE,KAAK,0BAA0B,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAiB/E,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;gBAGzC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,GAAE,MAAM,MAA2B;IAa1C,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;IAYrG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;IAO7D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAOzF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAIlD,WAAW,CAAC,MAAM,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACpC;IAiBK,WAAW,CAAC,MAAM,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACpC;IAqBK,cAAc,CAAC,QAAQ,EAAE,MAAM;IAO/B,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,mBAAmC,EAC7C,eAAe,GAAE,0BAAoC;YAYzC,cAAc;IAStB,eAAe,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACpC;IAeK,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,MAAM,CAAC,cAAc,IAAI,MAAM,EAAE;CAGlC;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmD3B,CAAC"}
1
+ {"version":3,"file":"jira-service.d.ts","sourceRoot":"","sources":["../src/jira-service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
+ import { File } from 'node:buffer';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { basename } from 'node:path';
1
4
  import { z } from 'zod';
2
- import { handleApiOperation, resolveOpenApiBase } from '@atlassian-dc-mcp/common';
3
- import { IssueService, MyselfService, OpenAPI, SearchService } from './jira-client/index.js';
5
+ import { downloadAttachment, handleApiOperation, resolveDownloadDestination, resolveOpenApiBase, resolveUploadSource, } from '@atlassian-dc-mcp/common';
6
+ import { AttachmentService, IssueLinkService, IssueLinkTypeService, IssueService, MyselfService, OpenAPI, SearchService } from './jira-client/index.js';
4
7
  import { request as __request } from './jira-client/core/request.js';
5
8
  import { getDefaultPageSize, getMissingConfig, JIRA_PRODUCT } from './config.js';
6
9
  const DEFAULT_SEARCH_FIELDS = ['summary', 'description', 'status', 'assignee', 'reporter', 'priority', 'issuetype', 'labels', 'updated'];
@@ -20,6 +23,7 @@ function resolveToken(token, missingTokenMessage) {
20
23
  }
21
24
  export class JiraService {
22
25
  getPageSize;
26
+ tokenProvider;
23
27
  constructor(host, token, apiBasePath, getPageSize = getDefaultPageSize) {
24
28
  OpenAPI.BASE = resolveOpenApiBase({
25
29
  host,
@@ -29,6 +33,8 @@ export class JiraService {
29
33
  });
30
34
  OpenAPI.TOKEN = resolveToken(token, 'Missing required environment variable: JIRA_API_TOKEN');
31
35
  OpenAPI.VERSION = '2';
36
+ OpenAPI.HEADERS = { 'X-Atlassian-Token': 'no-check' };
37
+ this.tokenProvider = token;
32
38
  this.getPageSize = getPageSize;
33
39
  }
34
40
  async searchIssues(jql, startAt, expand, maxResults, fields) {
@@ -118,6 +124,98 @@ export class JiraService {
118
124
  return IssueService.doTransition(params.issueKey, requestBody);
119
125
  }, 'Error transitioning issue');
120
126
  }
127
+ async uploadAttachment(issueKey, sourcePath, uploadSide, filename) {
128
+ return handleApiOperation(async () => {
129
+ const { absolutePath } = await resolveUploadSource({ requestedPath: sourcePath, side: uploadSide });
130
+ const buffer = await readFile(absolutePath);
131
+ const name = filename || basename(absolutePath);
132
+ const file = new File([buffer], name);
133
+ // IssueService types formData as Blob, but the API expects { file } — getFormData handles File via isBlob()
134
+ return IssueService.addAttachment(issueKey, { file });
135
+ }, 'Error uploading attachment');
136
+ }
137
+ /**
138
+ * Download attachments from a JIRA issue, or a single attachment by its id.
139
+ * Exactly one of `attachmentId` or `issueKey` must be provided.
140
+ * @param params.attachmentId Download a single attachment by its numeric id
141
+ * @param params.issueKey Download attachments from this issue (optionally filtered by filename)
142
+ * @param params.filename When using issueKey, download only attachments with this exact filename
143
+ * @param params.save Whether to write the attachment(s) to the operator-configured download directory
144
+ * @param params.saveName Optional file name (basename only) when saving a single attachment
145
+ * @param params.returnContent Whether/how to embed the bytes inline in the response
146
+ * @param params.maxInlineBytes Inline embedding cap
147
+ * @param params.downloadSide Resolved download gateway (roots, size limit, enabled flag)
148
+ */
149
+ async downloadAttachments(params) {
150
+ return handleApiOperation(async () => {
151
+ if (params.save && !params.downloadSide.enabled) {
152
+ throw new Error('Saving attachments to disk is disabled on this server. Enable it with ' +
153
+ 'JIRA_ATTACHMENTS_DOWNLOAD_ENABLED and configure a download directory.');
154
+ }
155
+ const beans = await this.resolveAttachmentBeans(params);
156
+ const multiple = beans.length > 1;
157
+ const attachments = [];
158
+ for (const bean of beans) {
159
+ const url = bean?.content;
160
+ if (!url) {
161
+ throw new Error(`Attachment "${bean?.filename ?? bean?.id}" has no download URL`);
162
+ }
163
+ const filename = bean?.filename ?? String(bean?.id ?? 'attachment');
164
+ let destination;
165
+ if (params.save) {
166
+ const requestedName = multiple ? filename : params.saveName ?? filename;
167
+ destination = await resolveDownloadDestination({ requestedName, side: params.downloadSide });
168
+ }
169
+ attachments.push(await downloadAttachment({
170
+ url,
171
+ token: this.tokenProvider,
172
+ filename,
173
+ mediaType: bean?.mimeType,
174
+ options: {
175
+ destination,
176
+ returnContent: params.returnContent,
177
+ maxInlineBytes: params.maxInlineBytes,
178
+ maxDownloadBytes: params.downloadSide.maxBytes,
179
+ },
180
+ }));
181
+ }
182
+ return { count: attachments.length, attachments };
183
+ }, 'Error downloading attachment');
184
+ }
185
+ async resolveAttachmentBeans(params) {
186
+ if (params.attachmentId) {
187
+ const bean = await AttachmentService.getAttachment(params.attachmentId);
188
+ return [bean];
189
+ }
190
+ if (!params.issueKey) {
191
+ throw new Error('Either attachmentId or issueKey must be provided');
192
+ }
193
+ const issue = await IssueService.getIssue(params.issueKey, undefined, toIssueFieldSelection(['attachment']));
194
+ const all = ((issue?.fields?.attachment) ?? []);
195
+ const filtered = params.filename ? all.filter((a) => a?.filename === params.filename) : all;
196
+ if (filtered.length === 0) {
197
+ throw new Error(params.filename
198
+ ? `No attachment named "${params.filename}" found on issue ${params.issueKey}`
199
+ : `No attachments found on issue ${params.issueKey}`);
200
+ }
201
+ return filtered;
202
+ }
203
+ async getIssueLinkTypes() {
204
+ return handleApiOperation(() => IssueLinkTypeService.getIssueLinkTypes(), 'Error getting issue link types');
205
+ }
206
+ async linkIssues(params) {
207
+ return handleApiOperation(() => {
208
+ return IssueLinkService.linkIssues({
209
+ type: { name: params.linkType },
210
+ inwardIssue: { key: params.inwardIssueKey },
211
+ outwardIssue: { key: params.outwardIssueKey },
212
+ ...(params.comment ? { comment: { body: params.comment } } : {}),
213
+ });
214
+ }, 'Error linking issues');
215
+ }
216
+ async unlinkIssues(linkId) {
217
+ return handleApiOperation(() => IssueLinkService.deleteIssueLink(linkId), 'Error unlinking issues');
218
+ }
121
219
  async validateSetup() {
122
220
  await MyselfService.getUser();
123
221
  }
@@ -175,6 +273,32 @@ export const jiraToolSchemas = {
175
273
  transitionId: z.string().describe("The ID of the transition to perform. Use jira_getTransitions to find available transitions and their IDs."),
176
274
  fields: z.record(z.any()).optional().describe("Optional fields required by the transition screen. Use jira_getTransitions to see which fields are available for each transition."),
177
275
  customFields: z.record(z.any()).optional().describe("Optional fields merged into the JIRA transition payload. Can be used for update operations such as comments. Example: {'update': {'comment': [{'add': {'body': 'text'}}]}}")
276
+ },
277
+ uploadAttachment: {
278
+ issueKey: z.string().describe("JIRA issue key (e.g., PROJ-123)"),
279
+ sourcePath: z.string().describe("Path to the file to upload, relative to a server-configured attachment upload directory. Absolute paths and '..' segments are rejected; symlinks and non-regular files are refused."),
280
+ filename: z.string().optional().describe("Override for the attachment filename (defaults to the basename of sourcePath)")
281
+ },
282
+ downloadAttachment: {
283
+ issueKey: z.string().optional().describe("JIRA issue key (e.g., PROJ-123) whose attachment(s) to download. Provide either issueKey or attachmentId."),
284
+ attachmentId: z.string().optional().describe("Numeric id of a single attachment to download. Provide either attachmentId or issueKey."),
285
+ filename: z.string().optional().describe("When using issueKey, download only attachments with this exact filename. If omitted, all attachments on the issue are downloaded."),
286
+ returnContent: z.enum(['none', 'base64', 'text']).optional().describe("Whether to embed the file bytes in the response: 'none' (default), 'base64' for binary, or 'text' for UTF-8 text."),
287
+ maxInlineBytes: z.number().optional().describe("Maximum bytes to embed inline when returnContent is base64/text. Larger files are omitted from the inline content. Defaults to 1 MiB.")
288
+ },
289
+ downloadAttachmentSaveFields: {
290
+ save: z.boolean().optional().describe("Save the attachment(s) into the server-configured download directory. Requires disk downloads to be enabled on the server."),
291
+ saveName: z.string().optional().describe("Optional file name (no directories) to use when saving a single attachment; defaults to the attachment's own name. Existing files are never overwritten.")
292
+ },
293
+ getIssueLinkTypes: {},
294
+ linkIssues: {
295
+ inwardIssueKey: z.string().describe("Key of the inward issue (the one the inward link description applies to, e.g. the issue that 'is blocked by'). Example: PROJ-123"),
296
+ outwardIssueKey: z.string().describe("Key of the outward issue (the one the outward link description applies to, e.g. the issue that 'blocks'). Example: PROJ-456"),
297
+ linkType: z.string().describe("Name of the issue link type to apply (e.g. 'Blocks', 'Relates', 'Duplicate'). Use jira_getIssueLinkTypes to discover valid names for this JIRA installation."),
298
+ comment: z.string().optional().describe("Optional comment added to the inward issue when the link is created, in JIRA Wiki Markup.")
299
+ },
300
+ unlinkIssues: {
301
+ linkId: z.string().describe("The id of the issue link to delete. Link ids can be found in the 'issuelinks' field of an issue (retrieve it via jira_getIssue with the 'issuelinks' field).")
178
302
  }
179
303
  };
180
304
  //# sourceMappingURL=jira-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jira-service.js","sourceRoot":"","sources":["../src/jira-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jira-service.js","sourceRoot":"","sources":["../src/jira-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlassian-dc-mcp/jira",
3
- "version": "0.26.0",
3
+ "version": "0.28.0",
4
4
  "main": "build/index.js",
5
5
  "type": "module",
6
6
  "bin": "./bin/run.js",
@@ -32,7 +32,7 @@
32
32
  "test": "jest"
33
33
  },
34
34
  "dependencies": {
35
- "@atlassian-dc-mcp/common": "^0.26.0",
35
+ "@atlassian-dc-mcp/common": "^0.28.0",
36
36
  "@modelcontextprotocol/sdk": "^1.27.1",
37
37
  "dotenv": "^16.4.7",
38
38
  "zod": "^3.24.2"
@@ -46,5 +46,5 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "412375aa0f8a5e192ddbd6dbe6a32b413f068a3f"
49
+ "gitHead": "7f51cd1b0328ecc90785211511415e9609d09a25"
50
50
  }
@@ -0,0 +1,111 @@
1
+ import type { AttachmentGatewaySide } from '@atlassian-dc-mcp/common';
2
+ import { JiraService } from '../jira-service.js';
3
+ import { AttachmentService, IssueService } from '../jira-client/index.js';
4
+
5
+ const DISABLED_DOWNLOAD: AttachmentGatewaySide = { enabled: false, roots: [], maxBytes: 25 * 1024 * 1024 };
6
+
7
+ jest.mock('../jira-client/index.js', () => ({
8
+ AttachmentService: {
9
+ getAttachment: jest.fn(),
10
+ },
11
+ IssueService: {
12
+ getIssue: jest.fn(),
13
+ },
14
+ MyselfService: {},
15
+ SearchService: {},
16
+ OpenAPI: { BASE: '', TOKEN: '', VERSION: '' },
17
+ }));
18
+
19
+ function mockFetchText(text: string) {
20
+ global.fetch = jest.fn().mockResolvedValue({
21
+ ok: true,
22
+ status: 200,
23
+ statusText: 'OK',
24
+ headers: { get: () => 'text/plain' },
25
+ arrayBuffer: async () => Buffer.from(text),
26
+ }) as unknown as typeof fetch;
27
+ }
28
+
29
+ describe('JiraService.downloadAttachments', () => {
30
+ let service: JiraService;
31
+
32
+ beforeEach(() => {
33
+ service = new JiraService('test-host', 'test-token', undefined, () => 25);
34
+ jest.clearAllMocks();
35
+ });
36
+
37
+ afterEach(() => jest.restoreAllMocks());
38
+
39
+ it('downloads a single attachment by id using its content URL', async () => {
40
+ (AttachmentService.getAttachment as jest.Mock).mockResolvedValue({
41
+ id: '10001',
42
+ filename: 'report.pdf',
43
+ mimeType: 'application/pdf',
44
+ content: 'https://test-host/secure/attachment/10001/report.pdf',
45
+ });
46
+ mockFetchText('pdf-bytes');
47
+
48
+ const result = await service.downloadAttachments({ attachmentId: '10001', returnContent: 'text', downloadSide: DISABLED_DOWNLOAD });
49
+
50
+ expect(AttachmentService.getAttachment).toHaveBeenCalledWith('10001');
51
+ expect(global.fetch).toHaveBeenCalledWith(
52
+ 'https://test-host/secure/attachment/10001/report.pdf',
53
+ expect.objectContaining({ headers: expect.objectContaining({ Authorization: 'Bearer test-token' }) }),
54
+ );
55
+ expect(result.success).toBe(true);
56
+ expect(result.data).toMatchObject({ count: 1 });
57
+ expect(result.data!.attachments[0]).toMatchObject({ filename: 'report.pdf', content: 'pdf-bytes' });
58
+ });
59
+
60
+ it('downloads all attachments on an issue', async () => {
61
+ (IssueService.getIssue as jest.Mock).mockResolvedValue({
62
+ fields: {
63
+ attachment: [
64
+ { id: '1', filename: 'a.txt', content: 'https://test-host/a' },
65
+ { id: '2', filename: 'b.txt', content: 'https://test-host/b' },
66
+ ],
67
+ },
68
+ });
69
+ mockFetchText('x');
70
+
71
+ const result = await service.downloadAttachments({ issueKey: 'PROJ-1', downloadSide: DISABLED_DOWNLOAD });
72
+
73
+ expect(IssueService.getIssue).toHaveBeenCalledWith('PROJ-1', undefined, ['attachment']);
74
+ expect(result.success).toBe(true);
75
+ expect(result.data!.count).toBe(2);
76
+ });
77
+
78
+ it('filters issue attachments by filename', async () => {
79
+ (IssueService.getIssue as jest.Mock).mockResolvedValue({
80
+ fields: {
81
+ attachment: [
82
+ { id: '1', filename: 'a.txt', content: 'https://test-host/a' },
83
+ { id: '2', filename: 'b.txt', content: 'https://test-host/b' },
84
+ ],
85
+ },
86
+ });
87
+ mockFetchText('x');
88
+
89
+ const result = await service.downloadAttachments({ issueKey: 'PROJ-1', filename: 'b.txt', downloadSide: DISABLED_DOWNLOAD });
90
+
91
+ expect(result.success).toBe(true);
92
+ expect(result.data!.count).toBe(1);
93
+ expect(result.data!.attachments[0].filename).toBe('b.txt');
94
+ expect(global.fetch).toHaveBeenCalledTimes(1);
95
+ });
96
+
97
+ it('fails when neither attachmentId nor issueKey is provided', async () => {
98
+ const result = await service.downloadAttachments({ downloadSide: DISABLED_DOWNLOAD });
99
+ expect(result.success).toBe(false);
100
+ expect(result.error).toContain('attachmentId or issueKey');
101
+ });
102
+
103
+ it('fails when an issue has no matching attachment', async () => {
104
+ (IssueService.getIssue as jest.Mock).mockResolvedValue({ fields: { attachment: [] } });
105
+
106
+ const result = await service.downloadAttachments({ issueKey: 'PROJ-1', filename: 'x.txt', downloadSide: DISABLED_DOWNLOAD });
107
+
108
+ expect(result.success).toBe(false);
109
+ expect(result.error).toContain('No attachment named "x.txt"');
110
+ });
111
+ });
@@ -3,7 +3,7 @@ import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { initializeRuntimeConfig } from '@atlassian-dc-mcp/common';
5
5
  import { JiraService } from '../jira-service.js';
6
- import { IssueService, OpenAPI, SearchService } from '../jira-client/index.js';
6
+ import { IssueLinkService, IssueLinkTypeService, IssueService, OpenAPI, SearchService } from '../jira-client/index.js';
7
7
  import { request as __request } from '../jira-client/core/request.js';
8
8
 
9
9
  jest.mock('../jira-client/core/request.js', () => ({
@@ -23,6 +23,13 @@ jest.mock('../jira-client/index.js', () => ({
23
23
  SearchService: {
24
24
  searchUsingSearchRequest: jest.fn(),
25
25
  },
26
+ IssueLinkService: {
27
+ linkIssues: jest.fn(),
28
+ deleteIssueLink: jest.fn(),
29
+ },
30
+ IssueLinkTypeService: {
31
+ getIssueLinkTypes: jest.fn(),
32
+ },
26
33
  OpenAPI: {
27
34
  BASE: '',
28
35
  TOKEN: '',
@@ -424,4 +431,102 @@ describe('JiraService', () => {
424
431
  expect(missingVars).toEqual([]);
425
432
  });
426
433
  });
434
+
435
+ describe('getIssueLinkTypes', () => {
436
+ it('should return the available issue link types', async () => {
437
+ const mockLinkTypes = {
438
+ issueLinkTypes: [
439
+ { id: '10000', name: 'Blocks', inward: 'is blocked by', outward: 'blocks' },
440
+ { id: '10001', name: 'Relates', inward: 'relates to', outward: 'relates to' },
441
+ ],
442
+ };
443
+ (IssueLinkTypeService.getIssueLinkTypes as jest.Mock).mockResolvedValue(mockLinkTypes);
444
+
445
+ const result = await jiraService.getIssueLinkTypes();
446
+
447
+ expect(result.success).toBe(true);
448
+ expect(result.data).toBe(mockLinkTypes);
449
+ expect(IssueLinkTypeService.getIssueLinkTypes).toHaveBeenCalledWith();
450
+ });
451
+
452
+ it('should handle errors when issue linking is disabled', async () => {
453
+ (IssueLinkTypeService.getIssueLinkTypes as jest.Mock).mockRejectedValue(new Error('Issue linking is disabled'));
454
+
455
+ const result = await jiraService.getIssueLinkTypes();
456
+
457
+ expect(result.success).toBe(false);
458
+ expect(result.error).toBe('Issue linking is disabled');
459
+ });
460
+ });
461
+
462
+ describe('linkIssues', () => {
463
+ it('should create a link between two issues', async () => {
464
+ (IssueLinkService.linkIssues as jest.Mock).mockResolvedValue(undefined);
465
+
466
+ const result = await jiraService.linkIssues({
467
+ inwardIssueKey: 'PROJ-123',
468
+ outwardIssueKey: 'PROJ-456',
469
+ linkType: 'Blocks',
470
+ });
471
+
472
+ expect(result.success).toBe(true);
473
+ expect(IssueLinkService.linkIssues).toHaveBeenCalledWith({
474
+ type: { name: 'Blocks' },
475
+ inwardIssue: { key: 'PROJ-123' },
476
+ outwardIssue: { key: 'PROJ-456' },
477
+ });
478
+ });
479
+
480
+ it('should include an optional comment on the inward issue', async () => {
481
+ (IssueLinkService.linkIssues as jest.Mock).mockResolvedValue(undefined);
482
+
483
+ const result = await jiraService.linkIssues({
484
+ inwardIssueKey: 'PROJ-123',
485
+ outwardIssueKey: 'PROJ-456',
486
+ linkType: 'Relates',
487
+ comment: 'Linking these for tracking',
488
+ });
489
+
490
+ expect(result.success).toBe(true);
491
+ expect(IssueLinkService.linkIssues).toHaveBeenCalledWith({
492
+ type: { name: 'Relates' },
493
+ inwardIssue: { key: 'PROJ-123' },
494
+ outwardIssue: { key: 'PROJ-456' },
495
+ comment: { body: 'Linking these for tracking' },
496
+ });
497
+ });
498
+
499
+ it('should handle API errors gracefully', async () => {
500
+ (IssueLinkService.linkIssues as jest.Mock).mockRejectedValue(new Error('Issue link type not found'));
501
+
502
+ const result = await jiraService.linkIssues({
503
+ inwardIssueKey: 'PROJ-123',
504
+ outwardIssueKey: 'PROJ-456',
505
+ linkType: 'Nonexistent',
506
+ });
507
+
508
+ expect(result.success).toBe(false);
509
+ expect(result.error).toBe('Issue link type not found');
510
+ });
511
+ });
512
+
513
+ describe('unlinkIssues', () => {
514
+ it('should delete an issue link by id', async () => {
515
+ (IssueLinkService.deleteIssueLink as jest.Mock).mockResolvedValue(undefined);
516
+
517
+ const result = await jiraService.unlinkIssues('10500');
518
+
519
+ expect(result.success).toBe(true);
520
+ expect(IssueLinkService.deleteIssueLink).toHaveBeenCalledWith('10500');
521
+ });
522
+
523
+ it('should handle errors when the link id is invalid', async () => {
524
+ (IssueLinkService.deleteIssueLink as jest.Mock).mockRejectedValue(new Error('Invalid issue link id'));
525
+
526
+ const result = await jiraService.unlinkIssues('bad-id');
527
+
528
+ expect(result.success).toBe(false);
529
+ expect(result.error).toBe('Invalid issue link id');
530
+ });
531
+ });
427
532
  });