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
@@ -3066,6 +3066,302 @@ paths:
3066
3066
  application/json:
3067
3067
  schema:
3068
3068
  $ref: "#/components/schemas/API_Error"
3069
+ /projects/{id}/issues/{issue_iid}/notes/{note_id}/award_emoji:
3070
+ get:
3071
+ tags:
3072
+ - issues
3073
+ summary: List award emoji on issue note
3074
+ description: List award emoji for a specific issue note
3075
+ operationId: getApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmoji
3076
+ parameters:
3077
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3078
+ - name: issue_iid
3079
+ in: path
3080
+ required: true
3081
+ schema:
3082
+ type: integer
3083
+ - name: note_id
3084
+ in: path
3085
+ required: true
3086
+ schema:
3087
+ type: integer
3088
+ responses:
3089
+ "200":
3090
+ description: Successful response
3091
+ content:
3092
+ application/json:
3093
+ schema:
3094
+ type: array
3095
+ items:
3096
+ $ref: "#/components/schemas/API_Entities_AwardEmoji"
3097
+ post:
3098
+ tags:
3099
+ - issues
3100
+ summary: Add award emoji to issue note
3101
+ description: Add award emoji to a specific issue note
3102
+ operationId: postApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmoji
3103
+ parameters:
3104
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3105
+ - name: issue_iid
3106
+ in: path
3107
+ required: true
3108
+ schema:
3109
+ type: integer
3110
+ - name: note_id
3111
+ in: path
3112
+ required: true
3113
+ schema:
3114
+ type: integer
3115
+ requestBody:
3116
+ required: true
3117
+ content:
3118
+ application/json:
3119
+ schema:
3120
+ type: object
3121
+ required:
3122
+ - name
3123
+ properties:
3124
+ name:
3125
+ type: string
3126
+ description: Emoji name
3127
+ example: thumbs_up
3128
+ responses:
3129
+ "201":
3130
+ description: Award emoji added
3131
+ content:
3132
+ application/json:
3133
+ schema:
3134
+ $ref: "#/components/schemas/API_Entities_AwardEmoji"
3135
+ /projects/{id}/issues/{issue_iid}/notes/{note_id}/award_emoji/{award_id}:
3136
+ get:
3137
+ tags:
3138
+ - issues
3139
+ summary: Get award emoji on issue note
3140
+ description: Get a specific award emoji for an issue note
3141
+ operationId: getApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmojiAwardId
3142
+ parameters:
3143
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3144
+ - name: issue_iid
3145
+ in: path
3146
+ required: true
3147
+ schema:
3148
+ type: integer
3149
+ - name: note_id
3150
+ in: path
3151
+ required: true
3152
+ schema:
3153
+ type: integer
3154
+ - name: award_id
3155
+ in: path
3156
+ required: true
3157
+ schema:
3158
+ type: integer
3159
+ responses:
3160
+ "200":
3161
+ description: Successful response
3162
+ content:
3163
+ application/json:
3164
+ schema:
3165
+ $ref: "#/components/schemas/API_Entities_AwardEmoji"
3166
+ delete:
3167
+ tags:
3168
+ - issues
3169
+ summary: Delete award emoji from issue note
3170
+ description: Delete a specific award emoji from an issue note
3171
+ operationId: deleteApiV4ProjectsIdIssuesIssueIidNotesNoteIdAwardEmojiAwardId
3172
+ parameters:
3173
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3174
+ - name: issue_iid
3175
+ in: path
3176
+ required: true
3177
+ schema:
3178
+ type: integer
3179
+ - name: note_id
3180
+ in: path
3181
+ required: true
3182
+ schema:
3183
+ type: integer
3184
+ - name: award_id
3185
+ in: path
3186
+ required: true
3187
+ schema:
3188
+ type: integer
3189
+ responses:
3190
+ "204":
3191
+ description: Award emoji removed
3192
+ /projects/{id}/issues/{issue_iid}/discussions:
3193
+ get:
3194
+ tags:
3195
+ - issues
3196
+ summary: List issue discussions
3197
+ description: List discussions for an issue
3198
+ operationId: getApiV4ProjectsIdIssuesIssueIidDiscussions
3199
+ parameters:
3200
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3201
+ - name: issue_iid
3202
+ in: path
3203
+ required: true
3204
+ schema:
3205
+ type: integer
3206
+ responses:
3207
+ "200":
3208
+ description: Successful response
3209
+ content:
3210
+ application/json:
3211
+ schema:
3212
+ type: array
3213
+ items:
3214
+ $ref: "#/components/schemas/API_Entities_Discussion"
3215
+ post:
3216
+ tags:
3217
+ - issues
3218
+ summary: Create issue discussion
3219
+ description: Create a discussion on an issue
3220
+ operationId: postApiV4ProjectsIdIssuesIssueIidDiscussions
3221
+ parameters:
3222
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3223
+ - name: issue_iid
3224
+ in: path
3225
+ required: true
3226
+ schema:
3227
+ type: integer
3228
+ requestBody:
3229
+ required: true
3230
+ content:
3231
+ application/json:
3232
+ schema:
3233
+ type: object
3234
+ required:
3235
+ - body
3236
+ properties:
3237
+ body:
3238
+ type: string
3239
+ description: Discussion body
3240
+ example: Please review this change.
3241
+ responses:
3242
+ "201":
3243
+ description: Discussion created
3244
+ content:
3245
+ application/json:
3246
+ schema:
3247
+ $ref: "#/components/schemas/API_Entities_Discussion"
3248
+ /projects/{id}/issues/{issue_iid}/discussions/{discussion_id}:
3249
+ get:
3250
+ tags:
3251
+ - issues
3252
+ summary: Get issue discussion
3253
+ description: Get a single discussion from an issue
3254
+ operationId: getApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionId
3255
+ parameters:
3256
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3257
+ - name: issue_iid
3258
+ in: path
3259
+ required: true
3260
+ schema:
3261
+ type: integer
3262
+ - name: discussion_id
3263
+ in: path
3264
+ required: true
3265
+ schema:
3266
+ type: string
3267
+ responses:
3268
+ "200":
3269
+ description: Successful response
3270
+ content:
3271
+ application/json:
3272
+ schema:
3273
+ $ref: "#/components/schemas/API_Entities_Discussion"
3274
+ delete:
3275
+ tags:
3276
+ - issues
3277
+ summary: Delete issue discussion
3278
+ description: Delete a discussion from an issue
3279
+ operationId: deleteApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionId
3280
+ parameters:
3281
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3282
+ - name: issue_iid
3283
+ in: path
3284
+ required: true
3285
+ schema:
3286
+ type: integer
3287
+ - name: discussion_id
3288
+ in: path
3289
+ required: true
3290
+ schema:
3291
+ type: string
3292
+ responses:
3293
+ "204":
3294
+ description: Discussion deleted
3295
+ put:
3296
+ tags:
3297
+ - issues
3298
+ summary: Resolve or unresolve issue discussion
3299
+ description: Resolve or unresolve a discussion on an issue
3300
+ operationId: putApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionId
3301
+ parameters:
3302
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3303
+ - name: issue_iid
3304
+ in: path
3305
+ required: true
3306
+ schema:
3307
+ type: integer
3308
+ - name: discussion_id
3309
+ in: path
3310
+ required: true
3311
+ schema:
3312
+ type: string
3313
+ - name: resolved
3314
+ in: query
3315
+ required: true
3316
+ schema:
3317
+ type: boolean
3318
+ description: Resolve (true) or reopen (false) the discussion
3319
+ responses:
3320
+ "200":
3321
+ description: Discussion updated
3322
+ content:
3323
+ application/json:
3324
+ schema:
3325
+ $ref: "#/components/schemas/API_Entities_Discussion"
3326
+ /projects/{id}/issues/{issue_iid}/discussions/{discussion_id}/notes:
3327
+ post:
3328
+ tags:
3329
+ - issues
3330
+ summary: Reply to issue discussion
3331
+ description: Add a reply to an issue discussion
3332
+ operationId: postApiV4ProjectsIdIssuesIssueIidDiscussionsDiscussionIdNotes
3333
+ parameters:
3334
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3335
+ - name: issue_iid
3336
+ in: path
3337
+ required: true
3338
+ schema:
3339
+ type: integer
3340
+ - name: discussion_id
3341
+ in: path
3342
+ required: true
3343
+ schema:
3344
+ type: string
3345
+ requestBody:
3346
+ required: true
3347
+ content:
3348
+ application/json:
3349
+ schema:
3350
+ type: object
3351
+ required:
3352
+ - body
3353
+ properties:
3354
+ body:
3355
+ type: string
3356
+ description: Reply body
3357
+ example: Thanks for the update.
3358
+ responses:
3359
+ "201":
3360
+ description: Reply created
3361
+ content:
3362
+ application/json:
3363
+ schema:
3364
+ $ref: "#/components/schemas/API_Entities_Discussion"
3069
3365
  /groups:
