airbyte-faros-destination 0.10.84 → 0.10.85
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/lib/converters/azure-workitems/models.d.ts +5 -0
- package/lib/converters/azure-workitems/models.js.map +1 -1
- package/lib/converters/azure-workitems/workitems.d.ts +4 -0
- package/lib/converters/azure-workitems/workitems.js +71 -10
- package/lib/converters/azure-workitems/workitems.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -14,8 +14,13 @@ export interface WorkItem {
|
|
|
14
14
|
states: any[];
|
|
15
15
|
assignees: any[];
|
|
16
16
|
};
|
|
17
|
+
additionalFields: ReadonlyArray<AdditionalField>;
|
|
17
18
|
projectId: string;
|
|
18
19
|
}
|
|
20
|
+
export interface AdditionalField {
|
|
21
|
+
name: string;
|
|
22
|
+
value: string;
|
|
23
|
+
}
|
|
19
24
|
export interface System {
|
|
20
25
|
AreaPath: string;
|
|
21
26
|
AssignedTo: user;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/converters/azure-workitems/models.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/converters/azure-workitems/models.ts"],"names":[],"mappings":";;;AA0FA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,iDAA6B,CAAA;IAC7B,iCAAa,CAAA;IACb,qCAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B"}
|
|
@@ -2,10 +2,14 @@ import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
|
2
2
|
import { DestinationModel, DestinationRecord } from '../converter';
|
|
3
3
|
import { AzureWorkitemsConverter } from './common';
|
|
4
4
|
export declare class Workitems extends AzureWorkitemsConverter {
|
|
5
|
+
private readonly collectedAreaPaths;
|
|
5
6
|
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
7
|
convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
|
+
private collectAreaPath;
|
|
9
|
+
private getTags;
|
|
7
10
|
private getTaskType;
|
|
8
11
|
private getStatusMapping;
|
|
9
12
|
private convertAssigneeRevisions;
|
|
10
13
|
private convertStateRevisions;
|
|
14
|
+
onProcessingComplete(): Promise<ReadonlyArray<DestinationRecord>>;
|
|
11
15
|
}
|
|
@@ -6,9 +6,13 @@ const common_1 = require("./common");
|
|
|
6
6
|
class Workitems extends common_1.AzureWorkitemsConverter {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
|
+
this.collectedAreaPaths = new Map();
|
|
9
10
|
this.destinationModels = [
|
|
10
11
|
'tms_Task',
|
|
11
12
|
'tms_TaskAssignment',
|
|
13
|
+
'tms_TaskProjectRelationship',
|
|
14
|
+
'tms_TaskTag',
|
|
15
|
+
'tms_TaskBoard',
|
|
12
16
|
];
|
|
13
17
|
}
|
|
14
18
|
async convert(record) {
|
|
@@ -16,15 +20,11 @@ class Workitems extends common_1.AzureWorkitemsConverter {
|
|
|
16
20
|
const source = this.streamName.source;
|
|
17
21
|
const WorkItem = record.record.data;
|
|
18
22
|
const taskKey = { uid: String(WorkItem.id), source };
|
|
23
|
+
const areaPath = this.collectAreaPath(WorkItem.fields['System.AreaPath'], WorkItem.projectId);
|
|
19
24
|
const statusChangelog = this.convertStateRevisions(WorkItem.revisions.states);
|
|
20
25
|
const assignees = this.convertAssigneeRevisions(WorkItem.revisions.assignees);
|
|
21
26
|
const { name: stateName, category: stateCategory } = WorkItem.fields['Faros']['WorkItemStateCategory'];
|
|
22
|
-
const
|
|
23
|
-
{
|
|
24
|
-
name: 'Severity',
|
|
25
|
-
value: WorkItem.fields['Microsoft.VSTS.Common.Severity'],
|
|
26
|
-
},
|
|
27
|
-
];
|
|
27
|
+
const tags = this.getTags(WorkItem.fields['System.Tags']);
|
|
28
28
|
return [
|
|
29
29
|
{
|
|
30
30
|
model: 'tms_Task',
|
|
@@ -49,10 +49,9 @@ class Workitems extends common_1.AzureWorkitemsConverter {
|
|
|
49
49
|
priority: String(WorkItem.fields['Microsoft.VSTS.Common.Priority']),
|
|
50
50
|
resolvedAt: faros_js_client_1.Utils.toDate(WorkItem.fields['Microsoft.VSTS.Common.ResolvedDate']),
|
|
51
51
|
statusChangelog,
|
|
52
|
-
additionalFields,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// Microsoft.VSTS.Scheduling.Effort
|
|
52
|
+
additionalFields: WorkItem.additionalFields,
|
|
53
|
+
resolutionStatus: WorkItem.fields['Microsoft.VSTS.Common.ResolvedReason'],
|
|
54
|
+
points: WorkItem.fields['Microsoft.VSTS.Scheduling.StoryPoints'],
|
|
56
55
|
},
|
|
57
56
|
},
|
|
58
57
|
...assignees.map((assignee) => ({
|
|
@@ -70,9 +69,38 @@ class Workitems extends common_1.AzureWorkitemsConverter {
|
|
|
70
69
|
project: { uid: String(WorkItem.projectId), source },
|
|
71
70
|
},
|
|
72
71
|
},
|
|
72
|
+
...tags.map((tag) => ({
|
|
73
|
+
model: 'tms_TaskTag',
|
|
74
|
+
record: { task: taskKey, label: { name: tag } },
|
|
75
|
+
})),
|
|
76
|
+
...(areaPath
|
|
77
|
+
? [
|
|
78
|
+
{
|
|
79
|
+
model: 'tms_TaskBoardRelationship',
|
|
80
|
+
record: {
|
|
81
|
+
task: taskKey,
|
|
82
|
+
board: { uid: areaPath, source },
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
]
|
|
86
|
+
: []),
|
|
73
87
|
// TODO - Add sprintHistory
|
|
74
88
|
];
|
|
75
89
|
}
|
|
90
|
+
collectAreaPath(areaPath, projectId) {
|
|
91
|
+
var _a;
|
|
92
|
+
if (!areaPath || !projectId) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const projectAreaPaths = (_a = this.collectedAreaPaths.get(projectId)) !== null && _a !== void 0 ? _a : new Set();
|
|
96
|
+
projectAreaPaths.add(areaPath.trim());
|
|
97
|
+
this.collectedAreaPaths.set(projectId, projectAreaPaths);
|
|
98
|
+
return areaPath.trim();
|
|
99
|
+
}
|
|
100
|
+
getTags(tags) {
|
|
101
|
+
var _a;
|
|
102
|
+
return (_a = tags === null || tags === void 0 ? void 0 : tags.split(';').map((tag) => tag.trim())) !== null && _a !== void 0 ? _a : [];
|
|
103
|
+
}
|
|
76
104
|
getTaskType(type) {
|
|
77
105
|
var _a;
|
|
78
106
|
const mapping = {
|
|
@@ -114,6 +142,39 @@ class Workitems extends common_1.AzureWorkitemsConverter {
|
|
|
114
142
|
changedAt: faros_js_client_1.Utils.toDate(revision.changedDate),
|
|
115
143
|
}));
|
|
116
144
|
}
|
|
145
|
+
async onProcessingComplete() {
|
|
146
|
+
var _a;
|
|
147
|
+
const records = [];
|
|
148
|
+
const source = this.streamName.source;
|
|
149
|
+
for (const [projectId, areaPaths] of this.collectedAreaPaths.entries()) {
|
|
150
|
+
for (const areaPath of areaPaths) {
|
|
151
|
+
// Extract board name from Azure DevOps area path (format: "AreaLevel1\\AreaLevel2\\AreaLevel3")
|
|
152
|
+
const pathParts = areaPath.split('\\');
|
|
153
|
+
const boardName = (_a = pathParts.at(-1)) !== null && _a !== void 0 ? _a : areaPath;
|
|
154
|
+
const boardKey = {
|
|
155
|
+
uid: areaPath,
|
|
156
|
+
source,
|
|
157
|
+
};
|
|
158
|
+
// Create board record
|
|
159
|
+
records.push({
|
|
160
|
+
model: 'tms_TaskBoard',
|
|
161
|
+
record: {
|
|
162
|
+
...boardKey,
|
|
163
|
+
name: boardName,
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
// Create board-project relationship record
|
|
167
|
+
records.push({
|
|
168
|
+
model: 'tms_TaskBoardProjectRelationship',
|
|
169
|
+
record: {
|
|
170
|
+
board: boardKey,
|
|
171
|
+
project: { uid: projectId, source },
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return records;
|
|
177
|
+
}
|
|
117
178
|
}
|
|
118
179
|
exports.Workitems = Workitems;
|
|
119
180
|
//# sourceMappingURL=workitems.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workitems.js","sourceRoot":"","sources":["../../../src/converters/azure-workitems/workitems.ts"],"names":[],"mappings":";;;AACA,qDAAsC;AAGtC,qCAAiD;AAQjD,MAAa,SAAU,SAAQ,gCAAuB;IAAtD;;
|
|
1
|
+
{"version":3,"file":"workitems.js","sourceRoot":"","sources":["../../../src/converters/azure-workitems/workitems.ts"],"names":[],"mappings":";;;AACA,qDAAsC;AAGtC,qCAAiD;AAQjD,MAAa,SAAU,SAAQ,gCAAuB;IAAtD;;QACmB,uBAAkB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAE5D,sBAAiB,GAAoC;YAC5D,UAAU;YACV,oBAAoB;YACpB,6BAA6B;YAC7B,aAAa;YACb,eAAe;SAChB,CAAC;IA8LJ,CAAC;IA5LC,KAAK,CAAC,OAAO,CACX,MAAqB;;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAgB,CAAC;QAChD,MAAM,OAAO,GAAG,EAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CACnC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAClC,QAAQ,CAAC,SAAS,CACnB,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAChD,QAAQ,CAAC,SAAS,CAAC,MAAM,CAC1B,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAC7C,QAAQ,CAAC,SAAS,CAAC,SAAS,CAC7B,CAAC;QACF,MAAM,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAC,GAC9C,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1D,OAAO;YACL;gBACE,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE;oBACN,GAAG,OAAO;oBACV,GAAG,EAAE,CAAA,MAAA,MAAA,QAAQ,CAAC,MAAM,0CAAE,IAAI,0CAAE,IAAI,KAAI,QAAQ,CAAC,GAAG;oBAChD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;oBAC9D,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;oBACrC,SAAS,EAAE,uBAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBAC9D,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;wBACtC,CAAC,CAAC,EAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAC;wBACzD,CAAC,CAAC,IAAI;oBACR,WAAW,EAAE,uBAAK,CAAC,gBAAgB,CACjC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CACtC;oBACD,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;oBACvD,eAAe,EAAE,uBAAK,CAAC,MAAM,CAC3B,QAAQ,CAAC,MAAM,CAAC,uCAAuC,CAAC,CACzD;oBACD,SAAS,EAAE,uBAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBAC9D,OAAO,EAAE;wBACP,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC;wBACtD,MAAM;qBACP;oBACD,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAC;oBACpE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;oBACnE,UAAU,EAAE,uBAAK,CAAC,MAAM,CACtB,QAAQ,CAAC,MAAM,CAAC,oCAAoC,CAAC,CACtD;oBACD,eAAe;oBACf,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;oBAC3C,gBAAgB,EACd,QAAQ,CAAC,MAAM,CAAC,sCAAsC,CAAC;oBACzD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,uCAAuC,CAAC;iBACjE;aACF;YACD,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC9B,KAAK,EAAE,oBAAoB;gBAC3B,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,EAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAC;oBAC1C,UAAU,EAAE,QAAQ,CAAC,SAAS;iBAC/B;aACF,CAAC,CAAC;YACH;gBACE,KAAK,EAAE,6BAA6B;gBACpC,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,EAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAC;iBACnD;aACF;YACD,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACpB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,EAAC;aAC5C,CAAC,CAAC;YACH,GAAG,CAAC,QAAQ;gBACV,CAAC,CAAC;oBACE;wBACE,KAAK,EAAE,2BAA2B;wBAClC,MAAM,EAAE;4BACN,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAC;yBAC/B;qBACF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,2BAA2B;SAC5B,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,QAAgB,EAAE,SAAiB;;QACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GACpB,MAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI,IAAI,GAAG,EAAU,CAAC;QAC9D,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAEO,OAAO,CAAC,IAAa;;QAC3B,OAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,mCAAI,EAAE,CAAC;IACzD,CAAC;IAEO,WAAW,CAAC,IAAY;;QAC9B,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,KAAK;YACV,YAAY,EAAE,OAAO;SACtB,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,MAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,mCAAI,QAAQ;YACjD,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,QAAgB;;QACrD,MAAM,aAAa,GAAG;YACpB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,MAAA,aAAa,CAAC,QAAQ,CAAC,mCAAI,QAAQ;YAC7C,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAAC,iBAAwB;QACvD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;YAAC,OAAA,CAAC;gBAC1C,QAAQ,EAAE,MAAA,QAAQ,CAAC,QAAQ,0CAAE,UAAU;gBACvC,SAAS,EAAE,uBAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;aAC9C,CAAC,CAAA;SAAA,CAAC,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,cAAqB;QACjD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAC3B,QAAQ,CAAC,KAAK,CAAC,IAAI,EACnB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CACxB;YACD,SAAS,EAAE,uBAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC9C,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,oBAAoB;;QACxB,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAEtC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,gGAAgG;gBAChG,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,MAAA,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAI,QAAQ,CAAC;gBAE/C,MAAM,QAAQ,GAAG;oBACf,GAAG,EAAE,QAAQ;oBACb,MAAM;iBACP,CAAC;gBAEF,sBAAsB;gBACtB,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE;wBACN,GAAG,QAAQ;wBACX,IAAI,EAAE,SAAS;qBAChB;iBACF,CAAC,CAAC;gBAEH,2CAA2C;gBAC3C,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,kCAAkC;oBACzC,MAAM,EAAE;wBACN,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAC;qBAClC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAvMD,8BAuMC"}
|