airbyte-faros-destination 0.19.52-rc1 → 0.19.52

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.
@@ -8,9 +8,5 @@ export declare class Changesets extends AzureTfvcConverter {
8
8
  id(record: AirbyteRecord): number;
9
9
  convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
10
10
  private getDiffStats;
11
- private processChanges;
12
- private collectMergedChangesetIds;
13
- private createBranchAssociations;
14
- private createTaskAssociations;
15
11
  onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
16
12
  }
@@ -23,23 +23,24 @@ class Changesets extends common_1.AzureTfvcConverter {
23
23
  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.changesetId;
24
24
  }
25
25
  async convert(record, ctx) {
26
- var _a, _b;
26
+ var _a, _b, _c, _d, _e, _f, _g;
27
27
  const changeset = record.record.data;
28
+ const res = [];
28
29
  if (!changeset.changesetId) {
29
30
  ctx.logger.warn(`Changeset ID not found: ${JSON.stringify(changeset)}`);
30
- return [];
31
+ return res;
31
32
  }
32
33
  const repository = (0, vcs_1.repoKey)(changeset.organization, (_a = changeset.project) === null || _a === void 0 ? void 0 : _a.name, this.source);
33
34
  if (!repository) {
34
35
  ctx.logger.warn(`Organization or project name not found: ${JSON.stringify(changeset)}`);
35
- return [];
36
+ return res;
36
37
  }
37
38
  const sha = String(changeset.changesetId);
38
39
  const commit = { sha, repository };
39
40
  const author = ((_b = changeset.author) === null || _b === void 0 ? void 0 : _b.uniqueName)
40
41
  ? { uid: changeset.author.uniqueName.toLowerCase(), source: this.source }
41
42
  : undefined;
42
- const commitRecord = {
43
+ res.push({
43
44
  model: 'vcs_Commit',
44
45
  record: {
45
46
  ...commit,
@@ -50,96 +51,99 @@ class Changesets extends common_1.AzureTfvcConverter {
50
51
  author,
51
52
  diffStats: this.getDiffStats(changeset),
52
53
  },
53
- };
54
- const { commitFiles, mergedChangesetIds } = this.processChanges(changeset.changes, commit, repository);
55
- const branchAssociations = this.createBranchAssociations(changeset.branch, commit, mergedChangesetIds, repository, faros_js_client_1.Utils.toDate(changeset.createdDate));
56
- const taskAssociations = this.createTaskAssociations(commit, changeset.workItems);
57
- return [commitRecord, ...commitFiles, ...branchAssociations, ...taskAssociations];
58
- }
59
- getDiffStats(changeset) {
60
- var _a;
61
- if (!((_a = changeset.changes) === null || _a === void 0 ? void 0 : _a.length)) {
62
- return undefined;
54
+ });
55
+ const branch = this.branchCollector.collectBranch(changeset.branch, repository);
56
+ if (branch) {
57
+ res.push({
58
+ model: 'vcs_BranchCommitAssociation',
59
+ record: {
60
+ commit,
61
+ branch,
62
+ committedAt: faros_js_client_1.Utils.toDate(changeset.createdDate),
63
+ },
64
+ });
63
65
  }
64
- return {
65
- filesChanged: changeset.changes.length,
66
- // Line counts not available from TFVC API
67
- linesAdded: null,
68
- linesDeleted: null,
69
- };
70
- }
71
- processChanges(changes, commit, repository) {
72
- var _a;
73
- const commitFiles = [];
66
+ // Track merged changeset IDs to avoid duplicate associations
74
67
  const mergedChangesetIds = new Set();
75
- for (const change of changes !== null && changes !== void 0 ? changes : []) {
76
- if ((_a = change.item) === null || _a === void 0 ? void 0 : _a.path) {
68
+ // Create vcs_CommitFile records and collect files from changes
69
+ for (const change of (_c = changeset.changes) !== null && _c !== void 0 ? _c : []) {
70
+ if ((_d = change.item) === null || _d === void 0 ? void 0 : _d.path) {
77
71
  const filePath = change.item.path;
78
72
  this.fileCollector.collectFile(filePath, repository);
79
- commitFiles.push({
73
+ res.push({
80
74
  model: 'vcs_CommitFile',
81
75
  record: {
82
76
  commit,
83
- file: { uid: filePath, repository },
77
+ file: {
78
+ uid: filePath,
79
+ repository,
80
+ },
81
+ // TFVC API doesn't provide line-level diff stats
84
82
  additions: null,
85
83
  deletions: null,
86
84
  },
87
85
  });
88
86
  }
89
- this.collectMergedChangesetIds(change, mergedChangesetIds);
90
- }
91
- return { commitFiles, mergedChangesetIds };
92
- }
93
- collectMergedChangesetIds(change, mergedChangesetIds) {
94
- var _a, _b;
95
- for (const mergeSource of (_a = change.mergeSources) !== null && _a !== void 0 ? _a : []) {
96
- if (mergeSource.isRename) {
97
- continue;
87
+ // Collect merged changeset IDs from merge sources
88
+ // These are changesets that were merged into this changeset
89
+ for (const mergeSource of (_e = change.mergeSources) !== null && _e !== void 0 ? _e : []) {
90
+ if (mergeSource.isRename) {
91
+ continue; // Skip renames, only process actual merges
92
+ }
93
+ // versionFrom and versionTo represent an inclusive range of changesets merged
94
+ const from = mergeSource.versionFrom;
95
+ const to = (_f = mergeSource.versionTo) !== null && _f !== void 0 ? _f : from;
96
+ if (from && to) {
97
+ Array.from({ length: to - from + 1 }, (_, i) => from + i).forEach((id) => mergedChangesetIds.add(id));
98
+ }
98
99
  }
99
- const from = mergeSource.versionFrom;
100
- const to = (_b = mergeSource.versionTo) !== null && _b !== void 0 ? _b : from;
101
- if (from && to) {
102
- Array.from({ length: to - from + 1 }, (_, i) => from + i).forEach((id) => mergedChangesetIds.add(id));
103
- }
104
- }
105
- }
106
- createBranchAssociations(branchName, commit, mergedChangesetIds, repository, committedAt) {
107
- const branch = this.branchCollector.collectBranch(branchName, repository);
108
- if (!branch) {
109
- return [];
110
100
  }
111
- const records = [
112
- {
113
- model: 'vcs_BranchCommitAssociation',
114
- record: { commit, branch, committedAt },
115
- },
116
- ];
117
- for (const mergedId of mergedChangesetIds) {
118
- records.push({
119
- model: 'vcs_BranchCommitAssociation',
120
- record: {
121
- commit: { sha: String(mergedId), repository },
122
- branch,
123
- committedAt,
124
- },
125
- });
101
+ // Create vcs_BranchCommitAssociation for merged changesets
102
+ // This associates the merged commits with the target branch
103
+ if (branch) {
104
+ for (const mergedChangesetId of mergedChangesetIds) {
105
+ const mergedCommit = {
106
+ sha: String(mergedChangesetId),
107
+ repository,
108
+ };
109
+ res.push({
110
+ model: 'vcs_BranchCommitAssociation',
111
+ record: {
112
+ commit: mergedCommit,
113
+ branch,
114
+ committedAt: faros_js_client_1.Utils.toDate(changeset.createdDate),
115
+ },
116
+ });
117
+ }
126
118
  }
127
- return records;
128
- }
129
- createTaskAssociations(commit, workItems) {
130
- const records = [];
131
- for (const workItem of workItems !== null && workItems !== void 0 ? workItems : []) {
119
+ // Create tms_TaskCommitAssociation records for linked work items
120
+ for (const workItem of (_g = changeset.workItems) !== null && _g !== void 0 ? _g : []) {
132
121
  if (workItem.id) {
133
- records.push({
122
+ res.push({
134
123
  model: 'tms_TaskCommitAssociation',
135
124
  record: {
136
125
  commit,
137
- task: { uid: String(workItem.id), source: 'Azure-Workitems' },
126
+ task: {
127
+ uid: String(workItem.id),
128
+ source: 'Azure-Workitems',
129
+ },
138
130
  },
139
131
  });
140
132
  }
141
133
  }
142
- return records;
134
+ return res;
135
+ }
136
+ getDiffStats(changeset) {
137
+ var _a;
138
+ if (!((_a = changeset.changes) === null || _a === void 0 ? void 0 : _a.length)) {
139
+ return undefined;
140
+ }
141
+ return {
142
+ filesChanged: changeset.changes.length,
143
+ // Line counts not available from TFVC API
144
+ linesAdded: null,
145
+ linesDeleted: null,
146
+ };
143
147
  }
144
148
  async onProcessingComplete(ctx) {
145
149
  return [
@@ -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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"}