@zereight/mcp-gitlab 2.1.0 → 2.1.2
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/build/auth-retry.js +81 -0
- package/build/index.js +239 -10
- package/build/oauth.js +4 -4
- package/build/schemas.js +104 -10
- package/build/test/mcp-oauth-tests.js +49 -0
- package/build/test/schema-tests.js +261 -3
- package/build/test/test-auth-retry.js +188 -0
- package/build/test/test-search-code.js +7 -4
- package/build/test/test-token-optimizations.js +3 -0
- package/build/test/test-toolset-filtering.js +9 -3
- package/build/tools/registry.js +124 -1
- package/package.json +4 -4
package/build/tools/registry.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
2
2
|
import { toJSONSchema } from "../utils/schema.js";
|
|
3
3
|
import { USE_GITLAB_WIKI, USE_MILESTONE, USE_PIPELINE, } from "../config.js";
|
|
4
|
-
import { ApproveMergeRequestSchema, BulkPublishDraftNotesSchema, CancelPipelineJobSchema, CancelPipelineSchema, ConvertWorkItemTypeSchema, CreateBranchSchema, CreateDraftNoteSchema, CreateGroupWikiPageSchema, CreateIssueLinkSchema, CreateIssueNoteSchema, CreateIssueSchema, CreateLabelSchema, CreateMergeRequestDiscussionNoteSchema, CreateMergeRequestNoteSchema, CreateMergeRequestSchema, CreateMergeRequestThreadSchema, CreateNoteSchema, CreateOrUpdateFileSchema, CreatePipelineSchema, CreateProjectMilestoneSchema, CreateReleaseEvidenceSchema, CreateReleaseSchema, CreateRepositorySchema, CreateTimelineEventSchema, CreateWikiPageSchema, CreateWorkItemNoteSchema, CreateWorkItemSchema, DeleteDraftNoteSchema, DeleteGroupWikiPageSchema, DeleteIssueLinkSchema, DeleteIssueSchema, DeleteLabelSchema, DeleteMergeRequestDiscussionNoteSchema, DeleteMergeRequestNoteSchema, DeleteProjectMilestoneSchema, DeleteReleaseSchema, DeleteWikiPageSchema, DownloadAttachmentSchema, DownloadJobArtifactsSchema, DownloadReleaseAssetSchema, EditProjectMilestoneSchema, ExecuteGraphQLSchema, ForkRepositorySchema, GetBranchDiffsSchema, GetCommitDiffSchema, GetCommitSchema, GetDeploymentSchema, GetDraftNoteSchema, GetEnvironmentSchema, GetFileContentsSchema, GetGroupWikiPageSchema, GetIssueLinkSchema, GetIssueSchema, GetJobArtifactFileSchema, GetLabelSchema, GetMergeRequestApprovalStateSchema, GetMergeRequestConflictsSchema, GetMergeRequestDiffsSchema, GetMergeRequestFileDiffSchema, GetMergeRequestNoteSchema, GetMergeRequestNotesSchema, GetMergeRequestSchema, GetMergeRequestVersionSchema, GetMilestoneBurndownEventsSchema, GetMilestoneIssuesSchema, GetMilestoneMergeRequestsSchema, GetNamespaceSchema, GetPipelineJobOutputSchema, GetPipelineSchema, GetProjectEventsSchema, GetProjectMilestoneSchema, GetProjectSchema, GetReleaseSchema, GetRepositoryTreeSchema, GetTimelineEventsSchema, GetUsersSchema, GetWebhookEventSchema, GetWikiPageSchema, GetWorkItemSchema, ListCommitsSchema, ListCustomFieldDefinitionsSchema, ListDeploymentsSchema, ListDraftNotesSchema, ListEnvironmentsSchema, ListEventsSchema, ListGroupIterationsSchema, ListGroupProjectsSchema, ListGroupWikiPagesSchema, ListIssueDiscussionsSchema, ListIssueLinksSchema, ListIssuesSchema, ListJobArtifactsSchema, ListLabelsSchema, ListMergeRequestChangedFilesSchema, ListMergeRequestDiffsSchema, ListMergeRequestDiscussionsSchema, ListMergeRequestVersionsSchema, ListMergeRequestsSchema, ListNamespacesSchema, ListPipelineJobsSchema, ListPipelineTriggerJobsSchema, ListPipelinesSchema, ListProjectMembersSchema, ListProjectMilestonesSchema, ListProjectsSchema, ListReleasesSchema, ListWebhookEventsSchema, ListWebhooksSchema, ListWikiPagesSchema, ListWorkItemNotesSchema, ListWorkItemStatusesSchema, ListWorkItemsSchema, MarkdownUploadSchema, MergeMergeRequestSchema, MoveWorkItemSchema, MyIssuesSchema, PlayPipelineJobSchema, PromoteProjectMilestoneSchema, PublishDraftNoteSchema, PushFilesSchema, ResolveMergeRequestThreadSchema, RetryPipelineJobSchema, RetryPipelineSchema, SearchCodeSchema, SearchGroupCodeSchema, SearchProjectCodeSchema, SearchRepositoriesSchema, UnapproveMergeRequestSchema, UpdateDraftNoteSchema, UpdateGroupWikiPageSchema, UpdateIssueNoteSchema, UpdateIssueSchema, UpdateLabelSchema, UpdateMergeRequestDiscussionNoteSchema, UpdateMergeRequestNoteSchema, UpdateMergeRequestSchema, UpdateReleaseSchema, UpdateWikiPageSchema, UpdateWorkItemSchema, VerifyNamespaceSchema, } from "../schemas.js";
|
|
4
|
+
import { ApproveMergeRequestSchema, BulkPublishDraftNotesSchema, CancelPipelineJobSchema, CancelPipelineSchema, ConvertWorkItemTypeSchema, CreateBranchSchema, CreateDraftNoteSchema, CreateGroupWikiPageSchema, CreateIssueLinkSchema, CreateIssueNoteSchema, CreateIssueSchema, CreateIssueEmojiReactionSchema, CreateIssueNoteEmojiReactionSchema, ListIssueEmojiReactionsSchema, ListIssueNoteEmojiReactionsSchema, CreateLabelSchema, CreateMergeRequestDiscussionNoteSchema, CreateMergeRequestEmojiReactionSchema, ListMergeRequestEmojiReactionsSchema, ListMergeRequestNoteEmojiReactionsSchema, CreateMergeRequestNoteSchema, CreateMergeRequestNoteEmojiReactionSchema, CreateMergeRequestSchema, CreateMergeRequestThreadSchema, CreateNoteSchema, CreateOrUpdateFileSchema, CreatePipelineSchema, CreateProjectMilestoneSchema, CreateReleaseEvidenceSchema, CreateReleaseSchema, CreateRepositorySchema, CreateTimelineEventSchema, CreateWikiPageSchema, CreateWorkItemNoteSchema, CreateWorkItemEmojiReactionSchema, CreateWorkItemNoteEmojiReactionSchema, ListWorkItemEmojiReactionsSchema, ListWorkItemNoteEmojiReactionsSchema, CreateWorkItemSchema, DeleteDraftNoteSchema, DeleteGroupWikiPageSchema, DeleteIssueLinkSchema, DeleteIssueSchema, DeleteIssueEmojiReactionSchema, DeleteIssueNoteEmojiReactionSchema, DeleteLabelSchema, DeleteMergeRequestDiscussionNoteSchema, DeleteMergeRequestNoteSchema, DeleteMergeRequestEmojiReactionSchema, DeleteMergeRequestNoteEmojiReactionSchema, DeleteProjectMilestoneSchema, DeleteReleaseSchema, DeleteWikiPageSchema, DeleteWorkItemEmojiReactionSchema, DeleteWorkItemNoteEmojiReactionSchema, DownloadAttachmentSchema, DownloadJobArtifactsSchema, DownloadReleaseAssetSchema, EditProjectMilestoneSchema, ExecuteGraphQLSchema, ForkRepositorySchema, GetBranchDiffsSchema, GetCommitDiffSchema, GetCommitSchema, GetDeploymentSchema, GetDraftNoteSchema, GetEnvironmentSchema, GetFileContentsSchema, GetGroupWikiPageSchema, GetIssueLinkSchema, GetIssueSchema, GetJobArtifactFileSchema, GetLabelSchema, GetMergeRequestApprovalStateSchema, GetMergeRequestConflictsSchema, GetMergeRequestDiffsSchema, GetMergeRequestFileDiffSchema, GetMergeRequestNoteSchema, GetMergeRequestNotesSchema, GetMergeRequestSchema, GetMergeRequestVersionSchema, GetMilestoneBurndownEventsSchema, GetMilestoneIssuesSchema, GetMilestoneMergeRequestsSchema, GetNamespaceSchema, GetPipelineJobOutputSchema, GetPipelineSchema, GetProjectEventsSchema, GetProjectMilestoneSchema, GetProjectSchema, GetReleaseSchema, GetRepositoryTreeSchema, GetTimelineEventsSchema, GetUsersSchema, GetWebhookEventSchema, GetWikiPageSchema, GetWorkItemSchema, ListCommitsSchema, ListCustomFieldDefinitionsSchema, ListDeploymentsSchema, ListDraftNotesSchema, ListEnvironmentsSchema, ListEventsSchema, ListGroupIterationsSchema, ListGroupProjectsSchema, ListGroupWikiPagesSchema, ListIssueDiscussionsSchema, ListIssueLinksSchema, ListIssuesSchema, ListJobArtifactsSchema, ListLabelsSchema, ListMergeRequestChangedFilesSchema, ListMergeRequestDiffsSchema, ListMergeRequestDiscussionsSchema, ListMergeRequestVersionsSchema, ListMergeRequestsSchema, ListNamespacesSchema, ListPipelineJobsSchema, ListPipelineTriggerJobsSchema, ListPipelinesSchema, ListProjectMembersSchema, ListProjectMilestonesSchema, ListProjectsSchema, ListReleasesSchema, ListWebhookEventsSchema, ListWebhooksSchema, ListWikiPagesSchema, ListWorkItemNotesSchema, ListWorkItemStatusesSchema, ListWorkItemsSchema, MarkdownUploadSchema, MergeMergeRequestSchema, MoveWorkItemSchema, MyIssuesSchema, PlayPipelineJobSchema, PromoteProjectMilestoneSchema, PublishDraftNoteSchema, PushFilesSchema, ResolveMergeRequestThreadSchema, RetryPipelineJobSchema, RetryPipelineSchema, SearchCodeSchema, SearchGroupCodeSchema, SearchProjectCodeSchema, SearchRepositoriesSchema, UnapproveMergeRequestSchema, UpdateDraftNoteSchema, UpdateGroupWikiPageSchema, UpdateIssueNoteSchema, UpdateIssueSchema, UpdateLabelSchema, UpdateMergeRequestDiscussionNoteSchema, UpdateMergeRequestNoteSchema, UpdateMergeRequestSchema, UpdateReleaseSchema, UpdateWikiPageSchema, UpdateWorkItemSchema, VerifyNamespaceSchema, } from "../schemas.js";
|
|
5
5
|
// Define all available tools
|
|
6
6
|
export const allTools = [
|
|
7
7
|
{
|
|
@@ -219,6 +219,37 @@ export const allTools = [
|
|
|
219
219
|
description: "Publish all draft notes for a merge request",
|
|
220
220
|
inputSchema: toJSONSchema(BulkPublishDraftNotesSchema),
|
|
221
221
|
},
|
|
222
|
+
// --- Merge request emoji reaction tools ---
|
|
223
|
+
{
|
|
224
|
+
name: "list_merge_request_emoji_reactions",
|
|
225
|
+
description: "List all emoji reactions on a merge request",
|
|
226
|
+
inputSchema: toJSONSchema(ListMergeRequestEmojiReactionsSchema),
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: "list_merge_request_note_emoji_reactions",
|
|
230
|
+
description: "List all emoji reactions on a merge request note. Pass discussion_id for discussion thread replies.",
|
|
231
|
+
inputSchema: toJSONSchema(ListMergeRequestNoteEmojiReactionsSchema),
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
name: "create_merge_request_emoji_reaction",
|
|
235
|
+
description: "Add an emoji reaction to a merge request (e.g. thumbsup, rocket, eyes)",
|
|
236
|
+
inputSchema: toJSONSchema(CreateMergeRequestEmojiReactionSchema),
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: "delete_merge_request_emoji_reaction",
|
|
240
|
+
description: "Remove an emoji reaction from a merge request",
|
|
241
|
+
inputSchema: toJSONSchema(DeleteMergeRequestEmojiReactionSchema),
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
name: "create_merge_request_note_emoji_reaction",
|
|
245
|
+
description: "Add an emoji reaction to a merge request note. Pass discussion_id for discussion thread replies.",
|
|
246
|
+
inputSchema: toJSONSchema(CreateMergeRequestNoteEmojiReactionSchema),
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
name: "delete_merge_request_note_emoji_reaction",
|
|
250
|
+
description: "Remove an emoji reaction from a merge request note. Pass discussion_id for discussion thread replies.",
|
|
251
|
+
inputSchema: toJSONSchema(DeleteMergeRequestNoteEmojiReactionSchema),
|
|
252
|
+
},
|
|
222
253
|
{
|
|
223
254
|
name: "update_issue_note",
|
|
224
255
|
description: "Modify an existing issue thread note",
|
|
@@ -229,6 +260,37 @@ export const allTools = [
|
|
|
229
260
|
description: "Add a note to an issue, optionally replying to a discussion thread",
|
|
230
261
|
inputSchema: toJSONSchema(CreateIssueNoteSchema),
|
|
231
262
|
},
|
|
263
|
+
// --- Issue emoji reaction tools ---
|
|
264
|
+
{
|
|
265
|
+
name: "list_issue_emoji_reactions",
|
|
266
|
+
description: "List all emoji reactions on an issue",
|
|
267
|
+
inputSchema: toJSONSchema(ListIssueEmojiReactionsSchema),
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
name: "list_issue_note_emoji_reactions",
|
|
271
|
+
description: "List all emoji reactions on an issue note. Pass discussion_id for discussion thread replies.",
|
|
272
|
+
inputSchema: toJSONSchema(ListIssueNoteEmojiReactionsSchema),
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
name: "create_issue_emoji_reaction",
|
|
276
|
+
description: "Add an emoji reaction to an issue (e.g. thumbsup, rocket, eyes)",
|
|
277
|
+
inputSchema: toJSONSchema(CreateIssueEmojiReactionSchema),
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
name: "delete_issue_emoji_reaction",
|
|
281
|
+
description: "Remove an emoji reaction from an issue",
|
|
282
|
+
inputSchema: toJSONSchema(DeleteIssueEmojiReactionSchema),
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
name: "create_issue_note_emoji_reaction",
|
|
286
|
+
description: "Add an emoji reaction to an issue note. Pass discussion_id for discussion thread replies.",
|
|
287
|
+
inputSchema: toJSONSchema(CreateIssueNoteEmojiReactionSchema),
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: "delete_issue_note_emoji_reaction",
|
|
291
|
+
description: "Remove an emoji reaction from an issue note. Pass discussion_id for discussion thread replies.",
|
|
292
|
+
inputSchema: toJSONSchema(DeleteIssueNoteEmojiReactionSchema),
|
|
293
|
+
},
|
|
232
294
|
{
|
|
233
295
|
name: "list_issues",
|
|
234
296
|
description: "List issues (default: created by current user; use scope='all' for all)",
|
|
@@ -670,6 +732,37 @@ export const allTools = [
|
|
|
670
732
|
description: "Add a note to a work item (supports Markdown, internal notes, threads)",
|
|
671
733
|
inputSchema: toJSONSchema(CreateWorkItemNoteSchema),
|
|
672
734
|
},
|
|
735
|
+
// --- Work item emoji reaction tools (GraphQL-based) ---
|
|
736
|
+
{
|
|
737
|
+
name: "list_work_item_emoji_reactions",
|
|
738
|
+
description: "List all emoji reactions on a work item",
|
|
739
|
+
inputSchema: toJSONSchema(ListWorkItemEmojiReactionsSchema),
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
name: "list_work_item_note_emoji_reactions",
|
|
743
|
+
description: "List all emoji reactions on a work item note (comment, thread, or thread reply)",
|
|
744
|
+
inputSchema: toJSONSchema(ListWorkItemNoteEmojiReactionsSchema),
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
name: "create_work_item_emoji_reaction",
|
|
748
|
+
description: "Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)",
|
|
749
|
+
inputSchema: toJSONSchema(CreateWorkItemEmojiReactionSchema),
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
name: "delete_work_item_emoji_reaction",
|
|
753
|
+
description: "Remove an emoji reaction from a work item",
|
|
754
|
+
inputSchema: toJSONSchema(DeleteWorkItemEmojiReactionSchema),
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
name: "create_work_item_note_emoji_reaction",
|
|
758
|
+
description: "Add an emoji reaction to a work item note (comment, thread, or thread reply)",
|
|
759
|
+
inputSchema: toJSONSchema(CreateWorkItemNoteEmojiReactionSchema),
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
name: "delete_work_item_note_emoji_reaction",
|
|
763
|
+
description: "Remove an emoji reaction from a work item note (comment, thread, or thread reply)",
|
|
764
|
+
inputSchema: toJSONSchema(DeleteWorkItemNoteEmojiReactionSchema),
|
|
765
|
+
},
|
|
673
766
|
// --- Incident timeline event tools ---
|
|
674
767
|
{
|
|
675
768
|
name: "get_timeline_events",
|
|
@@ -805,6 +898,12 @@ export const readOnlyTools = new Set([
|
|
|
805
898
|
"list_work_item_statuses",
|
|
806
899
|
"list_custom_field_definitions",
|
|
807
900
|
"list_work_item_notes",
|
|
901
|
+
"list_merge_request_emoji_reactions",
|
|
902
|
+
"list_merge_request_note_emoji_reactions",
|
|
903
|
+
"list_issue_emoji_reactions",
|
|
904
|
+
"list_issue_note_emoji_reactions",
|
|
905
|
+
"list_work_item_emoji_reactions",
|
|
906
|
+
"list_work_item_note_emoji_reactions",
|
|
808
907
|
"get_timeline_events",
|
|
809
908
|
"get_merge_request_conflicts",
|
|
810
909
|
"list_webhooks",
|
|
@@ -823,6 +922,12 @@ export const destructiveTools = new Set([
|
|
|
823
922
|
"delete_merge_request_note",
|
|
824
923
|
"delete_merge_request_discussion_note",
|
|
825
924
|
"delete_draft_note",
|
|
925
|
+
"delete_merge_request_emoji_reaction",
|
|
926
|
+
"delete_merge_request_note_emoji_reaction",
|
|
927
|
+
"delete_issue_emoji_reaction",
|
|
928
|
+
"delete_issue_note_emoji_reaction",
|
|
929
|
+
"delete_work_item_emoji_reaction",
|
|
930
|
+
"delete_work_item_note_emoji_reaction",
|
|
826
931
|
"merge_merge_request",
|
|
827
932
|
"push_files",
|
|
828
933
|
]);
|
|
@@ -913,6 +1018,12 @@ export const TOOLSET_DEFINITIONS = [
|
|
|
913
1018
|
"bulk_publish_draft_notes",
|
|
914
1019
|
"create_merge_request_thread",
|
|
915
1020
|
"resolve_merge_request_thread",
|
|
1021
|
+
"list_merge_request_emoji_reactions",
|
|
1022
|
+
"list_merge_request_note_emoji_reactions",
|
|
1023
|
+
"create_merge_request_emoji_reaction",
|
|
1024
|
+
"delete_merge_request_emoji_reaction",
|
|
1025
|
+
"create_merge_request_note_emoji_reaction",
|
|
1026
|
+
"delete_merge_request_note_emoji_reaction",
|
|
916
1027
|
]),
|
|
917
1028
|
},
|
|
918
1029
|
{
|
|
@@ -933,6 +1044,12 @@ export const TOOLSET_DEFINITIONS = [
|
|
|
933
1044
|
"create_issue_link",
|
|
934
1045
|
"delete_issue_link",
|
|
935
1046
|
"create_note",
|
|
1047
|
+
"list_issue_emoji_reactions",
|
|
1048
|
+
"list_issue_note_emoji_reactions",
|
|
1049
|
+
"create_issue_emoji_reaction",
|
|
1050
|
+
"delete_issue_emoji_reaction",
|
|
1051
|
+
"create_issue_note_emoji_reaction",
|
|
1052
|
+
"delete_issue_note_emoji_reaction",
|
|
936
1053
|
]),
|
|
937
1054
|
},
|
|
938
1055
|
{
|
|
@@ -1077,6 +1194,12 @@ export const TOOLSET_DEFINITIONS = [
|
|
|
1077
1194
|
"move_work_item",
|
|
1078
1195
|
"list_work_item_notes",
|
|
1079
1196
|
"create_work_item_note",
|
|
1197
|
+
"list_work_item_emoji_reactions",
|
|
1198
|
+
"list_work_item_note_emoji_reactions",
|
|
1199
|
+
"create_work_item_emoji_reaction",
|
|
1200
|
+
"delete_work_item_emoji_reaction",
|
|
1201
|
+
"create_work_item_note_emoji_reaction",
|
|
1202
|
+
"delete_work_item_note_emoji_reaction",
|
|
1080
1203
|
"get_timeline_events",
|
|
1081
1204
|
"create_timeline_event",
|
|
1082
1205
|
]),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zereight/mcp-gitlab",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"gitlab",
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
"changelog": "auto-changelog -p",
|
|
49
49
|
"test": "npm run test:all",
|
|
50
50
|
"test:all": "npm run build && npm run test:mock && npm run test:live",
|
|
51
|
-
"test:mock": "
|
|
52
|
-
"test:mcp-oauth": "npm run build &&
|
|
51
|
+
"test:mock": "node --import tsx/esm --test test/remote-auth-simple-test.ts && node --import tsx/esm --test test/mcp-oauth-tests.ts && tsx test/oauth-tests.ts && tsx test/test-list-merge-requests.ts && tsx test/test-list-project-members.ts && tsx test/test-download-attachment.ts && node --import tsx/esm --test test/test-job-artifacts.ts && node --import tsx/esm --test test/test-deployment-tools.ts && node --import tsx/esm --test test/test-merge-request-approval-state-tools.ts && node --import tsx/esm --test test/test-search-code.ts && node --import tsx/esm --test test/test-toolset-filtering.ts && node --import tsx/esm --test test/test-auth-retry.ts",
|
|
52
|
+
"test:mcp-oauth": "npm run build && node --import tsx/esm --test test/mcp-oauth-tests.ts",
|
|
53
53
|
"test:live": "node test/validate-api.js",
|
|
54
|
-
"test:remote-auth": "npm run build &&
|
|
54
|
+
"test:remote-auth": "npm run build && node --import tsx/esm --test test/remote-auth-simple-test.ts",
|
|
55
55
|
"test:schema": "tsx test/schema-tests.ts",
|
|
56
56
|
"test:oauth": "tsx test/oauth-tests.ts",
|
|
57
57
|
"test:list-merge-requests": "npm run build && tsx test/test-list-merge-requests.ts",
|