3070
3366
  get:
3071
3367
  tags:
@@ -3093,9 +3389,65 @@ paths:
3093
3389
  type: string
3094
3390
  - name: owned
3095
3391
  in: query
3096
- description: Limit to groups owned by the current user
3392
+ description: Limit to groups owned by the current user
3393
+ schema:
3394
+ type: boolean
3395
+ responses:
3396
+ "200":
3397
+ description: Successful response
3398
+ content:
3399
+ application/json:
3400
+ schema:
3401
+ type: array
3402
+ items:
3403
+ $ref: "#/components/schemas/API_Entities_BasicGroupDetails"
3404
+ /groups/{id}:
3405
+ get:
3406
+ tags:
3407
+ - groups
3408
+ summary: Get group details
3409
+ description: Get details of a single group
3410
+ operationId: getApiV4GroupsId
3411
+ parameters:
3412
+ - name: id
3413
+ in: path
3414
+ required: true
3415
+ description: The ID or URL-encoded path of the group
3416
+ schema:
3417
+ type: string
3418
+ responses:
3419
+ "200":
3420
+ description: Successful response
3421
+ content:
3422
+ application/json:
3423
+ schema:
3424
+ $ref: "#/components/schemas/API_Entities_BasicGroupDetails"
3425
+ /groups/{id}/labels:
3426
+ get:
3427
+ tags:
3428
+ - labels
3429
+ summary: List group labels
3430
+ description: List labels for a group
3431
+ operationId: getApiV4GroupsIdLabels
3432
+ parameters:
3433
+ - name: id
3434
+ in: path
3435
+ required: true
3436
+ description: The ID or URL-encoded path of the group
3437
+ schema:
3438
+ type: string
3439
+ - name: page
3440
+ in: query
3441
+ description: Page number
3442
+ schema:
3443
+ type: integer
3444
+ default: 1
3445
+ - name: per_page
3446
+ in: query
3447
+ description: Number of items per page
3097
3448
  schema:
3098
- type: boolean
3449
+ type: integer
3450
+ default: 20
3099
3451
  responses:
3100
3452
  "200":
3101
3453
  description: Successful response
@@ -3104,14 +3456,14 @@ paths:
3104
3456
  schema:
3105
3457
  type: array
3106
3458
  items:
3107
- $ref: "#/components/schemas/API_Entities_BasicGroupDetails"
3108
- /groups/{id}:
3459
+ $ref: "#/components/schemas/API_Entities_Label"
3460
+ /groups/{id}/milestones:
3109
3461
  get:
3110
3462
  tags:
3111
- - groups
3112
- summary: Get group details
3113
- description: Get details of a single group
3114
- operationId: getApiV4GroupsId
3463
+ - milestones
3464
+ summary: List group milestones
3465
+ description: List milestones for a group
3466
+ operationId: getApiV4GroupsIdMilestones
3115
3467
  parameters:
3116
3468
  - name: id
3117
3469
  in: path
@@ -3119,13 +3471,27 @@ paths:
3119
3471
  description: The ID or URL-encoded path of the group
3120
3472
  schema:
3121
3473
  type: string
3474
+ - name: page
3475
+ in: query
3476
+ description: Page number
3477
+ schema:
3478
+ type: integer
3479
+ default: 1
3480
+ - name: per_page
3481
+ in: query
3482
+ description: Number of items per page
3483
+ schema:
3484
+ type: integer
3485
+ default: 20
3122
3486
  responses:
3123
3487
  "200":
3124
3488
  description: Successful response
3125
3489
  content:
3126
3490
  application/json:
3127
3491
  schema:
3128
- $ref: "#/components/schemas/API_Entities_BasicGroupDetails"
3492
+ type: array
3493
+ items:
3494
+ $ref: "#/components/schemas/API_Entities_Milestone"
3129
3495
  /groups/{id}/projects:
3130
3496
  get:
3131
3497
  tags:
@@ -3234,6 +3600,41 @@ paths:
3234
3600
  application/json:
3235
3601
  schema:
3236
3602
  $ref: "#/components/schemas/API_Entities_Pipeline"
3603
+ /projects/{id}/pipelines:
3604
+ get:
3605
+ tags:
3606
+ - pipelines
3607
+ summary: List pipelines
3608
+ description: List pipelines for a project, optionally filtered by ref
3609
+ operationId: getApiV4ProjectsIdPipelines
3610
+ parameters:
3611
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3612
+ - name: ref
3613
+ in: query
3614
+ description: Filter by branch or tag name
3615
+ schema:
3616
+ type: string
3617
+ - name: page
3618
+ in: query
3619
+ description: Page number
3620
+ schema:
3621
+ type: integer
3622
+ default: 1
3623
+ - name: per_page
3624
+ in: query
3625
+ description: Number of items per page
3626
+ schema:
3627
+ type: integer
3628
+ default: 20
3629
+ responses:
3630
+ "200":
3631
+ description: Successful response
3632
+ content:
3633
+ application/json:
3634
+ schema:
3635
+ type: array
3636
+ items:
3637
+ $ref: "#/components/schemas/API_Entities_Pipeline"
3237
3638
  /projects/{id}/pipelines/{pipeline_id}:
3238
3639
  get:
3239
3640
  tags:
@@ -3255,6 +3656,41 @@ paths:
3255
3656
  application/json:
3256
3657
  schema:
3257
3658
  $ref: "#/components/schemas/API_Entities_Pipeline"
3659
+ /projects/{id}/pipelines/{pipeline_id}/jobs:
3660
+ get:
3661
+ tags:
3662
+ - jobs
3663
+ summary: List jobs for pipeline
3664
+ description: List jobs for a specific pipeline
3665
+ operationId: getApiV4ProjectsIdPipelinesPipelineIdJobs
3666
+ parameters:
3667
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3668
+ - name: pipeline_id
3669
+ in: path
3670
+ required: true
3671
+ schema:
3672
+ type: integer
3673
+ - name: page
3674
+ in: query
3675
+ description: Page number
3676
+ schema:
3677
+ type: integer
3678
+ default: 1
3679
+ - name: per_page
3680
+ in: query
3681
+ description: Number of items per page
3682
+ schema:
3683
+ type: integer
3684
+ default: 20
3685
+ responses:
3686
+ "200":
3687
+ description: Successful response
3688
+ content:
3689
+ application/json:
3690
+ schema:
3691
+ type: array
3692
+ items:
3693
+ $ref: "#/components/schemas/API_Entities_Job"
3258
3694
  /projects/{id}/jobs/{job_id}/retry:
