airbyte-faros-destination 0.19.57-rc4 → 0.19.57-rc5
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-tfvc/changesets.d.ts +5 -0
- package/lib/converters/azure-tfvc/changesets.js +52 -0
- package/lib/converters/azure-tfvc/changesets.js.map +1 -1
- package/lib/converters/azure-tfvc/common.d.ts +5 -1
- package/lib/converters/azure-tfvc/common.js +4 -0
- package/lib/converters/azure-tfvc/common.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/resources/source-specific-configs/azure-tfvc.json +26 -0
- package/resources/source-specific-configs/spec.json +3 -0
|
@@ -4,6 +4,8 @@ import { AzureTfvcConverter } from './common';
|
|
|
4
4
|
export declare class Changesets extends AzureTfvcConverter {
|
|
5
5
|
private readonly branchCollector;
|
|
6
6
|
private readonly fileCollector;
|
|
7
|
+
private readonly mergeReferences;
|
|
8
|
+
private trackedChangesets;
|
|
7
9
|
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
8
10
|
id(record: AirbyteRecord): number;
|
|
9
11
|
convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
@@ -11,5 +13,8 @@ export declare class Changesets extends AzureTfvcConverter {
|
|
|
11
13
|
private processChanges;
|
|
12
14
|
private createBranchAssociations;
|
|
13
15
|
private createTaskAssociations;
|
|
16
|
+
private getTrackedChangesets;
|
|
17
|
+
private collectMergeReferences;
|
|
14
18
|
onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
19
|
+
private logMergeReferences;
|
|
15
20
|
}
|
|
@@ -10,6 +10,7 @@ class Changesets extends common_1.AzureTfvcConverter {
|
|
|
10
10
|
super(...arguments);
|
|
11
11
|
this.branchCollector = new vcs_1.BranchCollector();
|
|
12
12
|
this.fileCollector = new vcs_1.FileCollector();
|
|
13
|
+
this.mergeReferences = new Map();
|
|
13
14
|
this.destinationModels = [
|
|
14
15
|
'tms_TaskCommitAssociation',
|
|
15
16
|
'vcs_Branch',
|
|
@@ -54,6 +55,7 @@ class Changesets extends common_1.AzureTfvcConverter {
|
|
|
54
55
|
},
|
|
55
56
|
};
|
|
56
57
|
const commitFiles = this.processChanges(commit, repository, changeset.changes);
|
|
58
|
+
this.collectMergeReferences(ctx, changeset.changesetId, changeset.branch, faros_js_client_1.Utils.toDate(changeset.createdDate), changeset.changes);
|
|
57
59
|
const branchAssociations = this.createBranchAssociations(commit, repository, changeset.branch, faros_js_client_1.Utils.toDate(changeset.createdDate));
|
|
58
60
|
const taskAssociations = this.createTaskAssociations(commit, changeset.workItems);
|
|
59
61
|
return [
|
|
@@ -126,12 +128,62 @@ class Changesets extends common_1.AzureTfvcConverter {
|
|
|
126
128
|
}
|
|
127
129
|
return records;
|
|
128
130
|
}
|
|
131
|
+
getTrackedChangesets(ctx) {
|
|
132
|
+
var _a;
|
|
133
|
+
if (!this.trackedChangesets) {
|
|
134
|
+
const trackList = (_a = this.azureTfvcConfig(ctx).track_changesets) !== null && _a !== void 0 ? _a : [];
|
|
135
|
+
this.trackedChangesets = new Set(trackList);
|
|
136
|
+
}
|
|
137
|
+
return this.trackedChangesets;
|
|
138
|
+
}
|
|
139
|
+
collectMergeReferences(ctx, changesetId, branch, createdDate, changes) {
|
|
140
|
+
var _a, _b;
|
|
141
|
+
const tracked = this.getTrackedChangesets(ctx);
|
|
142
|
+
if (tracked.size === 0) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
for (const change of changes !== null && changes !== void 0 ? changes : []) {
|
|
146
|
+
for (const mergeSource of (_a = change.mergeSources) !== null && _a !== void 0 ? _a : []) {
|
|
147
|
+
if (mergeSource.isRename) {
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const from = mergeSource.versionFrom;
|
|
151
|
+
const to = (_b = mergeSource.versionTo) !== null && _b !== void 0 ? _b : from;
|
|
152
|
+
for (const trackedId of tracked) {
|
|
153
|
+
if (from && to && trackedId >= from && trackedId <= to) {
|
|
154
|
+
if (!this.mergeReferences.has(trackedId)) {
|
|
155
|
+
this.mergeReferences.set(trackedId, []);
|
|
156
|
+
}
|
|
157
|
+
this.mergeReferences.get(trackedId).push({
|
|
158
|
+
referencedBy: changesetId,
|
|
159
|
+
branch,
|
|
160
|
+
date: createdDate,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
129
167
|
async onProcessingComplete(ctx) {
|
|
168
|
+
this.logMergeReferences(ctx);
|
|
130
169
|
return [
|
|
131
170
|
...this.branchCollector.convertBranches(),
|
|
132
171
|
...this.fileCollector.convertFiles(),
|
|
133
172
|
];
|
|
134
173
|
}
|
|
174
|
+
logMergeReferences(ctx) {
|
|
175
|
+
var _a, _b, _c;
|
|
176
|
+
if (this.mergeReferences.size === 0) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
for (const [tracked, references] of this.mergeReferences) {
|
|
180
|
+
ctx.logger.info(`=== Merge references for tracked changeset ${tracked} ===`);
|
|
181
|
+
for (const ref of references) {
|
|
182
|
+
ctx.logger.info(` Changeset ${ref.referencedBy} | Branch: ${(_a = ref.branch) !== null && _a !== void 0 ? _a : 'unknown'} | Date: ${(_c = (_b = ref.date) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : 'unknown'}`);
|
|
183
|
+
}
|
|
184
|
+
ctx.logger.info(` Total: ${references.length} references`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
135
187
|
}
|
|
136
188
|
exports.Changesets = Changesets;
|
|
137
189
|
//# sourceMappingURL=changesets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changesets.js","sourceRoot":"","sources":["../../../src/converters/azure-tfvc/changesets.ts"],"names":[],"mappings":";;;AACA,oEAA+E;AAE/E,qDAAsC;AAEtC,uCAOuB;AAEvB,qCAAoE;
|
|
1
|
+
{"version":3,"file":"changesets.js","sourceRoot":"","sources":["../../../src/converters/azure-tfvc/changesets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
2
|
import { OrgKey } from '../common/vcs';
|
|
3
|
-
import { Converter } from '../converter';
|
|
3
|
+
import { Converter, StreamContext } from '../converter';
|
|
4
4
|
export declare const MAX_DESCRIPTION_LENGTH = 1000;
|
|
5
|
+
export interface AzureTfvcConfig {
|
|
6
|
+
track_changesets?: number[];
|
|
7
|
+
}
|
|
5
8
|
/** Azure TFVC converter base */
|
|
6
9
|
export declare abstract class AzureTfvcConverter extends Converter {
|
|
7
10
|
source: string;
|
|
11
|
+
protected azureTfvcConfig(ctx: StreamContext): AzureTfvcConfig;
|
|
8
12
|
id(record: AirbyteRecord): any;
|
|
9
13
|
private static readonly _uidsFromUsersStream;
|
|
10
14
|
get uidsFromUsersStream(): Set<string>;
|
|
@@ -9,6 +9,10 @@ class AzureTfvcConverter extends converter_1.Converter {
|
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.source = 'Azure-TFVC';
|
|
11
11
|
}
|
|
12
|
+
azureTfvcConfig(ctx) {
|
|
13
|
+
var _a, _b, _c;
|
|
14
|
+
return (_c = (_b = (_a = ctx.config) === null || _a === void 0 ? void 0 : _a.source_specific_configs) === null || _b === void 0 ? void 0 : _b['azure-tfvc']) !== null && _c !== void 0 ? _c : {};
|
|
15
|
+
}
|
|
12
16
|
id(record) {
|
|
13
17
|
var _a, _b;
|
|
14
18
|
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/azure-tfvc/common.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/azure-tfvc/common.ts"],"names":[],"mappings":";;;AAGA,4CAAsD;AAEzC,QAAA,sBAAsB,GAAG,IAAI,CAAC;AAM3C,gCAAgC;AAChC,MAAsB,kBAAmB,SAAQ,qBAAS;IAA1D;;QACE,WAAM,GAAG,YAAY,CAAC;IAqBxB,CAAC;IAnBW,eAAe,CAAC,GAAkB;;QAC1C,OAAO,MAAA,MAAA,MAAA,GAAG,CAAC,MAAM,0CAAE,uBAAuB,0CAAG,YAAY,CAAC,mCAAI,EAAE,CAAC;IACnE,CAAC;IAED,EAAE,CAAC,MAAqB;;QACtB,OAAO,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,EAAE,CAAC;IAClC,CAAC;IAMD,IAAW,mBAAmB;QAC5B,OAAO,kBAAkB,CAAC,oBAAoB,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,EAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;IACxD,CAAC;;AArBH,gDAsBC;AAXC,8EAA8E;AAC9E,4EAA4E;AAC5E,gBAAgB;AACQ,uCAAoB,GAAgB,IAAI,GAAG,EAAE,AAAzB,CAA0B"}
|