@rbaileysr/zephyr-managed-api 1.3.1 → 1.3.3

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
@@ -16,11 +16,11 @@ npm install @rbaileysr/zephyr-managed-api
16
16
  In ScriptRunner Connect a Managed API is constructed for you, but if you need to construct it manually, here's how you can do it:
17
17
 
18
18
  **Using API Connection (recommended for ScriptRunner Connect):**
19
- ```typescript
19
+ ```typescript
20
20
  import { createZephyrApi } from '@rbaileysr/zephyr-managed-api';
21
- import ZephyrApiConnection from '../api/zephyr';
21
+ import ZephyrApiConnection from '../api/zephyr';
22
22
 
23
- // Base URL is configured in the Generic Connector
23
+ // Base URL is configured in the Generic Connector
24
24
  const api = createZephyrApi(ZephyrApiConnection);
25
25
  ```
26
26
 
@@ -174,6 +174,11 @@ const apiEU = createZephyrApi(
174
174
  - **getTestExecutionStepAttachments** - Get all attachments for a test execution step
175
175
  - **downloadTestExecutionStepAttachment** - Download an attachment from a test execution step
176
176
  - **createTestExecutionStepAttachment** - Upload an attachment to a test execution step
177
+ - VersionControl
178
+ - **getTestCaseIssueLinks** - Get issue links for a test case (with version support)
179
+ - **getTestCaseWebLinks** - Get web links for a test case (with version support)
180
+ - **getTestCaseTestScript** - Get test script for a test case (with version support)
181
+ - **getTestCaseTestSteps** - Get test steps for a test case (with version support)
177
182
 
178
183
  ## Private API Authentication
179
184
 
@@ -225,10 +230,7 @@ const customField = await api.Private.Config.CustomFields.createCustomField(
225
230
  // Create a new label
226
231
  await api.Private.Config.Labels.createLabel(credentials, {
227
232
  projectId: 10233,
228
- name: 'automated',
229
- color: '#FFFFFF',
230
- index: 0,
231
- items: []
233
+ name: 'automated'
232
234
  });
233
235
 
234
236
  // Get all labels
@@ -244,10 +246,7 @@ const labels = await api.Private.Config.Labels.getLabels(credentials, {
244
246
  const iteration = await api.Private.Config.Iterations.createIteration(credentials, {
245
247
  projectId: 10233,
246
248
  name: 'Sprint 1',
247
- description: 'First sprint of Q1',
248
- color: '#FFFFFF',
249
- index: 0,
250
- items: []
249
+ description: 'First sprint of Q1'
251
250
  });
252
251
 
253
252
  // Get all iterations
@@ -261,28 +260,21 @@ const iterations = await api.Private.Config.Iterations.getIterations(credentials
261
260
  ```typescript
262
261
  // Create a new data set (empty)
263
262
  const dataSet = await api.Private.Config.DataSets.createDataSet(credentials, {
264
- projectId: 10233,
265
- name: 'Environment',
266
- color: '#FFFFFF',
267
- index: 0,
268
- items: []
263
+ projectId: 10233,
264
+ name: 'Environment'
269
265
  });
270
266
 
271
267
  // Add items/options to the data set
272
- const updatedDataSet = await api.Private.Config.DataSets.updateDataSet(
273
- credentials,
274
- dataSet.id,
275
- {
276
- id: dataSet.id,
277
- name: 'Environment',
278
- projectId: 10233,
279
- items: [
280
- { name: 'Production', index: 0, archived: false },
281
- { name: 'Staging', index: 1, archived: false },
282
- { name: 'Development', index: 2, archived: false }
283
- ]
284
- }
285
- );
268
+ const updatedDataSet = await api.Private.Config.DataSets.updateDataSet(credentials, {
269
+ id: dataSet.id,
270
+ name: 'Environment',
271
+ projectId: 10233,
272
+ items: [
273
+ { name: 'Production', index: 0, archived: false },
274
+ { name: 'Staging', index: 1, archived: false },
275
+ { name: 'Development', index: 2, archived: false }
276
+ ]
277
+ });
286
278
 