3259
3695
  post:
3260
3696
  tags:
@@ -3524,44 +3960,235 @@ paths:
3524
3960
  schema:
3525
3961
  type: object
3526
3962
  required:
3527
- - tag_name
3528
- - ref
3963
+ - tag_name
3964
+ - ref
3965
+ properties:
3966
+ tag_name:
3967
+ type: string
3968
+ ref:
3969
+ type: string
3970
+ responses:
3971
+ "201":
3972
+ description: Tag created
3973
+ content:
3974
+ application/json:
3975
+ schema:
3976
+ $ref: "#/components/schemas/API_Entities_Tag"
3977
+ /projects/{id}/repository/tags/{tag_name}:
3978
+ delete:
3979
+ tags:
3980
+ - tags
3981
+ summary: Delete tag
3982
+ description: Delete a tag
3983
+ operationId: deleteApiV4ProjectsIdRepositoryTagsTagName
3984
+ parameters:
3985
+ - $ref: "#/components/parameters/ProjectIdOrPath"
3986
+ - name: tag_name
3987
+ in: path
3988
+ required: true
3989
+ schema:
3990
+ type: string
3991
+ responses:
3992
+ "204":
3993
+ description: Tag deleted
3994
+ /projects/{id}/members:
3995
+ get:
3996
+ tags:
3997
+ - members
3998
+ summary: List project members
3999
+ description: List members of a project
4000
+ operationId: getApiV4ProjectsIdMembers
4001
+ parameters:
4002
+ - $ref: "#/components/parameters/ProjectIdOrPath"
4003
+ responses:
4004
+ "200":
4005
+ description: Successful response
4006
+ content:
4007
+ application/json:
4008
+ schema:
4009
+ type: array
4010
+ items:
4011
+ $ref: "#/components/schemas/API_Entities_Member"
4012
+ post:
4013
+ tags:
4014
+ - members
4015
+ summary: Add project member
4016
+ description: Add a user to a project
4017
+ operationId: postApiV4ProjectsIdMembers
4018
+ parameters:
4019
+ - $ref: "#/components/parameters/ProjectIdOrPath"
4020
+ requestBody:
4021
+ required: true
4022
+ content:
4023
+ application/json:
4024
+ schema:
4025
+ type: object
4026
+ required:
4027
+ - user_id
4028
+ - access_level
4029
+ properties:
4030
+ user_id:
4031
+ type: integer
4032
+ access_level:
4033
+ type: integer
4034
+ responses:
4035
+ "201":
4036
+ description: Member added
4037
+ content:
4038
+ application/json:
4039
+ schema:
4040
+ $ref: "#/components/schemas/API_Entities_Member"
4041
+ /projects/{id}/members/{user_id}:
4042
+ delete:
4043
+ tags:
4044
+ - members
4045
+ summary: Remove project member
4046
+ description: Remove a member from a project
4047
+ operationId: deleteApiV4ProjectsIdMembersUserId
4048
+ parameters:
4049
+ - $ref: "#/components/parameters/ProjectIdOrPath"
4050
+ - name: user_id
4051
+ in: path
4052
+ required: true
4053
+ schema:
4054
+ type: integer
4055
+ responses:
4056
+ "204":
4057
+ description: Member removed
4058
+ /projects/{id}/variables:
4059
+ get:
4060
+ tags:
4061
+ - project_variables
4062
+ summary: List project variables
4063
+ description: List variables for a project
4064
+ operationId: getApiV4ProjectsIdVariables
4065
+ parameters:
4066
+ - $ref: "#/components/parameters/ProjectIdOrPath"
4067
+ responses:
4068
+ "200":
4069
+ description: Successful response
4070
+ content:
4071
+ application/json:
4072
+ schema:
4073
+ type: array
4074
+ items:
4075
+ type: object
4076
+ post:
4077
+ tags:
4078
+ - project_variables
4079
+ summary: Create project variable
4080
+ description: Create a new variable for a project
4081
+ operationId: postApiV4ProjectsIdVariables
4082
+ parameters:
4083
+ - $ref: "#/components/parameters/ProjectIdOrPath"
4084
+ requestBody:
4085
+ required: true
4086
+ content:
4087
+ application/json:
4088
+ schema:
4089
+ type: object
4090
+ required:
4091
+ - key
4092
+ - value
4093
+ properties:
4094
+ key:
4095
+ type: string
4096
+ value:
4097
+ type: string
4098
+ protected:
4099
+ type: boolean
4100
+ masked:
4101
+ type: boolean
4102
+ environment_scope:
4103
+ type: string
4104
+ responses:
4105
+ "201":
4106
+ description: Variable created
4107
+ content:
4108
+ application/json:
4109
+ schema:
4110
+ type: object
4111
+ /projects/{id}/variables/{key}:
4112
+ get:
4113
+ tags:
4114
+ - project_variables
4115
+ summary: Get project variable
4116
+ description: Get a variable for a project
4117
+ operationId: getApiV4ProjectsIdVariablesKey
4118
+ parameters:
4119
+ - $ref: "#/components/parameters/ProjectIdOrPath"
4120
+ - name: key
4121
+ in: path
4122
+ required: true
4123
+ schema:
4124
+ type: string
4125
+ responses:
4126
+ "200":
4127
+ description: Successful response
4128
+ content:
4129
+ application/json:
4130
+ schema:
4131
+ type: object
4132
+ put:
4133
+ tags:
4134
+ - project_variables
4135
+ summary: Update project variable
4136
+ description: Update a variable for a project
4137
+ operationId: putApiV4ProjectsIdVariablesKey
4138
+ parameters:
4139
+ - $ref: "#/components/parameters/ProjectIdOrPath"
4140
+ - name: key
4141
+ in: path
4142
+ required: true
4143
+ schema:
4144
+ type: string
4145
+ requestBody:
4146
+ required: true
4147
+ content:
4148
+ application/json:
4149
+ schema:
4150
+ type: object
4151
+ required:
4152
+ - value
3529
4153
  properties:
3530
- tag_name:
4154
+ value:
3531
4155
  type: string
3532
- ref:
4156
+ protected:
4157
+ type: boolean
4158
+ masked:
4159
+ type: boolean
4160
+ environment_scope:
3533
4161
  type: string
3534
4162
  responses:
3535
- "201":
3536
- description: Tag created
4163
+ "200":
4164
+ description: Variable updated
3537
4165
  content:
3538
4166
  application/json:
3539
4167
  schema:
3540
- $ref: "#/components/schemas/API_Entities_Tag"
3541
- /projects/{id}/repository/tags/{tag_name}:
4168
+ type: object
3542
4169
  delete:
3543
4170
  tags:
3544
- - tags
3545
- summary: Delete tag
3546
- description: Delete a tag
3547
- operationId: deleteApiV4ProjectsIdRepositoryTagsTagName
4171
+ - project_variables
4172
+ summary: Delete project variable
4173
+ description: Delete a variable for a project
4174
+ operationId: deleteApiV4ProjectsIdVariablesKey
3548
4175
  parameters:
