airbyte-faros-destination 0.19.21 → 0.19.23
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/cursor/members.d.ts +3 -2
- package/lib/converters/cursor/members.js +55 -11
- package/lib/converters/cursor/members.js.map +1 -1
- package/lib/converters/github/faros_copilot_seats.js +15 -34
- package/lib/converters/github/faros_copilot_seats.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
-
import { DestinationModel, DestinationRecord } from '../converter';
|
|
2
|
+
import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
|
|
3
3
|
import { CursorConverter } from './common';
|
|
4
4
|
export declare class Members extends CursorConverter {
|
|
5
|
+
private readonly currentMembers;
|
|
5
6
|
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
7
|
convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
|
|
7
|
-
onProcessingComplete(): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
|
+
onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
9
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Members = void 0;
|
|
4
|
+
const common_1 = require("faros-airbyte-common/common");
|
|
4
5
|
const faros_js_client_1 = require("faros-js-client");
|
|
5
6
|
const vcs_1 = require("../common/vcs");
|
|
6
|
-
const
|
|
7
|
-
class Members extends
|
|
7
|
+
const common_2 = require("./common");
|
|
8
|
+
class Members extends common_2.CursorConverter {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(...arguments);
|
|
11
|
+
this.currentMembers = new Set();
|
|
10
12
|
this.destinationModels = [
|
|
11
13
|
'vcs_Organization',
|
|
12
14
|
'vcs_User',
|
|
@@ -16,6 +18,9 @@ class Members extends common_1.CursorConverter {
|
|
|
16
18
|
}
|
|
17
19
|
async convert(record) {
|
|
18
20
|
const member = record.record.data;
|
|
21
|
+
if (member.active) {
|
|
22
|
+
this.currentMembers.add(member.email);
|
|
23
|
+
}
|
|
19
24
|
return [
|
|
20
25
|
{
|
|
21
26
|
model: 'vcs_User',
|
|
@@ -54,17 +59,56 @@ class Members extends common_1.CursorConverter {
|
|
|
54
59
|
},
|
|
55
60
|
];
|
|
56
61
|
}
|
|
57
|
-
async onProcessingComplete() {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
},
|
|
62
|
+
async onProcessingComplete(ctx) {
|
|
63
|
+
const res = [];
|
|
64
|
+
res.push({
|
|
65
|
+
model: 'vcs_Organization',
|
|
66
|
+
record: {
|
|
67
|
+
uid: this.streamName.source,
|
|
68
|
+
source: this.streamName.source,
|
|
65
69
|
},
|
|
66
|
-
|
|
70
|
+
});
|
|
71
|
+
if (!ctx.farosClient) {
|
|
72
|
+
ctx.logger.warn(`Skipping inactive Cursor members inference. Faros client not configured.`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
const previousMembersQuery = (0, common_1.queryVcsUserTools)(ctx.farosClient, ctx.graph, {
|
|
76
|
+
source: this.streamName.source,
|
|
77
|
+
organizationUid: this.streamName.source,
|
|
78
|
+
toolCategory: vcs_1.VCSToolCategory.CodingAssistant,
|
|
79
|
+
toolDetail: vcs_1.VCSToolDetail.Cursor,
|
|
80
|
+
inactive: false,
|
|
81
|
+
});
|
|
82
|
+
let previousMembers = 0;
|
|
83
|
+
let previousMembersNowInactive = 0;
|
|
84
|
+
for await (const previousMember of previousMembersQuery) {
|
|
85
|
+
previousMembers++;
|
|
86
|
+
if (!this.currentMembers.has(previousMember.user.uid)) {
|
|
87
|
+
previousMembersNowInactive++;
|
|
88
|
+
const userTool = userToolKey(previousMember.user.uid, this.streamName.source);
|
|
89
|
+
res.push({
|
|
90
|
+
model: 'vcs_UserTool',
|
|
91
|
+
record: {
|
|
92
|
+
...userTool,
|
|
93
|
+
inactive: true,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
ctx.logger.info(`Inferred ${previousMembersNowInactive} out of ${previousMembers} previously active Cursor members are now inactive`);
|
|
99
|
+
}
|
|
100
|
+
return res;
|
|
67
101
|
}
|
|
68
102
|
}
|
|
69
103
|
exports.Members = Members;
|
|
104
|
+
function userToolKey(userEmail, source) {
|
|
105
|
+
return {
|
|
106
|
+
user: { uid: userEmail, source },
|
|
107
|
+
organization: { uid: source, source },
|
|
108
|
+
tool: {
|
|
109
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
110
|
+
detail: vcs_1.VCSToolDetail.Cursor,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
70
114
|
//# sourceMappingURL=members.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../../src/converters/cursor/members.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../../src/converters/cursor/members.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FarosCopilotSeats = void 0;
|
|
4
|
+
const common_1 = require("faros-airbyte-common/common");
|
|
4
5
|
const faros_js_client_1 = require("faros-js-client");
|
|
5
6
|
const lodash_1 = require("lodash");
|
|
6
7
|
const types_1 = require("../../common/types");
|
|
7
8
|
const vcs_1 = require("../common/vcs");
|
|
8
|
-
const
|
|
9
|
-
class FarosCopilotSeats extends
|
|
9
|
+
const common_2 = require("./common");
|
|
10
|
+
class FarosCopilotSeats extends common_2.GitHubConverter {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
12
13
|
this.currentAssigneesByOrg = new Map();
|
|
@@ -74,7 +75,7 @@ class FarosCopilotSeats extends common_1.GitHubConverter {
|
|
|
74
75
|
res.push({
|
|
75
76
|
model: 'vcs_AssistantMetric',
|
|
76
77
|
record: {
|
|
77
|
-
uid:
|
|
78
|
+
uid: common_2.GitHubCommon.digest([
|
|
78
79
|
vcs_1.VCSToolCategory.GitHubCopilot,
|
|
79
80
|
vcs_1.AssistantMetric.LastActivity,
|
|
80
81
|
recordedAt.toISOString(),
|
|
@@ -123,15 +124,19 @@ class FarosCopilotSeats extends common_1.GitHubConverter {
|
|
|
123
124
|
}
|
|
124
125
|
else {
|
|
125
126
|
for (const org of this.currentAssigneesByOrg.keys()) {
|
|
126
|
-
const previousAssigneesQuery =
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
127
|
+
const previousAssigneesQuery = (0, common_1.queryVcsUserTools)(ctx.farosClient, ctx.graph, {
|
|
128
|
+
source: this.streamName.source,
|
|
129
|
+
organizationUid: (0, lodash_1.toLower)(org),
|
|
130
|
+
toolCategory: vcs_1.VCSToolCategory.GitHubCopilot,
|
|
131
|
+
inactive: false,
|
|
132
|
+
});
|
|
132
133
|
const now = new Date();
|
|
134
|
+
let previousAssignees = 0;
|
|
135
|
+
let previousAssigneesNowInactive = 0;
|
|
133
136
|
for await (const previousAssignee of previousAssigneesQuery) {
|
|
137
|
+
previousAssignees++;
|
|
134
138
|
if (!this.currentAssigneesByOrg.get(org).has(previousAssignee.user.uid)) {
|
|
139
|
+
previousAssigneesNowInactive++;
|
|
135
140
|
const userTool = userToolKey(previousAssignee.user.uid, org, this.streamName.source);
|
|
136
141
|
res.push({
|
|
137
142
|
model: 'vcs_UserTool',
|
|
@@ -155,6 +160,7 @@ class FarosCopilotSeats extends common_1.GitHubConverter {
|
|
|
155
160
|
}
|
|
156
161
|
}
|
|
157
162
|
}
|
|
163
|
+
ctx.logger.info(`Inferred ${previousAssigneesNowInactive} out of ${previousAssignees} previously active Copilot seats are now inactive for organization ${org}`);
|
|
158
164
|
}
|
|
159
165
|
}
|
|
160
166
|
return res;
|
|
@@ -168,29 +174,4 @@ function userToolKey(userLogin, orgLogin, source) {
|
|
|
168
174
|
tool: { category: vcs_1.VCSToolCategory.GitHubCopilot },
|
|
169
175
|
};
|
|
170
176
|
}
|
|
171
|
-
const USER_TOOL_QUERY = `
|
|
172
|
-
query vcs_UserTool(
|
|
173
|
-
$source: String!
|
|
174
|
-
$organizationUid: String!
|
|
175
|
-
$toolCategory: String!
|
|
176
|
-
$inactive: Boolean!
|
|
177
|
-
) {
|
|
178
|
-
vcs_UserTool(
|
|
179
|
-
where: {
|
|
180
|
-
user: {source: {_eq: $source}}
|
|
181
|
-
organization: {uid: {_eq: $organizationUid}, source: {_eq: $source}}
|
|
182
|
-
toolCategory: {_eq: $toolCategory}
|
|
183
|
-
inactive: {_eq: $inactive}
|
|
184
|
-
}
|
|
185
|
-
) {
|
|
186
|
-
user {
|
|
187
|
-
uid
|
|
188
|
-
}
|
|
189
|
-
toolCategory
|
|
190
|
-
inactive
|
|
191
|
-
startedAt
|
|
192
|
-
endedAt
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
`;
|
|
196
177
|
//# sourceMappingURL=faros_copilot_seats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faros_copilot_seats.js","sourceRoot":"","sources":["../../../src/converters/github/faros_copilot_seats.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"faros_copilot_seats.js","sourceRoot":"","sources":["../../../src/converters/github/faros_copilot_seats.ts"],"names":[],"mappings":"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"}
|