287
279
  // Get all data sets
288
280
  const dataSets = await api.Private.Config.DataSets.getDataSets(credentials, {
@@ -321,6 +313,39 @@ const attachment = await api.Private.Attachments.createAttachment(
321
313
  );
322
314
  ```
323
315
 
316
+ ### Example: Get Version-Specific Data
317
+
318
+ ```typescript
319
+ // Get issue links for current version
320
+ const issueLinks = await api.Private.VersionControl.getTestCaseIssueLinks(credentials, {
321
+ testCaseKey: 'PROJ-T1',
322
+ projectId: 10233
323
+ });
324
+
325
+ // Get web links for version 2 (previous version)
326
+ const webLinks = await api.Private.VersionControl.getTestCaseWebLinks(credentials, {
327
+ testCaseKey: 'PROJ-T1',
328
+ projectId: 10233,
329
+ version: 2
330
+ });
331
+
332
+ // Get test script for version 3
333
+ const testScript = await api.Private.VersionControl.getTestCaseTestScript(credentials, {
334
+ testCaseKey: 'PROJ-T1',
335
+ projectId: 10233,
336
+ version: 3
337
+ });
338
+
339
+ // Get test steps for version 1 (current version)
340
+ const testSteps = await api.Private.VersionControl.getTestCaseTestSteps(credentials, {
341
+ testCaseKey: 'PROJ-T1',
342
+ projectId: 10233,
343
+ version: 1
344
+ });
345
+ ```
346
+
347
+ **Note:** Version numbers are relative to the current version (1 = current/latest, 2 = previous, 3 = version before that, etc.). If `version` is not provided, the latest version is used.
348
+
324
349
  **Important Notes:**
325
350
  - Private API methods require a `PrivateApiCredentials` object with `userEmail`, `apiToken`, and `jiraInstanceUrl`
326
351
  - The Context JWT token expires after 15 minutes and must be retrieved for each private API call
@@ -333,6 +358,21 @@ Feel free to drop ideas, suggestions or improvements into our [Community hub](ht
333
358
 
334
359
  ## Changelog
335
360
 
361
+ ### 1.3.3
362
+
363
+ - **Added**: New VersionControl sub-group under Private API for version-specific operations
364
+ - **Added**: `getTestCaseIssueLinks()` - Get issue links for a test case with version support
365
+ - **Added**: `getTestCaseWebLinks()` - Get web links for a test case with version support
366
+ - **Added**: `getTestCaseTestScript()` - Get test script for a test case with version support
367
+ - **Added**: `getTestCaseTestSteps()` - Get test steps for a test case with version support
368
+ - **Added**: Version parameter support to `getTestCaseComments()`, `getTestCaseAttachments()`, and `downloadAttachment()` methods
369
+ - **Changed**: Private API now organized as: Authentication, Comments, Config, Versions, Attachments, VersionControl
370
+
371
+ ### 1.3.2
372
+
373
+ - **Changed**: `updateDataSet` now takes `id` in the request object instead of as a separate parameter
374
+ - **Changed**: Removed unused `color`, `index`, and `items` parameters from `createLabel`, `createIteration`, and `createDataSet` request types (these are now hardcoded internally)
375
+
336
376
  ### 1.3.1
337
377
 
338
378
  - **Added**: New Config sub-group under Private API for configuration operations
package/dist/README.md CHANGED
@@ -16,11 +16,11 @@ npm install @rbaileysr/zephyr-managed-api
16
16
  In ScriptRunner Connect a Managed API is constructed for you, but if you need to construct it manually, here's how you can do it:
17
17
 
18
18
  **Using API Connection (recommended for ScriptRunner Connect):**
19
- ```typescript
19
+ ```typescript
20
20
  import { createZephyrApi } from '@rbaileysr/zephyr-managed-api';
21
- import ZephyrApiConnection from '../api/zephyr';
21
+ import ZephyrApiConnection from '../api/zephyr';
22
22
 
23
- // Base URL is configured in the Generic Connector
23
+ // Base URL is configured in the Generic Connector
24
24
  const api = createZephyrApi(ZephyrApiConnection);
25
25
  ```
26
26
 
@@ -174,6 +174,11 @@ const apiEU = createZephyrApi(
174
174
  - **getTestExecutionStepAttachments** - Get all attachments for a test execution step
175
175
  - **downloadTestExecutionStepAttachment** - Download an attachment from a test execution step
176
176
  - **createTestExecutionStepAttachment** - Upload an attachment to a test execution step
177
+ - VersionControl
178
+ - **getTestCaseIssueLinks** - Get issue links for a test case (with version support)
179
+ - **getTestCaseWebLinks** - Get web links for a test case (with version support)
180
+ - **getTestCaseTestScript** - Get test script for a test case (with version support)
181
+ - **getTestCaseTestSteps** - Get test steps for a test case (with version support)
177
182
 
178
183
  ## Private API Authentication
179
184
 
@@ -225,10 +230,7 @@ const customField = await api.Private.Config.CustomFields.createCustomField(
225
230
  // Create a new label
226
231
  await api.Private.Config.Labels.createLabel(credentials, {
227
232
  projectId: 10233,
228
- name: 'automated',
229
- color: '#FFFFFF',
230
- index: 0,
231
- items: []
233
+ name: 'automated'
232
234
  });
233
235
 
234
236
  // Get all labels
@@ -244,10 +246,7 @@ const labels = await api.Private.Config.Labels.getLabels(credentials, {
244
246
  const iteration = await api.Private.Config.Iterations.createIteration(credentials, {
245
247
  projectId: 10233,
246
248
  name: 'Sprint 1',
247
- description: 'First sprint of Q1',
248
- color: '#FFFFFF',
249
- index: 0,
250
- items: []
249
+ description: 'First sprint of Q1'
251
250
  });
252
251
 
253
252
  // Get all iterations
@@ -261,28 +260,21 @@ const iterations = await api.Private.Config.Iterations.getIterations(credentials
261
260
  ```typescript
262
261
  // Create a new data set (empty)
263
262
  const dataSet = await api.Private.Config.DataSets.createDataSet(credentials, {
264
- projectId: 10233,
265
- name: 'Environment',
266
- color: '#FFFFFF',
267
- index: 0,
268
- items: []
263
+ projectId: 10233,
264
+ name: 'Environment'
269
265
  });
270
266
 
271
267
  // Add items/options to the data set
272
- const updatedDataSet = await api.Private.Config.DataSets.updateDataSet(
273
- credentials,
274
- dataSet.id,
275
- {
276
- id: dataSet.id,
277
- name: 'Environment',
278
- projectId: 10233,
279
- items: [
280
- { name: 'Production', index: 0, archived: false },
281
- { name: 'Staging', index: 1, archived: false },
282
- { name: 'Development', index: 2, archived: false }
283
- ]
284
- }
285
- );
268
+ const updatedDataSet = await api.Private.Config.DataSets.updateDataSet(credentials, {
269
+ id: dataSet.id,
270
+ name: 'Environment',
271
+ projectId: 10233,
272
+ items: [
273
+ { name: 'Production', index: 0, archived: false },
274
+ { name: 'Staging', index: 1, archived: false },
275
+ { name: 'Development', index: 2, archived: false }
276
+ ]
277
+ });
286
278
 
287
279
  // Get all data sets
288
280
  const dataSets = await api.Private.Config.DataSets.getDataSets(credentials, {
@@ -321,6 +313,39 @@ const attachment = await api.Private.Attachments.createAttachment(
321
313
  );
322
314
  ```
323
315
 
316
+ ### Example: Get Version-Specific Data
317
+
318
+ ```typescript
319
+ // Get issue links for current version
320
+ const issueLinks = await api.Private.VersionControl.getTestCaseIssueLinks(credentials, {
321
+ testCaseKey: 'PROJ-T1',
322
+ projectId: 10233
323
+ });
324
+
325
+ // Get web links for version 2 (previous version)
326
+ const webLinks = await api.Private.VersionControl.getTestCaseWebLinks(credentials, {
327
+ testCaseKey: 'PROJ-T1',
328
+ projectId: 10233,
329
+ version: 2
330
+ });
331
+
332
+ // Get test script for version 3
333
+ const testScript = await api.Private.VersionControl.getTestCaseTestScript(credentials, {
334
+ testCaseKey: 'PROJ-T1',
335
+ projectId: 10233,
336
+ version: 3
337
+ });
338
+
339
+ // Get test steps for version 1 (current version)
340
+ const testSteps = await api.Private.VersionControl.getTestCaseTestSteps(credentials, {
341
+ testCaseKey: 'PROJ-T1',
342
+ projectId: 10233,
343
+ version: 1
344
+ });
345
+ ```
346
+
347
+ **Note:** Version numbers are relative to the current version (1 = current/latest, 2 = previous, 3 = version before that, etc.). If `version` is not provided, the latest version is used.
348
+
324
349
  **Important Notes:**
325
350
  - Private API methods require a `PrivateApiCredentials` object with `userEmail`, `apiToken`, and `jiraInstanceUrl`
326
351
  - The Context JWT token expires after 15 minutes and must be retrieved for each private API call
@@ -333,6 +358,21 @@ Feel free to drop ideas, suggestions or improvements into our [Community hub](ht
333
358
 
334
359
  ## Changelog
335
360
 
361
+ ### 1.3.3
362
+
363
+ - **Added**: New VersionControl sub-group under Private API for version-specific operations
364
+ - **Added**: `getTestCaseIssueLinks()` - Get issue links for a test case with version support
365
+ - **Added**: `getTestCaseWebLinks()` - Get web links for a test case with version support
366
+ - **Added**: `getTestCaseTestScript()` - Get test script for a test case with version support
367
+ - **Added**: `getTestCaseTestSteps()` - Get test steps for a test case with version support
368
+ - **Added**: Version parameter support to `getTestCaseComments()`, `getTestCaseAttachments()`, and `downloadAttachment()` methods
369
+ - **Changed**: Private API now organized as: Authentication, Comments, Config, Versions, Attachments, VersionControl
370
+
371
+ ### 1.3.2
372
+
373
+ - **Changed**: `updateDataSet` now takes `id` in the request object instead of as a separate parameter
374
+ - **Changed**: Removed unused `color`, `index`, and `items` parameters from `createLabel`, `createIteration`, and `createDataSet` request types (these are now hardcoded internally)
375
+
336
376
  ### 1.3.1
337
377
 
338
378
  - **Added**: New Config sub-group under Private API for configuration operations
@@ -25,6 +25,7 @@ export declare class PrivateAttachments extends PrivateBase {
25
25
  * @param request - Get attachments request
26
26
  * @param request.testCaseKey - Test case key (e.g., 'PROJ-T1'). The numeric ID will be looked up automatically if Zephyr Connector is available.
27
27
  * @param request.projectId - Jira project ID (numeric, not the project key)
28
+ * @param request.version - Optional version number (relative to current version, where 1 = current/latest version, 2 = previous version, 3 = version before that, etc.). If not provided, uses the latest version (same as version: 1).
28
29
  * @returns Test case attachments response with array of attachment details
29
30
  * @throws {BadRequestError} If the request is invalid
30
31
  * @throws {UnauthorizedError} If authentication fails
@@ -50,6 +51,7 @@ export declare class PrivateAttachments extends PrivateBase {
50
51
  * @param request.testCaseKey - Test case key (e.g., 'PROJ-T1'). The numeric ID will be looked up automatically if Zephyr Connector is available.
51
52
  * @param request.projectId - Jira project ID (numeric, not the project key)
52
53
  * @param request.attachmentId - Attachment ID (UUID string, e.g., 'c3f14125-638f-47f9-9211-12a9777c09e7')
54
+ * @param request.version - Optional version number (relative to current version, where 1 = current/latest version, 2 = previous version, 3 = version before that, etc.). If not provided, uses the latest version (same as version: 1).
53
55
  * @returns Blob containing the attachment file data
54
56
  * @throws {BadRequestError} If the request is invalid
55
57
  * @throws {UnauthorizedError} If authentication fails
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateAttachments.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateAttachments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivateAttachments.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateAttachments.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export class PrivateAttachments extends PrivateBase {
20
20
  * @param request - Get attachments request
21
21
  * @param request.testCaseKey - Test case key (e.g., 'PROJ-T1'). The numeric ID will be looked up automatically if Zephyr Connector is available.
22
22
  * @param request.projectId - Jira project ID (numeric, not the project key)
23
+ * @param request.version - Optional version number (relative to current version, where 1 = current/latest version, 2 = previous version, 3 = version before that, etc.). If not provided, uses the latest version (same as version: 1).
23
24
  * @returns Test case attachments response with array of attachment details
24
25
  * @throws {BadRequestError} If the request is invalid
25
26
  * @throws {UnauthorizedError} If authentication fails
@@ -33,15 +34,21 @@ export class PrivateAttachments extends PrivateBase {
33
34
  let testCaseId;
34
35
  if (this.testCaseGroup) {
35
36
  try {
36
- const testCase = await this.testCaseGroup.getTestCase({ testCaseKey: request.testCaseKey });
37
+ // If version is specified, get the versioned test case; otherwise get the current version
38
+ const testCase = request.version !== undefined && request.version > 0
39
+ ? await this.testCaseGroup.getTestCaseVersion({
40
+ testCaseKey: request.testCaseKey,
41
+ version: request.version,
42
+ })
43
+ : await this.testCaseGroup.getTestCase({ testCaseKey: request.testCaseKey });
37
44
  if (!testCase) {
38
- throw new NotFoundError(`Test case with key '${request.testCaseKey}' not found.`);
45
+ throw new NotFoundError(`Test case with key '${request.testCaseKey}'${request.version !== undefined && request.version > 0 ? ` version ${request.version}` : ''} not found.`);
39
46
  }
40
47
  testCaseId = testCase.id;
41
48
  }
42
49
  catch (error) {
43
50
  if (error instanceof NotFoundError) {
44
- throw new NotFoundError(`Test case with key '${request.testCaseKey}' not found.`);
51
+ throw new NotFoundError(`Test case with key '${request.testCaseKey}'${request.version !== undefined && request.version > 0 ? ` version ${request.version}` : ''} not found.`);
45
52
  }
46
53
  throw new UnexpectedError(`Failed to look up test case ID from key '${request.testCaseKey}'. Ensure Zephyr Connector is configured.`, error);
47
54
  }
@@ -73,7 +80,7 @@ export class PrivateAttachments extends PrivateBase {
73
80
  throw new ForbiddenError('Insufficient permissions to get attachments.');
74
81
  }
75
82
  if (response.status === 404) {
76
- throw new NotFoundError(`Test case with key '${request.testCaseKey}' not found.`);
83
+ throw new NotFoundError(`Test case with key '${request.testCaseKey}'${request.version !== undefined && request.version > 0 ? ` version ${request.version}` : ''} not found.`);
77
84
  }
78
85
  throw new ServerError(`Failed to get test case attachments. Status: ${response.status}`, response.status, response.statusText);
79
86
  }
@@ -107,6 +114,7 @@ export class PrivateAttachments extends PrivateBase {
107
114
  * @param request.testCaseKey - Test case key (e.g., 'PROJ-T1'). The numeric ID will be looked up automatically if Zephyr Connector is available.
108
115
  * @param request.projectId - Jira project ID (numeric, not the project key)
109
116
  * @param request.attachmentId - Attachment ID (UUID string, e.g., 'c3f14125-638f-47f9-9211-12a9777c09e7')
117
+ * @param request.version - Optional version number (relative to current version, where 1 = current/latest version, 2 = previous version, 3 = version before that, etc.). If not provided, uses the latest version (same as version: 1).
110
118
  * @returns Blob containing the attachment file data
111
119
  * @throws {BadRequestError} If the request is invalid
112
120
  * @throws {UnauthorizedError} If authentication fails
@@ -120,6 +128,7 @@ export class PrivateAttachments extends PrivateBase {
120
128
  const attachmentsResponse = await this.getTestCaseAttachments(credentials, {
121
129
  testCaseKey: request.testCaseKey,
122
130
  projectId: request.projectId,
131
+ version: request.version,
123
132
  });
124
133
  // Step 2: Find the requested attachment
125
134
  const attachment = attachmentsResponse.attachments.find((att) => att.id === request.attachmentId);
@@ -24,6 +24,7 @@ export declare class PrivateComments extends PrivateBase {
24
24
  * @param request - Get comments request
25
25
  * @param request.testCaseKey - Test case key (e.g., 'PROJ-T1'). The numeric ID will be looked up automatically if Zephyr Connector is available.
26
26
  * @param request.projectId - Jira project ID (numeric, not the project key)
27
+ * @param request.version - Optional version number (relative to current version, where 1 = current/latest version, 2 = previous version, 3 = version before that, etc.). If not provided, uses the latest version (same as version: 1).
27
28
  * @returns Array of comments
28
29
  * @throws {BadRequestError} If the request is invalid
29
30
  * @throws {UnauthorizedError} If authentication fails
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateComments.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateComments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,WAAW;gBACnC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,mBAAmB,CACxB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC;IA6E5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,oBAAoB,CACzB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,2BAA2B,GAClC,OAAO,CAAC,cAAc,EAAE,CAAC;IAqD5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,mBAAmB,CACxB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC;IAqD5B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,qBAAqB,CAC1B,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,6BAA6B,CAAC;IAoFzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,sBAAsB,CAC3B,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,6BAA6B,GACpC,OAAO,CAAC,qBAAqB,CAAC;IAoFjC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,qBAAqB,CAC1B,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,qBAAqB,CAAC;CAmFjC"}
1
+ {"version":3,"file":"PrivateComments.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateComments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,WAAW;gBACnC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,mBAAmB,CACxB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC;IA0F5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,oBAAoB,CACzB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,2BAA2B,GAClC,OAAO,CAAC,cAAc,EAAE,CAAC;IAqD5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,mBAAmB,CACxB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC;IAqD5B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,qBAAqB,CAC1B,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,6BAA6B,CAAC;IAoFzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,sBAAsB,CAC3B,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,6BAA6B,GACpC,OAAO,CAAC,qBAAqB,CAAC;IAoFjC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,qBAAqB,CAC1B,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,qBAAqB,CAAC;CAmFjC"}
@@ -19,6 +19,7 @@ export class PrivateComments extends PrivateBase {
19
19
  * @param request - Get comments request
20
20
  * @param request.testCaseKey - Test case key (e.g., 'PROJ-T1'). The numeric ID will be looked up automatically if Zephyr Connector is available.
21
21
  * @param request.projectId - Jira project ID (numeric, not the project key)
22
+ * @param request.version - Optional version number (relative to current version, where 1 = current/latest version, 2 = previous version, 3 = version before that, etc.). If not provided, uses the latest version (same as version: 1).
22
23
  * @returns Array of comments
23
24
  * @throws {BadRequestError} If the request is invalid
24
25
  * @throws {UnauthorizedError} If authentication fails
@@ -32,15 +33,21 @@ export class PrivateComments extends PrivateBase {
32
33
  let testCaseId;
33
34
  if (this.testCaseGroup) {
34
35
  try {
35
- const testCase = await this.testCaseGroup.getTestCase({ testCaseKey: request.testCaseKey });
36
+ // If version is specified, get the versioned test case; otherwise get the current version
37
+ const testCase = request.version !== undefined && request.version > 0
38
+ ? await this.testCaseGroup.getTestCaseVersion({
39
+ testCaseKey: request.testCaseKey,
40
+ version: request.version,
41
+ })
42
+ : await this.testCaseGroup.getTestCase({ testCaseKey: request.testCaseKey });
36
43
  if (!testCase) {
37
- throw new NotFoundError(`Test case with key '${request.testCaseKey}' not found.`);
44
+ throw new NotFoundError(`Test case with key '${request.testCaseKey}'${request.version !== undefined && request.version > 0 ? ` version ${request.version}` : ''} not found.`);
38
45
  }
39
46
  testCaseId = testCase.id;
40
47
  }
41
48
  catch (error) {
42
49
  if (error instanceof NotFoundError) {
43
- throw new NotFoundError(`Test case with key '${request.testCaseKey}' not found.`);
50
+ throw new NotFoundError(`Test case with key '${request.testCaseKey}'${request.version !== undefined && request.version > 0 ? ` version ${request.version}` : ''} not found.`);
44
51
  }
45
52
  throw new UnexpectedError(`Failed to look up test case ID from key '${request.testCaseKey}'. Ensure Zephyr Connector is configured.`, error);
46
53
  }
@@ -72,7 +79,7 @@ export class PrivateComments extends PrivateBase {
72
79
  throw new ForbiddenError('Insufficient permissions to get comments.');
73
80
  }
74
81
  if (response.status === 404) {
75
- throw new NotFoundError(`Test case with key '${request.testCaseKey}' not found.`);
82
+ throw new NotFoundError(`Test case with key '${request.testCaseKey}'${request.version !== undefined && request.version > 0 ? ` version ${request.version}` : ''} not found.`);
76
83
  }
77
84
  throw new ServerError(`Failed to get comments. Status: ${response.status}`, response.status, response.statusText);
78
85
  }
@@ -54,14 +54,13 @@ export declare class PrivateDataSets extends PrivateBase {
54
54
  * The endpoint may change or be removed at any time without notice.
55
55
  *
56
56
  * @param credentials - Private API credentials
57
- * @param dataSetId - Data set ID
58
- * @param request - Update data set request
57
+ * @param request - Update data set request (must include id field)
59
58
  * @returns Updated data set response
60
59
  * @throws {BadRequestError} If the request is invalid
61
60
  * @throws {UnauthorizedError} If authentication fails
62
61
  * @throws {ForbiddenError} If the user doesn't have permission
63
62
  * @throws {ServerError} If the server returns an error
64
63
  */
65
- updateDataSet(credentials: PrivateApiCredentials, dataSetId: number, request: UpdateDataSetRequest): Promise<UpdateDataSetResponse>;
64
+ updateDataSet(credentials: PrivateApiCredentials, request: UpdateDataSetRequest): Promise<UpdateDataSetResponse>;
66
65
  }
67
66
  //# sourceMappingURL=PrivateDataSets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateDataSets.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateDataSets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,WAAW;gBACnC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsD7G;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAClB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IAuDjC;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAClB,WAAW,EAAE,qBAAqB,EAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;CAsDjC"}
1
+ {"version":3,"file":"PrivateDataSets.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateDataSets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,WAAW;gBACnC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsD7G;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAClB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IA+DjC;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa,CAClB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;CAsDjC"}
@@ -91,10 +91,17 @@ export class PrivateDataSets extends PrivateBase {
91
91
  'jira-project-id': String(request.projectId),
92
92
  };
93
93
  try {
94
+ // Hardcode color, index, and items as they're not used by the API
95
+ const requestBody = {
96
+ ...request,
97
+ color: '#FFFFFF',
98
+ index: 0,
99
+ items: [],
100
+ };
94
101
  const response = await fetch(url, {
95
102
  method: 'POST',
96
103
  headers,
97
- body: JSON.stringify(request),
104
+ body: JSON.stringify(requestBody),
98
105
  });
99
106
  if (!response.ok) {
100
107
  if (response.status === 400) {
@@ -136,18 +143,17 @@ export class PrivateDataSets extends PrivateBase {
136
143
  * The endpoint may change or be removed at any time without notice.
137
144
  *
138
145
  * @param credentials - Private API credentials
139
- * @param dataSetId - Data set ID
140
- * @param request - Update data set request
146
+ * @param request - Update data set request (must include id field)
141
147
  * @returns Updated data set response
142
148
  * @throws {BadRequestError} If the request is invalid
143
149
  * @throws {UnauthorizedError} If authentication fails
144
150
  * @throws {ForbiddenError} If the user doesn't have permission
145
151
  * @throws {ServerError} If the server returns an error
146
152
  */
147
- async updateDataSet(credentials, dataSetId, request) {
153
+ async updateDataSet(credentials, request) {
148
154
  // Get Context JWT
149
155
  const contextJwt = await this.getContextJwt(credentials);
150
- const url = `${this.privateApiBaseUrl}/dataset/${dataSetId}`;
156
+ const url = `${this.privateApiBaseUrl}/dataset/${request.id}`;
151
157
  const headers = {
152
158
  'Content-Type': 'application/json',
153
159
  authorization: `JWT ${contextJwt}`,
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateIterations.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateIterations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,iBAAkB,SAAQ,WAAW;gBACrC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsDnH;;;;;;;;;;;;;OAaG;IACG,eAAe,CACpB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,uBAAuB,CAAC;CAsDnC"}
1
+ {"version":3,"file":"PrivateIterations.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateIterations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,iBAAkB,SAAQ,WAAW;gBACrC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsDnH;;;;;;;;;;;;;OAaG;IACG,eAAe,CACpB,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,uBAAuB,CAAC;CA8DnC"}
@@ -89,10 +89,17 @@ export class PrivateIterations extends PrivateBase {
89
89
  'jira-project-id': String(request.projectId),
90
90
  };
91
91
  try {
92
+ // Hardcode color, index, and items as they're not used by the API
93
+ const requestBody = {
94
+ ...request,
95
+ color: '#FFFFFF',
96
+ index: 0,
97
+ items: [],
98
+ };
92
99
  const response = await fetch(url, {
93
100
  method: 'POST',
94
101
  headers,
95
- body: JSON.stringify(request),
102
+ body: JSON.stringify(requestBody),
96
103
  });
97
104
  if (!response.ok) {
98
105
  if (response.status === 400) {
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateLabels.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateLabels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,aAAc,SAAQ,WAAW;gBACjC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsDvG;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsDjG"}
1
+ {"version":3,"file":"PrivateLabels.d.ts","sourceRoot":"","sources":["../../../groups/Private/PrivateLabels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,aAAc,SAAQ,WAAW;gBACjC,aAAa,CAAC,EAAE,mBAAmB;IAI/C;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsDvG;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8DjG"}
@@ -89,10 +89,17 @@ export class PrivateLabels extends PrivateBase {
89
89
  'jira-project-id': String(request.projectId),
90
90
  };
91
91
  try {
92
+ // Hardcode color, index, and items as they're not used by the API
93
+ const requestBody = {
94
+ ...request,
95
+ color: '#FFFFFF',
96
+ index: 0,
97
+ items: [],
98
+ };
92
99
  const response = await fetch(url, {
93
100
  method: 'POST',
94
101
  headers,
95
- body: JSON.stringify(request),
102
+ body: JSON.stringify(requestBody),
96
103
  });
97
104
  if (!response.ok) {
98
105
  if (response.status === 400) {