3549
4176
  - $ref: "#/components/parameters/ProjectIdOrPath"
3550
- - name: tag_name
4177
+ - name: key
3551
4178
  in: path
3552
4179
  required: true
3553
4180
  schema:
3554
4181
  type: string
3555
4182
  responses:
3556
4183
  "204":
3557
- description: Tag deleted
3558
- /projects/{id}/members:
4184
+ description: Variable deleted
4185
+ /projects/{id}/hooks:
3559
4186
  get:
3560
4187
  tags:
3561
- - members
3562
- summary: List project members
3563
- description: List members of a project
3564
- operationId: getApiV4ProjectsIdMembers
4188
+ - hooks
4189
+ summary: List project hooks
4190
+ description: List webhooks for a project
4191
+ operationId: getApiV4ProjectsIdHooks
3565
4192
  parameters:
3566
4193
  - $ref: "#/components/parameters/ProjectIdOrPath"
3567
4194
  responses:
@@ -3572,13 +4199,13 @@ paths:
3572
4199
  schema:
3573
4200
  type: array
3574
4201
  items:
3575
- $ref: "#/components/schemas/API_Entities_Member"
4202
+ $ref: "#/components/schemas/API_Entities_Hook"
3576
4203
  post:
3577
4204
  tags:
3578
- - members
3579
- summary: Add project member
3580
- description: Add a user to a project
3581
- operationId: postApiV4ProjectsIdMembers
4205
+ - hooks
4206
+ summary: Create project hook
4207
+ description: Create a webhook for a project
4208
+ operationId: postApiV4ProjectsIdHooks
3582
4209
  parameters:
3583
4210
  - $ref: "#/components/parameters/ProjectIdOrPath"
3584
4211
  requestBody:
@@ -3588,63 +4215,57 @@ paths:
3588
4215
  schema:
3589
4216
  type: object
3590
4217
  required:
3591
- - user_id
3592
- - access_level
4218
+ - url
3593
4219
  properties:
3594
- user_id:
3595
- type: integer
3596
- access_level:
3597
- type: integer
4220
+ url:
4221
+ type: string
4222
+ push_events:
4223
+ type: boolean
4224
+ issues_events:
4225
+ type: boolean
4226
+ merge_requests_events:
4227
+ type: boolean
3598
4228
  responses:
3599
4229
  "201":
3600
- description: Member added
4230
+ description: Hook created
3601
4231
  content:
3602
4232
  application/json:
3603
4233
  schema:
3604
- $ref: "#/components/schemas/API_Entities_Member"
3605
- /projects/{id}/members/{user_id}:
3606
- delete:
4234
+ $ref: "#/components/schemas/API_Entities_Hook"
4235
+ /projects/{id}/hooks/{hook_id}:
4236
+ get:
3607
4237
  tags:
3608
- - members
3609
- summary: Remove project member
3610
- description: Remove a member from a project
3611
- operationId: deleteApiV4ProjectsIdMembersUserId
4238
+ - hooks
4239
+ summary: Get project hook
4240
+ description: Get a webhook for a project
4241
+ operationId: getApiV4ProjectsIdHooksHookId
3612
4242
  parameters:
3613
4243
  - $ref: "#/components/parameters/ProjectIdOrPath"
3614
- - name: user_id
4244
+ - name: hook_id
3615
4245
  in: path
3616
4246
  required: true
3617
4247
  schema:
3618
4248
  type: integer
3619
- responses:
3620
- "204":
3621
- description: Member removed
3622
- /projects/{id}/hooks:
3623
- get:
3624
- tags:
3625
- - hooks
3626
- summary: List project hooks
3627
- description: List webhooks for a project
3628
- operationId: getApiV4ProjectsIdHooks
3629
- parameters:
3630
- - $ref: "#/components/parameters/ProjectIdOrPath"
3631
4249
  responses:
3632
4250
  "200":
3633
4251
  description: Successful response
3634
4252
  content:
3635
4253
  application/json:
3636
4254
  schema:
3637
- type: array
3638
- items:
3639
- $ref: "#/components/schemas/API_Entities_Hook"
3640
- post:
4255
+ $ref: "#/components/schemas/API_Entities_Hook"
4256
+ put:
3641
4257
  tags:
3642
4258
  - hooks
3643
- summary: Create project hook
3644
- description: Create a webhook for a project
3645
- operationId: postApiV4ProjectsIdHooks
4259
+ summary: Update project hook
4260
+ description: Update a webhook for a project
4261
+ operationId: putApiV4ProjectsIdHooksHookId
3646
4262
  parameters:
3647
4263
  - $ref: "#/components/parameters/ProjectIdOrPath"
4264
+ - name: hook_id
4265
+ in: path
4266
+ required: true
4267
+ schema:
4268
+ type: integer
3648
4269
  requestBody:
3649
4270
  required: true
3650
4271
  content:
@@ -3663,13 +4284,12 @@ paths:
3663
4284
  merge_requests_events:
3664
4285
  type: boolean
3665
4286
  responses:
3666
- "201":
3667
- description: Hook created
4287
+ "200":
4288
+ description: Hook updated
3668
4289
  content:
3669
4290
  application/json:
3670
4291
  schema:
3671
4292
  $ref: "#/components/schemas/API_Entities_Hook"
3672
- /projects/{id}/hooks/{hook_id}:
3673
4293
  delete:
3674
4294
  tags:
3675
4295
  - hooks
@@ -4592,9 +5212,182 @@ paths:
4592
5212
  put:
4593
5213
  tags:
4594
5214
  - merge_requests
