mcp4openapi 0.3.1 → 0.3.4

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.
Files changed (160) hide show
  1. package/README.md +7 -0
  2. package/dist/src/auth/oauth-provider.d.ts +1 -0
  3. package/dist/src/auth/oauth-provider.d.ts.map +1 -1
  4. package/dist/src/auth/oauth-provider.js +17 -0
  5. package/dist/src/auth/oauth-provider.js.map +1 -1
  6. package/dist/src/core/cli-config.d.ts.map +1 -1
  7. package/dist/src/core/cli-config.js +2 -0
  8. package/dist/src/core/cli-config.js.map +1 -1
  9. package/dist/src/core/index.d.ts.map +1 -1
  10. package/dist/src/core/index.js +18 -3
  11. package/dist/src/core/index.js.map +1 -1
  12. package/dist/src/index.js +0 -0
  13. package/dist/src/profile/profile-allowlist.d.ts +18 -0
  14. package/dist/src/profile/profile-allowlist.d.ts.map +1 -0
  15. package/dist/src/profile/profile-allowlist.js +68 -0
  16. package/dist/src/profile/profile-allowlist.js.map +1 -0
  17. package/dist/src/profile/profile-registry.d.ts +5 -0
  18. package/dist/src/profile/profile-registry.d.ts.map +1 -1
  19. package/dist/src/profile/profile-registry.js +38 -14
  20. package/dist/src/profile/profile-registry.js.map +1 -1
  21. package/dist/src/security/ssrf-validator.d.ts +31 -0
  22. package/dist/src/security/ssrf-validator.d.ts.map +1 -0
  23. package/dist/src/security/ssrf-validator.js +190 -0
  24. package/dist/src/security/ssrf-validator.js.map +1 -0
  25. package/package.json +2 -2
  26. package/profiles/gitlab/developer-profile-oauth.json +445 -81
  27. package/profiles/gitlab/developer-profile-oauth.test.json +1037 -12
  28. package/profiles/gitlab/openapi.yaml +1420 -165
  29. package/profiles/gitlab/profile-optimized-oauth.json +928 -0
  30. package/profiles/gitlab/profile-optimized-oauth.test.json +1606 -0
  31. package/profiles/grafana/openapi.json +28078 -0
  32. package/profiles/grafana/profile.json +1083 -0
  33. package/profiles/grafana/profile.test.json +235 -0
  34. package/profiles/mattermost/openapi.yaml +27434 -0
  35. package/profiles/mattermost/profile.json +463 -0
  36. package/profiles/mattermost/profile.test.json +607 -0
  37. package/profiles/n8n/profile-optimized.json +1002 -364
  38. package/profiles/n8n/profile-optimized.test.json +43 -43
  39. package/dist/src/argument-normalizer.d.ts +0 -5
  40. package/dist/src/argument-normalizer.d.ts.map +0 -1
  41. package/dist/src/argument-normalizer.js +0 -61
  42. package/dist/src/argument-normalizer.js.map +0 -1
  43. package/dist/src/cli-config.d.ts +0 -9
  44. package/dist/src/cli-config.d.ts.map +0 -1
  45. package/dist/src/cli-config.js +0 -111
  46. package/dist/src/cli-config.js.map +0 -1
  47. package/dist/src/composite-executor.d.ts +0 -77
  48. package/dist/src/composite-executor.d.ts.map +0 -1
  49. package/dist/src/composite-executor.js +0 -193
  50. package/dist/src/composite-executor.js.map +0 -1
  51. package/dist/src/constants.d.ts +0 -85
  52. package/dist/src/constants.d.ts.map +0 -1
  53. package/dist/src/constants.js +0 -85
  54. package/dist/src/constants.js.map +0 -1
  55. package/dist/src/dag-executor.d.ts +0 -49
  56. package/dist/src/dag-executor.d.ts.map +0 -1
  57. package/dist/src/dag-executor.js +0 -138
  58. package/dist/src/dag-executor.js.map +0 -1
  59. package/dist/src/errors.d.ts +0 -59
  60. package/dist/src/errors.d.ts.map +0 -1
  61. package/dist/src/errors.js +0 -119
  62. package/dist/src/errors.js.map +0 -1
  63. package/dist/src/filtering.d.ts +0 -19
  64. package/dist/src/filtering.d.ts.map +0 -1
  65. package/dist/src/filtering.js +0 -292
  66. package/dist/src/filtering.js.map +0 -1
  67. package/dist/src/http-client-factory.d.ts +0 -62
  68. package/dist/src/http-client-factory.d.ts.map +0 -1
  69. package/dist/src/http-client-factory.js +0 -133
  70. package/dist/src/http-client-factory.js.map +0 -1
  71. package/dist/src/http-transport-config.d.ts +0 -6
  72. package/dist/src/http-transport-config.d.ts.map +0 -1
  73. package/dist/src/http-transport-config.js +0 -47
  74. package/dist/src/http-transport-config.js.map +0 -1
  75. package/dist/src/http-transport.d.ts +0 -316
  76. package/dist/src/http-transport.d.ts.map +0 -1
  77. package/dist/src/http-transport.js +0 -2412
  78. package/dist/src/http-transport.js.map +0 -1
  79. package/dist/src/interceptors.d.ts +0 -116
  80. package/dist/src/interceptors.d.ts.map +0 -1
  81. package/dist/src/interceptors.js +0 -392
  82. package/dist/src/interceptors.js.map +0 -1
  83. package/dist/src/jsonrpc-validator.d.ts +0 -27
  84. package/dist/src/jsonrpc-validator.d.ts.map +0 -1
  85. package/dist/src/jsonrpc-validator.js +0 -58
  86. package/dist/src/jsonrpc-validator.js.map +0 -1
  87. package/dist/src/logger.d.ts +0 -59
  88. package/dist/src/logger.d.ts.map +0 -1
  89. package/dist/src/logger.js +0 -177
  90. package/dist/src/logger.js.map +0 -1
  91. package/dist/src/mcp-server-manager.d.ts +0 -20
  92. package/dist/src/mcp-server-manager.d.ts.map +0 -1
  93. package/dist/src/mcp-server-manager.js +0 -38
  94. package/dist/src/mcp-server-manager.js.map +0 -1
  95. package/dist/src/mcp-server.d.ts +0 -203
  96. package/dist/src/mcp-server.d.ts.map +0 -1
  97. package/dist/src/mcp-server.js +0 -1369
  98. package/dist/src/mcp-server.js.map +0 -1
  99. package/dist/src/metrics.d.ts +0 -97
  100. package/dist/src/metrics.d.ts.map +0 -1
  101. package/dist/src/metrics.js +0 -273
  102. package/dist/src/metrics.js.map +0 -1
  103. package/dist/src/naming-warnings.d.ts +0 -23
  104. package/dist/src/naming-warnings.d.ts.map +0 -1
  105. package/dist/src/naming-warnings.js +0 -83
  106. package/dist/src/naming-warnings.js.map +0 -1
  107. package/dist/src/naming.d.ts +0 -58
  108. package/dist/src/naming.d.ts.map +0 -1
  109. package/dist/src/naming.js +0 -510
  110. package/dist/src/naming.js.map +0 -1
  111. package/dist/src/oauth-provider.d.ts +0 -131
  112. package/dist/src/oauth-provider.d.ts.map +0 -1
  113. package/dist/src/oauth-provider.js +0 -836
  114. package/dist/src/oauth-provider.js.map +0 -1
  115. package/dist/src/openapi-parser.d.ts +0 -70
  116. package/dist/src/openapi-parser.d.ts.map +0 -1
  117. package/dist/src/openapi-parser.js +0 -436
  118. package/dist/src/openapi-parser.js.map +0 -1
  119. package/dist/src/profile-loader.d.ts +0 -78
  120. package/dist/src/profile-loader.d.ts.map +0 -1
  121. package/dist/src/profile-loader.js +0 -483
  122. package/dist/src/profile-loader.js.map +0 -1
  123. package/dist/src/profile-registry.d.ts +0 -18
  124. package/dist/src/profile-registry.d.ts.map +0 -1
  125. package/dist/src/profile-registry.js +0 -26
  126. package/dist/src/profile-registry.js.map +0 -1
  127. package/dist/src/profile-resolver.d.ts +0 -19
  128. package/dist/src/profile-resolver.d.ts.map +0 -1
  129. package/dist/src/profile-resolver.js +0 -167
  130. package/dist/src/profile-resolver.js.map +0 -1
  131. package/dist/src/proxy-executor.d.ts +0 -86
  132. package/dist/src/proxy-executor.d.ts.map +0 -1
  133. package/dist/src/proxy-executor.js +0 -497
  134. package/dist/src/proxy-executor.js.map +0 -1
  135. package/dist/src/schema-validator.d.ts +0 -30
  136. package/dist/src/schema-validator.d.ts.map +0 -1
  137. package/dist/src/schema-validator.js +0 -128
  138. package/dist/src/schema-validator.js.map +0 -1
  139. package/dist/src/startup-profile.d.ts +0 -17
  140. package/dist/src/startup-profile.d.ts.map +0 -1
  141. package/dist/src/startup-profile.js +0 -30
  142. package/dist/src/startup-profile.js.map +0 -1
  143. package/dist/src/startup-validation.d.ts +0 -11
  144. package/dist/src/startup-validation.d.ts.map +0 -1
  145. package/dist/src/startup-validation.js +0 -21
  146. package/dist/src/startup-validation.js.map +0 -1
  147. package/dist/src/tool-filter.d.ts +0 -65
  148. package/dist/src/tool-filter.d.ts.map +0 -1
  149. package/dist/src/tool-filter.js +0 -471
  150. package/dist/src/tool-filter.js.map +0 -1
  151. package/dist/src/tool-generator.d.ts +0 -67
  152. package/dist/src/tool-generator.d.ts.map +0 -1
  153. package/dist/src/tool-generator.js +0 -182
  154. package/dist/src/tool-generator.js.map +0 -1
  155. package/dist/src/validation-utils.d.ts +0 -49
  156. package/dist/src/validation-utils.d.ts.map +0 -1
  157. package/dist/src/validation-utils.js +0 -138
  158. package/dist/src/validation-utils.js.map +0 -1
  159. package/profiles/gitlab/developer-profile.json +0 -1508
  160. package/profiles/gitlab/developer-profile.test.json +0 -3432
