airbyte-faros-destination 0.10.11 → 0.10.13
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/github/common.d.ts +9 -1
- package/lib/converters/github/common.js +38 -10
- package/lib/converters/github/common.js.map +1 -1
- package/lib/converters/github/faros_issues.d.ts +12 -0
- package/lib/converters/github/faros_issues.js +149 -0
- package/lib/converters/github/faros_issues.js.map +1 -0
- package/lib/converters/github/faros_labels.js +11 -1
- package/lib/converters/github/faros_labels.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/resources/source-specific-configs/github.json +22 -0
|
@@ -2,13 +2,17 @@ import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
|
2
2
|
import { User } from 'faros-airbyte-common/github';
|
|
3
3
|
import { Dictionary } from 'ts-essentials';
|
|
4
4
|
import { PullRequestKey, RepoKey } from '../common/vcs';
|
|
5
|
-
import { Converter, DestinationRecord } from '../converter';
|
|
5
|
+
import { Converter, DestinationRecord, StreamContext } from '../converter';
|
|
6
6
|
export type PartialUser = Partial<Omit<User, 'type'> & {
|
|
7
7
|
type: string;
|
|
8
8
|
}>;
|
|
9
|
+
export type GitHubConfig = {
|
|
10
|
+
sync_repo_issues?: boolean;
|
|
11
|
+
};
|
|
9
12
|
/** Common functions shares across GitHub converters */
|
|
10
13
|
export declare class GitHubCommon {
|
|
11
14
|
static readonly MAX_DESCRIPTION_LENGTH = 1000;
|
|
15
|
+
static readonly DEFAULT_SYNC_REPO_ISSUES = false;
|
|
12
16
|
static vcs_User_with_Membership(user: Dictionary<any>, source: string): DestinationRecord[];
|
|
13
17
|
static vcs_UserType(user: Dictionary<any>): {
|
|
14
18
|
category: string;
|
|
@@ -36,8 +40,12 @@ export declare abstract class GitHubConverter extends Converter {
|
|
|
36
40
|
}>[]>;
|
|
37
41
|
/** All Github records should have id property */
|
|
38
42
|
id(record: AirbyteRecord): any;
|
|
43
|
+
protected githubConfig(ctx: StreamContext): GitHubConfig;
|
|
44
|
+
protected syncRepoIssues(ctx: StreamContext): boolean;
|
|
39
45
|
protected collectUser(user: PartialUser): void;
|
|
40
46
|
protected convertUsers(): DestinationRecord[];
|
|
47
|
+
protected convertTMSUsers(): DestinationRecord[];
|
|
48
|
+
private getFinalUser;
|
|
41
49
|
}
|
|
42
50
|
export interface ProjectKey {
|
|
43
51
|
uid: string;
|
|
@@ -166,6 +166,7 @@ class GitHubCommon {
|
|
|
166
166
|
exports.GitHubCommon = GitHubCommon;
|
|
167
167
|
// Max length for free-form description text fields such as issue body
|
|
168
168
|
GitHubCommon.MAX_DESCRIPTION_LENGTH = 1000;
|
|
169
|
+
GitHubCommon.DEFAULT_SYNC_REPO_ISSUES = false;
|
|
169
170
|
/** Github converter base */
|
|
170
171
|
class GitHubConverter extends converter_1.Converter {
|
|
171
172
|
constructor() {
|
|
@@ -178,6 +179,14 @@ class GitHubConverter extends converter_1.Converter {
|
|
|
178
179
|
var _a, _b;
|
|
179
180
|
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;
|
|
180
181
|
}
|
|
182
|
+
githubConfig(ctx) {
|
|
183
|
+
var _a, _b;
|
|
184
|
+
return (_b = (_a = ctx.config.source_specific_configs) === null || _a === void 0 ? void 0 : _a.github) !== null && _b !== void 0 ? _b : {};
|
|
185
|
+
}
|
|
186
|
+
syncRepoIssues(ctx) {
|
|
187
|
+
var _a;
|
|
188
|
+
return ((_a = this.githubConfig(ctx).sync_repo_issues) !== null && _a !== void 0 ? _a : GitHubCommon.DEFAULT_SYNC_REPO_ISSUES);
|
|
189
|
+
}
|
|
181
190
|
collectUser(user) {
|
|
182
191
|
if (!(user === null || user === void 0 ? void 0 : user.login))
|
|
183
192
|
return;
|
|
@@ -214,16 +223,7 @@ class GitHubConverter extends converter_1.Converter {
|
|
|
214
223
|
},
|
|
215
224
|
});
|
|
216
225
|
}
|
|
217
|
-
const finalUser =
|
|
218
|
-
// replace non-null user attributes to our copy of the user
|
|
219
|
-
// e.g. login, name, email, type, html_url.
|
|
220
|
-
for (const user of users) {
|
|
221
|
-
for (const key in user) {
|
|
222
|
-
if (!finalUser[key] && user[key]) {
|
|
223
|
-
finalUser[key] = user[key];
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
226
|
+
const finalUser = this.getFinalUser(users);
|
|
227
227
|
res.push({
|
|
228
228
|
model: 'vcs_User',
|
|
229
229
|
record: (0, lodash_1.omitBy)({
|
|
@@ -238,6 +238,34 @@ class GitHubConverter extends converter_1.Converter {
|
|
|
238
238
|
}
|
|
239
239
|
return res;
|
|
240
240
|
}
|
|
241
|
+
convertTMSUsers() {
|
|
242
|
+
const res = [];
|
|
243
|
+
for (const [login, users] of this.collectedUsers.entries()) {
|
|
244
|
+
const finalUser = this.getFinalUser(users);
|
|
245
|
+
res.push({
|
|
246
|
+
model: 'tms_User',
|
|
247
|
+
record: (0, lodash_1.omitBy)({
|
|
248
|
+
uid: login,
|
|
249
|
+
source: this.streamName.source,
|
|
250
|
+
name: finalUser.name,
|
|
251
|
+
}, (value) => (0, lodash_1.isNil)(value) || (0, lodash_1.isEmpty)(value)),
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
return res;
|
|
255
|
+
}
|
|
256
|
+
// Replace non-null user attributes to our copy of the user
|
|
257
|
+
// e.g. login, name, email, type, html_url.
|
|
258
|
+
getFinalUser(users) {
|
|
259
|
+
const finalUser = {};
|
|
260
|
+
for (const user of users) {
|
|
261
|
+
for (const key in user) {
|
|
262
|
+
if (!finalUser[key] && user[key]) {
|
|
263
|
+
finalUser[key] = user[key];
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return finalUser;
|
|
268
|
+
}
|
|
241
269
|
}
|
|
242
270
|
exports.GitHubConverter = GitHubConverter;
|
|
243
271
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/github/common.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AACtC,mCAAuD;AAIvD,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/github/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
|
|
3
|
+
import { GitHubConverter } from './common';
|
|
4
|
+
export declare class FarosIssues extends GitHubConverter {
|
|
5
|
+
private collectedLabels;
|
|
6
|
+
private collectedTmsUsers;
|
|
7
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
8
|
+
convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
9
|
+
private getAssigneeEvent;
|
|
10
|
+
private convertLabels;
|
|
11
|
+
onProcessingComplete(): Promise<ReadonlyArray<DestinationRecord>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FarosIssues = void 0;
|
|
4
|
+
const faros_js_client_1 = require("faros-js-client");
|
|
5
|
+
const lodash_1 = require("lodash");
|
|
6
|
+
const common_1 = require("./common");
|
|
7
|
+
class FarosIssues extends common_1.GitHubConverter {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.collectedLabels = new Set();
|
|
11
|
+
this.collectedTmsUsers = new Map();
|
|
12
|
+
this.destinationModels = [
|
|
13
|
+
'tms_Label',
|
|
14
|
+
'tms_Task',
|
|
15
|
+
'tms_TaskAssignment',
|
|
16
|
+
'tms_TaskBoardRelationship',
|
|
17
|
+
'tms_TaskProjectRelationship',
|
|
18
|
+
'tms_TaskTag',
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
async convert(record, ctx) {
|
|
22
|
+
var _a, _b, _c;
|
|
23
|
+
const records = [];
|
|
24
|
+
const issue = record.record.data;
|
|
25
|
+
const source = this.streamName.source;
|
|
26
|
+
const taskKey = {
|
|
27
|
+
uid: (0, lodash_1.toString)(issue.databaseId),
|
|
28
|
+
source,
|
|
29
|
+
};
|
|
30
|
+
this.collectUser(issue.author);
|
|
31
|
+
for (const assignment of issue.assignments.nodes || []) {
|
|
32
|
+
const assigneeEvent = this.getAssigneeEvent(assignment);
|
|
33
|
+
if (!assigneeEvent)
|
|
34
|
+
continue;
|
|
35
|
+
const { assignee, createdAt, isAssigned } = assigneeEvent;
|
|
36
|
+
if (isAssigned) {
|
|
37
|
+
records.push({
|
|
38
|
+
model: 'tms_TaskAssignment',
|
|
39
|
+
record: {
|
|
40
|
+
task: taskKey,
|
|
41
|
+
assignee: { uid: assignee.login, source },
|
|
42
|
+
assignedAt: createdAt,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
this.collectUser(assignee);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
records.push({
|
|
49
|
+
model: 'tms_TaskAssignment__Deletion',
|
|
50
|
+
record: {
|
|
51
|
+
where: {
|
|
52
|
+
task: taskKey,
|
|
53
|
+
assignee: { uid: assignee.login, source },
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
for (const { name } of (_b = (_a = issue.labels) === null || _a === void 0 ? void 0 : _a.nodes) !== null && _b !== void 0 ? _b : []) {
|
|
60
|
+
this.collectedLabels.add(name);
|
|
61
|
+
records.push({
|
|
62
|
+
model: 'tms_TaskTag',
|
|
63
|
+
record: {
|
|
64
|
+
task: taskKey,
|
|
65
|
+
label: { name },
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const state = (0, lodash_1.toLower)(issue.state);
|
|
70
|
+
const category = state === 'open' ? 'Todo' : 'Done';
|
|
71
|
+
const createdAt = faros_js_client_1.Utils.toDate(issue.createdAt);
|
|
72
|
+
const closedAt = faros_js_client_1.Utils.toDate(issue.closedAt);
|
|
73
|
+
const statusChangelog = [
|
|
74
|
+
{
|
|
75
|
+
changedAt: createdAt,
|
|
76
|
+
status: { category: 'Todo', detail: 'open' },
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
if (category === 'Done' && closedAt) {
|
|
80
|
+
statusChangelog.push({
|
|
81
|
+
changedAt: closedAt,
|
|
82
|
+
status: { category, detail: state },
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
records.push({
|
|
86
|
+
model: 'tms_Task',
|
|
87
|
+
record: {
|
|
88
|
+
...taskKey,
|
|
89
|
+
name: issue.title,
|
|
90
|
+
description: faros_js_client_1.Utils.cleanAndTruncate(issue.bodyText),
|
|
91
|
+
status: { category, detail: state },
|
|
92
|
+
statusChangelog,
|
|
93
|
+
createdAt,
|
|
94
|
+
updatedAt: faros_js_client_1.Utils.toDate(issue.updatedAt),
|
|
95
|
+
creator: ((_c = issue.author) === null || _c === void 0 ? void 0 : _c.login)
|
|
96
|
+
? { uid: issue.author.login, source }
|
|
97
|
+
: undefined,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
// TODO: If tasks get transferred between repos or projects, delete previous relationship
|
|
101
|
+
const projectOrBoardKey = { uid: `${issue.org}/${issue.repo}`, source };
|
|
102
|
+
records.push(...[
|
|
103
|
+
{
|
|
104
|
+
model: 'tms_TaskBoardRelationship',
|
|
105
|
+
record: {
|
|
106
|
+
task: taskKey,
|
|
107
|
+
board: projectOrBoardKey,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
model: 'tms_TaskProjectRelationship',
|
|
112
|
+
record: {
|
|
113
|
+
task: taskKey,
|
|
114
|
+
project: projectOrBoardKey,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
]);
|
|
118
|
+
return records;
|
|
119
|
+
}
|
|
120
|
+
getAssigneeEvent(assignment) {
|
|
121
|
+
if (assignment.type !== 'AssignedEvent' &&
|
|
122
|
+
assignment.type !== 'UnassignedEvent') {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const assignee = assignment.assignee;
|
|
126
|
+
if (!assignee.login)
|
|
127
|
+
return null;
|
|
128
|
+
return {
|
|
129
|
+
assignee,
|
|
130
|
+
createdAt: assignment.createdAt,
|
|
131
|
+
isAssigned: assignment.type === 'AssignedEvent',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
convertLabels() {
|
|
135
|
+
const res = [];
|
|
136
|
+
for (const label of this.collectedLabels) {
|
|
137
|
+
res.push({
|
|
138
|
+
model: 'tms_Label',
|
|
139
|
+
record: { tms_Label: { name: label } },
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return res;
|
|
143
|
+
}
|
|
144
|
+
async onProcessingComplete() {
|
|
145
|
+
return [...this.convertTMSUsers(), ...this.convertLabels()];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.FarosIssues = FarosIssues;
|
|
149
|
+
//# sourceMappingURL=faros_issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"faros_issues.js","sourceRoot":"","sources":["../../../src/converters/github/faros_issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ class FarosLabels extends common_1.GitHubConverter {
|
|
|
9
9
|
}
|
|
10
10
|
async convert(record, ctx) {
|
|
11
11
|
const label = record.record.data;
|
|
12
|
-
|
|
12
|
+
const records = [
|
|
13
13
|
{
|
|
14
14
|
model: 'vcs_Label',
|
|
15
15
|
record: {
|
|
@@ -17,6 +17,16 @@ class FarosLabels extends common_1.GitHubConverter {
|
|
|
17
17
|
},
|
|
18
18
|
},
|
|
19
19
|
];
|
|
20
|
+
// If we are syncing repo issues and writing TMS models we also write all the TMS labels.
|
|
21
|
+
if (this.syncRepoIssues(ctx)) {
|
|
22
|
+
records.push({
|
|
23
|
+
model: 'tms_Label',
|
|
24
|
+
record: {
|
|
25
|
+
name: label.name,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return records;
|
|
20
30
|
}
|
|
21
31
|
}
|
|
22
32
|
exports.FarosLabels = FarosLabels;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faros_labels.js","sourceRoot":"","sources":["../../../src/converters/github/faros_labels.ts"],"names":[],"mappings":";;;AAIA,qCAAyC;AAEzC,MAAa,WAAY,SAAQ,wBAAe;IAAhD;;QACW,sBAAiB,GAAoC,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"faros_labels.js","sourceRoot":"","sources":["../../../src/converters/github/faros_labels.ts"],"names":[],"mappings":";;;AAIA,qCAAyC;AAEzC,MAAa,WAAY,SAAQ,wBAAe;IAAhD;;QACW,sBAAiB,GAAoC,CAAC,WAAW,CAAC,CAAC;IA0B9E,CAAC;IAxBC,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAa,CAAC;QAC1C,MAAM,OAAO,GAAG;YACd;gBACE,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF;SACF,CAAC;QACF,yFAAyF;QACzF,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA3BD,kCA2BC"}
|