4595
- summary: Resolve merge request discussion
4596
- description: Resolve or unresolve a discussion thread on a merge request
4597
- operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDiscussionsDiscussionId
5215
+ summary: Resolve merge request discussion
5216
+ description: Resolve or unresolve a discussion thread on a merge request
5217
+ operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDiscussionsDiscussionId
5218
+ parameters:
5219
+ - $ref: "#/components/parameters/ProjectIdOrPath"
5220
+ - name: merge_request_iid
5221
+ in: path
5222
+ required: true
5223
+ schema:
5224
+ type: integer
5225
+ - name: discussion_id
5226
+ in: path
5227
+ required: true
5228
+ schema:
5229
+ type: string
5230
+ - name: resolved
5231
+ in: query
5232
+ required: true
5233
+ schema:
5234
+ type: boolean
5235
+ description: Resolve (true) or reopen (false) the discussion
5236
+ responses:
5237
+ "200":
5238
+ description: Discussion updated
5239
+ content:
5240
+ application/json:
5241
+ schema:
5242
+ $ref: "#/components/schemas/API_Entities_Discussion"
5243
+ "404":
5244
+ description: Discussion not found
5245
+ content:
5246
+ application/json:
5247
+ schema:
5248
+ $ref: "#/components/schemas/API_Error"
5249
+ /projects/{id}/merge_requests/{merge_request_iid}/approvals:
5250
+ get:
5251
+ tags:
5252
+ - merge_requests
5253
+ summary: Get merge request approvals
5254
+ description: Get approvals information for a merge request
5255
+ operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals
5256
+ parameters:
5257
+ - $ref: "#/components/parameters/ProjectIdOrPath"
5258
+ - name: merge_request_iid
5259
+ in: path
5260
+ required: true
5261
+ schema:
5262
+ type: integer
5263
+ responses:
5264
+ "200":
5265
+ description: Successful response
5266
+ content:
5267
+ application/json:
5268
+ schema:
5269
+ $ref: "#/components/schemas/API_Entities_Approval"
5270
+ /projects/{id}/merge_requests/{merge_request_iid}/approve:
5271
+ post:
5272
+ tags:
5273
+ - merge_requests
5274
+ summary: Approve merge request
5275
+ description: Approve a merge request
5276
+ operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove
5277
+ parameters:
5278
+ - $ref: "#/components/parameters/ProjectIdOrPath"
5279
+ - name: merge_request_iid
5280
+ in: path
5281
+ required: true
5282
+ schema:
5283
+ type: integer
5284
+ responses:
5285
+ "201":
5286
+ description: Merge request approved
5287
+ content:
5288
+ application/json:
5289
+ schema:
5290
+ $ref: "#/components/schemas/API_Entities_Approval"
5291
+ /projects/{id}/merge_requests/{merge_request_iid}/unapprove:
5292
+ post:
5293
+ tags:
5294
+ - merge_requests
5295
+ summary: Unapprove merge request
5296
+ description: Remove approval from a merge request
5297
+ operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidUnapprove
5298
+ parameters:
5299
+ - $ref: "#/components/parameters/ProjectIdOrPath"
5300
+ - name: merge_request_iid
5301
+ in: path
5302
+ required: true
5303
+ schema:
5304
+ type: integer
5305
+ responses:
5306
+ "201":
5307
+ description: Merge request unapproved
5308
+ content:
5309
+ application/json:
5310
+ schema:
5311
+ $ref: "#/components/schemas/API_Entities_Approval"
5312
+ /projects/{id}/merge_requests/{merge_request_iid}/merge:
5313
+ put:
5314
+ tags:
5315
+ - merge_requests
5316
+ summary: Merge (accept) merge request
5317
+ description: Merge a merge request
5318
+ operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge
5319
+ parameters:
5320
+ - $ref: "#/components/parameters/ProjectIdOrPath"
5321
+ - name: merge_request_iid
5322
+ in: path
5323
+ required: true
5324
+ schema:
5325
+ type: integer
5326
+ requestBody:
5327
+ required: false
5328
+ content:
5329
+ application/json:
5330
+ schema:
5331
+ type: object
5332
+ properties:
5333
+ merge_commit_message:
5334
+ type: string
5335
+ description: Custom merge commit message
5336
+ squash:
5337
+ type: boolean
5338
+ description: Whether to squash commits on merge
5339
+ squash_commit_message:
5340
+ type: string
5341
+ description: Custom squash commit message
5342
+ should_remove_source_branch:
5343
+ type: boolean
5344
+ description: Remove source branch after merge
5345
+ merge_when_pipeline_succeeds:
5346
+ type: boolean
5347
+ description: Merge when pipeline succeeds
5348
+ responses:
5349
+ "200":
5350
+ description: Merge request merged
5351
+ content:
5352
+ application/json:
5353
+ schema:
5354
+ $ref: "#/components/schemas/API_Entities_MergeRequestBasic"
5355
+ "405":
5356
+ description: Merge not allowed
5357
+ content:
5358
+ application/json:
5359
+ schema:
5360
+ $ref: "#/components/schemas/API_Error"
5361
+ /projects/{id}/merge_requests/{merge_request_iid}/commits:
5362
+ get:
5363
+ tags:
5364
+ - merge_requests
5365
+ summary: List merge request commits
5366
+ description: List commits for a merge request
5367
+ operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidCommits
5368
+ parameters:
5369
+ - $ref: "#/components/parameters/ProjectIdOrPath"
5370
+ - name: merge_request_iid
5371
+ in: path
5372
+ required: true
5373
+ schema:
5374
+ type: integer
5375
+ responses:
5376
+ "200":
5377
+ description: Successful response
5378
+ content:
5379
+ application/json:
5380
+ schema:
5381
+ type: array
5382
+ items:
5383
+ $ref: "#/components/schemas/API_Entities_Commit"
5384
+ /projects/{id}/merge_requests/{merge_request_iid}/diffs:
5385
+ get:
5386
+ tags:
5387
+ - merge_requests
5388
+ summary: List merge request diffs
5389
+ description: List diffs for a merge request
5390
+ operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDiffs
4598
5391
  parameters:
4599
5392
  - $ref: "#/components/parameters/ProjectIdOrPath"
4600
5393
  - name: merge_request_iid
@@ -4602,37 +5395,39 @@ paths:
4602
5395
  required: true
4603
5396
  schema:
4604
5397
  type: integer
4605
- - name: discussion_id
4606
- in: path
4607
- required: true
4608
- schema:
4609
- type: string
4610
- - name: resolved
4611
- in: query
4612
- required: true
4613
- schema:
4614
- type: boolean
4615
- description: Resolve (true) or reopen (false) the discussion
4616
5398
  responses:
4617
5399
  "200":
4618
- description: Discussion updated
4619
- content:
4620
- application/json:
4621
- schema:
4622
- $ref: "#/components/schemas/API_Entities_Discussion"
4623
- "404":
4624
- description: Discussion not found
5400
+ description: Successful response
4625
5401
  content:
4626
5402
  application/json:
4627
5403
  schema:
4628
- $ref: "#/components/schemas/API_Error"
4629
- /projects/{id}/merge_requests/{merge_request_iid}/approvals:
5404
+ type: array
5405
+ items:
5406
+ type: object
5407
+ properties:
5408
+ old_path:
5409
+ type: string
5410
+ new_path:
5411
+ type: string
5412
+ a_mode:
5413
+ type: string
5414
+ b_mode:
5415
+ type: string
5416
+ new_file:
5417
+ type: boolean
5418
+ renamed_file:
5419
+ type: boolean
5420
+ deleted_file:
5421
+ type: boolean
5422
+ diff:
5423
+ type: string
5424
+ /projects/{id}/merge_requests/{merge_request_iid}/raw_diffs:
4630
5425
  get:
4631
5426
  tags:
4632
5427
  - merge_requests
4633
- summary: Get merge request approvals
4634
- description: Get approvals information for a merge request
4635
- operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals
5428
+ summary: Get merge request raw diffs
5429
+ description: Get raw diffs for a merge request
5430
+ operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidRawDiffs
4636
5431
  parameters:
4637
5432
  - $ref: "#/components/parameters/ProjectIdOrPath"
4638
5433
  - name: merge_request_iid
@@ -4644,16 +5439,16 @@ paths:
4644
5439
  "200":
4645
5440
  description: Successful response
4646
5441
  content:
4647
- application/json:
5442
+ text/plain:
4648
5443
  schema:
4649
- $ref: "#/components/schemas/API_Entities_Approval"
4650
- /projects/{id}/merge_requests/{merge_request_iid}/approve:
4651
- post:
5444
+ type: string
5445
+ /projects/{id}/merge_requests/{merge_request_iid}/pipelines:
5446
+ get:
4652
5447
  tags:
4653
5448
  - merge_requests
4654
- summary: Approve merge request
4655
- description: Approve a merge request
4656
- operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove
5449
+ summary: List merge request pipelines
5450
+ description: List pipelines for a merge request
5451
+ operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines
4657
5452
  parameters:
4658
5453
  - $ref: "#/components/parameters/ProjectIdOrPath"
4659
5454
  - name: merge_request_iid
@@ -4662,19 +5457,20 @@ paths:
4662
5457
  schema:
4663
5458
  type: integer
