@forge-glance/sdk 0.2.0 → 0.2.1
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/dist/GitHubProvider.js +5 -1
- package/dist/GitLabProvider.d.ts +1 -1
- package/dist/GitLabProvider.js +9 -1
- package/dist/index.js +14 -2
- package/dist/providers.js +14 -2
- package/dist/types.d.ts +8 -0
- package/package.json +1 -1
- package/src/GitHubProvider.ts +9 -1
- package/src/GitLabProvider.ts +13 -1
- package/src/types.ts +11 -0
package/dist/GitHubProvider.js
CHANGED
|
@@ -540,7 +540,11 @@ class GitHubProvider {
|
|
|
540
540
|
approved: approvedBy.length > 0 && changesRequested === 0,
|
|
541
541
|
approvedBy,
|
|
542
542
|
diffStats,
|
|
543
|
-
detailedMergeStatus: null
|
|
543
|
+
detailedMergeStatus: null,
|
|
544
|
+
autoMergeEnabled: pr.auto_merge != null,
|
|
545
|
+
autoMergeStrategy: pr.auto_merge?.merge_method ?? null,
|
|
546
|
+
mergeUser: pr.auto_merge ? toUserRef(pr.auto_merge.enabled_by) : null,
|
|
547
|
+
mergeAfter: null
|
|
544
548
|
};
|
|
545
549
|
}
|
|
546
550
|
}
|
package/dist/GitLabProvider.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { type ForgeLogger } from './logger.ts';
|
|
|
7
7
|
* e.g. "gitlab:42" → 42
|
|
8
8
|
*/
|
|
9
9
|
export declare function parseGitLabRepoId(repositoryId: string): number;
|
|
10
|
-
export declare const MR_DASHBOARD_FRAGMENT = "\n fragment MRDashboardFields on MergeRequest {\n id iid projectId title description state draft\n sourceBranch targetBranch webUrl\n diffHeadSha\n updatedAt createdAt\n conflicts\n detailedMergeStatus\n approved\n diffStatsSummary { additions deletions fileCount }\n author { id username name avatarUrl }\n assignees(first: 20) { nodes { id username name avatarUrl } }\n reviewers(first: 20) { nodes { id username name avatarUrl } }\n approvedBy(first: 20) { nodes { id username name avatarUrl } }\n approvalsLeft\n resolvableDiscussionsCount\n resolvedDiscussionsCount\n headPipeline {\n id iid status\n createdAt\n path\n stages(first: 20) { nodes {\n name\n jobs(first: 50) { nodes {\n id name status\n allowFailure\n webPath\n stage { name }\n }}\n }}\n }\n }\n";
|
|
10
|
+
export declare const MR_DASHBOARD_FRAGMENT = "\n fragment MRDashboardFields on MergeRequest {\n id iid projectId title description state draft\n sourceBranch targetBranch webUrl\n diffHeadSha\n updatedAt createdAt\n conflicts\n detailedMergeStatus\n approved\n diffStatsSummary { additions deletions fileCount }\n author { id username name avatarUrl }\n assignees(first: 20) { nodes { id username name avatarUrl } }\n reviewers(first: 20) { nodes { id username name avatarUrl } }\n approvedBy(first: 20) { nodes { id username name avatarUrl } }\n approvalsLeft\n resolvableDiscussionsCount\n resolvedDiscussionsCount\n autoMergeEnabled\n autoMergeStrategy\n mergeUser { id username name avatarUrl }\n mergeAfter\n headPipeline {\n id iid status\n createdAt\n path\n stages(first: 20) { nodes {\n name\n jobs(first: 50) { nodes {\n id name status\n allowFailure\n webPath\n stage { name }\n }}\n }}\n }\n }\n";
|
|
11
11
|
export declare class GitLabProvider implements GitProvider {
|
|
12
12
|
readonly providerName: "gitlab";
|
|
13
13
|
readonly baseURL: string;
|
package/dist/GitLabProvider.js
CHANGED
|
@@ -92,6 +92,10 @@ var MR_DASHBOARD_FRAGMENT = `
|
|
|
92
92
|
approvalsLeft
|
|
93
93
|
resolvableDiscussionsCount
|
|
94
94
|
resolvedDiscussionsCount
|
|
95
|
+
autoMergeEnabled
|
|
96
|
+
autoMergeStrategy
|
|
97
|
+
mergeUser { id username name avatarUrl }
|
|
98
|
+
mergeAfter
|
|
95
99
|
headPipeline {
|
|
96
100
|
id iid status
|
|
97
101
|
createdAt
|
|
@@ -212,7 +216,11 @@ function toMR(gql, role, baseURL) {
|
|
|
212
216
|
approved: gql.approved ?? false,
|
|
213
217
|
approvedBy: gql.approvedBy.nodes.map(toUserRef),
|
|
214
218
|
diffStats,
|
|
215
|
-
detailedMergeStatus: gql.detailedMergeStatus ?? null
|
|
219
|
+
detailedMergeStatus: gql.detailedMergeStatus ?? null,
|
|
220
|
+
autoMergeEnabled: gql.autoMergeEnabled ?? false,
|
|
221
|
+
autoMergeStrategy: gql.autoMergeStrategy ?? null,
|
|
222
|
+
mergeUser: gql.mergeUser ? toUserRef(gql.mergeUser) : null,
|
|
223
|
+
mergeAfter: gql.mergeAfter ?? null
|
|
216
224
|
};
|
|
217
225
|
}
|
|
218
226
|
var MR_DETAIL_QUERY = `
|
package/dist/index.js
CHANGED
|
@@ -101,6 +101,10 @@ var MR_DASHBOARD_FRAGMENT = `
|
|
|
101
101
|
approvalsLeft
|
|
102
102
|
resolvableDiscussionsCount
|
|
103
103
|
resolvedDiscussionsCount
|
|
104
|
+
autoMergeEnabled
|
|
105
|
+
autoMergeStrategy
|
|
106
|
+
mergeUser { id username name avatarUrl }
|
|
107
|
+
mergeAfter
|
|
104
108
|
headPipeline {
|
|
105
109
|
id iid status
|
|
106
110
|
createdAt
|
|
@@ -221,7 +225,11 @@ function toMR(gql, role, baseURL) {
|
|
|
221
225
|
approved: gql.approved ?? false,
|
|
222
226
|
approvedBy: gql.approvedBy.nodes.map(toUserRef),
|
|
223
227
|
diffStats,
|
|
224
|
-
detailedMergeStatus: gql.detailedMergeStatus ?? null
|
|
228
|
+
detailedMergeStatus: gql.detailedMergeStatus ?? null,
|
|
229
|
+
autoMergeEnabled: gql.autoMergeEnabled ?? false,
|
|
230
|
+
autoMergeStrategy: gql.autoMergeStrategy ?? null,
|
|
231
|
+
mergeUser: gql.mergeUser ? toUserRef(gql.mergeUser) : null,
|
|
232
|
+
mergeAfter: gql.mergeAfter ?? null
|
|
225
233
|
};
|
|
226
234
|
}
|
|
227
235
|
var MR_DETAIL_QUERY = `
|
|
@@ -1180,7 +1188,11 @@ class GitHubProvider {
|
|
|
1180
1188
|
approved: approvedBy.length > 0 && changesRequested === 0,
|
|
1181
1189
|
approvedBy,
|
|
1182
1190
|
diffStats,
|
|
1183
|
-
detailedMergeStatus: null
|
|
1191
|
+
detailedMergeStatus: null,
|
|
1192
|
+
autoMergeEnabled: pr.auto_merge != null,
|
|
1193
|
+
autoMergeStrategy: pr.auto_merge?.merge_method ?? null,
|
|
1194
|
+
mergeUser: pr.auto_merge ? toUserRef2(pr.auto_merge.enabled_by) : null,
|
|
1195
|
+
mergeAfter: null
|
|
1184
1196
|
};
|
|
1185
1197
|
}
|
|
1186
1198
|
}
|
package/dist/providers.js
CHANGED
|
@@ -92,6 +92,10 @@ var MR_DASHBOARD_FRAGMENT = `
|
|
|
92
92
|
approvalsLeft
|
|
93
93
|
resolvableDiscussionsCount
|
|
94
94
|
resolvedDiscussionsCount
|
|
95
|
+
autoMergeEnabled
|
|
96
|
+
autoMergeStrategy
|
|
97
|
+
mergeUser { id username name avatarUrl }
|
|
98
|
+
mergeAfter
|
|
95
99
|
headPipeline {
|
|
96
100
|
id iid status
|
|
97
101
|
createdAt
|
|
@@ -212,7 +216,11 @@ function toMR(gql, role, baseURL) {
|
|
|
212
216
|
approved: gql.approved ?? false,
|
|
213
217
|
approvedBy: gql.approvedBy.nodes.map(toUserRef),
|
|
214
218
|
diffStats,
|
|
215
|
-
detailedMergeStatus: gql.detailedMergeStatus ?? null
|
|
219
|
+
detailedMergeStatus: gql.detailedMergeStatus ?? null,
|
|
220
|
+
autoMergeEnabled: gql.autoMergeEnabled ?? false,
|
|
221
|
+
autoMergeStrategy: gql.autoMergeStrategy ?? null,
|
|
222
|
+
mergeUser: gql.mergeUser ? toUserRef(gql.mergeUser) : null,
|
|
223
|
+
mergeAfter: gql.mergeAfter ?? null
|
|
216
224
|
};
|
|
217
225
|
}
|
|
218
226
|
var MR_DETAIL_QUERY = `
|
|
@@ -1171,7 +1179,11 @@ class GitHubProvider {
|
|
|
1171
1179
|
approved: approvedBy.length > 0 && changesRequested === 0,
|
|
1172
1180
|
approvedBy,
|
|
1173
1181
|
diffStats,
|
|
1174
|
-
detailedMergeStatus: null
|
|
1182
|
+
detailedMergeStatus: null,
|
|
1183
|
+
autoMergeEnabled: pr.auto_merge != null,
|
|
1184
|
+
autoMergeStrategy: pr.auto_merge?.merge_method ?? null,
|
|
1185
|
+
mergeUser: pr.auto_merge ? toUserRef2(pr.auto_merge.enabled_by) : null,
|
|
1186
|
+
mergeAfter: null
|
|
1175
1187
|
};
|
|
1176
1188
|
}
|
|
1177
1189
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -75,6 +75,14 @@ export interface PullRequest {
|
|
|
75
75
|
* "not_approved", "discussions_not_resolved". Null for non-GitLab providers.
|
|
76
76
|
*/
|
|
77
77
|
detailedMergeStatus: string | null;
|
|
78
|
+
/** Whether auto-merge (merge when pipeline succeeds) is currently enabled. */
|
|
79
|
+
autoMergeEnabled: boolean;
|
|
80
|
+
/** The merge strategy that will be used when auto-merge fires, e.g. "merge", "squash", "rebase_merge". */
|
|
81
|
+
autoMergeStrategy: string | null;
|
|
82
|
+
/** The user who merged or enabled auto-merge. */
|
|
83
|
+
mergeUser: UserRef | null;
|
|
84
|
+
/** ISO timestamp after which the MR is eligible to merge (scheduled merge). */
|
|
85
|
+
mergeAfter: string | null;
|
|
78
86
|
}
|
|
79
87
|
/** Input for creating a new merge request / pull request. */
|
|
80
88
|
export interface CreatePullRequestInput {
|
package/package.json
CHANGED
package/src/GitHubProvider.ts
CHANGED
|
@@ -80,6 +80,10 @@ interface GHPullRequest {
|
|
|
80
80
|
changed_files?: number;
|
|
81
81
|
mergeable?: boolean | null;
|
|
82
82
|
mergeable_state?: string; // "dirty" | "clean" | "unstable" | "blocked" | ...
|
|
83
|
+
auto_merge?: {
|
|
84
|
+
enabled_by: GHUser;
|
|
85
|
+
merge_method: string; // "merge" | "squash" | "rebase"
|
|
86
|
+
} | null;
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
interface GHReview {
|
|
@@ -1015,7 +1019,11 @@ export class GitHubProvider implements GitProvider {
|
|
|
1015
1019
|
approved: approvedBy.length > 0 && changesRequested === 0,
|
|
1016
1020
|
approvedBy,
|
|
1017
1021
|
diffStats,
|
|
1018
|
-
detailedMergeStatus: null // GitHub-specific status not applicable
|
|
1022
|
+
detailedMergeStatus: null, // GitHub-specific status not applicable
|
|
1023
|
+
autoMergeEnabled: pr.auto_merge != null,
|
|
1024
|
+
autoMergeStrategy: pr.auto_merge?.merge_method ?? null,
|
|
1025
|
+
mergeUser: pr.auto_merge ? toUserRef(pr.auto_merge.enabled_by) : null,
|
|
1026
|
+
mergeAfter: null // GitHub doesn't have scheduled merge
|
|
1019
1027
|
};
|
|
1020
1028
|
}
|
|
1021
1029
|
}
|
package/src/GitLabProvider.ts
CHANGED
|
@@ -50,6 +50,10 @@ export const MR_DASHBOARD_FRAGMENT = `
|
|
|
50
50
|
approvalsLeft
|
|
51
51
|
resolvableDiscussionsCount
|
|
52
52
|
resolvedDiscussionsCount
|
|
53
|
+
autoMergeEnabled
|
|
54
|
+
autoMergeStrategy
|
|
55
|
+
mergeUser { id username name avatarUrl }
|
|
56
|
+
mergeAfter
|
|
53
57
|
headPipeline {
|
|
54
58
|
id iid status
|
|
55
59
|
createdAt
|
|
@@ -164,6 +168,10 @@ interface GQLMR {
|
|
|
164
168
|
approvalsLeft: number | null;
|
|
165
169
|
resolvableDiscussionsCount: number | null;
|
|
166
170
|
resolvedDiscussionsCount: number | null;
|
|
171
|
+
autoMergeEnabled: boolean;
|
|
172
|
+
autoMergeStrategy: string | null;
|
|
173
|
+
mergeUser: GQLUser | null;
|
|
174
|
+
mergeAfter: string | null;
|
|
167
175
|
headPipeline: GQLPipeline | null;
|
|
168
176
|
}
|
|
169
177
|
|
|
@@ -276,7 +284,11 @@ function toMR(gql: GQLMR, role: string, baseURL: string): PullRequest {
|
|
|
276
284
|
approved: gql.approved ?? false,
|
|
277
285
|
approvedBy: gql.approvedBy.nodes.map(toUserRef),
|
|
278
286
|
diffStats,
|
|
279
|
-
detailedMergeStatus: gql.detailedMergeStatus ?? null
|
|
287
|
+
detailedMergeStatus: gql.detailedMergeStatus ?? null,
|
|
288
|
+
autoMergeEnabled: gql.autoMergeEnabled ?? false,
|
|
289
|
+
autoMergeStrategy: gql.autoMergeStrategy ?? null,
|
|
290
|
+
mergeUser: gql.mergeUser ? toUserRef(gql.mergeUser) : null,
|
|
291
|
+
mergeAfter: gql.mergeAfter ?? null
|
|
280
292
|
};
|
|
281
293
|
}
|
|
282
294
|
|
package/src/types.ts
CHANGED
|
@@ -82,6 +82,17 @@ export interface PullRequest {
|
|
|
82
82
|
* "not_approved", "discussions_not_resolved". Null for non-GitLab providers.
|
|
83
83
|
*/
|
|
84
84
|
detailedMergeStatus: string | null;
|
|
85
|
+
|
|
86
|
+
// ── Auto-merge status ────────────────────────────────────────────────
|
|
87
|
+
|
|
88
|
+
/** Whether auto-merge (merge when pipeline succeeds) is currently enabled. */
|
|
89
|
+
autoMergeEnabled: boolean;
|
|
90
|
+
/** The merge strategy that will be used when auto-merge fires, e.g. "merge", "squash", "rebase_merge". */
|
|
91
|
+
autoMergeStrategy: string | null;
|
|
92
|
+
/** The user who merged or enabled auto-merge. */
|
|
93
|
+
mergeUser: UserRef | null;
|
|
94
|
+
/** ISO timestamp after which the MR is eligible to merge (scheduled merge). */
|
|
95
|
+
mergeAfter: string | null;
|
|
85
96
|
}
|
|
86
97
|
|
|
87
98
|
// ── MR/PR mutation inputs ─────────────────────────────────────────────────────
|