@@ -4,7 +4,19 @@
4
4
  "variables": {
5
5
  "projectId": "12345",
6
6
  "groupId": "36173",
7
- "awardId": 7
7
+ "awardId": 7,
8
+ "issueIid": 1,
9
+ "mergeRequestIid": 2,
10
+ "noteId": 10,
11
+ "discussionId": "discussion-1",
12
+ "pipelineId": 1001,
13
+ "jobId": 2002,
14
+ "hookId": 9001,
15
+ "variableKey": "DEPLOY_ENV",
16
+ "filePath": "README.md",
17
+ "ref": "main",
18
+ "fromRef": "main",
19
+ "toRef": "feature-branch"
8
20
  },
9
21
  "scenarios": [
10
22
  {
@@ -69,7 +81,8 @@
69
81
  "name": "Projects - List",
70
82
  "tool": "manage_projects",
71
83
  "arguments": {
72
- "action": "list"
84
+ "action": "list",
85
+ "membership": true
73
86
  },
74
87
  "mocks": [
75
88
  {
@@ -125,7 +138,9 @@
125
138
  "tool": "manage_merge_requests",
126
139
  "arguments": {
127
140
  "action": "list",
128
- "project_id": "{{projectId}}"
141
+ "project_id": "{{projectId}}",
142
+ "state": "opened",
143
+ "reviewer_id": 123
129
144
  },
130
145
  "mocks": [
131
146
  {
@@ -1104,7 +1119,7 @@
1104
1119
  "tool": "run_glql",
1105
1120
  "arguments": {
1106
1121
  "action": "query",
1107
- "query": "{ projects { nodes { id name } } }"
1122
+ "glql_yaml": "{ projects { nodes { id name } } }"
1108
1123
  },
1109
1124
  "mocks": [
1110
1125
  {
@@ -1137,7 +1152,9 @@
1137
1152
  "arguments": {
1138
1153
  "action": "list",
1139
1154
  "project_id": "{{projectId}}",
1140
- "state": ["opened", "closed"]
1155
+ "state": ["opened", "closed"],
1156
+ "labels": "bug",
1157
+ "updated_after": "2024-01-01T00:00:00Z"
1141
1158
  },
1142
1159
  "mocks": [
1143
1160
  {
@@ -1164,7 +1181,50 @@
1164
1181
  "method": "GET",
1165
1182
  "path": "/projects/{{projectId}}/issues",
1166
1183
  "query": {
1167
- "state[]": ["opened", "closed"]
1184
+ "state[]": ["opened", "closed"],
1185
+ "labels": "bug",
1186
+ "updated_after": "2024-01-01T00:00:00Z"
1187
+ }
1188
+ }
1189
+ }
1190
+ },
1191
+ {
1192
+ "name": "Issues - List Global",
1193
+ "tool": "manage_issues",
1194
+ "arguments": {
1195
+ "action": "list_global",
1196
+ "state": "opened",
1197
+ "scope": "all",
1198
+ "search": "security"
1199
+ },
1200
+ "mocks": [
1201
+ {
1202
+ "operationId": "getApiV4Issues",
1203
+ "response": {
1204
+ "body": [
1205
+ {
1206
+ "id": 11,
1207
+ "iid": 2,
1208
+ "title": "Global Bug"
1209
+ }
1210
+ ]
1211
+ }
1212
+ }
1213
+ ],
1214
+ "expect": {
1215
+ "success": true,
1216
+ "result": [
1217
+ {
1218
+ "title": "Global Bug"
1219
+ }
1220
+ ],
1221
+ "request": {
1222
+ "method": "GET",
1223
+ "path": "/issues",
1224
+ "query": {
1225
+ "state": "opened",
1226
+ "scope": "all",
1227
+ "search": "security"
1168
1228
  }
1169
1229
  }
1170
1230
  }
@@ -1201,7 +1261,9 @@
1201
1261
  "arguments": {
1202
1262
  "action": "list_notes",
1203
1263
  "project_id": "{{projectId}}",
1204
- "issue_iid": 1
1264
+ "issue_iid": 1,
1265
+ "activity_filter": "only_comments",
1266
+ "sort": "asc"
1205
1267
  },
1206
1268
  "mocks": [
1207
1269
  {
@@ -1222,7 +1284,15 @@
1222
1284
  {
1223
1285
  "id": 201
1224
1286
  }
1225
- ]
1287
+ ],
1288
+ "request": {
1289
+ "method": "GET",
1290
+ "path": "/projects/{{projectId}}/issues/1/notes",
1291
+ "query": {
1292
+ "activity_filter": "only_comments",
1293
+ "sort": "asc"
1294
+ }
1295
+ }
1226
1296
  }
1227
1297
  },
1228
1298
  {
@@ -1356,6 +1426,34 @@
1356
1426
  }
1357
1427
  }
1358
1428
  },
1429
+ {
1430
+ "name": "Issues - Update",
1431
+ "tool": "manage_issues",
1432
+ "arguments": {
1433
+ "action": "update",
1434
+ "project_id": "{{projectId}}",
1435
+ "issue_iid": 1,
1436
+ "title": "Updated Bug"
1437
+ },
1438
+ "mocks": [
1439
+ {
1440
+ "operationId": "putApiV4ProjectsIdIssuesIssueIid",
1441
+ "response": {
1442
+ "body": {
1443
+ "id": 1,
1444
+ "iid": 1,
1445
+ "title": "Updated Bug"
1446
+ }
1447
+ }
1448
+ }
1449
+ ],
1450
+ "expect": {
1451
+ "success": true,
1452
+ "result": {
1453
+ "title": "Updated Bug"
1454
+ }
1455
+ }
1456
+ },
1359
1457
  {
1360
1458
  "name": "Issues - Delete",
1361
1459
  "tool": "manage_issues",
@@ -2776,20 +2874,118 @@
2776
2874
  }
2777
2875
  },
2778
2876
  {
2779
- "name": "Merge Requests - Get Changes",
2877
+ "name": "Merge Requests - Merge",
2780
2878
  "tool": "manage_merge_requests",
2781
2879
  "arguments": {
2782
- "action": "get_changes",
2880
+ "action": "merge",
2783
2881
  "project_id": "{{projectId}}",
2784
2882
  "merge_request_iid": 1
2785
2883
  },
2786
2884
  "mocks": [
2787
2885
  {
2788
- "operationId": "getApiV4ProjectsIdMergeRequestsMergeRequestIidChanges",
2886
+ "operationId": "putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge",
2789
2887
  "response": {
2790
2888
  "status": 200,
2791
2889
  "body": {
2792
- "id": 1
2890
+ "id": 1,
2891
+ "iid": 1
2892
+ }
2893
+ }
2894
+ }
2895
+ ],
2896
+ "expect": {
2897
+ "success": true
2898
+ }
2899
+ },
2900
+ {
2901
+ "name": "Merge Requests - List Commits",
2902
+ "tool": "manage_merge_requests",
2903
+ "arguments": {
2904
+ "action": "list_commits",
2905
+ "project_id": "{{projectId}}",
2906
+ "merge_request_iid": 1
2907
+ },
2908
+ "mocks": [
2909
+ {
2910
+ "operationId": "getApiV4ProjectsIdMergeRequestsMergeRequestIidCommits",
2911
+ "response": {
2912
+ "status": 200,
2913
+ "body": [
2914
+ {
2915
+ "id": "abc123",
2916
+ "title": "Commit"
2917
+ }
2918
+ ]
2919
+ }
2920
+ }
2921
+ ],
2922
+ "expect": {
2923
+ "success": true
2924
+ }
2925
+ },
2926
+ {
2927
+ "name": "Merge Requests - List Raw Diffs",
2928
+ "tool": "manage_merge_requests",
2929
+ "arguments": {
2930
+ "action": "list_raw_diffs",
2931
+ "project_id": "{{projectId}}",
2932
+ "merge_request_iid": 1
2933
+ },
2934
+ "mocks": [
2935
+ {
2936
+ "operationId": "getApiV4ProjectsIdMergeRequestsMergeRequestIidRawDiffs",
2937
+ "response": {
2938
+ "status": 200,
2939
+ "body": "diff --git a/file.txt b/file.txt"
2940
+ }
2941
+ }
2942
+ ],
2943
+ "expect": {
2944
+ "success": true
2945
+ }
2946
+ },
2947
+ {
2948
+ "name": "Merge Requests - List Pipelines",
2949
+ "tool": "manage_merge_requests",
2950
+ "arguments": {
2951
+ "action": "list_pipelines",
2952
+ "project_id": "{{projectId}}",
2953
+ "merge_request_iid": 1
2954
+ },
2955
+ "mocks": [
2956
+ {
2957
+ "operationId": "getApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines",
2958
+ "response": {
2959
+ "status": 200,
2960
+ "body": [
2961
+ {
2962
+ "id": 100,
2963
+ "status": "success"
2964
+ }
2965
+ ]
2966
+ }
2967
+ }
2968
+ ],
2969
+ "expect": {
2970
+ "success": true
2971
+ }
2972
+ },
2973
+ {
2974
+ "name": "Merge Requests - Create Pipeline",
2975
+ "tool": "manage_merge_requests",
2976
+ "arguments": {
2977
+ "action": "create_pipeline",
2978
+ "project_id": "{{projectId}}",
2979
+ "merge_request_iid": 1
2980
+ },
2981
+ "mocks": [
2982
+ {
2983
+ "operationId": "postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines",
2984
+ "response": {
2985
+ "status": 201,
2986
+ "body": {
2987
+ "id": 101,
2988
+ "status": "running"
2793
2989
  }
2794
2990
  }
2795
2991
  }
@@ -2798,6 +2994,27 @@
2798
2994
  "success": true
2799
2995
  }
2800
2996
  },
2997
+ {
2998
+ "name": "Merge Requests - List Diffs",
2999
+ "tool": "manage_merge_requests",
3000
+ "arguments": {
3001
+ "action": "list_diffs",
3002
+ "project_id": "{{projectId}}",
3003
+ "merge_request_iid": 1
3004
+ },
3005
+ "mocks": [
3006
+ {
3007
+ "operationId": "getApiV4ProjectsIdMergeRequestsMergeRequestIidDiffs",
3008
+ "response": {
3009
+ "status": 200,
3010
+ "body": []
3011
+ }
3012
+ }
3013
+ ],
3014
+ "expect": {
3015
+ "success": true
3016
+ }
3017
+ },
2801
3018
  {
2802
3019
  "name": "Merge Requests - List Versions",
2803
3020
  "tool": "manage_merge_requests",
@@ -3401,6 +3618,814 @@
3401
3618
  "success": true
3402
3619
  }
3403
3620
  },
3621
+ {
3622
+ "name": "Projects - List Members",
3623
+ "tool": "manage_projects",
3624
+ "arguments": {
3625
+ "action": "list_members",
3626
+ "project_id": "{{projectId}}"
3627
+ },
3628
+ "mocks": [
3629
+ {
3630
+ "operationId": "getApiV4ProjectsIdMembers",
3631
+ "response": {
3632
+ "body": [
3633
+ {
3634
+ "id": 101,
3635
+ "name": "Member"
3636
+ }
3637
+ ]
3638
+ }
3639
+ }
3640
+ ],
3641
+ "expect": {
3642
+ "success": true,
3643
+ "result": [
3644
+ {
3645
+ "id": 101
3646
+ }
3647
+ ]
3648
+ }
3649
+ },
3650
+ {
3651
+ "name": "Project Hooks - Get",
3652
+ "tool": "manage_project_hooks",
3653
+ "arguments": {
3654
+ "action": "get_hook",
3655
+ "project_id": "{{projectId}}",
3656
+ "hook_id": "{{hookId}}"
3657
+ },
3658
+ "mocks": [
3659
+ {
3660
+ "operationId": "getApiV4ProjectsIdHooksHookId",
3661
+ "response": {
3662
+ "body": {
3663
+ "id": 9001,
3664
+ "url": "https://example.com/hook"
3665
+ }
3666
+ }
3667
+ }
3668
+ ],
3669
+ "expect": {
3670
+ "success": true,
3671
+ "result": {
3672
+ "id": 9001
3673
+ }
3674
+ }
3675
+ },
3676
+ {
3677
+ "name": "Project Hooks - Update",
3678
+ "tool": "manage_project_hooks",
3679
+ "arguments": {
3680
+ "action": "update_hook",
3681
+ "project_id": "{{projectId}}",
3682
+ "hook_id": "{{hookId}}",
3683
+ "url": "https://example.com/hook-updated"
3684
+ },
3685
+ "mocks": [
3686
+ {
3687
+ "operationId": "putApiV4ProjectsIdHooksHookId",
3688
+ "response": {
3689
+ "body": {
3690
+ "id": 9001,
3691
+ "url": "https://example.com/hook-updated"
3692
+ }
3693
+ }
3694
+ }
3695
+ ],
3696
+ "expect": {
3697
+ "success": true,
3698
+ "result": {
3699
+ "id": 9001
3700
+ }
3701
+ }
3702
+ },
3703
+ {
3704
+ "name": "Project Variables - List",
3705
+ "tool": "manage_project_variables",
3706
+ "arguments": {
3707
+ "action": "list",
3708
+ "project_id": "{{projectId}}"
3709
+ },
3710
+ "mocks": [
3711
+ {
3712
+ "operationId": "getApiV4ProjectsIdVariables",
3713
+ "response": {
3714
+ "body": [
3715
+ {
3716
+ "key": "DEPLOY_ENV",
3717
+ "value": "staging"
3718
+ }
3719
+ ]
3720
+ }
3721
+ }
3722
+ ],
3723
+ "expect": {
3724
+ "success": true,
3725
+ "result": [
3726
+ {
3727
+ "key": "DEPLOY_ENV"
3728
+ }
3729
+ ]
3730
+ }
3731
+ },
3732
+ {
3733
+ "name": "Project Variables - Get",
3734
+ "tool": "manage_project_variables",
3735
+ "arguments": {
3736
+ "action": "get",
3737
+ "project_id": "{{projectId}}",
3738
+ "key": "{{variableKey}}"
3739
+ },
3740
+ "mocks": [
3741
+ {
3742
+ "operationId": "getApiV4ProjectsIdVariablesKey",
3743
+ "response": {
3744
+ "body": {
3745
+ "key": "DEPLOY_ENV",
3746
+ "value": "staging"
3747
+ }
3748
+ }
3749
+ }
3750
+ ],
3751
+ "expect": {
3752
+ "success": true,
3753
+ "result": {
3754
+ "key": "DEPLOY_ENV"
3755
+ }
3756
+ }
3757
+ },
3758
+ {
3759
+ "name": "Project Variables - Create",
3760
+ "tool": "manage_project_variables",
3761
+ "arguments": {
3762
+ "action": "create",
3763
+ "project_id": "{{projectId}}",
3764
+ "key": "{{variableKey}}",
3765
+ "value": "staging"
3766
+ },
3767
+ "mocks": [
3768
+ {
3769
+ "operationId": "postApiV4ProjectsIdVariables",
3770
+ "response": {
3771
+ "status": 201,
3772
+ "body": {
3773
+ "key": "DEPLOY_ENV",
3774
+ "value": "staging"
3775
+ }
3776
+ }
3777
+ }
3778
+ ],
3779
+ "expect": {
3780
+ "success": true,
3781
+ "result": {
3782
+ "key": "DEPLOY_ENV"
3783
+ }
3784
+ }
3785
+ },
3786
+ {
3787
+ "name": "Project Variables - Update",
3788
+ "tool": "manage_project_variables",
3789
+ "arguments": {
3790
+ "action": "update",
3791
+ "project_id": "{{projectId}}",
3792
+ "key": "{{variableKey}}",
3793
+ "value": "production"
3794
+ },
3795
+ "mocks": [
3796
+ {
3797
+ "operationId": "putApiV4ProjectsIdVariablesKey",
3798
+ "response": {
3799
+ "body": {
3800
+ "key": "DEPLOY_ENV",
3801
+ "value": "production"
3802
+ }
3803
+ }
3804
+ }
3805
+ ],
3806
+ "expect": {
3807
+ "success": true,
3808
+ "result": {
3809
+ "key": "DEPLOY_ENV"
3810
+ }
3811
+ }
3812
+ },
3813
+ {
3814
+ "name": "Project Variables - Delete",
3815
+ "tool": "manage_project_variables",
3816
+ "arguments": {
3817
+ "action": "delete",
3818
+ "project_id": "{{projectId}}",
3819
+ "key": "{{variableKey}}"
3820
+ },
3821
+ "mocks": [
3822
+ {
3823
+ "operationId": "deleteApiV4ProjectsIdVariablesKey",
3824
+ "response": {
3825
+ "status": 204
3826
+ }
3827
+ }
3828
+ ],
3829
+ "expect": {
3830
+ "success": true
3831
+ }
3832
+ },
3833
+ {
3834
+ "name": "Labels - List Group Labels",
3835
+ "tool": "manage_labels_milestones",
3836
+ "arguments": {
3837
+ "action": "list_group_labels",
3838
+ "group_id": "{{groupId}}"
3839
+ },
3840
+ "mocks": [
3841
+ {
3842
+ "operationId": "getApiV4GroupsIdLabels",
3843
+ "response": {
3844
+ "body": [
3845
+ {
3846
+ "id": 1,
3847
+ "name": "team"
3848
+ }
3849
+ ]
3850
+ }
3851
+ }
3852
+ ],
3853
+ "expect": {
3854
+ "success": true,
3855
+ "result": [
3856
+ {
3857
+ "name": "team"
3858
+ }
3859
+ ]
3860
+ }
3861
+ },
3862
+ {
3863
+ "name": "Milestones - List Group Milestones",
3864
+ "tool": "manage_labels_milestones",
3865
+ "arguments": {
3866
+ "action": "list_group_milestones",
3867
+ "group_id": "{{groupId}}"
3868
+ },
3869
+ "mocks": [
3870
+ {
3871
+ "operationId": "getApiV4GroupsIdMilestones",
3872
+ "response": {
3873
+ "body": [
3874
+ {
3875
+ "id": 2,
3876
+ "iid": 2,
3877
+ "title": "v2"
3878
+ }
3879
+ ]
3880
+ }
3881
+ }
3882
+ ],
3883
+ "expect": {
3884
+ "success": true,
3885
+ "result": [
3886
+ {
3887
+ "title": "v2"
3888
+ }
3889
+ ]
3890
+ }
3891
+ },
3892
+ {
3893
+ "name": "Pipelines - List",
3894
+ "tool": "manage_pipelines_jobs",
3895
+ "arguments": {
3896
+ "action": "list_pipelines",
3897
+ "project_id": "{{projectId}}",
3898
+ "ref": "{{ref}}"
3899
+ },
3900
+ "mocks": [
3901
+ {
3902
+ "operationId": "getApiV4ProjectsIdPipelines",
3903
+ "response": {
3904
+ "body": [
3905
+ {
3906
+ "id": 1001,
3907
+ "status": "success"
3908
+ }
3909
+ ]
3910
+ }
3911
+ }
3912
+ ],
3913
+ "expect": {
3914
+ "success": true,
3915
+ "result": [
3916
+ {
3917
+ "id": 1001
3918
+ }
3919
+ ]
3920
+ }
3921
+ },
3922
+ {
3923
+ "name": "Pipelines - List Jobs",
3924
+ "tool": "manage_pipelines_jobs",
3925
+ "arguments": {
3926
+ "action": "list_pipeline_jobs",
3927
+ "project_id": "{{projectId}}",
3928
+ "pipeline_id": "{{pipelineId}}"
3929
+ },
3930
+ "mocks": [
3931
+ {
3932
+ "operationId": "getApiV4ProjectsIdPipelinesPipelineIdJobs",
3933
+ "response": {
3934
+ "body": [
3935
+ {
3936
+ "id": 2002,
3937
+ "status": "success"
3938
+ }
3939
+ ]
3940
+ }
3941
+ }
3942
+ ],
3943
+ "expect": {
3944
+ "success": true,
3945
+ "result": [
3946
+ {
3947
+ "id": 2002
3948
+ }
3949
+ ]
3950
+ }
3951
+ },
3952
+ {
3953
+ "name": "Jobs - Download Artifact File",
3954
+ "tool": "manage_pipelines_jobs",
3955
+ "arguments": {
3956
+ "action": "download_job_artifact",
3957
+ "project_id": "{{projectId}}",
3958
+ "job_id": "{{jobId}}",
3959
+ "artifact_path": "reports/coverage.xml"
3960
+ },
3961
+ "mocks": [
3962
+ {
3963
+ "operationId": "getSingleJob",
3964
+ "response": {
3965
+ "body": {
3966
+ "id": 2002,
3967
+ "artifacts_file": {
3968
+ "filename": "artifacts.zip"
3969
+ }
3970
+ }
3971
+ }
3972
+ },
3973
+ {
3974
+ "operationId": "getApiV4ProjectsIdJobsJobIdArtifactsArtifactPath",
3975
+ "response": {
3976
+ "status": 200,
3977
+ "body": "<xml/>",
3978
+ "headers": {
3979
+ "content-type": "application/xml"
3980
+ }
3981
+ }
3982
+ }
3983
+ ],
3984
+ "expect": {
3985
+ "success": true,
3986
+ "result": {
3987
+ "fileName": "artifacts.zip"
3988
+ }
3989
+ }
3990
+ },
3991
+ {
3992
+ "name": "Issues - List Discussions",
3993
+ "tool": "manage_issues",
3994
+ "arguments": {
3995
+ "action": "list_discussions",
3996
+ "project_id": "{{projectId}}",
3997
+ "issue_iid": "{{issueIid}}"
3998
+ },
3999
+ "mocks": [
4000
+ {
4001
+ "operationId": "getApiV4ProjectsIdIssuesIssueIidDiscussions",
4002
+ "response": {
4003
+ "body": [
4004
+ {
4005
+ "id": "discussion-1",
4006
+ "resolved": false
4007
+ }
4008
+ ]
4009
+ }
4010
+ }
4011
+ ],
4012
+ "expect": {
4013
+ "success": true,
4014
+ "result": [
4015
+ {
4016
+ "id": "discussion-1"
4017
+ }
4018
+ ]
4019
+ }
4020
+ },
4021
+ {
4022
+ "name": "Issues - Get Discussion",
4023
+ "tool": "manage_issues",
4024
+ "arguments": {
4025
+ "action": "get_discussion",
4026
+ "project_id": "{{projectId}}",
4027
+ "issue_iid": "{{issueIid}}",
4028
+ "discussion_id": "{{discussionId}}"
4029
+ },
4030
+ "mocks": [
4031
+ {
4032
+ "operationId": "getApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionId",
4033
+ "response": {
4034
+ "body": {
4035
+ "id": "discussion-1",
4036
+ "resolved": false
4037
+ }
4038
+ }
4039
+ }
4040
+ ],
4041
+ "expect": {
4042
+ "success": true,
4043
+ "result": {
4044
+ "id": "discussion-1"
4045
+ }
4046
+ }
4047
+ },
4048
+ {
4049
+ "name": "Issues - Create Discussion",
4050
+ "tool": "manage_issues",
4051
+ "arguments": {
4052
+ "action": "create_discussion",
4053
+ "project_id": "{{projectId}}",
4054
+ "issue_iid": "{{issueIid}}",
4055
+ "body": "Discussion"
4056
+ },
4057
+ "mocks": [
4058
+ {
4059
+ "operationId": "postApiV4ProjectsIdIssuesIssueIidDiscussions",
4060
+ "response": {
4061
+ "status": 201,
4062
+ "body": {
4063
+ "id": "discussion-1",
4064
+ "resolved": false
4065
+ }
4066
+ }
4067
+ }
4068
+ ],
4069
+ "expect": {
4070
+ "success": true,
4071
+ "result": {
4072
+ "id": "discussion-1"
4073
+ }
4074
+ }
4075
+ },
4076
+ {
4077
+ "name": "Issues - Reply Discussion",
4078
+ "tool": "manage_issues",
4079
+ "arguments": {
4080
+ "action": "reply_discussion",
4081
+ "project_id": "{{projectId}}",
4082
+ "issue_iid": "{{issueIid}}",
4083
+ "discussion_id": "{{discussionId}}",
4084
+ "body": "Reply"
4085
+ },
4086
+ "mocks": [
4087
+ {
4088
+ "operationId": "postApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionIdNotes",
4089
+ "response": {
4090
+ "status": 201,
4091
+ "body": {
4092
+ "id": "discussion-1",
4093
+ "notes": []
4094
+ }
4095
+ }
4096
+ }
4097
+ ],
4098
+ "expect": {
4099
+ "success": true,
4100
+ "result": {
4101
+ "id": "discussion-1"
4102
+ }
4103
+ }
4104
+ },
4105
+ {
4106
+ "name": "Issues - Delete Discussion",
4107
+ "tool": "manage_issues",
4108
+ "arguments": {
4109
+ "action": "delete_discussion",
4110
+ "project_id": "{{projectId}}",
4111
+ "issue_iid": "{{issueIid}}",
4112
+ "discussion_id": "{{discussionId}}"
4113
+ },
4114
+ "mocks": [
4115
+ {
4116
+ "operationId": "deleteApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionId",
4117
+ "response": {
4118
+ "status": 204
4119
+ }
4120
+ }
4121
+ ],
4122
+ "expect": {
4123
+ "success": true
4124
+ }
4125
+ },
4126
+ {
4127
+ "name": "Issues - Resolve Discussion",
4128
+ "tool": "manage_issues",
4129
+ "arguments": {
4130
+ "action": "set_discussion_resolved",
4131
+ "project_id": "{{projectId}}",
4132
+ "issue_iid": "{{issueIid}}",
4133
+ "discussion_id": "{{discussionId}}",
4134
+ "resolved": true
4135
+ },
4136
+ "mocks": [
4137
+ {
4138
+ "operationId": "putApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionId",
4139
+ "response": {
4140
+ "body": {
4141
+ "id": "discussion-1",
4142
+ "resolved": true
4143
+ }
4144
+ }
4145
+ }
4146
+ ],
4147
+ "expect": {
4148
+ "success": true,
4149
+ "result": {
4150
+ "resolved": true
4151
+ }
4152
+ }
4153
+ },
4154
+ {
4155
+ "name": "Issues - List Note Award Emoji",
4156
+ "tool": "manage_issues",
4157
+ "arguments": {
4158
+ "action": "list_note_award_emoji",
4159
+ "project_id": "{{projectId}}",
4160
+ "issue_iid": "{{issueIid}}",
4161
+ "note_id": "{{noteId}}"
4162
+ },
4163
+ "mocks": [
4164
+ {
4165
+ "operationId": "getApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmoji",
4166
+ "response": {
4167
+ "body": [
4168
+ {
4169
+ "id": 7,
4170
+ "name": "thumbsup"
4171
+ }
4172
+ ]
4173
+ }
4174
+ }
4175
+ ],
4176
+ "expect": {
4177
+ "success": true,
4178
+ "result": [
4179
+ {
4180
+ "id": 7
4181
+ }
4182
+ ]
4183
+ }
4184
+ },
4185
+ {
4186
+ "name": "Issues - Get Note Award Emoji",
4187
+ "tool": "manage_issues",
4188
+ "arguments": {
4189
+ "action": "get_note_award_emoji",
4190
+ "project_id": "{{projectId}}",
4191
+ "issue_iid": "{{issueIid}}",
4192
+ "note_id": "{{noteId}}",
4193
+ "award_id": "{{awardId}}"
4194
+ },
4195
+ "mocks": [
4196
+ {
4197
+ "operationId": "getApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmojiAwardId",
4198
+ "response": {
4199
+ "body": {
4200
+ "id": 7,
4201
+ "name": "thumbsup"
4202
+ }
4203
+ }
4204
+ }
4205
+ ],
4206
+ "expect": {
4207
+ "success": true,
4208
+ "result": {
4209
+ "id": 7
4210
+ }
4211
+ }
4212
+ },
4213
+ {
4214
+ "name": "Issues - Create Note Award Emoji",
4215
+ "tool": "manage_issues",
4216
+ "arguments": {
4217
+ "action": "create_note_award_emoji",
4218
+ "project_id": "{{projectId}}",
4219
+ "issue_iid": "{{issueIid}}",
4220
+ "note_id": "{{noteId}}",
4221
+ "name": "thumbsup"
4222
+ },
4223
+ "mocks": [
4224
+ {
4225
+ "operationId": "postApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmoji",
4226
+ "response": {
4227
+ "status": 201,
4228
+ "body": {
4229
+ "id": 7,
4230
+ "name": "thumbsup"
4231
+ }
4232
+ }
4233
+ }
4234
+ ],
4235
+ "expect": {
4236
+ "success": true,
4237
+ "result": {
4238
+ "id": 7
4239
+ }
4240
+ }
4241
+ },
4242
+ {
4243
+ "name": "Issues - Delete Note Award Emoji",
4244
+ "tool": "manage_issues",
4245
+ "arguments": {
4246
+ "action": "delete_note_award_emoji",
4247
+ "project_id": "{{projectId}}",
4248
+ "issue_iid": "{{issueIid}}",
4249
+ "note_id": "{{noteId}}",
4250
+ "award_id": "{{awardId}}"
4251
+ },
4252
+ "mocks": [
4253
+ {
4254
+ "operationId": "deleteApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmojiAwardId",
4255
+ "response": {
4256
+ "status": 204
4257
+ }
4258
+ }
4259
+ ],
4260
+ "expect": {
4261
+ "success": true
4262
+ }
4263
+ },
4264
+ {
4265
+ "name": "Repository Commits - Compare",
4266
+ "tool": "repository_commits",
4267
+ "arguments": {
4268
+ "action": "compare",
4269
+ "project_id": "{{projectId}}",
4270
+ "from": "{{fromRef}}",
4271
+ "to": "{{toRef}}"
4272
+ },
4273
+ "mocks": [
4274
+ {
4275
+ "operationId": "getApiV4ProjectsIdRepositoryCompare",
4276
+ "response": {
4277
+ "body": {
4278
+ "compare_timeout": false,
4279
+ "commits": []
4280
+ }
4281
+ }
4282
+ }
4283
+ ],
4284
+ "expect": {
4285
+ "success": true,
4286
+ "result": {
4287
+ "compare_timeout": false
4288
+ }
4289
+ }
4290
+ },
4291
+ {
4292
+ "name": "Repository Commits - Get Commit",
4293
+ "tool": "repository_commits",
4294
+ "arguments": {
4295
+ "action": "get_commit",
4296
+ "project_id": "{{projectId}}",
4297
+ "sha": "abc123"
4298
+ },
4299
+ "mocks": [
4300
+ {
4301
+ "operationId": "getApiV4ProjectsIdRepositoryCommitsSha",
4302
+ "response": {
4303
+ "body": {
4304
+ "id": "abc123",
4305
+ "title": "Commit"
4306
+ }
4307
+ }
4308
+ }
4309
+ ],
4310
+ "expect": {
4311
+ "success": true,
4312
+ "result": {
4313
+ "id": "abc123"
4314
+ }
4315
+ }
4316
+ },
4317
+ {
4318
+ "name": "Repository Files - List Tree",
4319
+ "tool": "repository_files",
4320
+ "arguments": {
4321
+ "action": "list_tree",
4322
+ "project_id": "{{projectId}}",
4323
+ "path": "src"
4324
+ },
4325
+ "mocks": [
4326
+ {
4327
+ "operationId": "getApiV4ProjectsIdRepositoryTree",
4328
+ "response": {
4329
+ "body": [
4330
+ {
4331
+ "id": "abc",
4332
+ "name": "index.js",
4333
+ "type": "blob"
4334
+ }
4335
+ ]
4336
+ }
4337
+ }
4338
+ ],
4339
+ "expect": {
4340
+ "success": true,
4341
+ "result": [
4342
+ {
4343
+ "name": "index.js"
4344
+ }
4345
+ ]
4346
+ }
4347
+ },
4348
+ {
4349
+ "name": "Repository Files - Create",
4350
+ "tool": "repository_files",
4351
+ "arguments": {
4352
+ "action": "create_file",
4353
+ "project_id": "{{projectId}}",
4354
+ "file_path": "{{filePath}}",
4355
+ "branch": "{{ref}}",
4356
+ "content": "Hello",
4357
+ "commit_message": "Add file"
4358
+ },
4359
+ "mocks": [
4360
+ {
4361
+ "operationId": "postApiV4ProjectsIdRepositoryFilesFilePath",
4362
+ "response": {
4363
+ "status": 201,
4364
+ "body": {
4365
+ "file_name": "README.md",
4366
+ "file_path": "README.md"
4367
+ }
4368
+ }
4369
+ }
4370
+ ],
4371
+ "expect": {
4372
+ "success": true,
4373
+ "result": {
4374
+ "file_name": "README.md"
4375
+ }
4376
+ }
4377
+ },
4378
+ {
4379
+ "name": "Repository Files - Update",
4380
+ "tool": "repository_files",
4381
+ "arguments": {
4382
+ "action": "update_file",
4383
+ "project_id": "{{projectId}}",
4384
+ "file_path": "{{filePath}}",
4385
+ "branch": "{{ref}}",
4386
+ "content": "Updated",
4387
+ "commit_message": "Update file"
4388
+ },
4389
+ "mocks": [
4390
+ {
4391
+ "operationId": "putApiV4ProjectsIdRepositoryFilesFilePath",
4392
+ "response": {
4393
+ "body": {
4394
+ "file_name": "README.md",
4395
+ "file_path": "README.md"
4396
+ }
4397
+ }
4398
+ }
4399
+ ],
4400
+ "expect": {
4401
+ "success": true,
4402
+ "result": {
4403
+ "file_name": "README.md"
4404
+ }
4405
+ }
4406
+ },
4407
+ {
4408
+ "name": "Repository Files - Delete",
4409
+ "tool": "repository_files",
4410
+ "arguments": {
4411
+ "action": "delete_file",
4412
+ "project_id": "{{projectId}}",
4413
+ "file_path": "{{filePath}}",
4414
+ "branch": "{{ref}}",
4415
+ "commit_message": "Remove file"
4416
+ },
4417
+ "mocks": [
4418
+ {
4419
+ "operationId": "deleteApiV4ProjectsIdRepositoryFilesFilePath",
4420
+ "response": {
4421
+ "status": 204
4422
+ }
4423
+ }
4424
+ ],
4425
+ "expect": {
4426
+ "success": true
4427
+ }
4428
+ },
3404
4429
  {
3405
4430
  "name": "Access Requests - Request Group",
3406
4431
  "tool": "manage_access_requests",