4664
5459
  responses:
4665
- "201":
4666
- description: Merge request approved
5460
+ "200":
5461
+ description: Successful response
4667
5462
  content:
4668
5463
  application/json:
4669
5464
  schema:
4670
- $ref: "#/components/schemas/API_Entities_Approval"
4671
- /projects/{id}/merge_requests/{merge_request_iid}/unapprove:
5465
+ type: array
5466
+ items:
5467
+ $ref: "#/components/schemas/API_Entities_Pipeline"
4672
5468
  post:
4673
5469
  tags:
4674
5470
  - merge_requests
4675
- summary: Unapprove merge request
4676
- description: Remove approval from a merge request
4677
- operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidUnapprove
5471
+ summary: Create merge request pipeline
5472
+ description: Create a pipeline for a merge request
5473
+ operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines
4678
5474
  parameters:
4679
5475
  - $ref: "#/components/parameters/ProjectIdOrPath"
4680
5476
  - name: merge_request_iid
@@ -4682,13 +5478,29 @@ paths:
4682
5478
  required: true
4683
5479
  schema:
4684
5480
  type: integer
5481
+ requestBody:
5482
+ required: false
5483
+ content:
5484
+ application/json:
5485
+ schema:
5486
+ type: object
5487
+ properties:
5488
+ variables:
5489
+ type: array
5490
+ items:
5491
+ type: object
5492
+ properties:
5493
+ key:
5494
+ type: string
5495
+ value:
5496
+ type: string
4685
5497
  responses:
4686
5498
  "201":
4687
- description: Merge request unapproved
5499
+ description: Pipeline created
4688
5500
  content:
4689
5501
  application/json:
4690
5502
  schema:
4691
- $ref: "#/components/schemas/API_Entities_Approval"
5503
+ $ref: "#/components/schemas/API_Entities_Pipeline"
4692
5504
  /projects/{id}/merge_requests/{merge_request_iid}/changes:
4693
5505
  get:
4694
5506
  tags:
@@ -5693,7 +6505,7 @@ paths:
5693
6505
  schema:
5694
6506
  type: object
5695
6507
  properties:
5696
- query:
6508
+ glql_yaml:
5697
6509
  type: string
5698
6510
  responses:
5699
6511
  "200":
@@ -5702,6 +6514,83 @@ paths:
5702
6514
  application/json:
5703
6515
  schema:
5704
6516
  type: object
6517
+ /issues:
6518
+ get:
6519
+ tags:
6520
+ - issues
6521
+ summary: List all issues
6522
+ description: Get all issues across projects
6523
+ operationId: getApiV4Issues
6524
+ parameters:
6525
+ - name: state
6526
+ in: query
6527
+ description: Return issues with the specified state
6528
+ schema:
6529
+ type: string
6530
+ enum:
6531
+ - opened
6532
+ - closed
6533
+ - all
6534
+ - name: search
6535
+ in: query
6536
+ description: Search issues by title or description
6537
+ schema:
6538
+ type: string
6539
+ - name: labels
6540
+ in: query
6541
+ description: Comma-separated list of labels to filter by
6542
+ schema:
6543
+ type: string
6544
+ - name: milestone
6545
+ in: query
6546
+ description: Milestone title to filter by
6547
+ schema:
6548
+ type: string
6549
+ - name: assignee_id
6550
+ in: query
6551
+ description: Filter by assignee ID
6552
+ schema:
6553
+ type: integer
6554
+ - name: assignee_username
6555
+ in: query
6556
+ description: Filter by assignee username
6557
+ schema:
6558
+ type: string
6559
+ - name: author_id
6560
+ in: query
6561
+ description: Filter by author ID
6562
+ schema:
6563
+ type: integer
6564
+ - name: scope
6565
+ in: query
6566
+ description: Filter issues by scope
6567
+ schema:
6568
+ type: string
6569
+ enum:
6570
+ - created_by_me
6571
+ - assigned_to_me
6572
+ - all
6573
+ - name: page
6574
+ in: query
6575
+ description: Page number
6576
+ schema:
6577
+ type: integer
6578
+ default: 1
6579
+ - name: per_page
6580
+ in: query
6581
+ description: Number of items per page
6582
+ schema:
6583
+ type: integer
6584
+ default: 20
6585
+ responses:
6586
+ "200":
6587
+ description: Successful response
6588
+ content:
6589
+ application/json:
6590
+ schema:
6591
+ type: array
6592
+ items:
6593
+ $ref: "#/components/schemas/API_Entities_IssueBasic"
5705
6594
  /projects/{id}/issues:
5706
6595
  get:
5707
6596
  tags:
@@ -5729,44 +6618,179 @@ paths:
5729
6618
  in: query
5730
6619
  description: Page number
5731
6620
  schema:
5732
- type: integer
5733
- default: 1
5734
- - name: per_page
5735
- in: query
5736
- description: Number of items per page
6621
+ type: integer
6622
+ default: 1
6623
+ - name: per_page
6624
+ in: query
6625
+ description: Number of items per page
6626
+ schema:
6627
+ type: integer
6628
+ default: 20
6629
+ responses:
6630
+ "200":
6631
+ description: Successful response
6632
+ content:
6633
+ application/json:
6634
+ schema:
6635
+ type: array
6636
+ items:
6637
+ $ref: "#/components/schemas/API_Entities_IssueBasic"
6638
+ post:
6639
+ tags:
6640
+ - issues
6641
+ summary: Create issue
6642
+ description: Create a new issue for a project
6643
+ operationId: postApiV4ProjectsIdIssues
6644
+ parameters:
6645
+ - name: id
6646
+ in: path
6647
+ required: true
6648
+ description: The ID of the project (numeric like 123 or URL-encoded path like 'group%2Fproject')
6649
+ schema:
6650
+ type: string
6651
+ requestBody:
6652
+ required: true
6653
+ content:
6654
+ application/json:
6655
+ schema:
6656
+ type: object
6657
+ required:
6658
+ - title
6659
+ properties:
6660
+ title:
6661
+ type: string
6662
+ description: The title of the issue
6663
+ minLength: 1
6664
+ maxLength: 255
6665
+ example: Implement new feature
6666
+ description:
6667
+ type: string
6668
+ description: The description of the issue (max 1MB)
6669
+ maxLength: 1048576
6670
+ example: This implements the new feature requested by the team.
6671
+ assignee_id:
6672
+ type: integer
6673
+ description: The ID of the user to assign the issue to
6674
+ minimum: 1
6675
+ maximum: 2147483647
6676
+ example: 123
6677
+ assignee_ids:
6678
+ type: array
6679
+ items:
6680
+ type: integer
6681
+ minimum: 1
6682
+ maximum: 2147483647
6683
+ description: The IDs of the users to assign the issue to
6684
+ example:
6685
+ - 123
6686
+ - 456
6687
+ milestone_id:
6688
+ type: integer
6689
+ description: The ID of the milestone to assign the issue to
6690
+ minimum: 1
6691
+ maximum: 2147483647
6692
+ example: 42
6693
+ labels:
6694
+ type: string
6695
+ description: Labels to be added to the issue (comma-separated)
6696
+ example: bug,feature,frontend
6697
+ created_at:
6698
+ type: string
6699
+ format: date-time
6700
+ description: The date the issue was created at (requires admin permissions)
6701
+ example: 2016-01-11T10:13:33.506Z
6702
+ due_date:
6703
+ type: string
6704
+ format: date
6705
+ description: The due date of the issue
6706
+ example: 2016-03-11
6707
+ confidential:
6708
+ type: boolean
6709
+ description: Whether the issue should be confidential
6710
+ default: false
6711
+ example: false
6712
+ discussion_locked:
6713
+ type: boolean
6714
+ description: Whether the issue discussion is locked
6715
+ default: false
6716
+ example: false
6717
+ weight:
6718
+ type: integer
6719
+ description: The weight of the issue
6720
+ minimum: 0
6721
+ maximum: 100
6722
+ example: 5
6723
+ responses:
6724
+ "201":
6725
+ description: Issue created successfully
6726
+ content:
6727
+ application/json:
6728
+ schema:
6729
+ $ref: "#/components/schemas/API_Entities_Issue"
6730
+ "400":
6731
+ description: Bad request
6732
+ content:
6733
+ application/json:
6734
+ schema:
6735
+ $ref: "#/components/schemas/API_Error"
6736
+ "403":
6737
+ description: Forbidden
6738
+ content:
6739
+ application/json:
6740
+ schema:
6741
+ $ref: "#/components/schemas/API_Error"
6742
+ /projects/{id}/issues/{issue_iid}:
6743
+ get:
6744
+ tags:
6745
+ - issues
6746
+ summary: Get issue details
6747
+ description: Get details of a single issue
6748
+ operationId: getApiV4ProjectsIdIssuesIssueIid
6749
+ parameters:
6750
+ - name: id
6751
+ in: path
6752
+ required: true
6753
+ description: The ID or URL-encoded path of the project
6754
+ schema:
6755
+ type: string
6756
+ - name: issue_iid
6757
+ in: path
6758
+ required: true
6759
+ description: The internal ID of the issue
5737
6760
  schema:
5738
6761
  type: integer
5739
- default: 20
5740
6762
  responses:
5741
6763
  "200":
5742
6764
  description: Successful response
5743
6765
  content:
5744
6766
  application/json:
5745
6767
  schema:
5746
- type: array
5747
- items:
5748
- $ref: "#/components/schemas/API_Entities_IssueBasic"
5749
- post:
6768
+ $ref: "#/components/schemas/API_Entities_IssueBasic"
6769
+ put:
5750
6770
  tags:
5751
6771
  - issues
5752
- summary: Create issue
5753
- description: Create a new issue for a project
5754
- operationId: postApiV4ProjectsIdIssues
6772
+ summary: Update issue
6773
+ description: Update an existing issue
6774
+ operationId: putApiV4ProjectsIdIssuesIssueIid
5755
6775
  parameters:
5756
6776
  - name: id
5757
6777
  in: path
5758
6778
  required: true
5759
- description: The ID of the project (numeric like 123 or URL-encoded path like 'group%2Fproject')
6779
+ description: The ID or URL-encoded path of the project
5760
6780
  schema:
5761
6781
  type: string
6782
+ - name: issue_iid
6783
+ in: path
6784
+ required: true
6785
+ description: The internal ID of the issue
6786
+ schema:
6787
+ type: integer
5762
6788
  requestBody:
5763
6789
  required: true
5764
6790
  content:
5765
6791
  application/json:
5766
6792
  schema:
5767
6793
  type: object
5768
- required:
5769
- - title
5770
6794
  properties:
5771
6795
  title:
5772
6796
  type: string
@@ -5805,11 +6829,13 @@ paths:
5805
6829
  type: string
5806
6830
  description: Labels to be added to the issue (comma-separated)
5807
6831
  example: bug,feature,frontend
5808
- created_at:
6832
+ state_event:
5809
6833
  type: string
5810
- format: date-time
5811
- description: The date the issue was created at (requires admin permissions)
5812
- example: 2016-01-11T10:13:33.506Z
6834
+ enum:
6835
+ - close
6836
+ - reopen
6837
+ description: Change issue state
6838
+ example: close
5813
6839
  due_date:
5814
6840
  type: string
5815
6841
  format: date
@@ -5818,12 +6844,10 @@ paths:
5818
6844
  confidential:
5819
6845
  type: boolean
5820
6846
  description: Whether the issue should be confidential
5821
- default: false
5822
6847
  example: false
5823
6848
  discussion_locked:
5824
6849
  type: boolean
5825
6850
  description: Whether the issue discussion is locked
5826
- default: false
5827
6851
  example: false
5828
6852
  weight:
5829
6853
  type: integer
@@ -5832,12 +6856,12 @@ paths:
5832
6856
  maximum: 100
5833
6857
  example: 5
5834
6858
  responses:
5835
- "201":
5836
- description: Issue created successfully
6859
+ "200":
6860
+ description: Successful response
5837
6861
  content:
5838
6862
  application/json:
5839
6863
  schema:
5840
- $ref: "#/components/schemas/API_Entities_Issue"
6864
+ $ref: "#/components/schemas/API_Entities_IssueBasic"
5841
6865
  "400":
5842
6866
  description: Bad request
5843
6867
  content:
@@ -5850,33 +6874,6 @@ paths:
5850
6874
  application/json:
5851
6875
  schema:
5852
6876
  $ref: "#/components/schemas/API_Error"
5853
- /projects/{id}/issues/{issue_iid}:
5854
- get:
5855
- tags:
5856
- - issues
5857
- summary: Get issue details
5858
- description: Get details of a single issue
5859
- operationId: getApiV4ProjectsIdIssuesIssueIid
5860
- parameters:
5861
- - name: id
5862
- in: path
5863
- required: true
5864
- description: The ID or URL-encoded path of the project
5865
- schema:
5866
- type: string
5867
- - name: issue_iid
5868
- in: path
5869
- required: true
5870
- description: The internal ID of the issue
5871
- schema:
5872
- type: integer
5873
- responses:
5874
- "200":
5875
- description: Successful response
5876
- content:
5877
- application/json:
5878
- schema:
5879
- $ref: "#/components/schemas/API_Entities_IssueBasic"
5880
6877
  delete:
5881
6878
  tags:
5882
6879
  - issues
@@ -5911,6 +6908,90 @@ paths:
5911
6908
  application/json:
5912
6909
  schema:
5913
6910
  $ref: "#/components/schemas/API_Error"
6911
+ /projects/{id}/repository/tree:
6912
+ get:
6913
+ tags:
6914
+ - repository
6915
+ summary: List repository tree
6916
+ description: List files and directories in a repository tree
6917
+ operationId: getApiV4ProjectsIdRepositoryTree
6918
+ parameters:
6919
+ - $ref: "#/components/parameters/ProjectIdOrPath"
6920
+ - name: path
6921
+ in: query
6922
+ description: Directory path within repository
6923
+ schema:
6924
+ type: string
6925
+ - name: ref
6926
+ in: query
6927
+ description: Branch or tag name
6928
+ schema:
6929
+ type: string
6930
+ - name: page
6931
+ in: query
6932
+ description: Page number
6933
+ schema:
6934
+ type: integer
6935
+ default: 1
6936
+ - name: per_page
6937
+ in: query
6938
+ description: Number of items per page
6939
+ schema:
6940
+ type: integer
6941
+ default: 20
6942
+ responses:
6943
+ "200":
6944
+ description: Successful response
6945
+ content:
6946
+ application/json:
6947
+ schema:
6948
+ type: array
6949
+ items:
6950
+ type: object
6951
+ properties:
6952
+ id:
6953
+ type: string
6954
+ name:
6955
+ type: string
6956
+ type:
6957
+ type: string
6958
+ path:
6959
+ type: string
6960
+ mode:
6961
+ type: string
6962
+ /projects/{id}/repository/compare:
6963
+ get:
6964
+ tags:
6965
+ - repository
6966
+ summary: Compare repository refs
6967
+ description: Compare two refs (branches, tags, or SHAs)
6968
+ operationId: getApiV4ProjectsIdRepositoryCompare
6969
+ parameters:
6970
+ - $ref: "#/components/parameters/ProjectIdOrPath"
6971
+ - name: from
6972
+ in: query
6973
+ required: true
6974
+ description: Source ref
6975
+ schema:
6976
+ type: string
6977
+ - name: to
6978
+ in: query
6979
+ required: true
6980
+ description: Target ref
6981
+ schema:
6982
+ type: string
6983
+ - name: straight
6984
+ in: query
6985
+ description: Limit comparison to commits reachable from target
6986
+ schema:
6987
+ type: boolean
6988
+ responses:
6989
+ "200":
6990
+ description: Successful response
6991
+ content:
6992
+ application/json:
6993
+ schema:
6994
+ type: object
5914
6995
  /projects/{id}/repository/commits:
5915
6996
  get:
5916
6997
  tags:
@@ -5987,6 +7068,34 @@ paths:
5987
7068
  application/json:
5988
7069
  schema:
5989
7070
  $ref: "#/components/schemas/API_Error"
7071
+ /projects/{id}/repository/commits/{sha}:
7072
+ get:
7073
+ tags:
7074
+ - repository
7075
+ summary: Get commit by SHA
7076
+ description: Get a single commit by SHA
7077
+ operationId: getApiV4ProjectsIdRepositoryCommitsSha
7078
+ parameters:
7079
+ - $ref: "#/components/parameters/ProjectIdOrPath"
7080
+ - name: sha
7081
+ in: path
7082
+ required: true
7083
+ description: Commit SHA
7084
+ schema:
7085
+ type: string
7086
+ responses:
7087
+ "200":
7088
+ description: Successful response
7089
+ content:
7090
+ application/json:
7091
+ schema:
7092
+ $ref: "#/components/schemas/API_Entities_Commit"
7093
+ "404":
7094
+ description: Commit not found
7095
+ content:
7096
+ application/json:
7097
+ schema:
7098
+ $ref: "#/components/schemas/API_Error"
5990
7099
  /projects/{id}/repository/files/{file_path}:
5991
7100
  get:
5992
7101
  tags:
@@ -6021,6 +7130,124 @@ paths:
6021
7130
  application/json:
6022
7131
  schema:
6023
7132
  $ref: "#/components/schemas/API_Error"
7133
+ post:
7134
+ tags:
7135
+ - repository_files
7136
+ summary: Create file in repository
7137
+ description: Create a new file in the repository
7138
+ operationId: postApiV4ProjectsIdRepositoryFilesFilePath
7139
+ parameters:
7140
+ - $ref: "#/components/parameters/ProjectIdOrPath"
7141
+ - name: file_path
7142
+ in: path
7143
+ required: true
7144
+ description: URL-encoded full path to the file (e.g., src%2Findex.js)
7145
+ schema:
7146
+ type: string
7147
+ requestBody:
7148
+ required: true
7149
+ content:
7150
+ application/json:
7151
+ schema:
7152
+ type: object
7153
+ required:
7154
+ - branch
7155
+ - content
7156
+ - commit_message
7157
+ properties:
7158
+ branch:
7159
+ type: string
7160
+ description: Branch name
7161
+ example: main
7162
+ content:
7163
+ type: string
7164
+ description: File content
7165
+ commit_message:
7166
+ type: string
7167
+ description: Commit message
7168
+ responses:
7169
+ "201":
7170
+ description: File created
7171
+ content:
7172
+ application/json:
7173
+ schema:
7174
+ $ref: "#/components/schemas/API_Entities_RepositoryFile"
7175
+ put:
7176
+ tags:
7177
+ - repository_files
7178
+ summary: Update file in repository
7179
+ description: Update an existing file in the repository
7180
+ operationId: putApiV4ProjectsIdRepositoryFilesFilePath
7181
+ parameters:
7182
+ - $ref: "#/components/parameters/ProjectIdOrPath"
7183
+ - name: file_path
7184
+ in: path
7185
+ required: true
7186
+ description: URL-encoded full path to the file (e.g., src%2Findex.js)
7187
+ schema:
7188
+ type: string
7189
+ requestBody:
7190
+ required: true
7191
+ content:
7192
+ application/json:
7193
+ schema:
7194
+ type: object
7195
+ required:
7196
+ - branch
7197
+ - content
7198
+ - commit_message
7199
+ properties:
7200
+ branch:
7201
+ type: string
7202
+ description: Branch name
7203
+ example: main
7204
+ content:
7205
+ type: string
7206
+ description: File content
7207
+ commit_message:
7208
+ type: string
7209
+ description: Commit message
7210
+ responses:
7211
+ "200":
7212
+ description: File updated
7213
+ content:
7214
+ application/json:
7215
+ schema:
7216
+ $ref: "#/components/schemas/API_Entities_RepositoryFile"
7217
+ delete:
7218
+ tags:
7219
+ - repository_files
7220
+ summary: Delete file from repository
7221
+ description: Delete a file from the repository
7222
+ operationId: deleteApiV4ProjectsIdRepositoryFilesFilePath
7223
+ parameters:
7224
+ - $ref: "#/components/parameters/ProjectIdOrPath"
7225
+ - name: file_path
7226
+ in: path
7227
+ required: true
7228
+ description: URL-encoded full path to the file (e.g., src%2Findex.js)
7229
+ schema:
7230
+ type: string
7231
+ requestBody:
7232
+ required: true
7233
+ content:
7234
+ application/json:
7235
+ schema:
7236
+ type: object
7237
+ required:
7238
+ - branch
7239
+ - commit_message
7240
+ properties:
7241
+ branch:
7242
+ type: string
7243
+ description: Branch name
7244
+ example: main
7245
+ commit_message:
7246
+ type: string
7247
+ description: Commit message
7248
+ responses:
7249
+ "204":
7250
+ description: File deleted
6024
7251
  /projects/{id}/repository/files/{file_path}/raw:
6025
7252
  get:
6026
7253
  tags:
@@ -6081,6 +7308,34 @@ paths:
6081
7308
  schema:
6082
7309
  type: string
6083
7310
  format: binary
7311
+ /projects/{id}/jobs/{job_id}/artifacts/{artifact_path}:
7312
+ get:
7313
+ tags:
7314
+ - jobs
7315
+ summary: Download single job artifact file
7316
+ description: Download a single file from job artifacts
7317
+ operationId: getApiV4ProjectsIdJobsJobIdArtifactsArtifactPath
7318
+ parameters:
7319
+ - $ref: "#/components/parameters/ProjectIdOrPath"
7320
+ - name: job_id
7321
+ in: path
7322
+ required: true
7323
+ schema:
7324
+ type: integer
7325
+ - name: artifact_path
7326
+ in: path
7327
+ required: true
7328
+ description: Path to artifact file
7329
+ schema:
7330
+ type: string
7331
+ responses:
7332
+ "200":
7333
+ description: Artifact file content
7334
+ content:
7335
+ application/octet-stream:
7336
+ schema:
7337
+ type: string
7338
+ format: binary
6084
7339
  /projects/{id}/snippets/{snippet_id}/raw:
6085
7340
  get:
6086
7341
  tags: