airbyte-faros-destination 0.19.52 → 0.19.53-rc0

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,5 +8,9 @@ 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;
11
15
  onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
12
16
  }
@@ -23,24 +23,23 @@ 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, _c, _d, _e, _f, _g;
26
+ var _a, _b;
27
27
  const changeset = record.record.data;
28
- const res = [];
29
28
  if (!changeset.changesetId) {
30
29
  ctx.logger.warn(`Changeset ID not found: ${JSON.stringify(changeset)}`);
31
- return res;
30
+ return [];
32
31
  }
33
32
  const repository = (0, vcs_1.repoKey)(changeset.organization, (_a = changeset.project) === null || _a === void 0 ? void 0 : _a.name, this.source);
34
33
  if (!repository) {
35
34
  ctx.logger.warn(`Organization or project name not found: ${JSON.stringify(changeset)}`);
36
- return res;
35
+ return [];
37
36
  }
38
37
  const sha = String(changeset.changesetId);
39
38
  const commit = { sha, repository };
40
39
  const author = ((_b = changeset.author) === null || _b === void 0 ? void 0 : _b.uniqueName)
41
40
  ? { uid: changeset.author.uniqueName.toLowerCase(), source: this.source }
42
41
  : undefined;
43
- res.push({
42
+ const commitRecord = {
44
43
  model: 'vcs_Commit',
45
44
  record: {
46
45
  ...commit,
@@ -51,99 +50,96 @@ class Changesets extends common_1.AzureTfvcConverter {
51
50
  author,
52
51
  diffStats: this.getDiffStats(changeset),
53
52
  },
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
- });
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;
65
63
  }
66
- // Track merged changeset IDs to avoid duplicate associations
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 = [];
67
74
  const mergedChangesetIds = new Set();
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) {
75
+ for (const change of changes !== null && changes !== void 0 ? changes : []) {
76
+ if ((_a = change.item) === null || _a === void 0 ? void 0 : _a.path) {
71
77
  const filePath = change.item.path;
72
78
  this.fileCollector.collectFile(filePath, repository);
73
- res.push({
79
+ commitFiles.push({
74
80
  model: 'vcs_CommitFile',
75
81
  record: {
76
82
  commit,
77
- file: {
78
- uid: filePath,
79
- repository,
80
- },
81
- // TFVC API doesn't provide line-level diff stats
83
+ file: { uid: filePath, repository },
82
84
  additions: null,
83
85
  deletions: null,
84
86
  },
85
87
  });
86
88
  }
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
- }
99
- }
89
+ this.collectMergedChangesetIds(change, mergedChangesetIds);
100
90
  }
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
- });
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;
117
98
  }
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 [];
118
110
  }
119
- // Create tms_TaskCommitAssociation records for linked work items
120
- for (const workItem of (_g = changeset.workItems) !== null && _g !== void 0 ? _g : []) {
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
+ });
126
+ }
127
+ return records;
128
+ }
129
+ createTaskAssociations(commit, workItems) {
130
+ const records = [];
131
+ for (const workItem of workItems !== null && workItems !== void 0 ? workItems : []) {
121
132
  if (workItem.id) {
122
- res.push({
133
+ records.push({
123
134
  model: 'tms_TaskCommitAssociation',
124
135
  record: {
125
136
  commit,
126
- task: {
127
- uid: String(workItem.id),
128
- source: 'Azure-Workitems',
129
- },
137
+ task: { uid: String(workItem.id), source: 'Azure-Workitems' },
130
138
  },
131
139
  });
132
140
  }
133
141
  }
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
- };
142
+ return records;
147
143
  }
148
144
  async onProcessingComplete(ctx) {
149
145
  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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"}