Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
		
							parent
							
								
									0a921554d8
								
							
						
					
					
						commit
						ef58231bd6
					
				|  | @ -648,6 +648,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab | |||
| /doc/api/resource_milestone_events.md @msedlakjakubowski | ||||
| /doc/api/resource_state_events.md @msedlakjakubowski | ||||
| /doc/api/resource_weight_events.md @msedlakjakubowski | ||||
| /doc/api/rest/index.md @ashrafkhamis | ||||
| /doc/api/runners.md @fneill | ||||
| /doc/api/saml.md @jglassman1 | ||||
| /doc/api/scim.md @jglassman1 | ||||
|  |  | |||
|  | @ -71,6 +71,7 @@ rspec migration pg12: | |||
|   extends: | ||||
|     - .rspec-base-pg12 | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:ee-and-foss-migration | ||||
|     - .rspec-migration-parallel | ||||
| 
 | ||||
| rspec migration pg12 predictive: | ||||
|  | @ -79,18 +80,43 @@ rspec migration pg12 predictive: | |||
|     - .predictive-rspec-tests | ||||
|     - .rails:rules:ee-and-foss-migration:predictive | ||||
| 
 | ||||
| rspec background_migration pg12: | ||||
|   extends: | ||||
|     - .rspec-base-pg12 | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:ee-and-foss-background-migration | ||||
|     - .rspec-background-migration-parallel | ||||
| 
 | ||||
| rspec background_migration pg12 predictive: | ||||
|   extends: | ||||
|     - rspec background_migration pg12 | ||||
|     - .predictive-rspec-tests | ||||
|     - .rails:rules:ee-and-foss-background-migration:predictive | ||||
| 
 | ||||
| rspec migration pg12 single-db: | ||||
|   extends: | ||||
|     - rspec migration pg12 | ||||
|     - .single-db-rspec | ||||
|     - .rails:rules:single-db | ||||
| 
 | ||||
| rspec background_migration pg12 single-db: | ||||
|   extends: | ||||
|     - rspec background_migration pg12 | ||||
|     - .single-db-rspec | ||||
|     - .rails:rules:single-db | ||||
| 
 | ||||
| rspec migration pg12 praefect: | ||||
|   extends: | ||||
|     - rspec migration pg12 | ||||
|     - .praefect-with-db | ||||
|     - .rails:rules:praefect-with-db | ||||
| 
 | ||||
| rspec background_migration pg12 praefect: | ||||
|   extends: | ||||
|     - rspec background_migration pg12 | ||||
|     - .praefect-with-db | ||||
|     - .rails:rules:praefect-with-db | ||||
| 
 | ||||
| rspec unit pg12: | ||||
|   extends: | ||||
|     - .rspec-base-pg12 | ||||
|  | @ -319,10 +345,12 @@ rspec:deprecations: | |||
|   # so we use `dependencies` here. | ||||
|   dependencies: | ||||
|     - rspec migration pg12 | ||||
|     - rspec background_migration pg12 | ||||
|     - rspec unit pg12 | ||||
|     - rspec integration pg12 | ||||
|     - rspec system pg12 | ||||
|     - rspec-ee migration pg12 | ||||
|     - rspec-ee background_migration pg12 | ||||
|     - rspec-ee unit pg12 | ||||
|     - rspec-ee integration pg12 | ||||
|     - rspec-ee system pg12 | ||||
|  | @ -349,31 +377,37 @@ rspec:coverage: | |||
|     - setup-test-env | ||||
|     # FOSS/EE jobs | ||||
|     - rspec migration pg12 | ||||
|     - rspec background_migration pg12 | ||||
|     - rspec unit pg12 | ||||
|     - rspec integration pg12 | ||||
|     - rspec system pg12 | ||||
|     # FOSS/EE predictive jobs | ||||
|     - rspec migration pg12 predictive | ||||
|     - rspec background_migration pg12 predictive | ||||
|     - rspec unit pg12 predictive | ||||
|     - rspec integration pg12 predictive | ||||
|     - rspec system pg12 predictive | ||||
|     # FOSS/EE single-db jobs | ||||
|     - rspec migration pg12 single-db | ||||
|     - rspec background_migration pg12 single-db | ||||
|     - rspec unit pg12 single-db | ||||
|     - rspec integration pg12 single-db | ||||
|     - rspec system pg12 single-db | ||||
|     # EE jobs | ||||
|     - rspec-ee migration pg12 | ||||
|     - rspec-ee background_migration pg12 | ||||
|     - rspec-ee unit pg12 | ||||
|     - rspec-ee integration pg12 | ||||
|     - rspec-ee system pg12 | ||||
|     # EE predictive jobs | ||||
|     - rspec-ee migration pg12 predictive | ||||
|     - rspec-ee background_migration pg12 predictive | ||||
|     - rspec-ee unit pg12 predictive | ||||
|     - rspec-ee integration pg12 predictive | ||||
|     - rspec-ee system pg12 predictive | ||||
|     # EE single-db jobs | ||||
|     - rspec-ee migration pg12 single-db | ||||
|     - rspec-ee background_migration pg12 single-db | ||||
|     - rspec-ee unit pg12 single-db | ||||
|     - rspec-ee integration pg12 single-db | ||||
|     - rspec-ee system pg12 single-db | ||||
|  | @ -383,6 +417,9 @@ rspec:coverage: | |||
|     - rspec migration pg12-as-if-foss | ||||
|     - rspec migration pg12-as-if-foss predictive | ||||
|     - rspec migration pg12-as-if-foss single-db | ||||
|     - rspec background_migration pg12-as-if-foss | ||||
|     - rspec background_migration pg12-as-if-foss predictive | ||||
|     - rspec background_migration pg12-as-if-foss single-db | ||||
|     - rspec unit pg12-as-if-foss | ||||
|     - rspec unit pg12-as-if-foss predictive | ||||
|     - rspec unit pg12-as-if-foss single-db | ||||
|  | @ -482,12 +519,31 @@ rspec migration pg12-as-if-foss predictive: | |||
|     - .predictive-rspec-tests | ||||
|     - .rails:rules:as-if-foss-migration:predictive | ||||
| 
 | ||||
| rspec background_migration pg12-as-if-foss: | ||||
|   extends: | ||||
|     - .rspec-base-pg12-as-if-foss | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:as-if-foss-background-migration | ||||
|     - .rspec-background-migration-parallel | ||||
| 
 | ||||
| rspec background_migration pg12-as-if-foss predictive: | ||||
|   extends: | ||||
|     - rspec background_migration pg12-as-if-foss | ||||
|     - .predictive-rspec-tests | ||||
|     - .rails:rules:as-if-foss-background-migration:predictive | ||||
| 
 | ||||
| rspec migration pg12-as-if-foss single-db: | ||||
|   extends: | ||||
|     - rspec migration pg12-as-if-foss | ||||
|     - .single-db-rspec | ||||
|     - .rails:rules:single-db | ||||
| 
 | ||||
| rspec background_migration pg12-as-if-foss single-db: | ||||
|   extends: | ||||
|     - rspec background_migration pg12-as-if-foss | ||||
|     - .single-db-rspec | ||||
|     - .rails:rules:single-db | ||||
| 
 | ||||
| rspec unit pg12-as-if-foss: | ||||
|   extends: | ||||
|     - .rspec-base-pg12-as-if-foss | ||||
|  | @ -555,12 +611,43 @@ rspec-ee migration pg12 predictive: | |||
|     - .predictive-rspec-tests | ||||
|     - .rails:rules:ee-only-migration:predictive | ||||
| 
 | ||||
| rspec-ee background_migration pg12: | ||||
|   extends: | ||||
|     - .rspec-ee-base-pg12 | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:ee-only-background-migration | ||||
|     - .rspec-ee-background-migration-parallel | ||||
| 
 | ||||
| rspec-ee background_migration pg12 predictive: | ||||
|   extends: | ||||
|     - rspec-ee background_migration pg12 | ||||
|     - .predictive-rspec-tests | ||||
|     - .rails:rules:ee-only-background-migration:predictive | ||||
| 
 | ||||
| rspec-ee migration pg12 single-db: | ||||
|   extends: | ||||
|     - rspec-ee migration pg12 | ||||
|     - .single-db-rspec | ||||
|     - .rails:rules:single-db | ||||
| 
 | ||||
| rspec-ee background_migration pg12 single-db: | ||||
|   extends: | ||||
|     - rspec-ee background_migration pg12 | ||||
|     - .single-db-rspec | ||||
|     - .rails:rules:single-db | ||||
| 
 | ||||
| rspec-ee migration pg12 praefect: | ||||
|   extends: | ||||
|     - rspec migration pg12 | ||||
|     - .praefect-with-db | ||||
|     - .rails:rules:praefect-with-db | ||||
| 
 | ||||
| rspec-ee background_migration pg12 praefect: | ||||
|   extends: | ||||
|     - rspec background_migration pg12 | ||||
|     - .praefect-with-db | ||||
|     - .rails:rules:praefect-with-db | ||||
| 
 | ||||
| rspec-ee unit pg12: | ||||
|   extends: | ||||
|     - .rspec-ee-base-pg12 | ||||
|  | @ -651,6 +738,13 @@ rspec migration pg11: | |||
|     - .rails:rules:rspec-on-pg11 | ||||
|     - .rspec-migration-parallel | ||||
| 
 | ||||
| rspec background_migration pg11: | ||||
|   extends: | ||||
|     - .rspec-base-pg11 | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:rspec-on-pg11 | ||||
|     - .rspec-background-migration-parallel | ||||
| 
 | ||||
| rspec unit pg11: | ||||
|   extends: | ||||
|     - .rspec-base-pg11 | ||||
|  | @ -677,6 +771,13 @@ rspec migration pg13: | |||
|     - .rails:rules:default-branch-schedule-nightly--code-backstage | ||||
|     - .rspec-migration-parallel | ||||
| 
 | ||||
| rspec background_migration pg13: | ||||
|   extends: | ||||
|     - .rspec-base-pg13 | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:default-branch-schedule-nightly--code-backstage | ||||
|     - .rspec-background-migration-parallel | ||||
| 
 | ||||
| rspec unit pg13: | ||||
|   extends: | ||||
|     - .rspec-base-pg13 | ||||
|  | @ -708,6 +809,13 @@ rspec-ee migration pg11: | |||
|     - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only | ||||
|     - .rspec-ee-migration-parallel | ||||
| 
 | ||||
| rspec-ee background_migration pg11: | ||||
|   extends: | ||||
|     - .rspec-ee-base-pg11 | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only | ||||
|     - .rspec-ee-background-migration-parallel | ||||
| 
 | ||||
| rspec-ee unit pg11: | ||||
|   extends: | ||||
|     - .rspec-ee-base-pg11 | ||||
|  | @ -771,6 +879,13 @@ rspec-ee migration pg13: | |||
|     - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only | ||||
|     - .rspec-ee-migration-parallel | ||||
| 
 | ||||
| rspec-ee background_migration pg13: | ||||
|   extends: | ||||
|     - .rspec-ee-base-pg13 | ||||
|     - .rspec-base-migration | ||||
|     - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only | ||||
|     - .rspec-ee-background-migration-parallel | ||||
| 
 | ||||
| rspec-ee unit pg13: | ||||
|   extends: | ||||
|     - .rspec-ee-base-pg13 | ||||
|  |  | |||
|  | @ -58,7 +58,11 @@ include: | |||
|   needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"] | ||||
|   script: | ||||
|     - !reference [.base-script, script] | ||||
|     - rspec_paralellized_job "--tag ~quarantine --tag ~level:migration" | ||||
|     # We need to exclude background migration because unit tests run with | ||||
|     # spec/lib, yet background migration tests are also sitting there, | ||||
|     # and they should run on their own jobs so we don't need to run them | ||||
|     # in unit tests again. | ||||
|     - rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration" | ||||
|   allow_failure: | ||||
|     exit_codes: !reference [.rspec-base, variables, SUCCESSFULLY_RETRIED_TEST_EXIT_CODE] | ||||
| 
 | ||||
|  | @ -79,14 +83,9 @@ include: | |||
|       junit: ${JUNIT_RESULT_FILE} | ||||
| 
 | ||||
| .rspec-base-migration: | ||||
|   extends: | ||||
|     - .base-artifacts | ||||
|     - .rails:rules:ee-and-foss-migration | ||||
|   variables: | ||||
|     RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_PATH}" | ||||
|   script: | ||||
|     - !reference [.base-script, script] | ||||
|     - rspec_paralellized_job "--tag ~quarantine --tag level:migration" | ||||
|     - rspec_paralellized_job "--tag ~quarantine" | ||||
| 
 | ||||
| .rspec-base-pg11: | ||||
|   extends: | ||||
|  | @ -156,10 +155,16 @@ include: | |||
| ############################ | ||||
| # rspec job parallel configs | ||||
| .rspec-migration-parallel: | ||||
|   parallel: 12 | ||||
|   parallel: 8 | ||||
| 
 | ||||
| .rspec-background-migration-parallel: | ||||
|   parallel: 4 | ||||
| 
 | ||||
| .rspec-ee-migration-parallel: | ||||
|   parallel: 4 | ||||
|   parallel: 2 | ||||
| 
 | ||||
| .rspec-ee-background-migration-parallel: | ||||
|   parallel: 2 | ||||
| 
 | ||||
| .rspec-unit-parallel: | ||||
|   parallel: 28 | ||||
|  |  | |||
|  | @ -1215,6 +1215,18 @@ | |||
|       changes: *db-patterns | ||||
|       when: never | ||||
| 
 | ||||
| .rails:rules:ee-and-foss-background-migration: | ||||
|   rules: | ||||
|     - !reference [".rails:rules:ee-and-foss-migration", rules] | ||||
|     - <<: *if-default-refs | ||||
|       changes: *backend-patterns | ||||
| 
 | ||||
| .rails:rules:ee-and-foss-background-migration:predictive: | ||||
|   rules: | ||||
|     - !reference [".rails:rules:ee-and-foss-migration:predictive", rules] | ||||
|     - <<: *if-merge-request | ||||
|       changes: *backend-patterns | ||||
| 
 | ||||
| .rails:rules:ee-and-foss-mr-with-migration: | ||||
|   rules: | ||||
|     - <<: *if-merge-request | ||||
|  | @ -1324,6 +1336,18 @@ | |||
|       changes: *db-patterns | ||||
|       when: never | ||||
| 
 | ||||
| .rails:rules:ee-only-background-migration: | ||||
|   rules: | ||||
|     - !reference [".rails:rules:ee-only-migration", rules] | ||||
|     - <<: *if-default-refs | ||||
|       changes: *backend-patterns | ||||
| 
 | ||||
| .rails:rules:ee-only-background-migration:predictive: | ||||
|   rules: | ||||
|     - !reference [".rails:rules:ee-only-migration:predictive", rules] | ||||
|     - <<: *if-merge-request | ||||
|       changes: *backend-patterns | ||||
| 
 | ||||
| .rails:rules:ee-only-unit: | ||||
|   rules: | ||||
|     - <<: *if-not-ee | ||||
|  | @ -1415,6 +1439,18 @@ | |||
|       changes: *db-patterns | ||||
|       when: never | ||||
| 
 | ||||
| .rails:rules:as-if-foss-background-migration: | ||||
|   rules: | ||||
|     - !reference [".rails:rules:as-if-foss-migration", rules] | ||||
|     - <<: *if-merge-request-labels-as-if-foss | ||||
|       changes: *backend-patterns | ||||
| 
 | ||||
| .rails:rules:as-if-foss-background-migration:predictive: | ||||
|   rules: | ||||
|     - !reference [".rails:rules:as-if-foss-migration:predictive", rules] | ||||
|     - <<: *if-merge-request-labels-as-if-foss | ||||
|       changes: *backend-patterns | ||||
| 
 | ||||
| .rails:rules:as-if-foss-unit: | ||||
|   rules: | ||||
|     - <<: *if-not-ee | ||||
|  |  | |||
|  | @ -1,45 +1,12 @@ | |||
| --- | ||||
| Performance/MethodObjectAsBlock: | ||||
|   Exclude: | ||||
|     - 'app/controllers/concerns/metrics_dashboard.rb' | ||||
|     - 'app/controllers/concerns/requires_whitelisted_monitoring_client.rb' | ||||
|     - 'app/controllers/projects/merge_requests/drafts_controller.rb' | ||||
|     - 'app/finders/bulk_imports/entities_finder.rb' | ||||
|     - 'app/models/clusters/cluster.rb' | ||||
|     - 'app/models/concerns/prometheus_adapter.rb' | ||||
|     - 'app/models/concerns/token_authenticatable.rb' | ||||
|     - 'app/models/container_repository.rb' | ||||
|     - 'app/models/programming_language.rb' | ||||
|     - 'app/presenters/packages/detail/package_presenter.rb' | ||||
|     - 'app/services/ci/pipeline_processing/atomic_processing_service.rb' | ||||
|     - 'app/services/ci/prometheus_metrics/observe_histograms_service.rb' | ||||
|     - 'app/services/concerns/users/participable_service.rb' | ||||
|     - 'app/services/discussions/resolve_service.rb' | ||||
|     - 'app/services/jira/requests/projects/list_service.rb' | ||||
|     - 'app/services/merge_requests/refresh_service.rb' | ||||
|     - 'app/services/packages/debian/generate_distribution_service.rb' | ||||
|     - 'app/services/projects/container_repository/delete_tags_service.rb' | ||||
|     - 'app/workers/gitlab/import/stuck_import_job.rb' | ||||
|     - 'app/workers/object_storage/migrate_uploads_worker.rb' | ||||
|     - 'config/initializers/0_inject_enterprise_edition_module.rb' | ||||
|     - 'ee/app/finders/security/findings_finder.rb' | ||||
|     - 'ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb' | ||||
|     - 'ee/app/services/dashboard/projects/create_service.rb' | ||||
|     - 'ee/app/services/security/ingestion/ingest_reports_service.rb' | ||||
|     - 'ee/app/services/security/ingestion/tasks/ingest_vulnerability_statistics.rb' | ||||
|     - 'ee/app/services/security/store_grouped_scans_service.rb' | ||||
|     - 'ee/lib/ee/container_registry/client.rb' | ||||
|     - 'ee/lib/ee/gitlab/ci/config_ee.rb' | ||||
|     - 'ee/lib/ee/gitlab/etag_caching/router/rails.rb' | ||||
|     - 'ee/lib/gitlab/ingestion/bulk_insertable_task.rb' | ||||
|     - 'ee/spec/services/groups/participants_service_spec.rb' | ||||
|     - 'lib/api/helpers/packages/conan/api_helpers.rb' | ||||
|     - 'lib/bulk_imports/pipeline.rb' | ||||
|     - 'lib/container_registry/base_client.rb' | ||||
|     - 'lib/container_registry/gitlab_api_client.rb' | ||||
|     - 'lib/gitlab/ci/build/rules/rule.rb' | ||||
|     - 'lib/gitlab/ci/build/rules/rule/clause/exists.rb' | ||||
|     - 'lib/gitlab/ci/config/external/mapper.rb' | ||||
|     - 'lib/gitlab/ci/config/yaml/tags/resolver.rb' | ||||
|     - 'lib/gitlab/ci/pipeline/chain/create_deployments.rb' | ||||
|     - 'lib/gitlab/ci/pipeline/chain/ensure_environments.rb' | ||||
|  | @ -72,12 +39,6 @@ Performance/MethodObjectAsBlock: | |||
|     - 'lib/gitlab/sidekiq_queue.rb' | ||||
|     - 'lib/gitlab/uploads/migration_helper.rb' | ||||
|     - 'lib/gitlab/utils.rb' | ||||
|     - 'lib/peek/views/detailed_view.rb' | ||||
|     - 'lib/unnested_in_filters/rewriter.rb' | ||||
|     - 'qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb' | ||||
|     - 'rubocop/cop/avoid_return_from_blocks.rb' | ||||
|     - 'rubocop/cop/gitlab/mark_used_feature_flags.rb' | ||||
|     - 'rubocop/rubocop.rb' | ||||
|     - 'spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb' | ||||
|     - 'spec/lib/api/entities/merge_request_basic_spec.rb' | ||||
|     - 'spec/lib/gitlab/import_export/import_test_coverage_spec.rb' | ||||
|  | @ -87,6 +48,3 @@ Performance/MethodObjectAsBlock: | |||
|     - 'spec/support/helpers/migrations_helpers.rb' | ||||
|     - 'spec/support/shared_examples/models/active_record_enum_shared_examples.rb' | ||||
|     - 'spec/support_specs/helpers/stub_feature_flags_spec.rb' | ||||
|     - 'tooling/lib/tooling/find_codeowners.rb' | ||||
|     - 'tooling/lib/tooling/test_map_packer.rb' | ||||
|     - 'tooling/quality/test_level.rb' | ||||
|  |  | |||
|  | @ -1,22 +1,17 @@ | |||
| <script> | ||||
| import { GlButton, GlBadge } from '@gitlab/ui'; | ||||
| import { GlBadge } from '@gitlab/ui'; | ||||
| import { mapActions, mapGetters, mapState } from 'vuex'; | ||||
| import SafeHtml from '~/vue_shared/directives/safe_html'; | ||||
| import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; | ||||
| import NoteableNote from '~/notes/components/noteable_note.vue'; | ||||
| import PublishButton from './publish_button.vue'; | ||||
| 
 | ||||
| export default { | ||||
|   components: { | ||||
|     NoteableNote, | ||||
|     PublishButton, | ||||
|     GlButton, | ||||
|     GlBadge, | ||||
|   }, | ||||
|   directives: { | ||||
|     SafeHtml, | ||||
|   }, | ||||
|   mixins: [glFeatureFlagMixin()], | ||||
|   props: { | ||||
|     draft: { | ||||
|       type: Object, | ||||
|  | @ -89,8 +84,7 @@ export default { | |||
|     :note="draft" | ||||
|     :line="line" | ||||
|     :discussion-root="true" | ||||
|     :class="{ 'gl-mb-0!': glFeatures.mrReviewSubmitComment }" | ||||
|     class="draft-note-component draft-note" | ||||
|     class="draft-note-component draft-note gl-mb-0!" | ||||
|     @handleEdit="handleEditing" | ||||
|     @cancelForm="handleNotEditing" | ||||
|     @updateSuccess="handleNotEditing" | ||||
|  | @ -109,23 +103,6 @@ export default { | |||
|         v-safe-html:[$options.safeHtmlConfig]="draftCommands" | ||||
|         class="referenced-commands draft-note-commands" | ||||
|       ></div> | ||||
| 
 | ||||
|       <p v-if="!glFeatures.mrReviewSubmitComment" class="draft-note-actions d-flex"> | ||||
|         <publish-button | ||||
|           :show-count="true" | ||||
|           :should-publish="false" | ||||
|           category="secondary" | ||||
|           :disabled="isPublishingDraft(draft.id)" | ||||
|         /> | ||||
|         <gl-button | ||||
|           :disabled="isPublishing" | ||||
|           :loading="isPublishingDraft(draft.id)" | ||||
|           class="gl-ml-3" | ||||
|           @click="publishNow" | ||||
|         > | ||||
|           {{ __('Add comment now') }} | ||||
|         </gl-button> | ||||
|       </p> | ||||
|     </template> | ||||
|   </noteable-note> | ||||
| </template> | ||||
|  |  | |||
|  | @ -1,7 +1,6 @@ | |||
| <script> | ||||
| import { GlDropdown, GlDropdownItem, GlIcon } from '@gitlab/ui'; | ||||
| import { mapActions, mapGetters, mapState } from 'vuex'; | ||||
| import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; | ||||
| import { setUrlParams, visitUrl } from '~/lib/utils/url_utility'; | ||||
| import PreviewItem from './preview_item.vue'; | ||||
| import DraftsCount from './drafts_count.vue'; | ||||
|  | @ -14,7 +13,6 @@ export default { | |||
|     PreviewItem, | ||||
|     DraftsCount, | ||||
|   }, | ||||
|   mixins: [glFeatureFlagMixin()], | ||||
|   computed: { | ||||
|     ...mapState('diffs', ['viewDiffsFileByFile']), | ||||
|     ...mapGetters('batchComments', ['draftsCount', 'sortedDrafts']), | ||||
|  | @ -54,7 +52,7 @@ export default { | |||
|   > | ||||
|     <template #button-content> | ||||
|       {{ __('Pending comments') }} | ||||
|       <drafts-count v-if="glFeatures.mrReviewSubmitComment" variant="neutral" /> | ||||
|       <drafts-count variant="neutral" /> | ||||
|       <gl-icon class="dropdown-chevron" name="chevron-up" /> | ||||
|     </template> | ||||
|     <gl-dropdown-item | ||||
|  |  | |||
|  | @ -1,52 +0,0 @@ | |||
| <script> | ||||
| import { GlButton } from '@gitlab/ui'; | ||||
| import { mapActions, mapState } from 'vuex'; | ||||
| import DraftsCount from './drafts_count.vue'; | ||||
| 
 | ||||
| export default { | ||||
|   components: { | ||||
|     GlButton, | ||||
|     DraftsCount, | ||||
|   }, | ||||
|   props: { | ||||
|     showCount: { | ||||
|       type: Boolean, | ||||
|       required: false, | ||||
|       default: false, | ||||
|     }, | ||||
|     category: { | ||||
|       type: String, | ||||
|       required: false, | ||||
|       default: 'primary', | ||||
|     }, | ||||
|     variant: { | ||||
|       type: String, | ||||
|       required: false, | ||||
|       default: 'confirm', | ||||
|     }, | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState('batchComments', ['isPublishing']), | ||||
|   }, | ||||
|   methods: { | ||||
|     ...mapActions('batchComments', ['publishReview']), | ||||
|     onClick() { | ||||
|       this.publishReview(); | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <template> | ||||
|   <gl-button | ||||
|     :loading="isPublishing" | ||||
|     class="js-publish-draft-button" | ||||
|     data-qa-selector="submit_review_button" | ||||
|     :category="category" | ||||
|     :variant="variant" | ||||
|     @click="onClick" | ||||
|   > | ||||
|     {{ __('Submit review') }} | ||||
|     <drafts-count v-if="showCount" /> | ||||
|   </gl-button> | ||||
| </template> | ||||
|  | @ -3,13 +3,11 @@ import { mapActions, mapGetters } from 'vuex'; | |||
| import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; | ||||
| import { REVIEW_BAR_VISIBLE_CLASS_NAME } from '../constants'; | ||||
| import PreviewDropdown from './preview_dropdown.vue'; | ||||
| import PublishButton from './publish_button.vue'; | ||||
| import SubmitDropdown from './submit_dropdown.vue'; | ||||
| 
 | ||||
| export default { | ||||
|   components: { | ||||
|     PreviewDropdown, | ||||
|     PublishButton, | ||||
|     SubmitDropdown, | ||||
|   }, | ||||
|   mixins: [glFeatureFlagMixin()], | ||||
|  | @ -42,8 +40,7 @@ export default { | |||
|         data-qa-selector="review_bar_content" | ||||
|       > | ||||
|         <preview-dropdown /> | ||||
|         <publish-button v-if="!glFeatures.mrReviewSubmitComment" class="gl-ml-3" show-count /> | ||||
|         <submit-dropdown v-else /> | ||||
|         <submit-dropdown /> | ||||
|       </div> | ||||
|     </nav> | ||||
|   </div> | ||||
|  |  | |||
|  | @ -36,7 +36,7 @@ export default { | |||
|       <p class="gl-mb-0"> | ||||
|         {{ | ||||
|           __( | ||||
|             'Resolve these conflicts or ask someone with write access to this repository to merge it locally.', | ||||
|             'Resolve these conflicts, or ask someone with write access to this repository to resolve them locally.', | ||||
|           ) | ||||
|         }} | ||||
|       </p> | ||||
|  | @ -54,7 +54,7 @@ export default { | |||
|           v-gl-modal-directive="'modal-merge-info'" | ||||
|           class="gl-alert-action" | ||||
|         > | ||||
|           {{ __('Merge locally') }} | ||||
|           {{ __('Resolve locally') }} | ||||
|         </gl-button> | ||||
|       </template> | ||||
|     </gl-alert> | ||||
|  |  | |||
|  | @ -208,6 +208,17 @@ export default { | |||
|       data-testid="redirect-to-field" | ||||
|     /> | ||||
| 
 | ||||
|     <div v-if="shouldUpgradeSlack" class="gl-mb-6"> | ||||
|       <gl-alert | ||||
|         :dismissible="false" | ||||
|         :title="$options.slackUpgradeInfo.title" | ||||
|         :primary-button-link="customState.upgradeSlackUrl" | ||||
|         :primary-button-text="$options.slackUpgradeInfo.btnText" | ||||
|         class="gl-mb-5" | ||||
|         >{{ $options.slackUpgradeInfo.text }}</gl-alert | ||||
|       > | ||||
|     </div> | ||||
| 
 | ||||
|     <override-dropdown | ||||
|       v-if="defaultState !== null" | ||||
|       :inherit-from-id="defaultState.id" | ||||
|  | @ -241,17 +252,6 @@ export default { | |||
|       </div> | ||||
|     </section> | ||||
| 
 | ||||
|     <div v-if="shouldUpgradeSlack" class="gl-border-t"> | ||||
|       <gl-alert | ||||
|         :dismissible="false" | ||||
|         :title="$options.slackUpgradeInfo.title" | ||||
|         :primary-button-link="customState.upgradeSlackUrl" | ||||
|         :primary-button-text="$options.slackUpgradeInfo.btnText" | ||||
|         class="gl-mb-8 gl-mt-5" | ||||
|         >{{ $options.slackUpgradeInfo.text }}</gl-alert | ||||
|       > | ||||
|     </div> | ||||
| 
 | ||||
|     <template v-if="hasSections"> | ||||
|       <integration-form-section | ||||
|         v-for="(section, index) in customState.sections" | ||||
|  |  | |||
|  | @ -57,11 +57,13 @@ export default { | |||
|     </div> | ||||
|     <div class="timeline-event-note timeline-event-border" data-testid="event-text-container"> | ||||
|       <div class="gl-display-flex gl-align-items-center gl-mb-3"> | ||||
|         <strong class="gl-font-lg" data-testid="event-time"> | ||||
|         <h3 class="gl-font-weight-bold gl-font-sm gl-my-0" data-testid="event-time"> | ||||
|           <gl-sprintf :message="$options.i18n.timeUTC"> | ||||
|             <template #time>{{ time }}</template> | ||||
|             <template #time> | ||||
|               <span class="gl-font-lg">{{ time }}</span> | ||||
|             </template> | ||||
|           </gl-sprintf> | ||||
|         </strong> | ||||
|         </h3> | ||||
|         <gl-badge v-if="eventTag" variant="muted" icon="tag" class="gl-ml-3"> | ||||
|           {{ eventTag }} | ||||
|         </gl-badge> | ||||
|  |  | |||
|  | @ -132,17 +132,21 @@ export default { | |||
| </script> | ||||
| 
 | ||||
| <template> | ||||
|   <div class="issuable-discussion incident-timeline-events"> | ||||
|   <div class="issuable-discussion incident-timeline-events gl-mt-n3"> | ||||
|     <div | ||||
|       v-for="[eventDate, events] in dateGroupedEvents" | ||||
|       :key="eventDate" | ||||
|       data-testid="timeline-group" | ||||
|       class="timeline-group" | ||||
|     > | ||||
|       <div class="gl-pb-3 gl-border-gray-50 gl-border-1 gl-border-b-solid"> | ||||
|         <strong class="gl-font-size-h2" data-testid="event-date">{{ eventDate }}</strong> | ||||
|       </div> | ||||
|       <ul class="notes main-notes-list"> | ||||
|       <h2 | ||||
|         class="gl-font-size-h2 gl-my-0 gl-py-5 gl-border-gray-50 gl-border-1 gl-border-b-solid" | ||||
|         data-testid="event-date" | ||||
|       > | ||||
|         {{ eventDate }} | ||||
|       </h2> | ||||
| 
 | ||||
|       <ul class="notes main-notes-list gl-pt-2!"> | ||||
|         <li | ||||
|           v-for="(event, eventIndex) in events" | ||||
|           :key="eventIndex" | ||||
|  |  | |||
|  | @ -19,20 +19,18 @@ export default { | |||
|       }, | ||||
|       step3: { | ||||
|         label: __('Step 3.'), | ||||
|         help: __( | ||||
|           'Merge the feature branch into the target branch and fix any conflicts. %{linkStart}How do I fix them?%{linkEnd}', | ||||
|         ), | ||||
|         help: __('Resolve any conflicts. %{linkStart}How do I fix them?%{linkEnd}'), | ||||
|       }, | ||||
|       step4: { | ||||
|         label: __('Step 4.'), | ||||
|         help: __('Push the target branch up to GitLab.'), | ||||
|         help: __('Push the source branch up to GitLab.'), | ||||
|       }, | ||||
|     }, | ||||
|     copyCommands: __('Copy commands'), | ||||
|     tip: __( | ||||
|       '%{strongStart}Tip:%{strongEnd} You can also check out merge requests locally. %{linkStart}Learn more.%{linkEnd}', | ||||
|       '%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}.', | ||||
|     ), | ||||
|     title: __('Check out, review, and merge locally'), | ||||
|     title: __('Check out, review, and resolve locally'), | ||||
|   }, | ||||
|   components: { | ||||
|     GlModal, | ||||
|  | @ -93,21 +91,11 @@ export default { | |||
|         : `git fetch origin\ngit checkout -b ${this.escapedSourceBranch} ${escapedOriginBranch}`; | ||||
|     }, | ||||
|     mergeInfo2() { | ||||
|       return this.isFork | ||||
|         ? `git fetch origin\ngit checkout ${this.escapedTargetBranch}\ngit merge --no-ff ${this.escapedForkBranch}` | ||||
|         : `git fetch origin\ngit checkout ${this.escapedTargetBranch}\ngit merge --no-ff ${this.escapedSourceBranch}`; | ||||
|     }, | ||||
|     mergeInfo3() { | ||||
|       return this.canMerge | ||||
|         ? `git push origin ${this.escapedTargetBranch}` | ||||
|         : __('Note that pushing to GitLab requires write access to this repository.'); | ||||
|       return `git push origin ${this.escapedSourceBranch}`; | ||||
|     }, | ||||
|     escapedForkBranch() { | ||||
|       return escapeShellString(`${this.sourceProjectPath}-${this.sourceBranch}`); | ||||
|     }, | ||||
|     escapedTargetBranch() { | ||||
|       return escapeShellString(this.targetBranch); | ||||
|     }, | ||||
|     escapedSourceBranch() { | ||||
|       return escapeShellString(this.sourceBranch); | ||||
|     }, | ||||
|  | @ -145,6 +133,18 @@ export default { | |||
|         class="gl-shadow-none! gl-bg-transparent! gl-flex-shrink-0" | ||||
|       /> | ||||
|     </div> | ||||
|     <p v-if="reviewingDocsPath"> | ||||
|       <gl-sprintf data-testid="docs-tip" :message="$options.i18n.tip"> | ||||
|         <template #strong="{ content }"> | ||||
|           <strong>{{ content }}</strong> | ||||
|         </template> | ||||
|         <template #link="{ content }"> | ||||
|           <gl-link class="gl-display-inline-block" :href="reviewingDocsPath" target="_blank">{{ | ||||
|             content | ||||
|           }}</gl-link> | ||||
|         </template> | ||||
|       </gl-sprintf> | ||||
|     </p> | ||||
| 
 | ||||
|     <p> | ||||
|       <strong> | ||||
|  | @ -164,6 +164,12 @@ export default { | |||
|         </template> | ||||
|       </gl-sprintf> | ||||
|     </p> | ||||
|     <p> | ||||
|       <strong> | ||||
|         {{ $options.i18n.steps.step4.label }} | ||||
|       </strong> | ||||
|       {{ $options.i18n.steps.step4.help }} | ||||
|     </p> | ||||
|     <div class="gl-display-flex"> | ||||
|       <pre class="gl-w-full" data-testid="how-to-merge-instructions">{{ mergeInfo2 }}</pre> | ||||
|       <clipboard-button | ||||
|  | @ -172,31 +178,5 @@ export default { | |||
|         class="gl-shadow-none! gl-bg-transparent! gl-flex-shrink-0" | ||||
|       /> | ||||
|     </div> | ||||
|     <p> | ||||
|       <strong> | ||||
|         {{ $options.i18n.steps.step4.label }} | ||||
|       </strong> | ||||
|       {{ $options.i18n.steps.step4.help }} | ||||
|     </p> | ||||
|     <div class="gl-display-flex"> | ||||
|       <pre class="gl-w-full" data-testid="how-to-merge-instructions">{{ mergeInfo3 }}</pre> | ||||
|       <clipboard-button | ||||
|         :text="mergeInfo3" | ||||
|         :title="$options.i18n.copyCommands" | ||||
|         class="gl-shadow-none! gl-bg-transparent! gl-flex-shrink-0" | ||||
|       /> | ||||
|     </div> | ||||
|     <p v-if="reviewingDocsPath"> | ||||
|       <gl-sprintf data-testid="docs-tip" :message="$options.i18n.tip"> | ||||
|         <template #strong="{ content }"> | ||||
|           <strong>{{ content }}</strong> | ||||
|         </template> | ||||
|         <template #link="{ content }"> | ||||
|           <gl-link class="gl-display-inline-block" :href="reviewingDocsPath" target="_blank">{{ | ||||
|             content | ||||
|           }}</gl-link> | ||||
|         </template> | ||||
|       </gl-sprintf> | ||||
|     </p> | ||||
|   </gl-modal> | ||||
| </template> | ||||
|  |  | |||
|  | @ -74,7 +74,7 @@ export default { | |||
|       return this.initialLoading || this.changeNotesSortOrderAfterLoading; | ||||
|     }, | ||||
|     showTimeline() { | ||||
|       return this.notesArray?.length && !this.changeNotesSortOrderAfterLoading; | ||||
|       return !this.changeNotesSortOrderAfterLoading; | ||||
|     }, | ||||
|     showLoadingMoreSkeleton() { | ||||
|       return this.isLoadingMore && !this.changeNotesSortOrderAfterLoading; | ||||
|  |  | |||
|  | @ -68,3 +68,7 @@ | |||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .timeline-event-note .md p { | ||||
|   @include gl-text-gray-700; | ||||
| } | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ module MetricsDashboard | |||
|   def all_dashboards | ||||
|     dashboard_finder | ||||
|       .find_all_paths(project_for_dashboard) | ||||
|       .map(&method(:amend_dashboard)) | ||||
|       .map { |dashboard| amend_dashboard(dashboard) } | ||||
|   end | ||||
| 
 | ||||
|   def amend_dashboard(dashboard) | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ module RequiresWhitelistedMonitoringClient | |||
|   end | ||||
| 
 | ||||
|   def ip_whitelist | ||||
|     @ip_whitelist ||= Settings.monitoring.ip_whitelist.map(&IPAddr.method(:new)) | ||||
|     @ip_whitelist ||= Settings.monitoring.ip_whitelist.map { |ip| IPAddr.new(ip) } | ||||
|   end | ||||
| 
 | ||||
|   def valid_token? | ||||
|  |  | |||
|  | @ -49,7 +49,6 @@ class Projects::MergeRequests::DraftsController < Projects::MergeRequests::Appli | |||
|   def publish | ||||
|     result = DraftNotes::PublishService.new(merge_request, current_user).execute(draft_note(allow_nil: true)) | ||||
| 
 | ||||
|     if Feature.enabled?(:mr_review_submit_comment, @project) | ||||
|     if create_note_params[:note] | ||||
|       ::Notes::CreateService.new(@project, current_user, create_note_params).execute | ||||
| 
 | ||||
|  | @ -67,7 +66,6 @@ class Projects::MergeRequests::DraftsController < Projects::MergeRequests::Appli | |||
| 
 | ||||
|       merge_request_activity_counter.track_submit_review_approve(user: current_user) | ||||
|     end | ||||
|     end | ||||
| 
 | ||||
|     if result[:status] == :success | ||||
|       head :ok | ||||
|  | @ -145,7 +143,7 @@ class Projects::MergeRequests::DraftsController < Projects::MergeRequests::Appli | |||
|     user_ids = notes.map(&:author_id) | ||||
|     project.team.max_member_access_for_user_ids(user_ids) | ||||
| 
 | ||||
|     notes.map(&method(:render_draft_note)) | ||||
|     notes.map { |note| render_draft_note(note) } | ||||
|   end | ||||
| 
 | ||||
|   def render_draft_note(note) | ||||
|  |  | |||
|  | @ -40,7 +40,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo | |||
|     push_frontend_feature_flag(:refactor_security_extension, @project) | ||||
|     push_frontend_feature_flag(:refactor_code_quality_inline_findings, project) | ||||
|     push_frontend_feature_flag(:moved_mr_sidebar, project) | ||||
|     push_frontend_feature_flag(:mr_review_submit_comment, project) | ||||
|     push_frontend_feature_flag(:mr_experience_survey, project) | ||||
|     push_frontend_feature_flag(:realtime_reviewers, project) | ||||
|     push_frontend_feature_flag(:realtime_mr_status_change, project) | ||||
|  |  | |||
|  | @ -12,9 +12,9 @@ module BulkImports | |||
|       ::BulkImports::Entity | ||||
|         .preload(:failures) # rubocop: disable CodeReuse/ActiveRecord | ||||
|         .by_user_id(user.id) | ||||
|         .then(&method(:filter_by_bulk_import)) | ||||
|         .then(&method(:filter_by_status)) | ||||
|         .then(&method(:sort)) | ||||
|         .then { |entities| filter_by_bulk_import(entities) } | ||||
|         .then { |entities| filter_by_status(entities) } | ||||
|         .then { |entities| sort(entities) } | ||||
|     end | ||||
| 
 | ||||
|     private | ||||
|  |  | |||
|  | @ -18,7 +18,8 @@ module FeatureFlagsHelper | |||
|       feature_flags_path: project_feature_flags_path(@project), | ||||
|       environments_endpoint: search_project_environments_path(@project, format: :json), | ||||
|       strategy_type_docs_page_path: help_page_path('operations/feature_flags', anchor: 'feature-flag-strategies'), | ||||
|       environments_scope_docs_path: help_page_path('ci/environments/index.md', anchor: 'scope-environments-with-specs') | ||||
|       environments_scope_docs_path: help_page_path('ci/environments/index.md', | ||||
|                                     anchor: 'limit-the-environment-scope-of-a-cicd-variable') | ||||
|     } | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -245,7 +245,7 @@ module Clusters | |||
|     end | ||||
| 
 | ||||
|     def persisted_applications | ||||
|       APPLICATIONS_ASSOCIATIONS.map(&method(:public_send)).compact | ||||
|       APPLICATIONS_ASSOCIATIONS.filter_map { |association_name| public_send(association_name) } # rubocop:disable GitlabSecurity/PublicSend | ||||
|     end | ||||
| 
 | ||||
|     def applications | ||||
|  |  | |||
|  | @ -49,7 +49,9 @@ module PrometheusAdapter | |||
|       query_class = query_klass_for(query_name) | ||||
|       query_args = build_query_args(*args) | ||||
| 
 | ||||
|       with_reactive_cache(query_class.name, *query_args, &query_class.method(:transform_reactive_result)) | ||||
|       with_reactive_cache(query_class.name, *query_args) do |result| | ||||
|         query_class.transform_reactive_result(result) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Cache metrics for specific environment | ||||
|  |  | |||
|  | @ -86,7 +86,7 @@ module TokenAuthenticatable | |||
| 
 | ||||
|     def token_authenticatable_module | ||||
|       @token_authenticatable_module ||= | ||||
|         const_set(:TokenAuthenticatable, Module.new).tap(&method(:include)) | ||||
|         const_set(:TokenAuthenticatable, Module.new).tap { |mod| include mod } | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -497,7 +497,7 @@ class ContainerRepository < ApplicationRecord | |||
| 
 | ||||
|     digests = tags.map { |tag| tag.digest }.compact.to_set | ||||
| 
 | ||||
|     digests.map(&method(:delete_tag_by_digest)).all? | ||||
|     digests.map { |digest| delete_tag_by_digest(digest) }.all? | ||||
|   end | ||||
| 
 | ||||
|   def delete_tag_by_digest(digest) | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ class ProgrammingLanguage < ApplicationRecord | |||
|   # Returns all programming languages which match any of the given names (case | ||||
|   # insensitively). | ||||
|   scope :with_name_case_insensitive, ->(*names) do | ||||
|     sanitized_names = names.map(&method(:sanitize_sql_like)) | ||||
|     sanitized_names = names.map { |name| sanitize_sql_like(name) } | ||||
|     where(arel_table[:name].matches_any(sanitized_names)) | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ module Packages | |||
|         package_detail[:nuget_metadatum] = @package.nuget_metadatum if @package.nuget_metadatum | ||||
|         package_detail[:composer_metadatum] = @package.composer_metadatum if @package.composer_metadatum | ||||
|         package_detail[:conan_metadatum] = @package.conan_metadatum if @package.conan_metadatum | ||||
|         package_detail[:dependency_links] = @package.dependency_links.map(&method(:build_dependency_links)) | ||||
|         package_detail[:dependency_links] = @package.dependency_links.map { |link| build_dependency_links(link) } | ||||
|         package_detail[:pipeline] = build_pipeline_info(@package.pipeline) if @package.pipeline | ||||
|         package_detail[:pipelines] = build_pipeline_infos(@package.pipelines) if @package.pipelines.present? | ||||
| 
 | ||||
|  |  | |||
|  | @ -42,13 +42,14 @@ module Ci | |||
|       end | ||||
| 
 | ||||
|       def update_stages! | ||||
|         pipeline.stages.ordered.each(&method(:update_stage!)) | ||||
|         pipeline.stages.ordered.each { |stage| update_stage!(stage) } | ||||
|       end | ||||
| 
 | ||||
|       def update_stage!(stage) | ||||
|         # Update processables for a given stage in bulk/slices | ||||
|         ids = @collection.created_processable_ids_for_stage_position(stage.position) | ||||
|         ids.in_groups_of(BATCH_SIZE, false, &method(:update_processables!)) | ||||
|         @collection | ||||
|           .created_processable_ids_for_stage_position(stage.position) | ||||
|           .in_groups_of(BATCH_SIZE, false) { |ids| update_processables!(ids) } | ||||
| 
 | ||||
|         status = @collection.status_for_stage_position(stage.position) | ||||
|         stage.set_status(status) | ||||
|  | @ -62,7 +63,7 @@ module Ci | |||
|           .ordered_by_stage | ||||
|           .select_with_aggregated_needs(project) | ||||
| 
 | ||||
|         created_processables.each(&method(:update_processable!)) | ||||
|         created_processables.each { |processable| update_processable!(processable) } | ||||
|       end | ||||
| 
 | ||||
|       def update_pipeline! | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ module Ci | |||
|       def execute | ||||
|         params | ||||
|           .fetch(:histograms, []) | ||||
|           .each(&method(:observe)) | ||||
|           .each { |data| observe(data) } | ||||
| 
 | ||||
|         ServiceResponse.success(http_status: :created) | ||||
|       end | ||||
|  |  | |||
|  | @ -38,7 +38,7 @@ module Users | |||
|     end | ||||
| 
 | ||||
|     def render_participants_as_hash(participants) | ||||
|       participants.map(&method(:participant_as_hash)) | ||||
|       participants.map { |participant| participant_as_hash(participant) } | ||||
|     end | ||||
| 
 | ||||
|     def participant_as_hash(participant) | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ module Discussions | |||
|     end | ||||
| 
 | ||||
|     def execute | ||||
|       discussions.each(&method(:resolve_discussion)) | ||||
|       discussions.each { |discussion| resolve_discussion(discussion) } | ||||
| 
 | ||||
|       after_resolve_cleanup | ||||
|     end | ||||
|  |  | |||
|  | @ -29,7 +29,9 @@ module Jira | |||
|         end | ||||
| 
 | ||||
|         def map_projects(response) | ||||
|           response.map { |v| JIRA::Resource::Project.build(client, v) }.select(&method(:match_query?)) | ||||
|           response | ||||
|             .map { |v| JIRA::Resource::Project.build(client, v) } | ||||
|             .select { |jira_project| match_query?(jira_project) } | ||||
|         end | ||||
| 
 | ||||
|         def match_query?(jira_project) | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ module MergeRequests | |||
| 
 | ||||
|     def refresh_merge_requests! | ||||
|       # n + 1: https://gitlab.com/gitlab-org/gitlab-foss/issues/60289 | ||||
|       Gitlab::GitalyClient.allow_n_plus_1_calls(&method(:find_new_commits)) | ||||
|       Gitlab::GitalyClient.allow_n_plus_1_calls { find_new_commits } | ||||
| 
 | ||||
|       # Be sure to close outstanding MRs before reloading them to avoid generating an | ||||
|       # empty diff during a manual merge | ||||
|  |  | |||
|  | @ -106,7 +106,7 @@ module Packages | |||
|                                   .with_debian_architecture_name(architecture&.name) | ||||
|                                   .with_debian_file_type(package_file_type) | ||||
|                                   .find_each | ||||
|                                   .map(&method(:package_stanza_from_fields)) | ||||
|                                   .map { |package_file| package_stanza_from_fields(package_file) } | ||||
|         reuse_or_create_component_file(component, component_file_type, architecture, paragraphs.join("\n")) | ||||
|       end | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,8 +22,9 @@ module Projects | |||
|       private | ||||
| 
 | ||||
|       def delete_tags | ||||
|         delete_service.execute | ||||
|                       .tap(&method(:log_response)) | ||||
|         delete_service | ||||
|           .execute | ||||
|           .tap { |response| log_response(response) } | ||||
|       end | ||||
| 
 | ||||
|       def delete_service | ||||
|  |  | |||
|  | @ -2,7 +2,8 @@ | |||
| 
 | ||||
| module Projects | ||||
|   class RefreshBuildArtifactsSizeStatisticsService | ||||
|     BATCH_SIZE = 1000 | ||||
|     BATCH_SIZE = 500 | ||||
|     REFRESH_INTERVAL_SECONDS = 0.1 | ||||
| 
 | ||||
|     def execute | ||||
|       refresh = Projects::BuildArtifactsSizeRefresh.process_next_refresh! | ||||
|  | @ -22,6 +23,8 @@ module Projects | |||
| 
 | ||||
|           ProjectStatistics.bulk_increment_statistic(refresh.project, :build_artifacts_size, increments) | ||||
|         end | ||||
| 
 | ||||
|         sleep REFRESH_INTERVAL_SECONDS | ||||
|       else | ||||
|         refresh.schedule_finalize! | ||||
|       end | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ | |||
| %ul | ||||
|   %li | ||||
|     = html_escape(_('%{code_open}Protected:%{code_close} Only exposed to protected branches or protected tags.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe } | ||||
|     = link_to _('Learn more.'), help_page_path('ci/variables/index', anchor: 'protected-cicd-variables'), target: '_blank', rel: 'noopener noreferrer' | ||||
|     = link_to _('Learn more.'), help_page_path('ci/variables/index', anchor: 'protect-a-cicd-variable'), target: '_blank', rel: 'noopener noreferrer' | ||||
|   %li | ||||
|     = html_escape(_('%{code_open}Masked:%{code_close} Hidden in job logs. Must match masking requirements.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe } | ||||
|     = link_to _('Learn more.'), help_page_path('ci/variables/index', anchor: 'mask-a-cicd-variable'), target: '_blank', rel: 'noopener noreferrer' | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ | |||
|   .settings-content | ||||
|     - if ci_variable_protected_by_default? | ||||
|       %p.settings-message.text-center | ||||
|         - link_start = '<a href="%{url}">'.html_safe % { url: help_page_path('ci/variables/index', anchor: 'protected-cicd-variables') } | ||||
|         - link_start = '<a href="%{url}">'.html_safe % { url: help_page_path('ci/variables/index', anchor: 'protect-a-cicd-variable') } | ||||
|         = s_('Environment variables on this GitLab instance are configured to be %{link_start}protected%{link_end} by default.').html_safe % { link_start: link_start, link_end: '</a>'.html_safe } | ||||
|     #js-instance-variables{ data: { endpoint: admin_ci_variables_path, maskable_regex: ci_variable_maskable_regex, protected_by_default: ci_variable_protected_by_default?.to_s} } | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,6 +18,6 @@ | |||
|         impersonation: true, | ||||
|         token: @impersonation_token, | ||||
|         scopes: @scopes, | ||||
|         help_path: help_page_path('api/index', anchor: 'impersonation-tokens') | ||||
|         help_path: help_page_path('api/rest/index', anchor: 'impersonation-tokens') | ||||
| 
 | ||||
|     #js-access-token-table-app{ data: { access_token_type: type, access_token_type_plural: type_plural, initial_active_access_tokens: @active_impersonation_tokens.to_json, information: _("To see all the user's personal access tokens you must impersonate them first.") } } | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
|   = render Pajamas::AlertComponent.new(variant: :warning, show_icon: false, dismissible: false, | ||||
|     alert_options: { class: 'gl-mb-3'}) do |c| | ||||
|     = c.body do | ||||
|       - link_start = '<a href="%{url}">'.html_safe % { url: help_page_path('ci/variables/index', anchor: 'protected-cicd-variables') } | ||||
|       - link_start = '<a href="%{url}">'.html_safe % { url: help_page_path('ci/variables/index', anchor: 'protect-a-cicd-variable') } | ||||
|       = _('Environment variables are configured by your administrator to be %{link_start}protected%{link_end} by default.').html_safe % { link_start: link_start, link_end: '</a>'.html_safe } | ||||
| 
 | ||||
| - is_group = !@group.nil? | ||||
|  | @ -23,10 +23,10 @@ | |||
|   aws_tip_deploy_link: help_page_path('ci/cloud_deployment/index.md', anchor: 'deploy-your-application-to-ecs'), | ||||
|   aws_tip_commands_link: help_page_path('ci/cloud_deployment/index.md', anchor: 'use-an-image-to-run-aws-commands'), | ||||
|   aws_tip_learn_link: help_page_path('ci/cloud_deployment/index.md'), | ||||
|   contains_variable_reference_link: help_page_path('ci/variables/index', anchor: 'expand-cicd-variables'), | ||||
|   protected_environment_variables_link: help_page_path('ci/variables/index', anchor: 'protected-cicd-variables'), | ||||
|   contains_variable_reference_link: help_page_path('ci/variables/index', anchor: 'prevent-cicd-variable-expansion'), | ||||
|   protected_environment_variables_link: help_page_path('ci/variables/index', anchor: 'protect-a-cicd-variable'), | ||||
|   masked_environment_variables_link: help_page_path('ci/variables/index', anchor: 'mask-a-cicd-variable'), | ||||
|   environment_scope_link: help_page_path('ci/environments/index', anchor: 'scope-environments-with-specs') } } | ||||
|   environment_scope_link: help_page_path('ci/environments/index', anchor: 'limit-the-environment-scope-of-a-cicd-variable') } } | ||||
| 
 | ||||
| - if !@group && @project.group | ||||
|   .settings-header.border-top.gl-mt-6 | ||||
|  |  | |||
|  | @ -10,5 +10,5 @@ | |||
|                      user_callout_id: Users::CalloutsHelper::FEATURE_FLAGS_NEW_VERSION, | ||||
|                      show_user_callout: show_feature_flags_new_version?.to_s, | ||||
|                      strategy_type_docs_page_path: help_page_path('operations/feature_flags', anchor: 'feature-flag-strategies'), | ||||
|                      environments_scope_docs_path: help_page_path('ci/environments/index.md', anchor: 'scope-environments-with-specs'), | ||||
|                      environments_scope_docs_path: help_page_path('ci/environments/index.md', anchor: 'limit-the-environment-scope-of-a-cicd-variable'), | ||||
|                      project_id: @project.id } } | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ module Gitlab | |||
| 
 | ||||
|       def mark_imports_without_jid_as_failed! | ||||
|         enqueued_import_states_without_jid | ||||
|           .each(&method(:mark_as_failed)) | ||||
|           .each { |import_state| mark_as_failed(import_state) } | ||||
|           .size | ||||
|       end | ||||
| 
 | ||||
|  | @ -61,7 +61,7 @@ module Gitlab | |||
|         ) | ||||
| 
 | ||||
|         completed_import_states | ||||
|           .each(&method(:mark_as_failed)) | ||||
|           .each { |import_state| mark_as_failed(import_state) } | ||||
|           .size | ||||
|       end | ||||
| 
 | ||||
|  |  | |||
|  | @ -99,7 +99,7 @@ module ObjectStorage | |||
|     end | ||||
| 
 | ||||
|     def migrate(uploads) | ||||
|       uploads.map(&method(:process_upload)) | ||||
|       uploads.map { |upload| process_upload(upload) } | ||||
|     end | ||||
| 
 | ||||
|     def process_upload(upload) | ||||
|  |  | |||
|  | @ -1,8 +0,0 @@ | |||
| --- | ||||
| name: mr_review_submit_comment | ||||
| introduced_by_url: | ||||
| rollout_issue_url: | ||||
| milestone: '15.1' | ||||
| type: development | ||||
| group: group::code review | ||||
| default_enabled: true | ||||
|  | @ -10,17 +10,15 @@ module InjectEnterpriseEditionModule | |||
|   end | ||||
| 
 | ||||
|   def extend_mod_with(constant_name, namespace: Object) | ||||
|     each_extension_for( | ||||
|       constant_name, | ||||
|       namespace, | ||||
|       &method(:extend)) | ||||
|     each_extension_for(constant_name, namespace) do |constant| | ||||
|       extend constant | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def include_mod_with(constant_name, namespace: Object) | ||||
|     each_extension_for( | ||||
|       constant_name, | ||||
|       namespace, | ||||
|       &method(:include)) | ||||
|     each_extension_for(constant_name, namespace) do |constant| | ||||
|       include constant | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def prepend_mod(with_descendants: false) | ||||
|  |  | |||
|  | @ -0,0 +1,13 @@ | |||
| - title: "Configuring Redis config file paths using environment variables is deprecated" | ||||
|   announcement_milestone: "15.8" | ||||
|   removal_milestone: "16.0" | ||||
|   breaking_change: true | ||||
|   reporter: jacobvosmaer-gitlab | ||||
|   stage: platforms | ||||
|   issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/388255 | ||||
|   body: | | ||||
|     You can no longer specify Redis configuration file locations | ||||
|     using the environment variables like `GITLAB_REDIS_CACHE_CONFIG_FILE` or | ||||
|     `GITLAB_REDIS_QUEUES_CONFIG_FILE`. Use the default | ||||
|     config file locations instead, for example `config/redis.cache.yml` or | ||||
|     `config/redis.queues.yml`. | ||||
|  | @ -136,7 +136,7 @@ | |||
|   self-managed: true | ||||
|   gitlab-com: true | ||||
|   available_in: [Free, Premium, Ultimate] | ||||
|   documentation_link: https://docs.gitlab.com/ee/ci/variables/#expand-cicd-variables | ||||
|   documentation_link: https://docs.gitlab.com/ee/ci/variables/#prevent-cicd-variable-expansion | ||||
|   image_url: https://about.gitlab.com/images/15_7/raw.png | ||||
|   published_at: 2022-12-22 | ||||
|   release: 15.7 | ||||
|  |  | |||
|  | @ -241,7 +241,7 @@ You can make changes to your default rate limits from the Admin Area. For more i | |||
| - Review the [rate limit on raw endpoints](../user/admin_area/settings/rate_limits_on_raw_endpoints.md). The default setting is 300 requests per minute for raw file access. | ||||
| - Review the [import/export rate limits](../user/admin_area/settings/import_export_rate_limits.md) of the six active defaults. | ||||
| 
 | ||||
| For more information about API and rate limits, see our [API page](../api/index.md). | ||||
| For more information about API and rate limits, see our [API page](../api/rest/index.md). | ||||
| 
 | ||||
| ## API and rate limits for GitLab SaaS | ||||
| 
 | ||||
|  | @ -255,7 +255,7 @@ Rate limits also improve the security of your application. | |||
| You can make changes to your default rate limits from the Admin Area. For more information about configuration, see the [Admin Area page](../security/rate_limits.md#configurable-limits). | ||||
| 
 | ||||
| - Review the rate limit page. | ||||
| - Read our [API page](../api/index.md) for more information about API and rate limiting. | ||||
| - Read our [API page](../api/rest/index.md) for more information about API and rate limiting. | ||||
| 
 | ||||
| ### GitLab SaaS-specific block and error responses | ||||
| 
 | ||||
|  |  | |||
|  | @ -379,7 +379,7 @@ and to limit memory consumption. | |||
| When using offset-based pagination in the REST API, there is a limit to the maximum | ||||
| requested offset into the set of results. This limit is only applied to endpoints that | ||||
| also support keyset-based pagination. More information about pagination options can be | ||||
| found in the [API documentation section on pagination](../api/index.md#pagination). | ||||
| found in the [API documentation section on pagination](../api/rest/index.md#pagination). | ||||
| 
 | ||||
| To set this limit for a self-managed installation, run the following in the | ||||
| [GitLab Rails console](operations/rails_console.md#starting-a-rails-console-session): | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ GET /projects/:id/access_requests | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -73,7 +73,7 @@ POST /projects/:id/access_requests | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                             | | ||||
| | --------- | -------------- | -------- |-----------------------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group or project](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group or project](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -106,7 +106,7 @@ PUT /projects/:id/access_requests/:user_id/approve | |||
| 
 | ||||
| | Attribute      | Type           | Required | Description | | ||||
| | -------------- | -------------- | -------- | ----------- | | ||||
| | `id`           | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`           | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `user_id`      | integer        | yes      | The user ID of the access requester                                                                             | | ||||
| | `access_level` | integer        | no       | A valid access level (defaults: `30`, the Developer role)                                                   | | ||||
| 
 | ||||
|  | @ -141,7 +141,7 @@ DELETE /projects/:id/access_requests/:user_id | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `user_id` | integer        | yes      | The user ID of the access requester                                                                             | | ||||
| 
 | ||||
| Example request: | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ POST /projects/:id/alert_management_alerts/:alert_iid/metric_images | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `alert_iid` | integer | yes      | The internal ID of a project's alert. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -46,7 +46,7 @@ GET /projects/:id/alert_management_alerts/:alert_iid/metric_images | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `alert_iid` | integer | yes      | The internal ID of a project's alert. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -84,7 +84,7 @@ PUT /projects/:id/alert_management_alerts/:alert_iid/metric_images/:image_id | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `alert_iid` | integer | yes      | The internal ID of a project's alert. | | ||||
| | `image_id` | integer | yes      | The ID of the image. | | ||||
| | `url` | string | no      | The URL to view more metrics information. | | ||||
|  | @ -115,7 +115,7 @@ DELETE /projects/:id/alert_management_alerts/:alert_iid/metric_images/:image_id | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `alert_iid` | integer | yes      | The internal ID of a project's alert. | | ||||
| | `image_id` | integer | yes      | The ID of the image. | | ||||
| 
 | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w | |||
| The Audit Events API allows you to retrieve [instance audit events](../administration/audit_events.md#instance-events). | ||||
| This API cannot retrieve group or project audit events. | ||||
| 
 | ||||
| To retrieve audit events using the API, you must [authenticate yourself](index.md#authentication) as an Administrator. | ||||
| To retrieve audit events using the API, you must [authenticate yourself](rest/index.md#authentication) as an Administrator. | ||||
| 
 | ||||
| ### Retrieve all instance audit events | ||||
| 
 | ||||
|  | @ -31,7 +31,7 @@ GET /audit_events | |||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are paginated. | ||||
| 
 | ||||
| Read more on [pagination](index.md#pagination). | ||||
| Read more on [pagination](rest/index.md#pagination). | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/audit_events" | ||||
|  | @ -142,7 +142,7 @@ A user with: | |||
| - The Owner role can retrieve group audit events of all users. | ||||
| - The Developer or Maintainer role is limited to group audit events based on their individual actions. | ||||
| 
 | ||||
| This endpoint supports both offset-based and [keyset-based](index.md#keyset-based-pagination) pagination. Keyset-based | ||||
| This endpoint supports both offset-based and [keyset-based](rest/index.md#keyset-based-pagination) pagination. Keyset-based | ||||
| pagination is recommended when requesting consecutive pages of results. | ||||
| 
 | ||||
| ### Retrieve all group audit events | ||||
|  | @ -153,14 +153,14 @@ GET /groups/:id/audit_events | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `created_after` | string | no | Return group audit events created on or after the given time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ)`  | | ||||
| | `created_before` | string | no | Return group audit events created on or before the given time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) | | ||||
| 
 | ||||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are paginated. | ||||
| 
 | ||||
| Read more on [pagination](index.md#pagination). | ||||
| Read more on [pagination](rest/index.md#pagination). | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/groups/60/audit_events" | ||||
|  | @ -215,7 +215,7 @@ GET /groups/:id/audit_events/:audit_event_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `audit_event_id` | integer | yes | The ID of the audit event | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -260,14 +260,14 @@ GET /projects/:id/audit_events | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `created_after` | string | no | Return project audit events created on or after the given time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`)  | | ||||
| | `created_before` | string | no | Return project audit events created on or before the given time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`) | | ||||
| 
 | ||||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are paginated. | ||||
| 
 | ||||
| Read more on [pagination](index.md#pagination). | ||||
| Read more on [pagination](rest/index.md#pagination). | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/projects/7/audit_events" | ||||
|  | @ -326,7 +326,7 @@ GET /projects/:id/audit_events/:audit_event_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `audit_event_id` | integer | yes | The ID of the audit event | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -38,7 +38,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute      | Type           | Required | Description                                                                  | | ||||
| |:---------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid`/`merge_request_iid`/`snippet_id` | integer        | yes      | ID (`iid` for merge requests/issues, `id` for snippets) of an awardable.     | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -103,7 +103,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute      | Type           | Required | Description                                                                  | | ||||
| |:---------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid`/`merge_request_iid`/`snippet_id` | integer        | yes      | ID (`iid` for merge requests/issues, `id` for snippets) of an awardable.     | | ||||
| | `award_id`     | integer        | yes      | ID of the award emoji.                                                       | | ||||
| 
 | ||||
|  | @ -148,7 +148,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute      | Type           | Required | Description                                                                  | | ||||
| |:---------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid`/`merge_request_iid`/`snippet_id` | integer        | yes      | ID (`iid` for merge requests/issues, `id` for snippets) of an awardable.     | | ||||
| | `name`         | string         | yes      | Name of the emoji without colons.                                            | | ||||
| 
 | ||||
|  | @ -193,7 +193,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute      | Type           | Required | Description                                                                  | | ||||
| |:---------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`           | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid`/`merge_request_iid`/`snippet_id` | integer        | yes      | ID (`iid` for merge requests/issues, `id` for snippets) of an awardable.     | | ||||
| | `award_id`     | integer        | yes      | ID of an award emoji.                                                        | | ||||
| 
 | ||||
|  | @ -225,7 +225,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute   | Type           | Required | Description                                                                  | | ||||
| |:------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid` | integer        | yes      | Internal ID of an issue.                                                     | | ||||
| | `note_id`   | integer        | yes      | ID of a comment (note).                                                      | | ||||
| 
 | ||||
|  | @ -273,7 +273,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute   | Type           | Required | Description                                                                  | | ||||
| |:------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid` | integer        | yes      | Internal ID of an issue.                                                     | | ||||
| | `note_id`   | integer        | yes      | ID of a comment (note).                                                      | | ||||
| | `award_id`  | integer        | yes      | ID of the award emoji.                                                       | | ||||
|  | @ -317,7 +317,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute   | Type           | Required | Description                                                                  | | ||||
| |:------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid` | integer        | yes      | Internal ID of an issue.                                                     | | ||||
| | `note_id`   | integer        | yes      | ID of a comment (note).                                                      | | ||||
| | `name`      | string         | yes      | Name of the emoji without colons.                                            | | ||||
|  | @ -363,7 +363,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute   | Type           | Required | Description                                                                  | | ||||
| |:------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`        | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid` | integer        | yes      | Internal ID of an issue.                                                     | | ||||
| | `note_id`   | integer        | yes      | ID of a comment (note).                                                      | | ||||
| | `award_id`  | integer        | yes      | ID of an award emoji.                                                        | | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ GET /projects/:id/boards | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards" | ||||
|  | @ -105,7 +105,7 @@ GET /projects/:id/boards/:board_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -182,7 +182,7 @@ POST /projects/:id/boards | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name` | string | yes | The name of the new board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -225,7 +225,7 @@ PUT /projects/:id/boards/:board_id | |||
| 
 | ||||
| | Attribute                    | Type           | Required | Description | | ||||
| | ---------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                         | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`                         | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id`                   | integer        | yes      | The ID of a board | | ||||
| | `name`                       | string         | no       | The new name of the board | | ||||
| | `assignee_id` **(PREMIUM)**  | integer        | no       | The assignee the board should be scoped to | | ||||
|  | @ -305,7 +305,7 @@ DELETE /projects/:id/boards/:board_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -323,7 +323,7 @@ GET /projects/:id/boards/:board_id/lists | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -383,7 +383,7 @@ GET /projects/:id/boards/:board_id/lists/:list_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `list_id`| integer | yes | The ID of a board's list | | ||||
| 
 | ||||
|  | @ -418,7 +418,7 @@ POST /projects/:id/boards/:board_id/lists | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `label_id` | integer | no | The ID of a label | | ||||
| | `assignee_id` **(PREMIUM)** | integer | no | The ID of a user | | ||||
|  | @ -461,7 +461,7 @@ PUT /projects/:id/boards/:board_id/lists/:list_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `list_id` | integer | yes | The ID of a board's list | | ||||
| | `position` | integer | yes | The position of the list | | ||||
|  | @ -497,7 +497,7 @@ DELETE /projects/:id/boards/:board_id/lists/:list_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `list_id` | integer | yes | The ID of a board's list | | ||||
| 
 | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| |:----------|:---------------|:---------|:------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user.| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.| | ||||
| | `search`  | string         | no       | Return list of branches containing the search string. You can use `^term` and `term$` to find branches that begin and end with `term` respectively. | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -83,8 +83,8 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                                                  | | ||||
| |:----------|:---------------|:---------|:-------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `branch`  | string         | yes      | [URL-encoded name](index.md#namespaced-path-encoding) of the branch.                                                                                          | | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `branch`  | string         | yes      | [URL-encoded name](rest/index.md#namespaced-path-encoding) of the branch.                                                                                          | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -144,7 +144,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type    | Required | Description                                                                                                  | | ||||
| |:----------|:--------|:---------|:-------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `branch`  | string  | yes      | Name of the branch.                                                                                          | | ||||
| | `ref`     | string  | yes      | Branch name or commit SHA to create branch from.                                                             | | ||||
| 
 | ||||
|  | @ -199,7 +199,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                                                  | | ||||
| |:----------|:---------------|:---------|:-------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `branch`  | string         | yes      | Name of the branch.                                                                                          | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -223,7 +223,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                                                  | | ||||
| |:----------|:---------------|:---------|:-------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type              | Required  | Description                                                                                                     | | ||||
| |-----------|-------------------|-----------|-----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer or string | yes       | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| | `id`      | integer or string | yes       | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| 
 | ||||
| Response: | ||||
| 
 | ||||
|  | @ -103,7 +103,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                                                                                                     | | ||||
| |------------|-------------------|----------|-----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| | `agent_id` | integer           | yes      | ID of the agent                                                                                                 | | ||||
| 
 | ||||
| Response: | ||||
|  | @ -165,7 +165,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type              | Required | Description                                                                                                     | | ||||
| |-----------|-------------------|----------|-----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer or string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| | `id`      | integer or string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| | `name`    | string            | yes      | Name for the agent                                                                                              | | ||||
| 
 | ||||
| Response: | ||||
|  | @ -229,7 +229,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                                                                                                     | | ||||
| |------------|-------------------|----------|-----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user | | ||||
| | `agent_id` | integer           | yes      | ID of the agent                                                                                                 | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -254,7 +254,7 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute  | Type              | Required  | Description                                                                                                      | | ||||
| |------------|-------------------|-----------|------------------------------------------------------------------------------------------------------------------| | ||||
| | `id`       | integer or string | yes       | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id`       | integer or string | yes       | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `agent_id` | integer or string | yes       | ID of the agent.                                                                                                 | | ||||
| 
 | ||||
| Response: | ||||
|  | @ -321,7 +321,7 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                                                                                                       | | ||||
| |------------|-------------------|----------|-------------------------------------------------------------------------------------------------------------------| | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user.  | | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user.  | | ||||
| | `agent_id` | integer           | yes      | ID of the agent.                                                                                                  | | ||||
| | `token_id` | integer           | yes      | ID of the token.                                                                                                  | | ||||
| 
 | ||||
|  | @ -377,7 +377,7 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute     | Type              | Required | Description                                                                                                      | | ||||
| |---------------|-------------------|----------|------------------------------------------------------------------------------------------------------------------| | ||||
| | `id`          | integer or string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id`          | integer or string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `agent_id`    | integer           | yes      | ID of the agent.                                                                                                 | | ||||
| | `name`        | string            | yes      | Name for the token.                                                                                              | | ||||
| | `description` | string            | no       | Description for the token.                                                                                       | | ||||
|  | @ -441,7 +441,7 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                                                                                                      | | ||||
| |------------|-------------------|----------|---------------------------------------------------------------------------------------------------------------- -| | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id`       | integer or string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `agent_id` | integer           | yes      | ID of the agent.                                                                                                 | | ||||
| | `token_id` | integer           | yes      | ID of the token.                                                                                                 | | ||||
| 
 | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ GET /projects/:id/repository/commits | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `ref_name` | string | no | The name of a repository branch, tag or revision range, or if not given the default branch | | ||||
| | `since` | string | no | Only commits after or on this date are returned in ISO 8601 format `YYYY-MM-DDTHH:MM:SSZ` | | ||||
| | `until` | string | no | Only commits before or on this date are returned in ISO 8601 format `YYYY-MM-DDTHH:MM:SSZ` | | ||||
|  | @ -88,12 +88,12 @@ POST /projects/:id/repository/commits | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `branch` | string | yes | Name of the branch to commit into. To create a new branch, also provide either `start_branch` or `start_sha`, and optionally `start_project`. | | ||||
| | `commit_message` | string | yes | Commit message | | ||||
| | `start_branch` | string | no | Name of the branch to start the new branch from | | ||||
| | `start_sha` | string | no | SHA of the commit to start the new branch from | | ||||
| | `start_project` | integer/string | no | The project ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) to start the new branch from. Defaults to the value of `id`. | | ||||
| | `start_project` | integer/string | no | The project ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) to start the new branch from. Defaults to the value of `id`. | | ||||
| | `actions[]` | array | yes | An array of action hashes to commit as a batch. See the next table for what attributes it can take. | | ||||
| | `author_email` | string | no | Specify the commit author's email address | | ||||
| | `author_name` | string | no | Specify the commit author's name | | ||||
|  | @ -177,7 +177,7 @@ Example response: | |||
| } | ||||
| ``` | ||||
| 
 | ||||
| GitLab supports [form encoding](index.md#encoding-api-parameters-of-array-and-hash-types). The following is an example using Commit API with form encoding: | ||||
| GitLab supports [form encoding](rest/index.md#encoding-api-parameters-of-array-and-hash-types). The following is an example using Commit API with form encoding: | ||||
| 
 | ||||
| ```shell | ||||
| curl --request POST \ | ||||
|  | @ -215,7 +215,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha` | string | yes | The commit hash or name of a repository branch or tag | | ||||
| | `stats` | boolean | no | Include commit stats. Default is true | | ||||
| 
 | ||||
|  | @ -270,7 +270,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha` | string | yes | The commit hash  | | ||||
| | `type` | string | no | The scope of commits. Possible values `branch`, `tag`, `all`. Default is `all`.  | | ||||
| 
 | ||||
|  | @ -302,7 +302,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `sha` | string | yes | The commit hash  | | ||||
| | `branch` | string | yes | The name of the branch  | | ||||
| | `dry_run` | boolean | no | Does not commit any changes. Default is false. [Introduced in GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/231032) | | ||||
|  | @ -375,7 +375,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                     | | ||||
| | --------- | ----           | -------- | -----------                                                                     | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `sha`     | string         | yes      | Commit SHA to revert                                                            | | ||||
| | `branch`  | string         | yes      | Target branch name                                                              | | ||||
| | `dry_run` | boolean        | no       | Does not commit any changes. Default is false. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/231032) in GitLab 13.3 | | ||||
|  | @ -443,7 +443,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha` | string | yes | The commit hash or name of a repository branch or tag | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -479,7 +479,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha` | string | yes | The commit hash or name of a repository branch or tag | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -527,7 +527,7 @@ POST /projects/:id/repository/commits/:sha/comments | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha`       | string  | yes | The commit SHA or name of a repository branch or tag | | ||||
| | `note`      | string  | yes | The text of the comment | | ||||
| | `path`      | string  | no  | The file path relative to the repository | | ||||
|  | @ -572,7 +572,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha`     | string | yes | The commit hash or name of a repository branch or tag | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -631,7 +631,7 @@ GET /projects/:id/repository/commits/:sha/statuses | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha`     | string  | yes | The commit SHA | ||||
| | `ref`     | string  | no  | The name of a repository branch or tag or, if not given, the default branch | ||||
| | `stage`   | string  | no  | Filter by [build stage](../ci/yaml/index.md#stages), for example, `test` | ||||
|  | @ -706,7 +706,7 @@ POST /projects/:id/statuses/:sha | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha`     | string  | yes   | The commit SHA | ||||
| | `state`   | string  | yes   | The state of the status. Can be one of the following: `pending`, `running`, `success`, `failed`, `canceled` | ||||
| | `ref`     | string  | no    | The `ref` (branch or tag) to which the status refers | ||||
|  | @ -757,7 +757,7 @@ GET /projects/:id/repository/commits/:sha/merge_requests | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha`     | string  | yes   | The commit SHA | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -829,7 +829,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | ||||
| | `sha` | string | yes | The commit hash or name of a repository branch or tag | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ PUT /projects/:id/ | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `container_registry_access_level` | string | no | The desired visibility of the Container Registry. One of `enabled` (default), `private`, or `disabled`. | | ||||
| 
 | ||||
| Descriptions of the possible values for `container_registry_access_level`: | ||||
|  | @ -83,7 +83,7 @@ Example response: | |||
| ## Container Registry pagination | ||||
| 
 | ||||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are [paginated](index.md#pagination). | ||||
| are [paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| ## List registry repositories | ||||
| 
 | ||||
|  | @ -97,7 +97,7 @@ GET /projects/:id/registry/repositories | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `tags`      | boolean | no | If the parameter is included as true, each repository includes an array of `"tags"` in the response. | | ||||
| | `tags_count` | boolean | no | If the parameter is included as true, each repository includes `"tags_count"` in the response ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32141) in GitLab 13.1). | | ||||
| 
 | ||||
|  | @ -142,7 +142,7 @@ GET /groups/:id/registry/repositories | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
|  | @ -231,7 +231,7 @@ DELETE /projects/:id/registry/repositories/:repository_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `repository_id` | integer | yes | The ID of registry repository. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -251,7 +251,7 @@ GET /projects/:id/registry/repositories/:repository_id/tags | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `repository_id` | integer | yes | The ID of registry repository. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -286,7 +286,7 @@ GET /projects/:id/registry/repositories/:repository_id/tags/:tag_name | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) accessible by the authenticated user. | | ||||
| | `repository_id` | integer | yes | The ID of registry repository. | | ||||
| | `tag_name` | string | yes | The name of tag. | | ||||
| 
 | ||||
|  | @ -320,7 +320,7 @@ DELETE /projects/:id/registry/repositories/:repository_id/tags/:tag_name | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `repository_id` | integer | yes | The ID of registry repository. | | ||||
| | `tag_name` | string | yes | The name of tag. | | ||||
| 
 | ||||
|  | @ -345,7 +345,7 @@ DELETE /projects/:id/registry/repositories/:repository_id/tags | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `repository_id` | integer | yes | The ID of registry repository. | | ||||
| | `name_regex` | string | no | The [re2](https://github.com/google/re2/wiki/Syntax) regex of the name to delete. To delete all tags specify `.*`. **Note:** `name_regex` is deprecated in favor of `name_regex_delete`. This field is validated. | | ||||
| | `name_regex_delete` | string | yes | The [re2](https://github.com/google/re2/wiki/Syntax) regex of the name to delete. To delete all tags specify `.*`. This field is validated. | | ||||
|  |  | |||
|  | @ -33,7 +33,7 @@ GET /projects/:id/dependencies?package_manager=yarn,bundler | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                                                                                                                 | | ||||
| | ------------- | -------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).                                                            | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).                                                            | | ||||
| | `package_manager` | string array   | no       | Returns dependencies belonging to specified package manager. Valid values: `bundler`, `composer`, `conan`, `go`, `gradle`, `maven`, `npm`, `nuget`, `pip`, `pipenv`, `yarn`, `sbt`, or `setuptools`. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -85,4 +85,4 @@ Example response: | |||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are paginated. | ||||
| 
 | ||||
| Read more on [pagination](index.md#pagination). | ||||
| Read more on [pagination](rest/index.md#pagination). | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ DELETE /groups/:id/dependency_proxy/cache | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  |  | |||
|  | @ -86,7 +86,7 @@ GET /projects/:id/deploy_keys | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys" | ||||
|  | @ -188,7 +188,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `key_id`  | integer | yes | The ID of the deploy key | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -222,7 +222,7 @@ POST /projects/:id/deploy_keys | |||
| 
 | ||||
| | Attribute  | Type | Required | Description | | ||||
| | ---------  | ---- | -------- | ----------- | | ||||
| | `id`       | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`       | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `title`    | string  | yes | New deploy key's title | | ||||
| | `key`      | string  | yes | New deploy key | | ||||
| | `can_push` | boolean | no  | Can deploy key push to the project's repository | | ||||
|  | @ -255,7 +255,7 @@ PUT /projects/:id/deploy_keys/:key_id | |||
| 
 | ||||
| | Attribute  | Type | Required | Description | | ||||
| | ---------  | ---- | -------- | ----------- | | ||||
| | `id`       | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`       | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `title`    | string  | no | New deploy key's title | | ||||
| | `can_push` | boolean | no  | Can deploy key push to the project's repository | | ||||
| 
 | ||||
|  | @ -286,7 +286,7 @@ DELETE /projects/:id/deploy_keys/:key_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `key_id`  | integer | yes | The ID of the deploy key | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -303,7 +303,7 @@ POST /projects/:id/deploy_keys/:key_id/enable | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `key_id`  | integer | yes | The ID of the deploy key | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -66,7 +66,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute      | Type           | Required               | Description | | ||||
| |:---------------|:---------------|:-----------------------|:------------| | ||||
| | `id`           | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`           | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `active`       | boolean        | **{dotted-circle}** No | Limit by active status. | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -108,7 +108,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute  | Type           | Required               | Description | | ||||
| | ---------- | -------------- | ---------------------- | ----------- | | ||||
| | `id`       | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`       | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `token_id` | integer        | **{check-circle}** Yes | ID of the deploy token | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -148,7 +148,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute    | Type             | Required               | Description | | ||||
| | ------------ | ---------------- | ---------------------- | ----------- | | ||||
| | `id`         | integer/string   | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`         | integer/string   | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name`       | string           | **{check-circle}** Yes | New deploy token's name | | ||||
| | `expires_at` | datetime         | **{dotted-circle}** No | Expiration date for the deploy token. Does not expire if no value is provided. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | ||||
| | `username`   | string           | **{dotted-circle}** No | Username for deploy token. Default is `gitlab+deploy-token-{n}` | | ||||
|  | @ -193,7 +193,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute  | Type           | Required               | Description | | ||||
| | ---------- | -------------- | ---------------------- | ----------- | | ||||
| | `id`       | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`       | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `token_id` | integer        | **{check-circle}** Yes | ID of the deploy token | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -222,7 +222,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute      | Type           | Required               | Description | | ||||
| |:---------------|:---------------|:-----------------------|:------------| | ||||
| | `id`           | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding). | | ||||
| | `id`           | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding). | | ||||
| | `active`       | boolean        | **{dotted-circle}** No | Limit by active status. | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -264,7 +264,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute   | Type           | Required               | Description | | ||||
| | ----------- | -------------- | ---------------------- | ----------- | | ||||
| | `id`        | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`        | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `token_id`  | integer        | **{check-circle}** Yes | ID of the deploy token | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -304,7 +304,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute    | Type | Required  | Description | | ||||
| | ------------ | ---- | --------- | ----------- | | ||||
| | `id`         | integer/string   | **{check-circle}** Yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`         | integer/string   | **{check-circle}** Yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name`       | string           | **{check-circle}** Yes | New deploy token's name | | ||||
| | `expires_at` | datetime         | **{dotted-circle}** No | Expiration date for the deploy token. Does not expire if no value is provided. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | ||||
| | `username`   | string           | **{dotted-circle}** No | Username for deploy token. Default is `gitlab+deploy-token-{n}` | | ||||
|  | @ -349,7 +349,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute   | Type           | Required               | Description | | ||||
| | ----------- | -------------- | ---------------------- | ----------- | | ||||
| | `id`        | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`        | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `token_id`  | integer        | **{check-circle}** Yes | ID of the deploy token | | ||||
| 
 | ||||
| Example request: | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ GET /projects/:id/deployments | |||
| 
 | ||||
| | Attribute         | Type           | Required | Description                                                                                                     | | ||||
| |-------------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`              | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`              | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `order_by`        | string         | no       | Return deployments ordered by either one of `id`, `iid`, `created_at`, `updated_at`, `finished_at` or `ref` fields. Default is `id`.    | | ||||
| | `sort`            | string         | no       | Return deployments sorted in `asc` or `desc` order. Default is `asc`.                                            | | ||||
| | `updated_after`   | datetime       | no       | Return deployments updated after the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | | ||||
|  | @ -195,7 +195,7 @@ GET /projects/:id/deployments/:deployment_id | |||
| 
 | ||||
| | Attribute | Type    | Required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `deployment_id` | integer | yes      | The ID of the deployment | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -354,7 +354,7 @@ POST /projects/:id/deployments | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                                                     | | ||||
| |---------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user.| | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.| | ||||
| | `environment` | string         | yes      | The [name of the environment](../ci/environments/index.md) to create the deployment for.                        | | ||||
| | `sha`         | string         | yes      | The SHA of the commit that is deployed.                                                                         | | ||||
| | `ref`         | string         | yes      | The name of the branch or tag that is deployed.                                                                 | | ||||
|  | @ -412,7 +412,7 @@ PUT /projects/:id/deployments/:deployment_id | |||
| 
 | ||||
| | Attribute        | Type           | Required | Description         | | ||||
| |------------------|----------------|----------|---------------------| | ||||
| | `id`             | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`             | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `deployment_id`  | integer        | yes      | The ID of the deployment to update. | | ||||
| | `status`         | string         | yes      | The new status of the deployment. One of `running`, `success`, `failed`, or `canceled`.                         | | ||||
| 
 | ||||
|  | @ -482,7 +482,7 @@ DELETE /projects/:id/deployments/:deployment_id | |||
| 
 | ||||
| | Attribute | Type    | Required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `deployment_id` | integer | yes      | The ID of the deployment | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -541,7 +541,7 @@ POST /projects/:id/deployments/:deployment_id/approval | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description                                                                                                     | | ||||
| |-----------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `deployment_id` | integer        | yes      | The ID of the deployment.                                                                                       | | ||||
| | `status`        | string         | yes      | The status of the approval (either `approved` or `rejected`).                                                   | | ||||
| | `comment`       | string         | no       | A comment to go with the approval                                                                               | | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ Label notes are not part of this API, but recorded as separate events in | |||
| 
 | ||||
| By default, `GET` requests return 20 results at a time because the API results are paginated. | ||||
| 
 | ||||
| Read more on [pagination](index.md#pagination). | ||||
| Read more on [pagination](rest/index.md#pagination). | ||||
| 
 | ||||
| ## Issues | ||||
| 
 | ||||
|  | @ -38,7 +38,7 @@ GET /projects/:id/issues/:issue_iid/discussions | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description  | | ||||
| | ------------------- | ---------------- | ---------- | ------------ | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `issue_iid`         | integer          | yes        | The IID of an issue | | ||||
| 
 | ||||
| ```json | ||||
|  | @ -137,7 +137,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `issue_iid`     | integer        | yes      | The IID of an issue | | ||||
| | `discussion_id` | integer        | yes      | The ID of a discussion item | | ||||
| 
 | ||||
|  | @ -158,7 +158,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `issue_iid`     | integer        | yes      | The IID of an issue | | ||||
| | `body`          | string         | yes      | The content of the thread | | ||||
| | `created_at`    | string         | no       | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z` (requires administrator or project/group owner rights) | | ||||
|  | @ -183,7 +183,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `issue_iid`     | integer        | yes      | The IID of an issue | | ||||
| | `discussion_id` | integer        | yes      | The ID of a thread | | ||||
| | `note_id`       | integer        | yes      | The ID of a thread note | | ||||
|  | @ -207,7 +207,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `issue_iid`     | integer        | yes      | The IID of an issue | | ||||
| | `discussion_id` | integer        | yes      | The ID of a thread | | ||||
| | `note_id`       | integer        | yes      | The ID of a thread note | | ||||
|  | @ -230,7 +230,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `issue_iid`     | integer        | yes      | The IID of an issue | | ||||
| | `discussion_id` | integer        | yes      | The ID of a discussion | | ||||
| | `note_id`       | integer        | yes      | The ID of a discussion note | | ||||
|  | @ -252,7 +252,7 @@ GET /projects/:id/snippets/:snippet_id/discussions | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description | | ||||
| | ------------------- | ---------------- | ---------- | ------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `snippet_id`        | integer          | yes        | The ID of an snippet | | ||||
| 
 | ||||
| ```json | ||||
|  | @ -351,7 +351,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `snippet_id`    | integer        | yes      | The ID of an snippet | | ||||
| | `discussion_id` | integer        | yes      | The ID of a discussion item | | ||||
| 
 | ||||
|  | @ -373,7 +373,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `snippet_id`    | integer        | yes      | The ID of an snippet | | ||||
| | `body`          | string         | yes      | The content of a discussion | | ||||
| | `created_at`    | string         | no       | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z` (requires administrator or project/group owner rights) | | ||||
|  | @ -395,7 +395,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `snippet_id`    | integer        | yes      | The ID of an snippet | | ||||
| | `discussion_id` | integer        | yes      | The ID of a thread | | ||||
| | `note_id`       | integer        | yes      | The ID of a thread note | | ||||
|  | @ -419,7 +419,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `snippet_id`    | integer        | yes      | The ID of an snippet | | ||||
| | `discussion_id` | integer        | yes      | The ID of a thread | | ||||
| | `note_id`       | integer        | yes      | The ID of a thread note | | ||||
|  | @ -442,7 +442,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `snippet_id`    | integer        | yes      | The ID of an snippet | | ||||
| | `discussion_id` | integer        | yes      | The ID of a discussion | | ||||
| | `note_id`       | integer        | yes      | The ID of a discussion note | | ||||
|  | @ -464,7 +464,7 @@ GET /groups/:id/epics/:epic_id/discussions | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description  | | ||||
| | ------------------- | ---------------- | ---------- | ------------ | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `epic_id`           | integer          | yes        | The ID of an epic | | ||||
| 
 | ||||
| ```json | ||||
|  | @ -564,7 +564,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `epic_id`       | integer        | yes      | The ID of an epic | | ||||
| | `discussion_id` | integer        | yes      | The ID of a discussion item | | ||||
| 
 | ||||
|  | @ -586,7 +586,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `epic_id`       | integer        | yes      | The ID of an epic | | ||||
| | `body`          | string         | yes      | The content of the thread | | ||||
| | `created_at`    | string         | no       | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z` (requires administrator or project/group owner rights) | | ||||
|  | @ -609,7 +609,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `epic_id`       | integer        | yes      | The ID of an epic | | ||||
| | `discussion_id` | integer        | yes      | The ID of a thread | | ||||
| | `note_id`       | integer        | yes      | The ID of a thread note | | ||||
|  | @ -633,7 +633,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `epic_id`       | integer        | yes      | The ID of an epic | | ||||
| | `discussion_id` | integer        | yes      | The ID of a thread | | ||||
| | `note_id`       | integer        | yes      | The ID of a thread note | | ||||
|  | @ -656,7 +656,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `epic_id`       | integer        | yes      | The ID of an epic | | ||||
| | `discussion_id` | integer        | yes      | The ID of a thread | | ||||
| | `note_id`       | integer        | yes      | The ID of a thread note | | ||||
|  | @ -678,7 +678,7 @@ GET /projects/:id/merge_requests/:merge_request_iid/discussions | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description  | | ||||
| | ------------------- | ---------------- | ---------- | ------------ | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `merge_request_iid` | integer          | yes        | The IID of a merge request | | ||||
| 
 | ||||
| ```json | ||||
|  | @ -842,7 +842,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `merge_request_iid` | integer        | yes      | The IID of a merge request | | ||||
| | `discussion_id`     | integer        | yes      | The ID of a discussion item | | ||||
| 
 | ||||
|  | @ -866,7 +866,7 @@ Parameters for all comments: | |||
| 
 | ||||
| | Attribute                                | Type           | Required | Description | | ||||
| | ---------------------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                                     | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                                     | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `merge_request_iid`                      | integer        | yes      | The IID of a merge request | | ||||
| | `body`                                   | string         | yes      | The content of the thread | | ||||
| | `commit_id`                              | string         | no       | SHA referencing commit to start this thread on | | ||||
|  | @ -1008,7 +1008,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `merge_request_iid` | integer        | yes      | The IID of a merge request | | ||||
| | `discussion_id`     | integer        | yes      | The ID of a thread | | ||||
| | `resolved`          | boolean        | yes      | Resolve/unresolve the discussion | | ||||
|  | @ -1031,7 +1031,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `merge_request_iid` | integer        | yes      | The IID of a merge request | | ||||
| | `discussion_id`     | integer        | yes      | The ID of a thread | | ||||
| | `note_id`           | integer        | yes      | The ID of a thread note | | ||||
|  | @ -1055,7 +1055,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `merge_request_iid` | integer        | yes      | The IID of a merge request | | ||||
| | `discussion_id`     | integer        | yes      | The ID of a thread | | ||||
| | `note_id`           | integer        | yes      | The ID of a thread note | | ||||
|  | @ -1086,7 +1086,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `merge_request_iid` | integer        | yes      | The IID of a merge request | | ||||
| | `discussion_id`     | integer        | yes      | The ID of a thread | | ||||
| | `note_id`           | integer        | yes      | The ID of a thread note | | ||||
|  | @ -1108,7 +1108,7 @@ GET /projects/:id/repository/commits/:commit_id/discussions | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description  | | ||||
| | ------------------- | ---------------- | ---------- | ------------ | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `commit_id`         | string           | yes        | The SHA of a commit | | ||||
| 
 | ||||
| ```json | ||||
|  | @ -1252,7 +1252,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `commit_id`         | string         | yes      | The SHA of a commit | | ||||
| | `discussion_id`     | string         | yes      | The ID of a discussion item | | ||||
| 
 | ||||
|  | @ -1274,7 +1274,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                 | Type           | Required | Description | | ||||
| | ------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `commit_id`               | string         | yes      | The SHA of a commit | | ||||
| | `body`                    | string         | yes      | The content of the thread | | ||||
| | `created_at`              | string         | no       | Date time string, ISO 8601 formatted, such as `2016-03-11T03:45:40Z` (requires administrator or project/group owner rights) | | ||||
|  | @ -1313,7 +1313,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `commit_id`         | string         | yes      | The SHA of a commit | | ||||
| | `discussion_id`     | string         | yes      | The ID of a thread | | ||||
| | `note_id`           | integer        | yes      | The ID of a thread note | | ||||
|  | @ -1337,7 +1337,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `commit_id`         | string         | yes      | The SHA of a commit | | ||||
| | `discussion_id`     | string         | yes      | The ID of a thread | | ||||
| | `note_id`           | integer        | yes      | The ID of a thread note | | ||||
|  | @ -1367,7 +1367,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description | | ||||
| | ------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `commit_id`         | string         | yes      | The SHA of a commit | | ||||
| | `discussion_id`     | string         | yes      | The ID of a thread | | ||||
| | `note_id`           | integer        | yes      | The ID of a thread note | | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ GET /projects/:id/dora/metrics | |||
| 
 | ||||
| | Attribute            | Type             | Required | Description | | ||||
| |:---------------------|:-----------------|:---------|:------------| | ||||
| | `id`                 | integer/string   | yes      | The ID or [URL-encoded path of the project](../index.md#namespaced-path-encoding) can be accessed by the authenticated user. | | ||||
| | `id`                 | integer/string   | yes      | The ID or [URL-encoded path of the project](../rest/index.md#namespaced-path-encoding) can be accessed by the authenticated user. | | ||||
| | `metric`             | string           | yes      | One of `deployment_frequency`, `lead_time_for_changes`, `time_to_restore_service` or `change_failure_rate`. | | ||||
| | `end_date`           | string           | no       | Date range to end at. ISO 8601 Date format, for example `2021-03-01`. Default is the current date. | | ||||
| | `environment_tier`   | string           | no       | The [tier of the environment](../../ci/environments/index.md#deployment-tier-of-environments). Default is `production`. Deprecated, please use `environment_tiers`. | | ||||
|  | @ -64,7 +64,7 @@ GET /groups/:id/dora/metrics | |||
| 
 | ||||
| | Attribute           | Type             | Required | Description | | ||||
| |:--------------------|:-----------------|:---------|:------------| | ||||
| | `id`                | integer/string   | yes      | The ID or [URL-encoded path of the project](../index.md#namespaced-path-encoding) can be accessed by the authenticated user. | | ||||
| | `id`                | integer/string   | yes      | The ID or [URL-encoded path of the project](../rest/index.md#namespaced-path-encoding) can be accessed by the authenticated user. | | ||||
| | `metric`            | string           | yes      | One of `deployment_frequency`, `lead_time_for_changes`, `time_to_restore_service` or `change_failure_rate`. | | ||||
| | `end_date`          | string           | no       | Date range to end at. ISO 8601 Date format, for example `2021-03-01`. Default is the current date. | | ||||
| | `environment_tier`  | string           | no       | The [tier of the environment](../../ci/environments/index.md#deployment-tier-of-environments). Default is `production`. Deprecated, please use `environment_tiers`. | | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ GET /projects/:id/environments | |||
| 
 | ||||
| | Attribute | Type    | Required | Description                                                                                                                                                 | | ||||
| | --------- | ------- | -------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user                                              | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user                                              | | ||||
| | `name`    | string  | no       | Return the environment with this name. Mutually exclusive with `search`                                                                                     | | ||||
| | `search`  | string  | no       | Return list of environments matching the search criteria. Mutually exclusive with `name`. Must be at least 3 characters long. | | ||||
| | `states`  | string  | no       | List all environments that match a specific state. Accepted values: `available`, `stopping`, or `stopped`. If no state value given, returns all environments. | | ||||
|  | @ -135,7 +135,7 @@ GET /projects/:id/environments/:environment_id | |||
| 
 | ||||
| | Attribute | Type    | Required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `environment_id` | integer | yes | The ID of the environment | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -254,7 +254,7 @@ POST /projects/:id/environments | |||
| 
 | ||||
| | Attribute     | Type    | Required | Description                  | | ||||
| | ------------- | ------- | -------- | ---------------------------- | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user        | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user        | | ||||
| | `name`        | string  | yes      | The name of the environment  | | ||||
| | `external_url` | string  | no     | Place to link to for this environment | | ||||
| | `tier`         | string         | no       | The tier of the new environment. Allowed values are `production`, `staging`, `testing`, `development`, and `other` | | ||||
|  | @ -291,7 +291,7 @@ PUT /projects/:id/environments/:environments_id | |||
| 
 | ||||
| | Attribute       | Type    | Required                          | Description                      | | ||||
| | --------------- | ------- | --------------------------------- | -------------------------------  | | ||||
| | `id`            | integer/string | yes                               | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user            | | ||||
| | `id`            | integer/string | yes                               | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user            | | ||||
| | `environment_id` | integer | yes | The ID of the environment  | | ||||
| | `name`          | string  | no                                | [Deprecated and will be removed in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/338897) | | ||||
| | `external_url`  | string  | no                                | The new `external_url`           | | ||||
|  | @ -327,7 +327,7 @@ DELETE /projects/:id/environments/:environment_id | |||
| 
 | ||||
| | Attribute | Type    | Required | Description           | | ||||
| | --------- | ------- | -------- | --------------------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `environment_id` | integer | yes | The ID of the environment | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -350,7 +350,7 @@ DELETE /projects/:id/environments/review_apps | |||
| 
 | ||||
| | Attribute | Type    | Required | Description           | | ||||
| | --------- | ------- | -------- | --------------------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `before`    | datetime | no | The date before which environments can be deleted. Defaults to 30 days ago. Expected in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`). | | ||||
| | `limit`     | integer | no | Maximum number of environments to delete. Defaults to 100. | | ||||
| | `dry_run`   | boolean | no | Defaults to `true` for safety reasons. It performs a dry run where no actual deletion will be performed. Set to `false` to actually delete the environment. | | ||||
|  | @ -391,7 +391,7 @@ POST /projects/:id/environments/:environment_id/stop | |||
| 
 | ||||
| | Attribute        | Type           | Required | Description                                                                                                    | | ||||
| |------------------|----------------|----------|----------------------------------------------------------------------------------------------------------------| | ||||
| | `id`             | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`             | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `environment_id` | integer        | yes      | The ID of the environment                                                                                      | | ||||
| | `force`          | boolean        | no       | Force environment to stop without executing `on_stop` actions                                                     | | ||||
| 
 | ||||
|  | @ -423,7 +423,7 @@ POST /projects/:id/environments/stop_stale | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                                                                                                                                    | | ||||
| |-----------|----------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user                                                                                 | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user                                                                                 | | ||||
| | `before`  | date           | yes      | Stop environments that have been modified or deployed to before the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). Valid inputs are between 10 years ago and 1 week ago | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ If the Epics feature is not available, a `403` status code is returned. | |||
| 
 | ||||
| ## Epic Issues pagination | ||||
| 
 | ||||
| API results [are paginated](index.md#pagination). Requests that return | ||||
| API results [are paginated](rest/index.md#pagination). Requests that return | ||||
| multiple issues default to returning 20 results at a time. | ||||
| 
 | ||||
| ## List issues for an epic | ||||
|  | @ -29,7 +29,7 @@ GET /groups/:id/epics/:epic_iid/issues | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `epic_iid`          | integer/string   | yes        | The internal ID of the epic.  | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -124,7 +124,7 @@ POST /groups/:id/epics/:epic_iid/issues/:issue_id | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `epic_iid`          | integer/string   | yes        | The internal ID of the epic.  | | ||||
| | `issue_id`          | integer/string   | yes        | The ID of the issue.          | | ||||
| 
 | ||||
|  | @ -230,7 +230,7 @@ DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                                          | | ||||
| | ------------------- | ---------------- | ---------- | -----------------------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `epic_iid`          | integer/string   | yes        | The internal ID of the epic.                | | ||||
| | `epic_issue_id`     | integer/string   | yes        | The ID of the issue - epic association.     | | ||||
| 
 | ||||
|  | @ -336,7 +336,7 @@ PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                                          | | ||||
| | ------------------- | ---------------- | ---------- | -----------------------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `epic_iid`          | integer/string   | yes        | The internal ID of the epic.                | | ||||
| | `epic_issue_id`     | integer/string   | yes        | The ID of the issue - epic association.     | | ||||
| | `move_before_id`    | integer/string   | no         | The ID of the issue - epic association that should be placed before the link in the question.     | | ||||
|  |  | |||
|  | @ -28,7 +28,7 @@ GET /groups/:id/epics/:epic_iid/epics | |||
| 
 | ||||
| | Attribute  | Type           | Required | Description                                                                                                   | | ||||
| | ---------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------- | | ||||
| | `id`       | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`       | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `epic_iid` | integer        | yes      | The internal ID of the epic.                                                                                  | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -82,7 +82,7 @@ POST /groups/:id/epics/:epic_iid/epics/:child_epic_id | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description                                                                                                        | | ||||
| | --------------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------ | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `epic_iid`      | integer        | yes      | The internal ID of the epic.                                                                                       | | ||||
| | `child_epic_id` | integer        | yes      | The global ID of the child epic. Internal ID can't be used because they can conflict with epics from other groups. | | ||||
| 
 | ||||
|  | @ -135,7 +135,7 @@ POST /groups/:id/epics/:epic_iid/epics | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description                                                                                                        | | ||||
| | --------------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------ | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `epic_iid`      | integer        | yes      | The internal ID of the (future parent) epic.                                                                       | | ||||
| | `title`         | string         | yes      | The title of a newly created epic.                                                                                 | | ||||
| | `confidential`  | boolean        | no       | Whether the epic should be confidential. Parameter is ignored if `confidential_epics` feature flag is disabled. Defaults to the confidentiality state of the parent epic.  | | ||||
|  | @ -169,7 +169,7 @@ PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id | |||
| 
 | ||||
| | Attribute        | Type           | Required | Description                                                                                                        | | ||||
| | ---------------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------ | | ||||
| | `id`             | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user.     | | ||||
| | `id`             | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user.     | | ||||
| | `epic_iid`       | integer        | yes      | The internal ID of the epic.                                                                                       | | ||||
| | `child_epic_id`  | integer        | yes      | The global ID of the child epic. Internal ID can't be used because they can conflict with epics from other groups. | | ||||
| | `move_before_id` | integer        | no       | The global ID of a sibling epic that should be placed before the child epic.                                       | | ||||
|  | @ -226,7 +226,7 @@ DELETE /groups/:id/epics/:epic_iid/epics/:child_epic_id | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description                                                                                                        | | ||||
| | --------------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------ | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user.     | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user.     | | ||||
| | `epic_iid`      | integer        | yes      | The internal ID of the epic.                                                                                       | | ||||
| | `child_epic_id` | integer        | yes      | The global ID of the child epic. Internal ID can't be used because they can conflict with epics from other groups. | | ||||
| 
 | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ fields `start_date_is_fixed` and `due_date_is_fixed`, and four date fields `star | |||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are paginated. | ||||
| 
 | ||||
| Read more on [pagination](index.md#pagination). | ||||
| Read more on [pagination](rest/index.md#pagination). | ||||
| 
 | ||||
| WARNING: | ||||
| In [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) and later, | ||||
|  | @ -63,7 +63,7 @@ GET /groups/:id/epics?state=opened | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                                                                 | | ||||
| | ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user               | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user               | | ||||
| | `author_id`         | integer          | no         | Return epics created by the given user `id`                                                                                 | | ||||
| | `author_username`   | string           | no         | Return epics created by the user with the given `username`. Available in [GitLab 14.7](https://gitlab.com/gitlab-org/gitlab/-/issues/348257) and later | | ||||
| | `labels`            | string           | no         | Return epics matching a comma-separated list of labels names. Label names from the epic group or a parent group can be used | | ||||
|  | @ -203,7 +203,7 @@ GET /groups/:id/epics/:epic_iid | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `epic_iid`          | integer/string   | yes        | The internal ID of the epic.  | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -282,7 +282,7 @@ POST /groups/:id/epics | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `title`             | string           | yes        | The title of the epic | | ||||
| | `labels`            | string           | no         | The comma-separated list of labels | | ||||
| | `description`       | string           | no         | The description of the epic. Limited to 1,048,576 characters.  | | ||||
|  | @ -371,7 +371,7 @@ PUT /groups/:id/epics/:epic_iid | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `epic_iid`          | integer/string   | yes        | The internal ID of the epic  | | ||||
| | `add_labels`        | string           | no         | Comma-separated label names to add to an issue. | | ||||
| | `confidential`      | boolean          | no         | Whether the epic should be confidential | | ||||
|  | @ -451,7 +451,7 @@ DELETE /groups/:id/epics/:epic_iid | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                | | ||||
| | `epic_iid`          | integer/string   | yes        | The internal ID of the epic.  | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -470,7 +470,7 @@ POST /groups/:id/epics/:epic_iid/todo | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes   | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes   | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `epic_iid` | integer | yes          | The internal ID of a group's epic | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ GET /projects/:id/error_tracking/settings | |||
| 
 | ||||
| | Attribute | Type    | Required | Description           | | ||||
| | --------- | ------- | -------- | --------------------- | | ||||
| | `id`      | integer | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/error_tracking/settings" | ||||
|  | @ -50,7 +50,7 @@ PATCH /projects/:id/error_tracking/settings | |||
| 
 | ||||
| | Attribute    | Type    | Required | Description           | | ||||
| | ------------ | ------- | -------- | --------------------- | | ||||
| | `id`         | integer | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`         | integer | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `active`     | boolean | yes      | Pass `true` to enable the already configured error tracking settings or `false` to disable it. | | ||||
| | `integrated` | boolean | no       | Pass `true` to enable the integrated error tracking backend. [Available in](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68260) GitLab 14.2 and later. | | ||||
| 
 | ||||
|  | @ -85,7 +85,7 @@ GET /projects/:id/error_tracking/client_keys | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/error_tracking/client_keys" | ||||
|  | @ -120,7 +120,7 @@ POST /projects/:id/error_tracking/client_keys | |||
| 
 | ||||
| | Attribute  | Type | Required | Description | | ||||
| | ---------  | ---- | -------- | ----------- | | ||||
| | `id`       | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`       | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| 
 | ||||
| ```shell | ||||
| curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" \ | ||||
|  | @ -148,7 +148,7 @@ DELETE /projects/:id/error_tracking/client_keys/:key_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `key_id`  | integer | yes | The ID of the client key. | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -264,7 +264,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `project_id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `project_id` | integer/string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `action` | string | no | Include only events of a particular [action type](#actions) | | ||||
| | `target_type` | string | no | Include only events of a particular [target type](#target-types) | | ||||
| | `before` | date | no |  Include only events created before a particular date. [View how to format dates](#date-formatting). | | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ Users with Developer or higher [permissions](../user/permissions.md) can access | |||
| 
 | ||||
| NOTE: | ||||
| `GET` requests return twenty results at a time because the API results | ||||
| are [paginated](index.md#pagination). You can change this value. | ||||
| are [paginated](rest/index.md#pagination). You can change this value. | ||||
| 
 | ||||
| ## List all feature flag user lists for a project | ||||
| 
 | ||||
|  | @ -27,7 +27,7 @@ GET /projects/:id/feature_flags_user_lists | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                      | | ||||
| | --------- | -------------- | -------- | -------------------------------------------------------------------------------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `search`  | string         | no       | Return user lists matching the search criteria.                                  | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -69,7 +69,7 @@ POST /projects/:id/feature_flags_user_lists | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `name`              | string           | yes        | The name of the list. | | ||||
| | `user_xids`         | string           | yes        | A comma-separated list of external user IDs. | | ||||
| 
 | ||||
|  | @ -109,7 +109,7 @@ GET /projects/:id/feature_flags_user_lists/:iid | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `iid`               | integer/string   | yes        | The internal ID of the project's feature flag user list.                               | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -140,7 +140,7 @@ PUT /projects/:id/feature_flags_user_lists/:iid | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `iid`               | integer/string   | yes        | The internal ID of the project's feature flag user list.                               | | ||||
| | `name`              | string           | no         | The name of the list.                                                          | | ||||
| | `user_xids`         | string           | no         | A comma-separated list of external user IDs.                                                    | | ||||
|  | @ -181,7 +181,7 @@ DELETE /projects/:id/feature_flags_user_lists/:iid | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `iid`               | integer/string   | yes        | The internal ID of the project's feature flag user list                                | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ Users with Developer or higher [permissions](../user/permissions.md) can access | |||
| ## Feature flags pagination | ||||
| 
 | ||||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are [paginated](index.md#pagination). | ||||
| are [paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| ## List feature flags for a project | ||||
| 
 | ||||
|  | @ -28,7 +28,7 @@ GET /projects/:id/feature_flags | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                                                                 | | ||||
| | ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).                                            | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).                                            | | ||||
| | `scope`             | string           | no         | The condition of feature flags, one of: `enabled`, `disabled`.                                                              | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -98,7 +98,7 @@ GET /projects/:id/feature_flags/:feature_flag_name | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `feature_flag_name` | string           | yes        | The name of the feature flag.                                                          | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -142,7 +142,7 @@ POST /projects/:id/feature_flags | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `name`              | string           | yes        | The name of the feature flag.                                                          | | ||||
| | `version`           | string           | yes        | The version of the feature flag. Must be `new_version_flag`. Omit to create a Legacy feature flag. | | ||||
| | `description`       | string           | no         | The description of the feature flag.                                                   | | ||||
|  | @ -203,7 +203,7 @@ PUT /projects/:id/feature_flags/:feature_flag_name | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `feature_flag_name` | string           | yes        | The current name of the feature flag.                                                  | | ||||
| | `description`       | string           | no         | The description of the feature flag.                                                   | | ||||
| | `active`            | boolean          | no         | The active state of the flag. [Supported](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38350) in GitLab 13.3 and later. | | ||||
|  | @ -280,7 +280,7 @@ DELETE /projects/:id/feature_flags/:feature_flag_name | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                            | | ||||
| | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).       | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).       | | ||||
| | `feature_flag_name` | string           | yes        | The name of the feature flag.                                                          | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ GET /projects/:id/freeze_periods | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                         | | ||||
| | ------------- | -------------- | -------- | ----------------------------------------------------------------------------------- | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -59,7 +59,7 @@ GET /projects/:id/freeze_periods/:freeze_period_id | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                         | | ||||
| | ------------- | -------------- | -------- | ----------------------------------------------------------------------------------- | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `freeze_period_id`    | integer         | yes      | The ID of the freeze period.                                     | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -91,7 +91,7 @@ POST /projects/:id/freeze_periods | |||
| 
 | ||||
| | Attribute          | Type            | Required                    | Description                                                                                                                      | | ||||
| | -------------------| --------------- | --------                    | -------------------------------------------------------------------------------------------------------------------------------- | | ||||
| | `id`               | integer or string  | yes                         | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).                                              | | ||||
| | `id`               | integer or string  | yes                         | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).                                              | | ||||
| | `freeze_start`     | string          | yes                         | Start of the freeze period in [cron](https://crontab.guru/) format.                                                              | | ||||
| | `freeze_end`       | string          | yes                         | End of the freeze period in [cron](https://crontab.guru/) format.                                                                | | ||||
| | `cron_timezone`    | string          | no                          | The time zone for the cron fields, defaults to UTC if not provided.                                                               | | ||||
|  | @ -127,7 +127,7 @@ PUT /projects/:id/freeze_periods/:freeze_period_id | |||
| 
 | ||||
| | Attribute     | Type            | Required | Description                                                                                                 | | ||||
| | ------------- | --------------- | -------- | ----------------------------------------------------------------------------------------------------------- | | ||||
| | `id`          | integer or string  | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding).                         | | ||||
| | `id`          | integer or string  | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding).                         | | ||||
| | `freeze_period_id`    | integer          | yes      | The ID of the freeze period.                                                              | | ||||
| | `freeze_start`     | string          | no                         | Start of the freeze period in [cron](https://crontab.guru/) format.                                                              | | ||||
| | `freeze_end`       | string          | no                         | End of the freeze period in [cron](https://crontab.guru/) format.                                                                | | ||||
|  | @ -164,7 +164,7 @@ DELETE /projects/:id/freeze_periods/:freeze_period_id | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                         | | ||||
| | ------------- | -------------- | -------- | ----------------------------------------------------------------------------------- | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `freeze_period_id`    | integer         | yes      | The ID of the freeze period.                                     | | ||||
| 
 | ||||
| Example request: | ||||
|  |  | |||
|  | @ -953,7 +953,7 @@ GET /geo_nodes/current/failures | |||
| | `type`         | string  | no | Type of failed objects (`repository`/`wiki`) | | ||||
| | `failure_type` | string | no | Type of failures (`sync`/`checksum_mismatch`/`verification`) | | ||||
| 
 | ||||
| This endpoint uses [Pagination](index.md#pagination). | ||||
| This endpoint uses [Pagination](rest/index.md#pagination). | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_nodes/current/failures" | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute    | Type           | Required               | Description                                                               | | ||||
| | :----------- | :------------- | :--------------------- | :------------------------------------------------------------------------ | | ||||
| | `group_path` | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](../index.md#namespaced-path-encoding) | | ||||
| | `group_path` | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](../rest/index.md#namespaced-path-encoding) | | ||||
| | `name`       | string         | **{check-circle}** Yes | Name of the custom emoji.                                                 | | ||||
| | `file`       | string         | **{check-circle}** Yes | URL of the custom emoji image.                                            | | ||||
| 
 | ||||
|  |  | |||
|  | @ -173,7 +173,7 @@ More about queries: | |||
| Authorization uses the same engine as the GitLab application (and GitLab.com). | ||||
| If you've signed in to GitLab and use GraphiQL, all queries are performed as | ||||
| you, the authenticated user. For more information, read the | ||||
| [GitLab API documentation](../index.md#authentication). | ||||
| [GitLab API documentation](../rest/index.md#authentication). | ||||
| 
 | ||||
| ### Mutations | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ GET groups/:id/access_tokens | |||
| 
 | ||||
| | Attribute | Type    | required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/<group_id>/access_tokens" | ||||
|  | @ -56,7 +56,7 @@ GET groups/:id/access_tokens/:token_id | |||
| 
 | ||||
| | Attribute | Type    | required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `token_id` | integer or string | yes | ID of the group access token | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -92,7 +92,7 @@ POST groups/:id/access_tokens | |||
| 
 | ||||
| | Attribute | Type    | required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `name` | String | yes | Name of the group access token  | | ||||
| | `scopes` | `Array[String]` | yes | [List of scopes](../user/group/settings/group_access_tokens.md#scopes-for-a-group-access-token) | | ||||
| | `access_level` | Integer | no | Access level. Valid values are `10` (Guest), `20` (Reporter), `30` (Developer), `40` (Maintainer), and `50` (Owner). | | ||||
|  | @ -135,7 +135,7 @@ DELETE groups/:id/access_tokens/:token_id | |||
| 
 | ||||
| | Attribute | Type    | required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer or string | yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `token_id` | integer or string | yes | ID of the group access token | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -36,7 +36,7 @@ GET /groups/:id/badges | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name`    | string         | no  | Name of the badges to return (case-sensitive). | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -69,7 +69,7 @@ GET /groups/:id/badges/:badge_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `badge_id` | integer | yes   | The badge ID | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -99,7 +99,7 @@ POST /groups/:id/badges | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `link_url` | string         | yes | URL of the badge link | | ||||
| | `image_url` | string | yes | URL of the badge image | | ||||
| 
 | ||||
|  | @ -132,7 +132,7 @@ PUT /groups/:id/badges/:badge_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `badge_id` | integer | yes   | The badge ID | | ||||
| | `link_url` | string         | no | URL of the badge link | | ||||
| | `image_url` | string | no | URL of the badge image | | ||||
|  | @ -165,7 +165,7 @@ DELETE /groups/:id/badges/:badge_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `badge_id` | integer | yes   | The badge ID | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -182,7 +182,7 @@ GET /groups/:id/badges/render | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `link_url` | string         | yes | URL of the badge link| | ||||
| | `image_url` | string | yes | URL of the badge image | | ||||
| 
 | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ GET /groups/:id/boards | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/boards" | ||||
|  | @ -138,7 +138,7 @@ GET /groups/:id/boards/:board_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -252,7 +252,7 @@ POST /groups/:id/boards | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name` | string | yes | The name of the new board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -291,7 +291,7 @@ PUT /groups/:id/boards/:board_id | |||
| 
 | ||||
| | Attribute                    | Type           | Required | Description | | ||||
| | ---------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                         | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`                         | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id`                   | integer        | yes      | The ID of a board | | ||||
| | `name`                       | string         | no       | The new name of the board | | ||||
| | `hide_backlog_list`          | boolean        | no       | Hide the Open list | | ||||
|  | @ -359,7 +359,7 @@ DELETE /groups/:id/boards/:board_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -377,7 +377,7 @@ GET /groups/:id/boards/:board_id/lists | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -428,7 +428,7 @@ GET /groups/:id/boards/:board_id/lists/:list_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `list_id` | integer | yes | The ID of a board's list | | ||||
| 
 | ||||
|  | @ -460,7 +460,7 @@ POST /groups/:id/boards/:board_id/lists | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `label_id` | integer | yes | The ID of a label | | ||||
| 
 | ||||
|  | @ -501,7 +501,7 @@ PUT /groups/:id/boards/:board_id/lists/:list_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`            | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `list_id` | integer | yes | The ID of a board's list | | ||||
| | `position` | integer | yes | The position of the list | | ||||
|  | @ -534,7 +534,7 @@ DELETE /groups/:id/boards/:board_id/lists/:list_id | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `board_id` | integer | yes | The ID of a board | | ||||
| | `list_id` | integer | yes | The ID of a board's list | | ||||
| 
 | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                   | | ||||
| | --------- | -------------- | -------- | ----------------------------------------------------------------------------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -100,7 +100,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute    | Type           | Required | Description                                                                   | | ||||
| | ------------ | -------------- | -------- | ----------------------------------------------------------------------------- | | ||||
| | `id`         | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`         | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `cluster_id` | integer        | yes      | The ID of the cluster                                                         | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -169,7 +169,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                                            | Type           | Required | Description                                                                                         | | ||||
| | ---------------------------------------------------- | -------------- | -------- | --------------------------------------------------------------------------------------------------- | | ||||
| | `id`                                                 | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding)                       | | ||||
| | `id`                                                 | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding)                       | | ||||
| | `name`                                               | string         | yes      | The name of the cluster                                                                             | | ||||
| | `domain`                                             | string         | no       | The [base domain](../user/group/clusters/index.md#base-domain) of the cluster                       | | ||||
| | `management_project_id`                              | integer        | no       | The ID of the [management project](../user/clusters/management_project.md) for the cluster          | | ||||
|  | @ -240,7 +240,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                                 | Type           | Required | Description                                                                                | | ||||
| | ----------------------------------------- | -------------- | -------- | ------------------------------------------------------------------------------------------ | | ||||
| | `id`                                      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding)              | | ||||
| | `id`                                      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding)              | | ||||
| | `cluster_id`                              | integer        | yes      | The ID of the cluster                                                                      | | ||||
| | `name`                                    | string         | no       | The name of the cluster                                                                    | | ||||
| | `domain`                                  | string         | no       | The [base domain](../user/group/clusters/index.md#base-domain) of the cluster              | | ||||
|  | @ -325,7 +325,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute    | Type           | Required | Description                                                                   | | ||||
| | ------------ | -------------- | -------- | ----------------------------------------------------------------------------- | | ||||
| | `id`         | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`         | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `cluster_id` | integer        | yes      | The ID of the cluster                                                         | | ||||
| 
 | ||||
| Example request: | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ GET /groups/:id/labels | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                                                                                                                  | | ||||
| | ---------     | ----           | -------- | -----------                                                                                                                                                                  | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user.                                                               | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user.                                                               | | ||||
| | `with_counts` | boolean        | no       | Whether or not to include issue and merge request counts. Defaults to `false`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/31543) in GitLab 12.2)_ | | ||||
| | `include_ancestor_groups` | boolean | no | Include ancestor groups. Defaults to `true`. | | ||||
| | `include_descendant_groups` | boolean | no | Include descendant groups. Defaults to `false`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/259024) in GitLab 13.6 | | ||||
|  | @ -77,7 +77,7 @@ GET /groups/:id/labels/:label_id | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                                                                                                                  | | ||||
| | ---------     | ----           | -------- | -----------                                                                                                                                                                  | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user.                                                               | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user.                                                               | | ||||
| | `label_id` | integer or string | yes | The ID or title of a group's label. | | ||||
| | `include_ancestor_groups` | boolean | no | Include ancestor groups. Defaults to `true`. | | ||||
| | `include_descendant_groups` | boolean | no | Include descendant groups. Defaults to `false`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/259024) in GitLab 13.6 | | ||||
|  | @ -114,7 +114,7 @@ POST /groups/:id/labels | |||
| 
 | ||||
| | Attribute     | Type    | Required | Description                  | | ||||
| | ------------- | ------- | -------- | ---------------------------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name`        | string  | yes      | The name of the label        | | ||||
| | `color`       | string  | yes      | The color of the label given in 6-digit hex notation with leading '#' sign (for example, #FFAABB) or one of the [CSS color names](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords) | | ||||
| | `description` | string  | no       | The description of the label, | | ||||
|  | @ -152,7 +152,7 @@ PUT /groups/:id/labels/:label_id | |||
| 
 | ||||
| | Attribute     | Type    | Required | Description                  | | ||||
| | ------------- | ------- | -------- | ---------------------------- | | ||||
| | `id` | integer or string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer or string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes | The ID or title of a group's label. | | ||||
| | `new_name`    | string  | no      | The new name of the label        | | ||||
| | `color`       | string  | no      | The color of the label given in 6-digit hex notation with leading '#' sign (for example, #FFAABB) or one of the [CSS color names](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords) | | ||||
|  | @ -193,7 +193,7 @@ DELETE /groups/:id/labels/:label_id | |||
| 
 | ||||
| | Attribute | Type    | Required | Description           | | ||||
| | --------- | ------- | -------- | --------------------- | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes | The ID or title of a group's label. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -214,7 +214,7 @@ POST /groups/:id/labels/:label_id/subscribe | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                          | | ||||
| | ---------- | ----------------- | -------- | ------------------------------------ | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes      | The ID or title of a group's label. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -250,7 +250,7 @@ POST /groups/:id/labels/:label_id/unsubscribe | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                          | | ||||
| | ---------- | ----------------- | -------- | ------------------------------------ | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes      | The ID or title of a group's label. | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ GET /groups/:id/variables | |||
| 
 | ||||
| | Attribute | Type    | required | Description         | | ||||
| |-----------|---------|----------|---------------------| | ||||
| | `id`      | integer/string | yes      | The ID of a group or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes      | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/variables" | ||||
|  | @ -57,7 +57,7 @@ GET /groups/:id/variables/:key | |||
| 
 | ||||
| | Attribute | Type    | required | Description           | | ||||
| |-----------|---------|----------|-----------------------| | ||||
| | `id`      | integer/string | yes      | The ID of a group or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user   | | ||||
| | `id`      | integer/string | yes      | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user   | | ||||
| | `key`     | string  | yes      | The `key` of a variable | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -86,14 +86,14 @@ POST /groups/:id/variables | |||
| 
 | ||||
| | Attribute       | Type    | required | Description           | | ||||
| |-----------------|---------|----------|-----------------------| | ||||
| | `id`            | integer/string | yes      | The ID of a group or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user   | | ||||
| | `id`            | integer/string | yes      | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user   | | ||||
| | `key`           | string  | yes      | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed | | ||||
| | `value`         | string  | yes      | The `value` of a variable | | ||||
| | `variable_type` | string  | no       | The type of a variable. Available types are: `env_var` (default) and `file` | | ||||
| | `protected`     | boolean | no       | Whether the variable is protected | | ||||
| | `masked`        | boolean | no       | Whether the variable is masked | | ||||
| | `raw`           | boolean | no       | Whether the variable is expandable | | ||||
| | `environment_scope` **(PREMIUM)** | string | no | The [environment scope](../ci/variables/index.md#limit-the-environment-scope-of-a-cicd-variable) of a variable | | ||||
| | `environment_scope` **(PREMIUM)** | string | no | The [environment scope](../ci/environments/index.md#limit-the-environment-scope-of-a-cicd-variable) of a variable | | ||||
| 
 | ||||
| ```shell | ||||
| curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
|  | @ -122,14 +122,14 @@ PUT /groups/:id/variables/:key | |||
| 
 | ||||
| | Attribute       | Type    | required | Description             | | ||||
| |-----------------|---------|----------|-------------------------| | ||||
| | `id`            | integer/string | yes      | The ID of a group or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user     | | ||||
| | `id`            | integer/string | yes      | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user     | | ||||
| | `key`           | string  | yes      | The `key` of a variable   | | ||||
| | `value`         | string  | yes      | The `value` of a variable | | ||||
| | `variable_type` | string  | no       | The type of a variable. Available types are: `env_var` (default) and `file` | | ||||
| | `protected`     | boolean | no       | Whether the variable is protected | | ||||
| | `masked`        | boolean | no       | Whether the variable is masked | | ||||
| | `raw`           | boolean | no       | Whether the variable is expandable | | ||||
| | `environment_scope` **(PREMIUM)** | string | no | The [environment scope](../ci/variables/index.md#limit-the-environment-scope-of-a-cicd-variable) of a variable | | ||||
| | `environment_scope` **(PREMIUM)** | string | no | The [environment scope](../ci/environments/index.md#limit-the-environment-scope-of-a-cicd-variable) of a variable | | ||||
| 
 | ||||
| ```shell | ||||
| curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
|  | @ -158,7 +158,7 @@ DELETE /groups/:id/variables/:key | |||
| 
 | ||||
| | Attribute | Type    | required | Description             | | ||||
| |-----------|---------|----------|-------------------------| | ||||
| | `id`      | integer/string | yes      | The ID of a group or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user     | | ||||
| | `id`      | integer/string | yes      | The ID of a group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user     | | ||||
| | `key`     | string  | yes      | The `key` of a variable | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                   | Type   | Required | Description | | ||||
| | ---------                   | ------ | -------- | ----------- | | ||||
| | `id`                        | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`                        | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `iids[]`                    | integer array | no | Return only the milestones having the given `iid` (Note: ignored if `include_parent_milestones` is set as `true`) | | ||||
| | `state`                     | string | no | Return only `active` or `closed` milestones | | ||||
| | `title`                     | string | no | Return only the milestones having the given `title` | | ||||
|  | @ -71,7 +71,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type   | Required | Description | | ||||
| | --------- | ------ | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `milestone_id` | integer | yes | The ID of the group milestone | | ||||
| 
 | ||||
| ## Create new milestone | ||||
|  | @ -86,7 +86,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type   | Required | Description | | ||||
| | --------- | ------ | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `title` | string | yes | The title of a milestone | | ||||
| | `description` | string | no | The description of the milestone | | ||||
| | `due_date` | date | no | The due date of the milestone, in ISO 8601 format (`YYYY-MM-DD`) | | ||||
|  | @ -104,7 +104,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type   | Required | Description | | ||||
| | --------- | ------ | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `milestone_id` | integer | yes | The ID of a group milestone | | ||||
| | `title` | string | no | The title of a milestone | | ||||
| | `description` | string | no | The description of a milestone | | ||||
|  | @ -124,7 +124,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type   | Required | Description | | ||||
| | --------- | ------ | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `milestone_id` | integer | yes | The ID of the group's milestone | | ||||
| 
 | ||||
| ## Get all issues assigned to a single milestone | ||||
|  | @ -139,7 +139,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type   | Required | Description | | ||||
| | --------- | ------ | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `milestone_id` | integer | yes | The ID of a group milestone | | ||||
| 
 | ||||
| Currently, this API endpoint doesn't return issues from any subgroups. | ||||
|  | @ -159,7 +159,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type   | Required | Description | | ||||
| | --------- | ------ | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `milestone_id` | integer | yes | The ID of a group milestone | | ||||
| 
 | ||||
| ## Get all burndown chart events for a single milestone **(PREMIUM)** | ||||
|  | @ -177,5 +177,5 @@ Parameters: | |||
| 
 | ||||
| | Attribute | Type   | Required | Description | | ||||
| | --------- | ------ | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `milestone_id` | integer | yes | The ID of a group milestone | | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ GET /groups/:id/protected_environments | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/protected_environments/" | ||||
|  | @ -70,7 +70,7 @@ GET /groups/:id/protected_environments/:name | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `name`    | string | yes    | The deployment tier of the protected environment. One of `production`, `staging`, `testing`, `development`, or `other`. Read more about [deployment tiers](../ci/environments/index.md#deployment-tier-of-environments).| | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -105,7 +105,7 @@ POST /groups/:id/protected_environments | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `name`    | string | yes    | The deployment tier of the protected environment. One of `production`, `staging`, `testing`, `development`, or `other`. Read more about [deployment tiers](../ci/environments/index.md#deployment-tier-of-environments).| | ||||
| | `deploy_access_levels`          | array          | yes | Array of access levels allowed to deploy, with each described by a hash. One of `user_id`, `group_id` or `access_level`. They take the form of `{user_id: integer}`, `{group_id: integer}` or `{access_level: integer}` respectively. | | ||||
| | `required_approval_count` | integer        | no       | The number of approvals required to deploy to this environment. | | ||||
|  | @ -148,7 +148,7 @@ PUT /groups/:id/protected_environments/:name | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `name`    | string | yes    | The deployment tier of the protected environment. One of `production`, `staging`, `testing`, `development`, or `other`. Read more about [deployment tiers](../ci/environments/index.md#deployment-tier-of-environments).| | ||||
| | `deploy_access_levels`          | array          | no | Array of access levels allowed to deploy, with each described by a hash. One of `user_id`, `group_id` or `access_level`. They take the form of `{user_id: integer}`, `{group_id: integer}` or `{access_level: integer}` respectively. | | ||||
| | `required_approval_count` | integer        | no       | The number of approvals required to deploy to this environment. | | ||||
|  | @ -314,7 +314,7 @@ DELETE /groups/:id/protected_environments/:name | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) maintained by the authenticated user. | | ||||
| | `name`    | string | yes    | The deployment tier of the protected environment. One of `production`, `staging`, `testing`, `development`, or `other`. Read more about [deployment tiers](../ci/environments/index.md#deployment-tier-of-environments).| | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description                                                                                                   | | ||||
| |---------------------|----------------|----------|---------------------------------------------------------------------------------------------------------------| | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `sort`              | string         | no       | The direction of the order. Either `desc` (default) for descending order or `asc` for ascending order.        | | ||||
| | `simple`            | boolean        | no       | Return only limited fields for each release.                                                                  | | ||||
| 
 | ||||
|  |  | |||
|  | @ -32,7 +32,7 @@ push new commits: | |||
| The repository is temporarily read-only. Please try again later. | ||||
| ``` | ||||
| 
 | ||||
| This API requires you to [authenticate yourself](index.md#authentication) as an administrator. | ||||
| This API requires you to [authenticate yourself](rest/index.md#authentication) as an administrator. | ||||
| 
 | ||||
| APIs are also available to move other types of repositories: | ||||
| 
 | ||||
|  | @ -46,7 +46,7 @@ GET /group_repository_storage_moves | |||
| ``` | ||||
| 
 | ||||
| By default, `GET` requests return 20 results at a time, because the API results | ||||
| are [paginated](index.md#pagination). | ||||
| are [paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -82,7 +82,7 @@ GET /groups/:group_id/repository_storage_moves | |||
| ``` | ||||
| 
 | ||||
| By default, `GET` requests return 20 results at a time, because the API results | ||||
| are [paginated](index.md#pagination). | ||||
| are [paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| Supported attributes: | ||||
| 
 | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ GET /groups/:id/wikis | |||
| 
 | ||||
| | Attribute      | Type           | Required | Description                                                                   | | ||||
| | ---------      | -------        | -------- | ---------------------                                                         | | ||||
| | `id`           | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`           | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `with_content` | boolean        | no       | Include pages' content                                                        | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -69,7 +69,7 @@ GET /groups/:id/wikis/:slug | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                   | | ||||
| | --------- | -------        | -------- | ---------------------                                                         | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `slug`    | string         | yes      | URL-encoded slug (a unique string) of the wiki page, such as `dir%2Fpage_name`      | | ||||
| | `render_html`      | boolean    | no      | Return the rendered HTML of the wiki page  | | ||||
| | `version`      | string    | no      | Wiki page version SHA  | | ||||
|  | @ -100,7 +100,7 @@ POST /projects/:id/wikis | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                                            | | ||||
| | ------------- | -------        | -------- | ----------------------------                                                                           | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding)                          | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding)                          | | ||||
| | `content`     | string         | yes      | The content of the wiki page                                                                           | | ||||
| | `title`       | string         | yes      | The title of the wiki page                                                                             | | ||||
| | `format`      | string         | no       | The format of the wiki page. Available formats are: `markdown` (default), `rdoc`, `asciidoc` and `org` | | ||||
|  | @ -133,7 +133,7 @@ PUT /groups/:id/wikis/:slug | |||
| 
 | ||||
| | Attribute | Type           | Required                         | Description | | ||||
| |-----------|----------------|----------------------------------|-------------| | ||||
| | `id`      | integer/string | yes                              | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding). | | ||||
| | `id`      | integer/string | yes                              | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding). | | ||||
| | `content` | string         | yes if `title` is not provided   | The content of the wiki page. | | ||||
| | `title`   | string         | yes if `content` is not provided | The title of the wiki page. | | ||||
| | `format`  | string         | no                               | The format of the wiki page. Available formats are `markdown` (default), `rdoc`, `asciidoc`, and `org`. | | ||||
|  | @ -167,7 +167,7 @@ DELETE /groups/:id/wikis/:slug | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                   | | ||||
| | --------- | -------        | -------- | ---------------------                                                         | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `slug`    | string         | yes      | URL-encoded slug (a unique string) of the wiki page, such as `dir%2Fpage_name`      | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -187,7 +187,7 @@ POST /groups/:id/wikis/attachments | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                   | | ||||
| | ------------- | -------        | -------- | ----------------------------                                                  | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `file`        | string         | yes      | The attachment to be uploaded                                                 | | ||||
| | `branch`      | string         | no       | The name of the branch. Defaults to the wiki repository default branch        | | ||||
| 
 | ||||
|  |  | |||
|  | @ -11,9 +11,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w | |||
| Get a list of visible groups for the authenticated user. When accessed without | ||||
| authentication, only public groups are returned. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination). | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| When accessed without authentication, this endpoint also supports [keyset pagination](index.md#keyset-based-pagination): | ||||
| When accessed without authentication, this endpoint also supports [keyset pagination](rest/index.md#keyset-based-pagination): | ||||
| 
 | ||||
| - When requesting consecutive pages of results, we recommend you use keyset pagination. | ||||
| - Beyond a specific offset limit (specified by [max offset allowed by the REST API for offset-based pagination](../administration/instance_limits.md#max-offset-allowed-by-the-rest-api-for-offset-based-pagination)), offset pagination is unavailable. | ||||
|  | @ -127,7 +127,7 @@ GET /groups?custom_attributes[key]=value&custom_attributes[other_key]=other_valu | |||
| 
 | ||||
| Get a list of visible direct subgroups in this group. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination). | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| If you request this list as: | ||||
| 
 | ||||
|  | @ -139,7 +139,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                | Type              | Required | Description | | ||||
| | ------------------------ | ----------------- | -------- | ----------- | | ||||
| | `id`                     | integer/string    | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) of the immediate parent group | | ||||
| | `id`                     | integer/string    | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) of the immediate parent group | | ||||
| | `skip_groups`            | array of integers | no       | Skip the group IDs passed | | ||||
| | `all_available`          | boolean           | no       | Show all the groups you have access to (defaults to `false` for authenticated users, `true` for administrators); Attributes `owned` and `min_access_level` have precedence | | ||||
| | `search`                 | string            | no       | Return the list of authorized groups matching the search criteria. Only subgroup short paths are searched (not full paths) | | ||||
|  | @ -191,13 +191,13 @@ GET /groups/:id/subgroups | |||
| Get a list of visible descendant groups of this group. | ||||
| When accessed without authentication, only public groups are returned. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination). | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| Parameters: | ||||
| 
 | ||||
| | Attribute                | Type              | Required | Description | | ||||
| | ------------------------ | ----------------- | -------- | ----------- | | ||||
| | `id`                     | integer/string    | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) of the immediate parent group | | ||||
| | `id`                     | integer/string    | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) of the immediate parent group | | ||||
| | `skip_groups`            | array of integers | no       | Skip the group IDs passed | | ||||
| | `all_available`          | boolean           | no       | Show all the groups you have access to (defaults to `false` for authenticated users, `true` for administrators). Attributes `owned` and `min_access_level` have precedence | | ||||
| | `search`                 | string            | no       | Return the list of authorized groups matching the search criteria. Only descendant group short paths are searched (not full paths) | | ||||
|  | @ -271,7 +271,7 @@ GET /groups/:id/descendant_groups | |||
| 
 | ||||
| Get a list of projects in this group. When accessed without authentication, only public projects are returned. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination). | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /groups/:id/projects | ||||
|  | @ -281,7 +281,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                              | Type           | Required | Description | | ||||
| | -------------------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                                   | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`                                   | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `archived`                             | boolean        | no       | Limit by archived status | | ||||
| | `visibility`                           | string         | no       | Limit by visibility `public`, `internal`, or `private` | | ||||
| | `order_by`                             | string         | no       | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, `similarity` (1), or `last_activity_at` fields. Default is `created_at` | | ||||
|  | @ -354,7 +354,7 @@ To distinguish between a project in the group and a project shared to the group, | |||
| 
 | ||||
| Get a list of projects shared to this group. When accessed without authentication, only public shared projects are returned. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination). | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /groups/:id/projects/shared | ||||
|  | @ -364,7 +364,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                     | Type           | Required | Description | | ||||
| | ----------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                          | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`                          | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `archived`                    | boolean        | no       | Limit by archived status | | ||||
| | `visibility`                  | string         | no       | Limit by visibility `public`, `internal`, or `private` | | ||||
| | `order_by`                    | string         | no       | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at` | | ||||
|  | @ -502,7 +502,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                | Type           | Required | Description | | ||||
| | ------------------------ | -------------- | -------- | ----------- | | ||||
| | `id`                     | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                     | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `with_custom_attributes` | boolean        | no       | Include [custom attributes](custom_attributes.md) in response (administrators only). | | ||||
| | `with_projects`          | boolean        | no       | Include details from projects that belong to the specified group (defaults to `true`). (Deprecated, [scheduled for removal in API v5](https://gitlab.com/gitlab-org/gitlab/-/issues/213797). To get the details of all projects within a group, use the [list a group's projects endpoint](#list-a-groups-projects).)  | | ||||
| 
 | ||||
|  | @ -871,8 +871,8 @@ Parameters: | |||
| 
 | ||||
| | Attribute    | Type           | Required | Description | | ||||
| | ------------ | -------------- | -------- | ----------- | | ||||
| | `id`         | integer/string | yes      | The ID or [URL-encoded path of the target group](index.md#namespaced-path-encoding) | | ||||
| | `project_id` | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`         | integer/string | yes      | The ID or [URL-encoded path of the target group](rest/index.md#namespaced-path-encoding) | | ||||
| | `project_id` | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| ```shell | ||||
| curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
|  | @ -891,7 +891,7 @@ GET /groups/:id/transfer_locations | |||
| 
 | ||||
| | Attribute   | Type           | Required               | Description | | ||||
| |-------------|----------------|------------------------|-------------| | ||||
| | `id`        | integer or string | **{check-circle}** Yes | The ID or [URL-encoded path of the group to be transferred](index.md#namespaced-path-encoding). | | ||||
| | `id`        | integer or string | **{check-circle}** Yes | The ID or [URL-encoded path of the group to be transferred](rest/index.md#namespaced-path-encoding). | | ||||
| | `search` | string | **{dotted-circle}** No  | The group names to search for. | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -1152,7 +1152,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute            | Type             | Required | Description                                                                                                                                                 | | ||||
| |----------------------|------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||||
| | `id`                 | integer/string   | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding)                                                                                | | ||||
| | `id`                 | integer/string   | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding)                                                                                | | ||||
| | `permanently_remove` **(PREMIUM)** | boolean/string   | no       | Immediately deletes a subgroup if it is marked for deletion. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368276) in GitLab 15.4 | | ||||
| | `full_path` **(PREMIUM)**          | string           | no       | Full path of subgroup to use with `permanently_remove`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368276) in GitLab 15.4. To find the subgroup path, see the [group details](groups.md#details-of-a-group) | | ||||
| 
 | ||||
|  | @ -1175,7 +1175,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute       | Type           | Required | Description | | ||||
| | --------------- | -------------- | -------- | ----------- | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`            | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| ## Search for group | ||||
| 
 | ||||
|  | @ -1212,7 +1212,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute        | Type           | Required | Description                                                              | | ||||
| |:-----------------|:---------------|:---------|:-------------------------------------------------------------------------| | ||||
| | `id`             | integer/string | yes      | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`             | integer/string | yes      | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `username`       | string         | no       | Return single user with a specific username                              | | ||||
| | `search`         | string         | no       | Search users by name, email, username                                    | | ||||
| | `active`         | boolean        | no       | Return only active users                                                 | | ||||
|  | @ -1284,7 +1284,7 @@ GET /groups/:id/hooks | |||
| 
 | ||||
| | Attribute | Type            | Required | Description | | ||||
| | --------- | --------------- | -------- | ----------- | | ||||
| | `id`      | integer/string  | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string  | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| ### Get group hook | ||||
| 
 | ||||
|  | @ -1292,7 +1292,7 @@ Get a specific hook for a group. | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `hook_id` | integer        | yes      | The ID of a group hook | | ||||
| 
 | ||||
| ```plaintext | ||||
|  | @ -1333,7 +1333,7 @@ POST /groups/:id/hooks | |||
| 
 | ||||
| | Attribute                    | Type           | Required | Description | | ||||
| | -----------------------------| -------------- |----------| ----------- | | ||||
| | `id`                         | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`                         | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `url`                        | string         | yes      | The hook URL | | ||||
| | `push_events`                | boolean        | no       | Trigger hook on push events | | ||||
| | `push_events_branch_filter`  | string         | No       | Trigger hook on push events for matching branches only. | | ||||
|  | @ -1362,7 +1362,7 @@ PUT /groups/:id/hooks/:hook_id | |||
| 
 | ||||
| | Attribute                    | Type           | Required | Description | | ||||
| | ---------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                         | integer or string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding). | | ||||
| | `id`                         | integer or string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding). | | ||||
| | `hook_id`                    | integer        | yes      | The ID of the group hook. | | ||||
| | `url`                        | string         | yes      | The hook URL. | | ||||
| | `push_events`                | boolean        | no       | Trigger hook on push events. | | ||||
|  | @ -1393,7 +1393,7 @@ DELETE /groups/:id/hooks/:hook_id | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `hook_id` | integer        | yes      | The ID of the group hook. | | ||||
| 
 | ||||
| ## Group Audit Events **(PREMIUM)** | ||||
|  | @ -1430,7 +1430,7 @@ GET /groups/:id/ldap_group_links | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| ### Add LDAP group link with CN or filter **(PREMIUM SELF)** | ||||
| 
 | ||||
|  | @ -1442,7 +1442,7 @@ POST /groups/:id/ldap_group_links | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `cn`      | string         | no       | The CN of an LDAP group | | ||||
| | `filter`  | string         | no       | The LDAP filter for the group | | ||||
| | `group_access` | integer   | yes      | [Role (`access_level`)](members.md#roles) for members of the LDAP group | | ||||
|  | @ -1461,7 +1461,7 @@ DELETE /groups/:id/ldap_group_links/:cn | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `cn`      | string         | yes      | The CN of an LDAP group | | ||||
| 
 | ||||
| Deletes an LDAP group link for a specific LDAP provider. Deprecated. Scheduled for removal in a future release. | ||||
|  | @ -1472,7 +1472,7 @@ DELETE /groups/:id/ldap_group_links/:provider/:cn | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `cn`      | string         | yes      | The CN of an LDAP group | | ||||
| | `provider` | string        | yes      | LDAP provider for the LDAP group link | | ||||
| 
 | ||||
|  | @ -1486,7 +1486,7 @@ DELETE /groups/:id/ldap_group_links | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `cn`      | string         | no       | The CN of an LDAP group | | ||||
| | `filter`  | string         | no       | The LDAP filter for the group | | ||||
| | `provider` | string        | yes       | LDAP provider for the LDAP group link | | ||||
|  | @ -1513,9 +1513,9 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                              | | ||||
| |:----------|:---------------|:---------|:-------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| If successful, returns [`200`](index.md#status-codes) and the following response attributes: | ||||
| If successful, returns [`200`](rest/index.md#status-codes) and the following response attributes: | ||||
| 
 | ||||
| | Attribute          | Type    | Description                                                                  | | ||||
| |:-------------------|:--------|:-----------------------------------------------------------------------------| | ||||
|  | @ -1555,10 +1555,10 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute          | Type           | Required | Description                                                              | | ||||
| |:-------------------|:---------------|:---------|:-------------------------------------------------------------------------| | ||||
| | `id`               | integer/string | yes      | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`               | integer/string | yes      | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `saml_group_name`  | string         | yes      | Name of an SAML group                                                    | | ||||
| 
 | ||||
| If successful, returns [`200`](index.md#status-codes) and the following response attributes: | ||||
| If successful, returns [`200`](rest/index.md#status-codes) and the following response attributes: | ||||
| 
 | ||||
| | Attribute      | Type    | Description                                                                  | | ||||
| |:---------------|:--------|:-----------------------------------------------------------------------------| | ||||
|  | @ -1592,11 +1592,11 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute          | Type           | Required | Description                                                                  | | ||||
| |:-------------------|:---------------|:---------|:-----------------------------------------------------------------------------| | ||||
| | `id`               | integer or string | yes      | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding)     | | ||||
| | `id`               | integer or string | yes      | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding)     | | ||||
| | `saml_group_name`  | string         | yes      | Name of a SAML group                                                         | | ||||
| | `access_level`     | integer        | yes      | [Role (`access_level`)](members.md#roles) for members of the SAML group | | ||||
| 
 | ||||
| If successful, returns [`201`](index.md#status-codes) and the following response attributes: | ||||
| If successful, returns [`201`](rest/index.md#status-codes) and the following response attributes: | ||||
| 
 | ||||
| | Attribute      | Type    | Description                                                                  | | ||||
| |:---------------|:--------|:-----------------------------------------------------------------------------| | ||||
|  | @ -1630,10 +1630,10 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute          | Type           | Required | Description                                                              | | ||||
| |:-------------------|:---------------|:---------|:-------------------------------------------------------------------------| | ||||
| | `id`               | integer/string | yes      | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`               | integer/string | yes      | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `saml_group_name`  | string         | yes      | Name of a SAML group                                                     | | ||||
| 
 | ||||
| If successful, returns [`204`](index.md#status-codes) status code without any response body. | ||||
| If successful, returns [`204`](rest/index.md#status-codes) status code without any response body. | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -1681,7 +1681,7 @@ POST /groups/:id/share | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `group_id` | integer | yes | The ID of the group to share with | | ||||
| | `group_access` | integer | yes | The [role (`access_level`)](members.md#roles) to grant the group | | ||||
| | `expires_at` | string | no | Share expiration date in ISO 8601 format: 2016-09-26 | | ||||
|  | @ -1696,14 +1696,14 @@ DELETE /groups/:id/share/:group_id | |||
| 
 | ||||
| | Attribute | Type           | Required | Description | | ||||
| | --------- | -------------- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `group_id` | integer | yes | The ID of the group to share with | | ||||
| 
 | ||||
| ## Push Rules **(PREMIUM)** | ||||
| 
 | ||||
| > Introduced in GitLab 13.4. | ||||
| 
 | ||||
| ### Get group push rules **(PREMIUM)** | ||||
| ### Get group push rules | ||||
| 
 | ||||
| Get the [push rules](../user/group/access_and_permissions.md#group-push-rules) of a group. | ||||
| 
 | ||||
|  | @ -1715,7 +1715,7 @@ GET /groups/:id/push_rule | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID of the group or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer/string | yes | The ID of the group or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|  | @ -1746,7 +1746,7 @@ the `commit_committer_check` and `reject_unsigned_commits` parameters: | |||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Add group push rule **(PREMIUM)** | ||||
| ### Add group push rule | ||||
| 
 | ||||
| Adds [push rules](../user/group/access_and_permissions.md#group-push-rules) to the specified group. | ||||
| 
 | ||||
|  | @ -1758,7 +1758,7 @@ POST /groups/:id/push_rule | |||
| 
 | ||||
| | Attribute                                     | Type           | Required | Description | | ||||
| | --------------------------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                                          | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`                                          | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `deny_delete_tag`                             | boolean        | no       | Deny deleting a tag | | ||||
| | `member_check`                                | boolean        | no       | Allows only GitLab users to author commits | | ||||
| | `prevent_secrets`                             | boolean        | no       | [Files that are likely to contain secrets](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/gitlab/checks/files_denylist.yml) are rejected | | ||||
|  | @ -1793,7 +1793,7 @@ Response: | |||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Edit group push rule **(PREMIUM)** | ||||
| ### Edit group push rule | ||||
| 
 | ||||
| Edit push rules for a specified group. | ||||
| 
 | ||||
|  | @ -1805,7 +1805,7 @@ PUT /groups/:id/push_rule | |||
| 
 | ||||
| | Attribute                                     | Type           | Required | Description | | ||||
| | --------------------------------------------- | -------------- | -------- | ----------- | | ||||
| | `id`                                          | integer/string | yes      | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id`                                          | integer/string | yes      | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
| | `deny_delete_tag`                             | boolean        | no       | Deny deleting a tag | | ||||
| | `member_check`                                | boolean        | no       | Restricts commits to be authored by existing GitLab users only | | ||||
| | `prevent_secrets`                             | boolean        | no       | [Files that are likely to contain secrets](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/gitlab/checks/files_denylist.yml) are rejected | | ||||
|  | @ -1840,7 +1840,7 @@ Response: | |||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Delete group push rule **(PREMIUM)** | ||||
| ### Delete group push rule | ||||
| 
 | ||||
| Deletes the [push rules](../user/group/access_and_permissions.md#group-push-rules) of a group. | ||||
| 
 | ||||
|  | @ -1852,4 +1852,4 @@ DELETE /groups/:id/push_rule | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) | | ||||
| | `id` | integer/string | yes | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) | | ||||
|  |  | |||
							
								
								
									
										775
									
								
								doc/api/index.md
								
								
								
								
							
							
						
						
									
										775
									
								
								doc/api/index.md
								
								
								
								
							|  | @ -11,9 +11,8 @@ Use the GitLab APIs to automate GitLab. | |||
| ## REST API | ||||
| 
 | ||||
| A REST API is available in GitLab. | ||||
| Usage instructions are below. | ||||
| 
 | ||||
| For examples, see [How to use the API](#how-to-use-the-api). | ||||
| For more information and examples, see [REST API](rest/index.md). | ||||
| 
 | ||||
| For a list of the available resources and their endpoints, see | ||||
| [REST API resources](api_resources.md). | ||||
|  | @ -41,775 +40,3 @@ be a compatibility layer on top of GraphQL. | |||
| There were some patenting and licensing concerns with GraphQL. However, these | ||||
| have been resolved to our satisfaction. The reference implementations | ||||
| were re-licensed under MIT, and the OWF license used for the GraphQL specification. | ||||
| 
 | ||||
| ## Compatibility guidelines | ||||
| 
 | ||||
| The HTTP API is versioned with a single number, which is currently `4`. This number | ||||
| symbolizes the major version number, as described by [SemVer](https://semver.org/). | ||||
| Because of this, backward-incompatible changes require this version number to | ||||
| change. | ||||
| 
 | ||||
| The minor version isn't explicit, which allows for a stable API | ||||
| endpoint. New features can be added to the API in the same | ||||
| version number. | ||||
| 
 | ||||
| New features and bug fixes are released in tandem with GitLab. Apart | ||||
| from incidental patch and security releases, GitLab is released on the 22nd of each | ||||
| month. Major API version changes, and removal of entire API versions, are done in tandem | ||||
| with major GitLab releases. | ||||
| 
 | ||||
| All deprecations and changes between versions are in the documentation. | ||||
| 
 | ||||
| ### Current status | ||||
| 
 | ||||
| Only API version v4 is available. | ||||
| 
 | ||||
| ## How to use the API | ||||
| 
 | ||||
| API requests must include both `api` and the API version. The API | ||||
| version is defined in [`lib/api.rb`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/api/api.rb). | ||||
| For example, the root of the v4 API is at `/api/v4`. | ||||
| 
 | ||||
| ### Valid API request | ||||
| 
 | ||||
| The following is a basic example of a request to the fictional `gitlab.example.com` endpoint: | ||||
| 
 | ||||
| ```shell | ||||
| curl "https://gitlab.example.com/api/v4/projects" | ||||
| ``` | ||||
| 
 | ||||
| The API uses JSON to serialize data. You don't need to specify `.json` at the | ||||
| end of the API URL. | ||||
| 
 | ||||
| NOTE: | ||||
| In the example above, replace `gitlab.example.com` with `gitlab.com` to query GitLab.com (GitLab SaaS). | ||||
| Access can be denied due to authentication. For more information, see [Authentication](#authentication). | ||||
| 
 | ||||
| ### API request to expose HTTP response headers | ||||
| 
 | ||||
| If you want to expose HTTP response headers, use the `--include` option: | ||||
| 
 | ||||
| ```shell | ||||
| curl --include "https://gitlab.example.com/api/v4/projects" | ||||
| HTTP/2 200 | ||||
| ... | ||||
| ``` | ||||
| 
 | ||||
| This request can help you investigate an unexpected response. | ||||
| 
 | ||||
| ### API request that includes the exit code | ||||
| 
 | ||||
| If you want to expose the HTTP exit code, include the `--fail` option: | ||||
| 
 | ||||
| ```shell | ||||
| curl --fail "https://gitlab.example.com/api/v4/does-not-exist" | ||||
| curl: (22) The requested URL returned error: 404 | ||||
| ``` | ||||
| 
 | ||||
| The HTTP exit code can help you diagnose the success or failure of your REST request. | ||||
| 
 | ||||
| ## Authentication | ||||
| 
 | ||||
| Most API requests require authentication, or only return public data when | ||||
| authentication isn't provided. When authentication is not required, the documentation | ||||
| for each endpoint specifies this. For example, the | ||||
| [`/projects/:id` endpoint](projects.md#get-single-project) does not require authentication. | ||||
| 
 | ||||
| There are several ways you can authenticate with the GitLab API: | ||||
| 
 | ||||
| - [OAuth2 tokens](#oauth2-tokens) | ||||
| - [Personal access tokens](../user/profile/personal_access_tokens.md) | ||||
| - [Project access tokens](../user/project/settings/project_access_tokens.md) | ||||
| - [Group access tokens](../user/group/settings/group_access_tokens.md) | ||||
| - [Session cookie](#session-cookie) | ||||
| - [GitLab CI/CD job token](../ci/jobs/ci_job_token.md) **(Specific endpoints only)** | ||||
| 
 | ||||
| Project access tokens are supported by: | ||||
| 
 | ||||
| - Self-managed GitLab Free and higher. | ||||
| - GitLab SaaS Premium and higher. | ||||
| 
 | ||||
| If you are an administrator, you or your application can authenticate as a specific user. | ||||
| To do so, use: | ||||
| 
 | ||||
| - [Impersonation tokens](#impersonation-tokens) | ||||
| - [Sudo](#sudo) | ||||
| 
 | ||||
| If authentication information is not valid or is missing, GitLab returns an error | ||||
| message with a status code of `401`: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "message": "401 Unauthorized" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| NOTE: | ||||
| Deploy tokens can't be used with the GitLab public API. For details, see | ||||
| [Deploy Tokens](../user/project/deploy_tokens/index.md). | ||||
| 
 | ||||
| ### OAuth2 tokens | ||||
| 
 | ||||
| You can use an [OAuth2 token](oauth2.md) to authenticate with the API by passing | ||||
| it in either the `access_token` parameter or the `Authorization` header. | ||||
| 
 | ||||
| Example of using the OAuth2 token in a parameter: | ||||
| 
 | ||||
| ```shell | ||||
| curl "https://gitlab.example.com/api/v4/projects?access_token=OAUTH-TOKEN" | ||||
| ``` | ||||
| 
 | ||||
| Example of using the OAuth2 token in a header: | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "Authorization: Bearer OAUTH-TOKEN" "https://gitlab.example.com/api/v4/projects" | ||||
| ``` | ||||
| 
 | ||||
| Read more about [GitLab as an OAuth2 provider](oauth2.md). | ||||
| 
 | ||||
| NOTE: | ||||
| We recommend OAuth access tokens have an expiration. You can use the `refresh_token` parameter | ||||
| to refresh tokens. Integrations may need to be updated to use refresh tokens prior to | ||||
| expiration, which is based on the [`expires_in`](https://datatracker.ietf.org/doc/html/rfc6749#appendix-A.14) | ||||
| property in the token endpoint response. See [OAuth2 token](oauth2.md) documentation | ||||
| for examples requesting a new access token using a refresh token. | ||||
| 
 | ||||
| A default refresh setting of two hours is tracked in [this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/336598). | ||||
| 
 | ||||
| ### Personal/project/group access tokens | ||||
| 
 | ||||
| You can use access tokens to authenticate with the API by passing it in either | ||||
| the `private_token` parameter or the `PRIVATE-TOKEN` header. | ||||
| 
 | ||||
| Example of using the personal, project, or group access token in a parameter: | ||||
| 
 | ||||
| ```shell | ||||
| curl "https://gitlab.example.com/api/v4/projects?private_token=<your_access_token>" | ||||
| ``` | ||||
| 
 | ||||
| Example of using the personal, project, or group access token in a header: | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects" | ||||
| ``` | ||||
| 
 | ||||
| You can also use personal, project, or group access tokens with OAuth-compliant headers: | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/projects" | ||||
| ``` | ||||
| 
 | ||||
| ### Session cookie | ||||
| 
 | ||||
| Signing in to the main GitLab application sets a `_gitlab_session` cookie. The | ||||
| API uses this cookie for authentication if it's present. Using the API to | ||||
| generate a new session cookie isn't supported. | ||||
| 
 | ||||
| The primary user of this authentication method is the web frontend of GitLab | ||||
| itself. The web frontend can use the API as the authenticated user to get a | ||||
| list of projects without explicitly passing an access token. | ||||
| 
 | ||||
| ### Impersonation tokens | ||||
| 
 | ||||
| Impersonation tokens are a type of [personal access token](../user/profile/personal_access_tokens.md). | ||||
| They can be created only by an administrator, and are used to authenticate with the | ||||
| API as a specific user. | ||||
| 
 | ||||
| Use impersonation tokens as an alternative to: | ||||
| 
 | ||||
| - The user's password or one of their personal access tokens. | ||||
| - The [Sudo](#sudo) feature. The user's or administrator's password or token | ||||
|   may not be known, or may change over time. | ||||
| 
 | ||||
| For more information, see the [users API](users.md#create-an-impersonation-token) | ||||
| documentation. | ||||
| 
 | ||||
| Impersonation tokens are used exactly like regular personal access tokens, and | ||||
| can be passed in either the `private_token` parameter or the `PRIVATE-TOKEN` | ||||
| header. | ||||
| 
 | ||||
| #### Disable impersonation | ||||
| 
 | ||||
| By default, impersonation is enabled. To disable impersonation: | ||||
| 
 | ||||
| **For Omnibus installations** | ||||
| 
 | ||||
| 1. Edit the `/etc/gitlab/gitlab.rb` file: | ||||
| 
 | ||||
|    ```ruby | ||||
|    gitlab_rails['impersonation_enabled'] = false | ||||
|    ``` | ||||
| 
 | ||||
| 1. Save the file, and then [reconfigure](../administration/restart_gitlab.md#omnibus-gitlab-reconfigure) | ||||
|    GitLab for the changes to take effect. | ||||
| 
 | ||||
| To re-enable impersonation, remove this configuration, and then reconfigure | ||||
| GitLab. | ||||
| 
 | ||||
| **For installations from source** | ||||
| 
 | ||||
| 1. Edit the `config/gitlab.yml` file: | ||||
| 
 | ||||
|    ```yaml | ||||
|    gitlab: | ||||
|      impersonation_enabled: false | ||||
|    ``` | ||||
| 
 | ||||
| 1. Save the file, and then [restart](../administration/restart_gitlab.md#installations-from-source) | ||||
|    GitLab for the changes to take effect. | ||||
| 
 | ||||
| To re-enable impersonation, remove this configuration, and then restart GitLab. | ||||
| 
 | ||||
| ### Sudo | ||||
| 
 | ||||
| All API requests support performing an API request as if you were another user, | ||||
| provided you're authenticated as an administrator with an OAuth or personal | ||||
| access token that has the `sudo` scope. The API requests are executed with the | ||||
| permissions of the impersonated user. | ||||
| 
 | ||||
| As an [administrator](../user/permissions.md), pass the `sudo` parameter either | ||||
| by using query string or a header with an ID or username (case insensitive) of | ||||
| the user you want to perform the operation as. If passed as a header, the header | ||||
| name must be `Sudo`. | ||||
| 
 | ||||
| If a non administrative access token is provided, GitLab returns an error | ||||
| message with a status code of `403`: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "message": "403 Forbidden - Must be admin to use sudo" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| If an access token without the `sudo` scope is provided, an error message is | ||||
| returned with a status code of `403`: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "error": "insufficient_scope", | ||||
|   "error_description": "The request requires higher privileges than provided by the access token.", | ||||
|   "scope": "sudo" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| If the sudo user ID or username cannot be found, an error message is | ||||
| returned with a status code of `404`: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "message": "404 User with ID or username '123' Not Found" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| Example of a valid API request and a request using cURL with sudo request, | ||||
| providing a username: | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /projects?private_token=<your_access_token>&sudo=username | ||||
| ``` | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" --header "Sudo: username" "https://gitlab.example.com/api/v4/projects" | ||||
| ``` | ||||
| 
 | ||||
| Example of a valid API request and a request using cURL with sudo request, | ||||
| providing an ID: | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /projects?private_token=<your_access_token>&sudo=23 | ||||
| ``` | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" --header "Sudo: 23" "https://gitlab.example.com/api/v4/projects" | ||||
| ``` | ||||
| 
 | ||||
| ## Status codes | ||||
| 
 | ||||
| The API is designed to return different status codes according to context and | ||||
| action. This way, if a request results in an error, you can get | ||||
| insight into what went wrong. | ||||
| 
 | ||||
| The following table gives an overview of how the API functions generally behave. | ||||
| 
 | ||||
| | Request type  | Description | | ||||
| |---------------|-------------| | ||||
| | `GET`         | Access one or more resources and return the result as JSON. | | ||||
| | `POST`        | Return `201 Created` if the resource is successfully created and return the newly created resource as JSON. | | ||||
| | `GET` / `PUT` | Return `200 OK` if the resource is accessed or modified successfully. The (modified) result is returned as JSON. | | ||||
| | `DELETE`      | Returns `204 No Content` if the resource was deleted successfully or `202 Accepted` if the resource is scheduled to be deleted. | | ||||
| 
 | ||||
| The following table shows the possible return codes for API requests. | ||||
| 
 | ||||
| | Return values            | Description | | ||||
| |--------------------------|-------------| | ||||
| | `200 OK`                 | The `GET`, `PUT` or `DELETE` request was successful, and the resource itself is returned as JSON. | | ||||
| | `202 Accepted`           | The `GET`, `PUT` or `DELETE` request was successful, and the resource is scheduled for processing. | | ||||
| | `204 No Content`         | The server has successfully fulfilled the request, and there is no additional content to send in the response payload body. | | ||||
| | `201 Created`            | The `POST` request was successful, and the resource is returned as JSON. | | ||||
| | `304 Not Modified`       | The resource hasn't been modified since the last request. | | ||||
| | `400 Bad Request`        | A required attribute of the API request is missing. For example, the title of an issue is not given. | | ||||
| | `401 Unauthorized`       | The user isn't authenticated. A valid [user token](#authentication) is necessary. | | ||||
| | `403 Forbidden`          | The request isn't allowed. For example, the user isn't allowed to delete a project. | | ||||
| | `404 Not Found`          | A resource couldn't be accessed. For example, an ID for a resource couldn't be found. | | ||||
| | `405 Method Not Allowed` | The request isn't supported. | | ||||
| | `409 Conflict`           | A conflicting resource already exists. For example, creating a project with a name that already exists. | | ||||
| | `412`                    | The request was denied. This can happen if the `If-Unmodified-Since` header is provided when trying to delete a resource, which was modified in between. | | ||||
| | `422 Unprocessable`      | The entity couldn't be processed. | | ||||
| | `429 Too Many Requests`  | The user exceeded the [application rate limits](../administration/instance_limits.md#rate-limits). | | ||||
| | `500 Server Error`       | While handling the request, something went wrong on the server. | | ||||
| 
 | ||||
| ## Pagination | ||||
| 
 | ||||
| GitLab supports the following pagination methods: | ||||
| 
 | ||||
| - Offset-based pagination. This is the default method and is available on all endpoints. | ||||
| - Keyset-based pagination. Added to selected endpoints but being | ||||
|   [progressively rolled out](https://gitlab.com/groups/gitlab-org/-/epics/2039). | ||||
| 
 | ||||
| For large collections, for performance reasons we recommend keyset pagination | ||||
| (when available) instead of offset pagination. | ||||
| 
 | ||||
| ### Offset-based pagination | ||||
| 
 | ||||
| Sometimes, the returned result spans many pages. When listing resources, you can | ||||
| pass the following parameters: | ||||
| 
 | ||||
| | Parameter  | Description | | ||||
| |------------|-------------| | ||||
| | `page`     | Page number (default: `1`). | | ||||
| | `per_page` | Number of items to list per page (default: `20`, max: `100`). | | ||||
| 
 | ||||
| In the following example, we list 50 [namespaces](namespaces.md) per page: | ||||
| 
 | ||||
| ```shell | ||||
| curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces?per_page=50" | ||||
| ``` | ||||
| 
 | ||||
| NOTE: | ||||
| There is a [max offset allowed limit](../administration/instance_limits.md#max-offset-allowed-by-the-rest-api-for-offset-based-pagination) for offset pagination. You can change the limit in self-managed instances. | ||||
| 
 | ||||
| #### Pagination `Link` header | ||||
| 
 | ||||
| [`Link` headers](https://www.w3.org/wiki/LinkHeader) are returned with each | ||||
| response. They have `rel` set to `prev`, `next`, `first`, or `last` and contain | ||||
| the relevant URL. Be sure to use these links instead of generating your own URLs. | ||||
| 
 | ||||
| For GitLab.com users, [some pagination headers may not be returned](../user/gitlab_com/index.md#pagination-response-headers). | ||||
| 
 | ||||
| In the following cURL example, we limit the output to three items per page | ||||
| (`per_page=3`) and we request the second page (`page=2`) of [comments](notes.md) | ||||
| of the issue with ID `8` which belongs to the project with ID `9`: | ||||
| 
 | ||||
| ```shell | ||||
| curl --head --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/issues/8/notes?per_page=3&page=2" | ||||
| ``` | ||||
| 
 | ||||
| The response is: | ||||
| 
 | ||||
| ```http | ||||
| HTTP/2 200 OK | ||||
| cache-control: no-cache | ||||
| content-length: 1103 | ||||
| content-type: application/json | ||||
| date: Mon, 18 Jan 2016 09:43:18 GMT | ||||
| link: <https://gitlab.example.com/api/v4/projects/8/issues/8/notes?page=1&per_page=3>; rel="prev", <https://gitlab.example.com/api/v4/projects/8/issues/8/notes?page=3&per_page=3>; rel="next", <https://gitlab.example.com/api/v4/projects/8/issues/8/notes?page=1&per_page=3>; rel="first", <https://gitlab.example.com/api/v4/projects/8/issues/8/notes?page=3&per_page=3>; rel="last" | ||||
| status: 200 OK | ||||
| vary: Origin | ||||
| x-next-page: 3 | ||||
| x-page: 2 | ||||
| x-per-page: 3 | ||||
| x-prev-page: 1 | ||||
| x-request-id: 732ad4ee-9870-4866-a199-a9db0cde3c86 | ||||
| x-runtime: 0.108688 | ||||
| x-total: 8 | ||||
| x-total-pages: 3 | ||||
| ``` | ||||
| 
 | ||||
| #### Other pagination headers | ||||
| 
 | ||||
| GitLab also returns the following additional pagination headers: | ||||
| 
 | ||||
| | Header          | Description | | ||||
| |-----------------|-------------| | ||||
| | `x-next-page`   | The index of the next page. | | ||||
| | `x-page`        | The index of the current page (starting at 1). | | ||||
| | `x-per-page`    | The number of items per page. | | ||||
| | `x-prev-page`   | The index of the previous page. | | ||||
| | `x-total`       | The total number of items. | | ||||
| | `x-total-pages` | The total number of pages. | | ||||
| 
 | ||||
| For GitLab.com users, [some pagination headers may not be returned](../user/gitlab_com/index.md#pagination-response-headers). | ||||
| 
 | ||||
| ### Keyset-based pagination | ||||
| 
 | ||||
| Keyset-pagination allows for more efficient retrieval of pages and - in contrast | ||||
| to offset-based pagination - runtime is independent of the size of the | ||||
| collection. | ||||
| 
 | ||||
| This method is controlled by the following parameters. `order_by` and `sort` are both mandatory. | ||||
| 
 | ||||
| | Parameter    | Required | Description | | ||||
| |--------------| ------------ | --------- | | ||||
| | `pagination` | yes | `keyset` (to enable keyset pagination). | | ||||
| | `per_page`   | no | Number of items to list per page (default: `20`, max: `100`). | | ||||
| | `order_by`   | yes | Column by which to order by. | | ||||
| | `sort`       | yes | Sort order (`asc` or `desc`) | | ||||
| 
 | ||||
| In the following example, we list 50 [projects](projects.md) per page, ordered | ||||
| by `id` ascending. | ||||
| 
 | ||||
| ```shell | ||||
| curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects?pagination=keyset&per_page=50&order_by=id&sort=asc" | ||||
| ``` | ||||
| 
 | ||||
| The response header includes a link to the next page. For example: | ||||
| 
 | ||||
| ```http | ||||
| HTTP/1.1 200 OK | ||||
| ... | ||||
| Link: <https://gitlab.example.com/api/v4/projects?pagination=keyset&per_page=50&order_by=id&sort=asc&id_after=42>; rel="next" | ||||
| Status: 200 OK | ||||
| ... | ||||
| ``` | ||||
| 
 | ||||
| The link to the next page contains an additional filter `id_after=42` that | ||||
| excludes already-retrieved records. | ||||
| 
 | ||||
| As another example, the following request lists 50 [groups](groups.md) per page ordered | ||||
| by `name` ascending using keyset pagination: | ||||
| 
 | ||||
| ```shell | ||||
| curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups?pagination=keyset&per_page=50&order_by=name&sort=asc" | ||||
| ``` | ||||
| 
 | ||||
| The response header includes a link to the next page: | ||||
| 
 | ||||
| ```http | ||||
| HTTP/1.1 200 OK | ||||
| ... | ||||
| Link: <https://gitlab.example.com/api/v4/groups?pagination=keyset&per_page=50&order_by=name&sort=asc&cursor=eyJuYW1lIjoiRmxpZ2h0anMiLCJpZCI6IjI2IiwiX2tkIjoibiJ9>; rel="next" | ||||
| Status: 200 OK | ||||
| ... | ||||
| ``` | ||||
| 
 | ||||
| The link to the next page contains an additional filter `cursor=eyJuYW1lIjoiRmxpZ2h0anMiLCJpZCI6IjI2IiwiX2tkIjoibiJ9` that | ||||
| excludes already-retrieved records. | ||||
| 
 | ||||
| The type of filter depends on the | ||||
| `order_by` option used, and we can have more than one additional filter. | ||||
| 
 | ||||
| WARNING: | ||||
| The `Links` header was removed in GitLab 14.0 to be aligned with the | ||||
| [W3C `Link` specification](https://www.w3.org/wiki/LinkHeader). The `Link` | ||||
| header was [added in GitLab 13.1](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33714) | ||||
| and should be used instead. | ||||
| 
 | ||||
| When the end of the collection is reached and there are no additional | ||||
| records to retrieve, the `Link` header is absent and the resulting array is | ||||
| empty. | ||||
| 
 | ||||
| We recommend using only the given link to retrieve the next page instead of | ||||
| building your own URL. Apart from the headers shown, we don't expose additional | ||||
| pagination headers. | ||||
| 
 | ||||
| Keyset-based pagination is supported only for selected resources and ordering | ||||
| options: | ||||
| 
 | ||||
| | Resource                                                 | Options                          | Availability                                                                                                 | | ||||
| |:---------------------------------------------------------|:---------------------------------|:-------------------------------------------------------------------------------------------------------------| | ||||
| | [Projects](projects.md)                                  | `order_by=id` only               | Authenticated and unauthenticated users                                                                      | | ||||
| | [Groups](groups.md)                                      | `order_by=name`, `sort=asc` only | Unauthenticated users only                                                                                   | | ||||
| | [Group audit events](audit_events.md#group-audit-events) | `order_by=id`, `sort=desc` only  | Authenticated users only ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/333968) in GitLab 15.2) | | ||||
| 
 | ||||
| ### Pagination response headers | ||||
| 
 | ||||
| For performance reasons, if a query returns more than 10,000 records, GitLab | ||||
| doesn't return the following headers: | ||||
| 
 | ||||
| - `x-total`. | ||||
| - `x-total-pages`. | ||||
| - `rel="last"` `link` | ||||
| 
 | ||||
| ## Path parameters | ||||
| 
 | ||||
| If an endpoint has path parameters, the documentation displays them with a | ||||
| preceding colon. | ||||
| 
 | ||||
| For example: | ||||
| 
 | ||||
| ```plaintext | ||||
| DELETE /projects/:id/share/:group_id | ||||
| ``` | ||||
| 
 | ||||
| The `:id` path parameter needs to be replaced with the project ID, and the | ||||
| `:group_id` needs to be replaced with the ID of the group. The colons `:` | ||||
| shouldn't be included. | ||||
| 
 | ||||
| The resulting cURL request for a project with ID `5` and a group ID of `17` is then: | ||||
| 
 | ||||
| ```shell | ||||
| curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/share/17" | ||||
| ``` | ||||
| 
 | ||||
| Path parameters that are required to be URL-encoded must be followed. If not, | ||||
| it doesn't match an API endpoint and responds with a 404. If there's | ||||
| something in front of the API (for example, Apache), ensure that it doesn't decode | ||||
| the URL-encoded path parameters. | ||||
| 
 | ||||
| ## Namespaced path encoding | ||||
| 
 | ||||
| If using namespaced API requests, make sure that the `NAMESPACE/PROJECT_PATH` is | ||||
| URL-encoded. | ||||
| 
 | ||||
| For example, `/` is represented by `%2F`: | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /api/v4/projects/diaspora%2Fdiaspora | ||||
| ``` | ||||
| 
 | ||||
| A project's _path_ isn't necessarily the same as its _name_. A project's path is | ||||
| found in the project's URL or in the project's settings, under | ||||
| **General > Advanced > Change path**. | ||||
| 
 | ||||
| ## File path, branches, and tags name encoding | ||||
| 
 | ||||
| If a file path, branch or tag contains a `/`, make sure it is URL-encoded. | ||||
| 
 | ||||
| For example, `/` is represented by `%2F`: | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /api/v4/projects/1/repository/files/src%2FREADME.md?ref=master | ||||
| GET /api/v4/projects/1/branches/my%2Fbranch/commits | ||||
| GET /api/v4/projects/1/repository/tags/my%2Ftag | ||||
| ``` | ||||
| 
 | ||||
| ## Request Payload | ||||
| 
 | ||||
| API Requests can use parameters sent as [query strings](https://en.wikipedia.org/wiki/Query_string) | ||||
| or as a [payload body](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p3-payload-14#section-3.2). | ||||
| GET requests usually send a query string, while PUT or POST requests usually | ||||
| send the payload body: | ||||
| 
 | ||||
| - Query string: | ||||
| 
 | ||||
|   ```shell | ||||
|   curl --request POST "https://gitlab/api/v4/projects?name=<example-name>&description=<example-description>" | ||||
|   ``` | ||||
| 
 | ||||
| - Request payload (JSON): | ||||
| 
 | ||||
|   ```shell | ||||
|   curl --request POST --header "Content-Type: application/json" \ | ||||
|        --data '{"name":"<example-name>", "description":"<example-description>"}' "https://gitlab/api/v4/projects" | ||||
|   ``` | ||||
| 
 | ||||
| URL encoded query strings have a length limitation. Requests that are too large | ||||
| result in a `414 Request-URI Too Large` error message. This can be resolved by | ||||
| using a payload body instead. | ||||
| 
 | ||||
| ## Encoding API parameters of `array` and `hash` types | ||||
| 
 | ||||
| You can request the API with `array` and `hash` types parameters: | ||||
| 
 | ||||
| ### `array` | ||||
| 
 | ||||
| `import_sources` is a parameter of type `array`: | ||||
| 
 | ||||
| ```shell | ||||
| curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
| -d "import_sources[]=github" \ | ||||
| -d "import_sources[]=bitbucket" \ | ||||
| "https://gitlab.example.com/api/v4/some_endpoint" | ||||
| ``` | ||||
| 
 | ||||
| ### `hash` | ||||
| 
 | ||||
| `override_params` is a parameter of type `hash`: | ||||
| 
 | ||||
| ```shell | ||||
| curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
| --form "namespace=email" \ | ||||
| --form "path=impapi" \ | ||||
| --form "file=@/path/to/somefile.txt" \ | ||||
| --form "override_params[visibility]=private" \ | ||||
| --form "override_params[some_other_param]=some_value" \ | ||||
| "https://gitlab.example.com/api/v4/projects/import" | ||||
| ``` | ||||
| 
 | ||||
| ### Array of hashes | ||||
| 
 | ||||
| `variables` is a parameter of type `array` containing hash key/value pairs | ||||
| `[{ 'key': 'UPLOAD_TO_S3', 'value': 'true' }]`: | ||||
| 
 | ||||
| ```shell | ||||
| curl --globoff --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
| "https://gitlab.example.com/api/v4/projects/169/pipeline?ref=master&variables[0][key]=VAR1&variables[0][value]=hello&variables[1][key]=VAR2&variables[1][value]=world" | ||||
| 
 | ||||
| curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ | ||||
| --header "Content-Type: application/json" \ | ||||
| --data '{ "ref": "master", "variables": [ {"key": "VAR1", "value": "hello"}, {"key": "VAR2", "value": "world"} ] }' \ | ||||
| "https://gitlab.example.com/api/v4/projects/169/pipeline" | ||||
| ``` | ||||
| 
 | ||||
| ## `id` vs `iid` | ||||
| 
 | ||||
| Some resources have two similarly-named fields. For example, [issues](issues.md), | ||||
| [merge requests](merge_requests.md), and [project milestones](merge_requests.md). | ||||
| The fields are: | ||||
| 
 | ||||
| - `id`: ID that is unique across all projects. | ||||
| - `iid`: Additional, internal ID (displayed in the web UI) that's unique in the | ||||
|   scope of a single project. | ||||
| 
 | ||||
| If a resource has both the `iid` field and the `id` field, the `iid` field is | ||||
| usually used instead of `id` to fetch the resource. | ||||
| 
 | ||||
| For example, suppose a project with `id: 42` has an issue with `id: 46` and | ||||
| `iid: 5`. In this case: | ||||
| 
 | ||||
| - A valid API request to retrieve the issue is `GET /projects/42/issues/5`. | ||||
| - An invalid API request to retrieve the issue is `GET /projects/42/issues/46`. | ||||
| 
 | ||||
| Not all resources with the `iid` field are fetched by `iid`. For guidance | ||||
| regarding which field to use, see the documentation for the specific resource. | ||||
| 
 | ||||
| ## Data validation and error reporting | ||||
| 
 | ||||
| When working with the API you may encounter validation errors, in which case | ||||
| the API returns an HTTP `400` error. | ||||
| 
 | ||||
| Such errors appear in the following cases: | ||||
| 
 | ||||
| - A required attribute of the API request is missing (for example, the title of | ||||
|   an issue isn't given). | ||||
| - An attribute did not pass the validation (for example, the user bio is too | ||||
|   long). | ||||
| 
 | ||||
| When an attribute is missing, you receive something like: | ||||
| 
 | ||||
| ```http | ||||
| HTTP/1.1 400 Bad Request | ||||
| Content-Type: application/json | ||||
| { | ||||
|     "message":"400 (Bad request) \"title\" not given" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| When a validation error occurs, error messages are different. They hold | ||||
| all details of validation errors: | ||||
| 
 | ||||
| ```http | ||||
| HTTP/1.1 400 Bad Request | ||||
| Content-Type: application/json | ||||
| { | ||||
|     "message": { | ||||
|         "bio": [ | ||||
|             "is too long (maximum is 255 characters)" | ||||
|         ] | ||||
|     } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| This makes error messages more machine-readable. The format can be described as | ||||
| follows: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|     "message": { | ||||
|         "<property-name>": [ | ||||
|             "<error-message>", | ||||
|             "<error-message>", | ||||
|             ... | ||||
|         ], | ||||
|         "<embed-entity>": { | ||||
|             "<property-name>": [ | ||||
|                 "<error-message>", | ||||
|                 "<error-message>", | ||||
|                 ... | ||||
|             ], | ||||
|         } | ||||
|     } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ## Unknown route | ||||
| 
 | ||||
| When you attempt to access an API URL that doesn't exist, you receive a | ||||
| 404 Not Found message. | ||||
| 
 | ||||
| ```http | ||||
| HTTP/1.1 404 Not Found | ||||
| Content-Type: application/json | ||||
| { | ||||
|     "error": "404 Not Found" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ## Encoding `+` in ISO 8601 dates | ||||
| 
 | ||||
| If you need to include a `+` in a query parameter, you may need to use `%2B` | ||||
| instead, due to a [W3 recommendation](https://www.w3.org/Addressing/URL/4_URI_Recommentations.html) | ||||
| that causes a `+` to be interpreted as a space. For example, in an ISO 8601 date, | ||||
| you may want to include a specific time in ISO 8601 format, such as: | ||||
| 
 | ||||
| ```plaintext | ||||
| 2017-10-17T23:11:13.000+05:30 | ||||
| ``` | ||||
| 
 | ||||
| The correct encoding for the query parameter would be: | ||||
| 
 | ||||
| ```plaintext | ||||
| 2017-10-17T23:11:13.000%2B05:30 | ||||
| ``` | ||||
| 
 | ||||
| ## Clients | ||||
| 
 | ||||
| There are many unofficial GitLab API Clients for most of the popular programming | ||||
| languages. For a complete list, visit the [GitLab website](https://about.gitlab.com/partners/technology-partners/#api-clients). | ||||
| 
 | ||||
| ## Rate limits | ||||
| 
 | ||||
| For administrator documentation on rate limit settings, see | ||||
| [Rate limits](../security/rate_limits.md). To find the settings that are | ||||
| specifically used by GitLab.com, see | ||||
| [GitLab.com-specific rate limits](../user/gitlab_com/index.md#gitlabcom-specific-rate-limits). | ||||
| 
 | ||||
| ## Content type | ||||
| 
 | ||||
| The GitLab API supports the `application/json` content type by default, though | ||||
| some API endpoints also support `text/plain`. | ||||
| 
 | ||||
| In [GitLab 13.10 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/250342), | ||||
| API endpoints do not support `text/plain` by default, unless it's explicitly documented. | ||||
| 
 | ||||
| ## Resolve requests detected as spam | ||||
| 
 | ||||
| > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/352913) in GitLab 14.9. | ||||
| 
 | ||||
| REST API requests can be detected as spam. If a request is detected as spam and: | ||||
| 
 | ||||
| - A CAPTCHA service is not configured, an error response is returned. For example: | ||||
| 
 | ||||
|   ```json | ||||
|   {"message":{"error":"Your snippet has been recognized as spam and has been discarded."}} | ||||
|   ``` | ||||
| 
 | ||||
| - A CAPTCHA service is configured, you receive a response with: | ||||
|   - `needs_captcha_response` set to `true`. | ||||
|   - The `spam_log_id` and `captcha_site_key` fields set. | ||||
| 
 | ||||
|   For example: | ||||
| 
 | ||||
|   ```json | ||||
|   {"needs_captcha_response":true,"spam_log_id":42,"captcha_site_key":"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI","message":{"error":"Your snippet has been recognized as spam. Please, change the content or solve the reCAPTCHA to proceed."}} | ||||
|   ``` | ||||
| 
 | ||||
| - Use the `captcha_site_key` to obtain a CAPTCHA response value using the appropriate CAPTCHA API. | ||||
|   Only [Google reCAPTCHA v2](https://developers.google.com/recaptcha/docs/display) is supported. | ||||
| - Resubmit the request with the `X-GitLab-Captcha-Response` and `X-GitLab-Spam-Log-Id` headers set. | ||||
| 
 | ||||
| ```shell | ||||
| export CAPTCHA_RESPONSE="<CAPTCHA response obtained from CAPTCHA service>" | ||||
| export SPAM_LOG_ID="<spam_log_id obtained from initial REST response>" | ||||
| curl --request POST --header "PRIVATE-TOKEN: $PRIVATE_TOKEN" --header "X-GitLab-Captcha-Response: $CAPTCHA_RESPONSE" --header "X-GitLab-Spam-Log-Id: $SPAM_LOG_ID" "https://gitlab.example.com/api/v4/snippets?title=Title&file_name=FileName&content=Content&visibility=public" | ||||
| ``` | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ POST /projects/:id/invitations | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `email` | string | yes (if `user_id` isn't provided) | The email of the new member or multiple emails separated by commas. | | ||||
| | `user_id`   | integer/string | yes (if `email` isn't provided) | The ID of the new member or multiple IDs separated by commas. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/350999) in GitLab 14.10. | | ||||
| | `access_level` | integer | yes | A valid access level | | ||||
|  | @ -88,7 +88,7 @@ GET /projects/:id/invitations | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `page`    | integer | no   | Page to retrieve                      | | ||||
| | `per_page`| integer | no   | Number of member invitations to return per page | | ||||
| | `query`   | string  | no   | A query string to search for invited members by invite email. Query text must match email address exactly. When empty, returns all invitations. | | ||||
|  | @ -125,7 +125,7 @@ PUT /projects/:id/invitations/:email | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `email`   | string | yes    | The email address the invitation was previously sent to. | | ||||
| | `access_level` | integer | no | A valid access level (defaults: `30`, the Developer role). | | ||||
| | `expires_at` | string | no | A date string in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`). | | ||||
|  | @ -155,7 +155,7 @@ DELETE /projects/:id/invitations/:email | |||
| 
 | ||||
| | Attribute | Type | Required | Description | | ||||
| | --------- | ---- | -------- | ----------- | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string | yes | The ID or [URL-encoded path of the project or group](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `email`   | string | yes    | The email address to which the invitation was previously sent | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```json | ||||
|  | @ -77,7 +77,7 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute       | Type           | Required               | Description                                                                 | | ||||
| |-----------------|----------------|------------------------|-----------------------------------------------------------------------------| | ||||
| | `id`            | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding). | | ||||
| | `id`            | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding). | | ||||
| | `issue_iid`     | integer        | **{check-circle}** Yes | Internal ID of a project's issue.                                           | | ||||
| | `issue_link_id` | integer/string | **{check-circle}** Yes | ID of an issue relationship.                                                | | ||||
| 
 | ||||
|  | @ -174,9 +174,9 @@ POST /projects/:id/issues/:issue_iid/links | |||
| 
 | ||||
| | Attribute           | Type           | Required | Description                          | | ||||
| |---------------------|----------------|----------|--------------------------------------| | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`                | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `issue_iid`         | integer        | yes      | The internal ID of a project's issue | | ||||
| | `target_project_id` | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) of a target project  | | ||||
| | `target_project_id` | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) of a target project  | | ||||
| | `target_issue_iid`  | integer/string | yes      | The internal ID of a target project's issue | | ||||
| | `link_type`         | string         | no       | The type of the relation (`relates_to`, `blocks`, `is_blocked_by`), defaults to `relates_to`). | | ||||
| 
 | ||||
|  | @ -262,7 +262,7 @@ DELETE /projects/:id/issues/:issue_iid/links/:issue_link_id | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| | `issue_link_id` | integer/string | yes      | The ID of an issue relationship | | ||||
| | `link_type` | string  | no | The type of the relation (`relates_to`, `blocks`, `is_blocked_by`), defaults to `relates_to` | | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ request on that project results in a `404` status code. | |||
| By default, `GET` requests return 20 results at a time because the API results | ||||
| are paginated. | ||||
| 
 | ||||
| Read more on [pagination](index.md#pagination). | ||||
| Read more on [pagination](rest/index.md#pagination). | ||||
| 
 | ||||
| WARNING: | ||||
| The `reference` attribute in responses is deprecated in favor of `references`. | ||||
|  | @ -295,7 +295,7 @@ GET /groups/:id/issues?state=opened | |||
| | `created_before`    | datetime         | no         | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | ||||
| | `due_date`          | string           | no         | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `any`, `today`, `tomorrow`, `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. | | ||||
| | `epic_id` **(PREMIUM)** | integer      | no         | Return issues associated with the given epic ID. `None` returns issues that are not associated with an epic. `Any` returns issues that are associated with an epic. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46887) in GitLab 13.6)_ | ||||
| | `id`                | integer/string   | yes        | The global ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                 | | ||||
| | `id`                | integer/string   | yes        | The global ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                 | | ||||
| | `iids[]`            | integer array    | no         | Return only the issues having the given `iid`                                                                                 | | ||||
| | `issue_type`        | string           | no         | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/260375) in GitLab 13.12)_ | | ||||
| | `iteration_id` **(PREMIUM)** | integer | no         | Return issues assigned to the given iteration ID. `None` returns issues that do not belong to an iteration. `Any` returns issues that belong to an iteration. Mutually exclusive with `iteration_title`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | ||||
|  | @ -499,7 +499,7 @@ GET /projects/:id/issues?state=opened | |||
| | `created_before`    | datetime         | no         | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | ||||
| | `due_date`          | string           | no         | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `any`, `today`, `tomorrow`, `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. | | ||||
| | `epic_id` **(PREMIUM)** | integer      | no         | Return issues associated with the given epic ID. `None` returns issues that are not associated with an epic. `Any` returns issues that are associated with an epic. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46887) in GitLab 13.6)_ | ||||
| | `id`                | integer/string   | yes        | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user               | | ||||
| | `id`                | integer/string   | yes        | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user               | | ||||
| | `iids[]`            | integer array    | no         | Return only the issues having the given `iid`                                                                              | | ||||
| | `issue_type`        | string           | no         | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/260375) in GitLab 13.12)_ | | ||||
| | `iteration_id` **(PREMIUM)** | integer | no         | Return issues assigned to the given iteration ID. `None` returns issues that do not belong to an iteration. `Any` returns issues that belong to an iteration. Mutually exclusive with `iteration_title`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | ||||
|  | @ -846,7 +846,7 @@ GET /projects/:id/issues/:issue_iid | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -1012,7 +1012,7 @@ POST /projects/:id/issues | |||
| | `due_date`                                | string         | no       | The due date. Date time string in the format `YYYY-MM-DD`, for example `2016-03-11` | | ||||
| | `epic_id` **(PREMIUM)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | | ||||
| | `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5) | | ||||
| | `id`                                      | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`                                      | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `iid`                                     | integer/string | no       | The internal ID of the project's issue (requires administrator or project owner rights) | | ||||
| | `issue_type`                              | string         | no       | The type of issue. One of `issue`, `incident`, or `test_case`. Default is `issue`. | | ||||
| | `labels`                                  | string         | no       | Comma-separated label names for an issue  | | ||||
|  | @ -1180,7 +1180,7 @@ PUT /projects/:id/issues/:issue_iid | |||
| | `due_date`     | string  | no       | The due date. Date time string in the format `YYYY-MM-DD`, for example `2016-03-11`                                           | | ||||
| | `epic_id` **(PREMIUM)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | | ||||
| | `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5) | | ||||
| | `id`           | integer/string | yes | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`           | integer/string | yes | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `issue_iid`    | integer | yes      | The internal ID of a project's issue                                                                       | | ||||
| | `issue_type`   | string  | no       | Updates the type of issue. One of `issue`, `incident`, or `test_case`. | | ||||
| | `labels`       | string  | no       | Comma-separated label names for an issue. Set to an empty string to unassign all labels.                   | | ||||
|  | @ -1326,7 +1326,7 @@ DELETE /projects/:id/issues/:issue_iid | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -1345,7 +1345,7 @@ PUT /projects/:id/issues/:issue_iid/reorder | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of the project's issue | | ||||
| | `move_after_id` | integer | no | The global ID of a project's issue that should be placed after this issue | | ||||
| | `move_before_id` | integer | no | The global ID of a project's issue that should be placed before this issue | | ||||
|  | @ -1369,7 +1369,7 @@ POST /projects/:id/issues/:issue_iid/move | |||
| 
 | ||||
| | Attribute       | Type    | Required | Description                          | | ||||
| |-----------------|---------|----------|--------------------------------------| | ||||
| | `id`            | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`            | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid`     | integer | yes      | The internal ID of a project's issue | | ||||
| | `to_project_id` | integer | yes      | The ID of the new project            | | ||||
| 
 | ||||
|  | @ -1515,7 +1515,7 @@ POST /projects/:id/issues/:issue_iid/clone | |||
| 
 | ||||
| | Attribute       | Type           | Required               | Description                       | | ||||
| | --------------- | -------------- | ---------------------- | --------------------------------- | | ||||
| | `id`            | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`            | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `issue_iid`     | integer        | **{check-circle}** Yes | Internal ID of a project's issue. | | ||||
| | `to_project_id` | integer        | **{check-circle}** Yes | ID of the new project.            | | ||||
| | `with_notes`    | boolean        | **{dotted-circle}** No | Clone the issue with [notes](notes.md). Default is `false`. | | ||||
|  | @ -1622,7 +1622,7 @@ POST /projects/:id/issues/:issue_iid/subscribe | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -1765,7 +1765,7 @@ POST /projects/:id/issues/:issue_iid/unsubscribe | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -1839,7 +1839,7 @@ POST /projects/:id/issues/:issue_iid/todo | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -1960,7 +1960,7 @@ Supported attributes: | |||
| 
 | ||||
| | Attribute   | Type           | Required | Description | | ||||
| | :---------- | :------------- | :------- | :---------- | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `issue_iid` | integer        | yes      | The internal ID of a project's issue | | ||||
| | `body`      | String         | yes      | The content of a note. Must contain `/promote` at the start of a new line. | | ||||
| 
 | ||||
|  | @ -2011,7 +2011,7 @@ POST /projects/:id/issues/:issue_iid/time_estimate | |||
| | Attribute   | Type    | Required | Description                              | | ||||
| |-------------|---------|----------|------------------------------------------| | ||||
| | `duration`  | string  | yes      | The duration in human format. e.g: `3h30m` | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue     | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2039,7 +2039,7 @@ POST /projects/:id/issues/:issue_iid/reset_time_estimate | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2068,7 +2068,7 @@ POST /projects/:id/issues/:issue_iid/add_spent_time | |||
| | Attribute   | Type    | Required | Description                              | | ||||
| |-------------|---------|----------|------------------------------------------| | ||||
| | `duration`  | string  | yes      | The duration in human format. e.g: `3h30m` | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user      | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue     | | ||||
| | `summary`   | string  | no       | A summary of how the time was spent  | | ||||
| 
 | ||||
|  | @ -2097,7 +2097,7 @@ POST /projects/:id/issues/:issue_iid/reset_spent_time | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2126,7 +2126,7 @@ GET /projects/:id/issues/:issue_iid/time_stats | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2157,7 +2157,7 @@ GET /projects/:id/issues/:issue_iid/related_merge_requests | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2317,7 +2317,7 @@ GET /projects/:id/issues/:issue_iid/closed_by | |||
| 
 | ||||
| | Attribute   | Type           | Required | Description                        | | ||||
| | ----------- | ---------------| -------- | ---------------------------------- | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `issue_iid` | integer        | yes      | The internal ID of a project issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2394,7 +2394,7 @@ GET /projects/:id/issues/:issue_iid/participants | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2438,7 +2438,7 @@ GET /projects/:id/issues/:issue_iid/user_agent_detail | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2470,7 +2470,7 @@ POST /projects/:id/issues/:issue_iid/metric_images | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| | `file` | file | yes      | The image file to be uploaded | | ||||
| | `url` | string | no      | The URL to view more metric information | | ||||
|  | @ -2504,7 +2504,7 @@ GET /projects/:id/issues/:issue_iid/metric_images | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -2542,7 +2542,7 @@ PUT /projects/:id/issues/:issue_iid/metric_images/:image_id | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| | `image_id` | integer | yes      | The ID of the image | | ||||
| | `url` | string | no      | The URL to view more metric information | | ||||
|  | @ -2575,7 +2575,7 @@ DELETE /projects/:id/issues/:issue_iid/metric_images/:image_id | |||
| 
 | ||||
| | Attribute   | Type    | Required | Description                          | | ||||
| |-------------|---------|----------|--------------------------------------| | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `id`        | integer/string | yes      | The global ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user  | | ||||
| | `issue_iid` | integer | yes      | The internal ID of a project's issue | | ||||
| | `image_id` | integer | yes      | The ID of the image | | ||||
| 
 | ||||
|  |  | |||
|  | @ -91,7 +91,7 @@ GET /groups/:id/issues_statistics?confidential=true | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                                                                   | | ||||
| | ------------------- | ---------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user                 | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user                 | | ||||
| | `labels`            | string           | no         | Comma-separated list of label names, issues must have all labels to be returned. `None` lists all issues with no labels. `Any` lists all issues with at least one label. | | ||||
| | `iids[]`            | integer array    | no         | Return only the issues having the given `iid`                                                                                 | | ||||
| | `milestone`         | string           | no         | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone.       | | ||||
|  | @ -147,7 +147,7 @@ GET /projects/:id/issues_statistics?confidential=true | |||
| 
 | ||||
| | Attribute           | Type             | Required   | Description                                                                                                                   | | ||||
| | ------------------- | ---------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user               | | ||||
| | `id`                | integer/string   | yes        | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user               | | ||||
| | `iids[]`            | integer array    | no         | Return only the milestone having the given `iid`                                                                              | | ||||
| | `labels`            | string           | no         | Comma-separated list of label names, issues must have all labels to be returned. `None` lists all issues with no labels. `Any` lists all issues with at least one label. | | ||||
| | `milestone`         | string           | no         | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone.       | | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ GET /projects/:id/jobs/:job_id/artifacts | |||
| 
 | ||||
| | Attribute                 | Type           | Required | Description | | ||||
| |---------------------------|----------------|----------|-------------| | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`                  | integer        | yes      | ID of a job. | | ||||
| | `job_token` **(PREMIUM)** | string         | no       | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. | | ||||
| 
 | ||||
|  | @ -82,7 +82,7 @@ Parameters | |||
| 
 | ||||
| | Attribute                 | Type           | Required | Description | | ||||
| |---------------------------|----------------|----------|-------------| | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `ref_name`                | string         | yes      | Branch or tag name in repository. HEAD or SHA references are not supported. | | ||||
| | `job`                     | string         | yes      | The name of the job. | | ||||
| | `job_token` **(PREMIUM)** | string         | no       | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. | | ||||
|  | @ -143,7 +143,7 @@ Parameters | |||
| 
 | ||||
| | Attribute                 | Type           | Required | Description | | ||||
| |---------------------------|----------------|----------|-------------| | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`                  | integer        | yes      | The unique job identifier. | | ||||
| | `artifact_path`           | string         | yes      | Path to a file inside the artifacts archive. | | ||||
| | `job_token` **(PREMIUM)** | string         | no       | To be used with [triggers](../ci/jobs/ci_job_token.md#download-an-artifact-from-a-different-pipeline) for multi-project pipelines. It should be invoked only in a CI/CD job defined in the `.gitlab-ci.yml` file. The value is always `$CI_JOB_TOKEN`. The job associated with the `$CI_JOB_TOKEN` must be running when this token is used. | | ||||
|  | @ -187,7 +187,7 @@ Parameters: | |||
| 
 | ||||
| | Attribute                 | Type           | Required | Description | | ||||
| |---------------------------|----------------|----------|-------------| | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `ref_name`                | string         | yes      | Branch or tag name in repository. `HEAD` or `SHA` references are not supported. | | ||||
| | `artifact_path`           | string         | yes      | Path to a file inside the artifacts archive. | | ||||
| | `job`                     | string         | yes      | The name of the job. | | ||||
|  | @ -219,7 +219,7 @@ Parameters | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                                                  | | ||||
| |-----------|----------------|----------|--------------------------------------------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`  | integer        | yes      | ID of a job.                                                                                                 | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -274,7 +274,7 @@ DELETE /projects/:id/jobs/:job_id/artifacts | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                 | | ||||
| |-----------|----------------|----------|-----------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| | `job_id`  | integer        | yes      | ID of a job.                                                                | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -303,7 +303,7 @@ DELETE /projects/:id/artifacts | |||
| 
 | ||||
| | Attribute | Type           | Required | Description                                                                 | | ||||
| |-----------|----------------|----------|-----------------------------------------------------------------------------| | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string | yes      | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w | |||
| 
 | ||||
| Get a list of jobs in a project. Jobs are sorted in descending order of their IDs. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination) | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination) | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /projects/:id/jobs | ||||
|  | @ -18,7 +18,7 @@ GET /projects/:id/jobs | |||
| 
 | ||||
| | Attribute | Type                           | Required               | Description | | ||||
| |-----------|--------------------------------|------------------------|-------------| | ||||
| | `id`      | integer/string                 | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string                 | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `scope`   | string **or** array of strings | **{dotted-circle}** No | Scope of jobs to show. Either one of or an array of the following: `created`, `pending`, `running`, `failed`, `success`, `canceled`, `skipped`, `waiting_for_resource`, or `manual`. All jobs are returned if `scope` is not provided. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -163,7 +163,7 @@ Example of response | |||
| 
 | ||||
| Get a list of jobs for a pipeline. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination) | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination) | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /projects/:id/pipelines/:pipeline_id/jobs | ||||
|  | @ -171,7 +171,7 @@ GET /projects/:id/pipelines/:pipeline_id/jobs | |||
| 
 | ||||
| | Attribute         | Type                           | Required               | Description | | ||||
| |-------------------|--------------------------------|------------------------|-------------| | ||||
| | `id`              | integer/string                 | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`              | integer/string                 | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `pipeline_id`     | integer                        | **{check-circle}** Yes | ID of a pipeline. Can also be obtained in CI jobs via the [predefined CI variable](../ci/variables/predefined_variables.md) `CI_PIPELINE_ID`. | | ||||
| | `scope`           | string **or** array of strings | **{dotted-circle}** No | Scope of jobs to show. Either one of or an array of the following: `created`, `pending`, `running`, `failed`, `success`, `canceled`, `skipped`, `waiting_for_resource`, or `manual`. All jobs are returned if `scope` is not provided. | | ||||
| | `include_retried` | boolean                        | **{dotted-circle}** No | Include retried jobs in the response. Defaults to `false`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/272627) in GitLab 13.9. | | ||||
|  | @ -334,7 +334,7 @@ GET /projects/:id/pipelines/:pipeline_id/bridges | |||
| 
 | ||||
| | Attribute     | Type                           | Required               | Description | | ||||
| |---------------|--------------------------------|------------------------|-------------| | ||||
| | `id`          | integer/string                 | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`          | integer/string                 | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `pipeline_id` | integer                        | **{check-circle}** Yes | ID of a pipeline. | | ||||
| | `scope`       | string **or** array of strings | **{dotted-circle}** No | Scope of jobs to show. Either one of or an array of the following: `created`, `pending`, `running`, `failed`, `success`, `canceled`, `skipped`, `waiting_for_resource`, or `manual`. All jobs are returned if `scope` is not provided. | | ||||
| 
 | ||||
|  | @ -575,7 +575,7 @@ GET /projects/:id/jobs/:job_id | |||
| 
 | ||||
| | Attribute | Type           | Required               | Description | | ||||
| |-----------|----------------|------------------------|-------------| | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`  | integer        | **{check-circle}** Yes | ID of a job. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -655,7 +655,7 @@ GET /projects/:id/jobs/:job_id/trace | |||
| 
 | ||||
| | Attribute | Type           | Required               | Description | | ||||
| |-----------|----------------|------------------------|-------------| | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`  | integer        | **{check-circle}** Yes | ID of a job. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -679,7 +679,7 @@ POST /projects/:id/jobs/:job_id/cancel | |||
| 
 | ||||
| | Attribute | Type           | Required               | Description | | ||||
| |-----------|----------------|------------------------|-------------| | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`  | integer        | **{check-circle}** Yes | ID of a job. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -732,7 +732,7 @@ POST /projects/:id/jobs/:job_id/retry | |||
| 
 | ||||
| | Attribute | Type           | Required               | Description | | ||||
| |-----------|----------------|------------------------|-------------| | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`  | integer        | **{check-circle}** Yes | ID of a job. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -787,7 +787,7 @@ Parameters | |||
| 
 | ||||
| | Attribute | Type           | Required               | Description | | ||||
| |-----------|----------------|------------------------|-------------| | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`      | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`  | integer        | **{check-circle}** Yes | ID of a job. | | ||||
| 
 | ||||
| Example of request | ||||
|  | @ -847,7 +847,7 @@ POST /projects/:id/jobs/:job_id/play | |||
| 
 | ||||
| | Attribute                  | Type            | Required               | Description | | ||||
| |----------------------------|-----------------|------------------------|-------------| | ||||
| | `id`                       | integer/string  | **{check-circle}** Yes | ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                       | integer/string  | **{check-circle}** Yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `job_id`                   | integer         | **{check-circle}** Yes | ID of a job. | | ||||
| | `job_variables_attributes` | array of hashes | **{dotted-circle}** No | An array containing the custom variables available to the job. [Introduced in](https://gitlab.com/gitlab-org/gitlab/-/issues/37267) GitLab 14.9. | | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ The `description_html` - was [added](https://gitlab.com/gitlab-org/gitlab/-/merg | |||
| 
 | ||||
| Get all labels for a given project. | ||||
| 
 | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](index.md#pagination). | ||||
| By default, this request returns 20 results at a time because the API results [are paginated](rest/index.md#pagination). | ||||
| 
 | ||||
| ```plaintext | ||||
| GET /projects/:id/labels | ||||
|  | @ -23,7 +23,7 @@ GET /projects/:id/labels | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                                                                                                                  | | ||||
| | ---------     | -------        | -------- | ---------------------                                                                                                                                                        | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user                                                              | | ||||
| | `id`          | integer/string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user                                                              | | ||||
| | `with_counts` | boolean        | no       | Whether or not to include issue and merge request counts. Defaults to `false`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/31543) in GitLab 12.2)_ | | ||||
| | `include_ancestor_groups` | boolean | no | Include ancestor groups. Defaults to `true`. | | ||||
| | `search` | string | no | Keyword to filter labels by. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/259024) in GitLab 13.6 | | ||||
|  | @ -119,7 +119,7 @@ GET /projects/:id/labels/:label_id | |||
| 
 | ||||
| | Attribute     | Type           | Required | Description                                                                                                                                                                  | | ||||
| | ---------     | -------        | -------- | ---------------------                                                                                                                                                        | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user                                                              | | ||||
| | `id`          | integer or string | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user                                                              | | ||||
| | `label_id` | integer or string | yes | The ID or title of a project's label. | | ||||
| | `include_ancestor_groups` | boolean | no | Include ancestor groups. Defaults to `true`. | | ||||
| 
 | ||||
|  | @ -156,7 +156,7 @@ POST /projects/:id/labels | |||
| 
 | ||||
| | Attribute     | Type    | Required | Description                  | | ||||
| | ------------- | ------- | -------- | ---------------------------- | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name`        | string  | yes      | The name of the label        | | ||||
| | `color`       | string  | yes      | The color of the label given in 6-digit hex notation with leading '#' sign (for example, #FFAABB) or one of the [CSS color names](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords) | | ||||
| | `description` | string  | no       | The description of the label | | ||||
|  | @ -195,7 +195,7 @@ DELETE /projects/:id/labels/:label_id | |||
| 
 | ||||
| | Attribute | Type    | Required | Description           | | ||||
| | --------- | ------- | -------- | --------------------- | | ||||
| | `id`            | integer or string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`            | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes | The ID or title of a group's label. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -216,7 +216,7 @@ PUT /projects/:id/labels/:label_id | |||
| 
 | ||||
| | Attribute       | Type    | Required                          | Description                      | | ||||
| | --------------- | ------- | --------------------------------- | -------------------------------  | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes | The ID or title of a group's label. | | ||||
| | `new_name`      | string  | yes if `color` is not provided    | The new name of the label        | | ||||
| | `color`         | string  | yes if `new_name` is not provided | The color of the label given in 6-digit hex notation with leading '#' sign (for example, #FFAABB) or one of the [CSS color names](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords) | | ||||
|  | @ -265,7 +265,7 @@ PUT /projects/:id/labels/:label_id/promote | |||
| 
 | ||||
| | Attribute       | Type    | Required                          | Description                      | | ||||
| | --------------- | ------- | --------------------------------- | -------------------------------  | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes | The ID or title of a group's label. | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -303,7 +303,7 @@ POST /projects/:id/labels/:label_id/subscribe | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                          | | ||||
| | ---------- | ----------------- | -------- | ------------------------------------ | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes      | The ID or title of a project's label | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -341,7 +341,7 @@ POST /projects/:id/labels/:label_id/unsubscribe | |||
| 
 | ||||
| | Attribute  | Type              | Required | Description                          | | ||||
| | ---------- | ----------------- | -------- | ------------------------------------ | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer or string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `label_id` | integer or string | yes      | The ID or title of a project's label | | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ Supported attributes: | |||
| | Attribute  | Type           | Required               | Description                                                               | | ||||
| | ---------- | -------------- | ---------------------- | ------------------------------------------------------------------------- | | ||||
| | `epic_iid` | integer        | **{check-circle}** Yes | Internal ID of a group's epic                                             | | ||||
| | `id`       | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding). | | ||||
| | `id`       | integer/string | **{check-circle}** Yes | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding). | | ||||
| 
 | ||||
| Example request: | ||||
| 
 | ||||
|  | @ -103,9 +103,9 @@ Supported attributes: | |||
| | Attribute           | Type           | Required                    | Description                           | | ||||
| |---------------------|----------------|-----------------------------|---------------------------------------| | ||||
| | `epic_iid`          | integer        | **{check-circle}** Yes      | Internal ID of a group's epic.        | | ||||
| | `id`                | integer/string | **{check-circle}** Yes      | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                | integer/string | **{check-circle}** Yes      | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `target_epic_iid`   | integer/string | **{check-circle}** Yes      | Internal ID of a target group's epic. | | ||||
| | `target_group_id`   | integer/string | **{check-circle}** Yes      | ID or [URL-encoded path of the target group](index.md#namespaced-path-encoding). | | ||||
| | `target_group_id`   | integer/string | **{check-circle}** Yes      | ID or [URL-encoded path of the target group](rest/index.md#namespaced-path-encoding). | | ||||
| | `link_type`         | string         | **{dotted-circle}** No      | Type of the relation (`relates_to`, `blocks`, `is_blocked_by`), defaults to `relates_to`. | | ||||
| 
 | ||||
| Example request: | ||||
|  | @ -222,7 +222,7 @@ Supported attributes: | |||
| | Attribute                | Type           | Required                    | Description                           | | ||||
| |--------------------------|----------------|-----------------------------|---------------------------------------| | ||||
| | `epic_iid`               | integer        | **{check-circle}** Yes      | Internal ID of a group's epic.        | | ||||
| | `id`                     | integer/string | **{check-circle}** Yes      | ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `id`                     | integer/string | **{check-circle}** Yes      | ID or [URL-encoded path of the group](rest/index.md#namespaced-path-encoding) owned by the authenticated user. | | ||||
| | `related_epic_link_id`   | integer/string | **{check-circle}** Yes      | Internal ID of a related epic link. | | ||||
| 
 | ||||
| Example request: | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ GET /projects/:id/managed_licenses | |||
| 
 | ||||
| | Attribute | Type    | Required | Description           | | ||||
| | --------- | ------- | -------- | --------------------- | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | | ||||
| 
 | ||||
| ```shell | ||||
| curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/managed_licenses" | ||||
|  | @ -52,7 +52,7 @@ GET /projects/:id/managed_licenses/:managed_license_id | |||
| 
 | ||||
| | Attribute       | Type    | Required                          | Description                      | | ||||
| | --------------- | ------- | --------------------------------- | -------------------------------  | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `managed_license_id`      | integer/string    | yes      | The ID or URL-encoded name of the license belonging to the project | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -79,7 +79,7 @@ POST /projects/:id/managed_licenses | |||
| 
 | ||||
| | Attribute     | Type    | Required | Description                  | | ||||
| | ------------- | ------- | -------- | ---------------------------- | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `name`        | string  | yes      | The name of the managed license        | | ||||
| | `approval_status`       | string  | yes      | The approval status of the license. "allowed" or "denied". | | ||||
| 
 | ||||
|  | @ -107,7 +107,7 @@ DELETE /projects/:id/managed_licenses/:managed_license_id | |||
| 
 | ||||
| | Attribute | Type    | Required | Description           | | ||||
| | --------- | ------- | -------- | --------------------- | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `managed_license_id`      | integer/string    | yes      | The ID or URL-encoded name of the license belonging to the project | | ||||
| 
 | ||||
| ```shell | ||||
|  | @ -126,7 +126,7 @@ PATCH /projects/:id/managed_licenses/:managed_license_id | |||
| 
 | ||||
| | Attribute       | Type    | Required                          | Description                      | | ||||
| | --------------- | ------- | --------------------------------- | -------------------------------  | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `id`      | integer/string    | yes      | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user | | ||||
| | `managed_license_id`      | integer/string    | yes      | The ID or URL-encoded name of the license belonging to the project | | ||||
| | `approval_status`       | string  | yes      | The approval status of the license. "allowed" or "denied". | | ||||
| 
 | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue