airbyte-faros-destination 0.19.57-rc2 → 0.19.57-rc3

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.
@@ -4,6 +4,7 @@ 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 mergeChainTracker;
7
8
  readonly destinationModels: ReadonlyArray<DestinationModel>;
8
9
  id(record: AirbyteRecord): number;
9
10
  convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
@@ -5,11 +5,69 @@ const azure_devops_1 = require("faros-airbyte-common/azure-devops");
5
5
  const faros_js_client_1 = require("faros-js-client");
6
6
  const vcs_1 = require("../common/vcs");
7
7
  const common_1 = require("./common");
8
+ /**
9
+ * Tracks merge chains to compute transitive branch associations.
10
+ * When a changeset is merged from branch A to B, all changesets on A
11
+ * are transitively associated with B.
12
+ */
13
+ class MergeChainTracker {
14
+ constructor() {
15
+ // Maps changeset ID to the branch it was originally committed to
16
+ this.changesetBranch = new Map();
17
+ // Maps branch path to all changesets on that branch (including transitive)
18
+ this.branchChangesets = new Map();
19
+ }
20
+ /**
21
+ * Track a changeset and return only NEW associations for this branch.
22
+ */
23
+ trackAndGetNewChangesets(changesetId, branch, mergedChangesetIds) {
24
+ this.changesetBranch.set(changesetId, branch);
25
+ const branchChangesets = this.getOrCreateBranchSet(branch);
26
+ const newAssociations = new Set();
27
+ this.addIfNew(changesetId, branchChangesets, newAssociations);
28
+ this.processMergedChangesets(mergedChangesetIds, branchChangesets, newAssociations);
29
+ return newAssociations;
30
+ }
31
+ getOrCreateBranchSet(branch) {
32
+ if (!this.branchChangesets.has(branch)) {
33
+ this.branchChangesets.set(branch, new Set());
34
+ }
35
+ return this.branchChangesets.get(branch);
36
+ }
37
+ addIfNew(id, branchChangesets, newAssociations) {
38
+ if (!branchChangesets.has(id)) {
39
+ newAssociations.add(id);
40
+ branchChangesets.add(id);
41
+ }
42
+ }
43
+ processMergedChangesets(mergedChangesetIds, branchChangesets, newAssociations) {
44
+ for (const mergedId of mergedChangesetIds) {
45
+ const mergedIdStr = String(mergedId);
46
+ const sourceChangesets = this.getSourceBranchChangesets(mergedIdStr);
47
+ if (sourceChangesets) {
48
+ for (const cs of sourceChangesets) {
49
+ this.addIfNew(cs, branchChangesets, newAssociations);
50
+ }
51
+ }
52
+ else {
53
+ this.addIfNew(mergedIdStr, branchChangesets, newAssociations);
54
+ }
55
+ }
56
+ }
57
+ getSourceBranchChangesets(mergedIdStr) {
58
+ const sourceBranch = this.changesetBranch.get(mergedIdStr);
59
+ if (sourceBranch && this.branchChangesets.has(sourceBranch)) {
60
+ return this.branchChangesets.get(sourceBranch);
61
+ }
62
+ return null;
63
+ }
64
+ }
8
65
  class Changesets extends common_1.AzureTfvcConverter {
9
66
  constructor() {
10
67
  super(...arguments);
11
68
  this.branchCollector = new vcs_1.BranchCollector();
12
69
  this.fileCollector = new vcs_1.FileCollector();
70
+ this.mergeChainTracker = new MergeChainTracker();
13
71
  this.destinationModels = [
14
72
  'tms_TaskCommitAssociation',
15
73
  'vcs_Branch',
@@ -53,7 +111,7 @@ class Changesets extends common_1.AzureTfvcConverter {
53
111
  diffStats: this.getDiffStats(changeset),
54
112
  },
55
113
  };
56
- const { commitFiles, mergedChangesetIds } = this.processChanges(commit, repository, changeset.changes);
114
+ const { commitFiles, mergedChangesetIds } = this.processChanges(commit, repository, changeset.changesetId, changeset.changes, ctx.logger);
57
115
  const branchAssociations = this.createBranchAssociations(commit, repository, mergedChangesetIds, changeset.branch, faros_js_client_1.Utils.toDate(changeset.createdDate));
58
116
  const taskAssociations = this.createTaskAssociations(commit, changeset.workItems);
59
117
  return [
@@ -75,7 +133,7 @@ class Changesets extends common_1.AzureTfvcConverter {
75
133
  linesDeleted: null,
76
134
  };
77
135
  }
78
- processChanges(commit, repository, changes) {
136
+ processChanges(commit, repository, changesetId, changes, logger) {
79
137
  var _a;
80
138
  const commitFiles = [];
81
139
  const mergedIds = [];
@@ -93,13 +151,16 @@ class Changesets extends common_1.AzureTfvcConverter {
93
151
  },
94
152
  });
95
153
  }
96
- mergedIds.push(...this.getMergedChangesetIds(change));
154
+ for (const id of this.getMergedChangesetIds(change, changesetId, logger)) {
155
+ mergedIds.push(id);
156
+ }
97
157
  }
98
158
  return { commitFiles, mergedChangesetIds: new Set(mergedIds) };
99
159
  }
100
- getMergedChangesetIds(change) {
160
+ getMergedChangesetIds(change, changesetId, logger) {
101
161
  var _a, _b;
102
162
  const ids = [];
163
+ const MAX_RANGE = 100000;
103
164
  for (const mergeSource of (_a = change.mergeSources) !== null && _a !== void 0 ? _a : []) {
104
165
  if (mergeSource.isRename) {
105
166
  continue;
@@ -107,7 +168,15 @@ class Changesets extends common_1.AzureTfvcConverter {
107
168
  const from = mergeSource.versionFrom;
108
169
  const to = (_b = mergeSource.versionTo) !== null && _b !== void 0 ? _b : from;
109
170
  if (from && to) {
110
- ids.push(...Array.from({ length: to - from + 1 }, (_, i) => from + i));
171
+ const rangeSize = to - from + 1;
172
+ if (rangeSize > MAX_RANGE) {
173
+ logger === null || logger === void 0 ? void 0 : logger.warn(`Changeset ${changesetId}: skipping merge range ${from}-${to} ` +
174
+ `(${rangeSize} changesets). Likely a baseless merge.`);
175
+ continue;
176
+ }
177
+ for (let i = from; i <= to; i++) {
178
+ ids.push(i);
179
+ }
111
180
  }
112
181
  }
113
182
  return ids;
@@ -117,17 +186,15 @@ class Changesets extends common_1.AzureTfvcConverter {
117
186
  if (!branch) {
118
187
  return [];
119
188
  }
120
- const records = [
121
- {
122
- model: 'vcs_BranchCommitAssociation',
123
- record: { commit, branch, committedAt },
124
- },
125
- ];
126
- for (const mergedId of mergedChangesetIds) {
189
+ // Get NEW changesets to associate with this branch
190
+ // (current changeset + newly merged via transitive chain)
191
+ const newChangesets = this.mergeChainTracker.trackAndGetNewChangesets(commit.sha, branchName, mergedChangesetIds);
192
+ const records = [];
193
+ for (const changesetId of newChangesets) {
127
194
  records.push({
128
195
  model: 'vcs_BranchCommitAssociation',
129
196
  record: {
130
- commit: { sha: String(mergedId), repository },
197
+ commit: { sha: changesetId, repository },
131
198
  branch,
132
199
  committedAt,
133
200
  },
@@ -1 +1 @@
1
- {"version":3,"file":"changesets.js","sourceRoot":"","sources":["../../../src/converters/azure-tfvc/changesets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changesets.js","sourceRoot":"","sources":["../../../src/converters/azure-tfvc/changesets.ts"],"names":[],"mappings":"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"}