From 171554398fe09cf59333b6c513c692bbdaa8b26e Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 25 Nov 2024 21:29:58 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../worker_data_consistency.yml | 8 - GITALY_SERVER_VERSION | 2 +- .../components/form.vue | 21 +- .../shared/work_item_token_input.vue | 1 + .../work_item_links/work_item_links_form.vue | 2 +- app/graphql/resolvers/groups_resolver.rb | 2 +- .../finish_batched_pipeline_worker.rb | 2 +- .../bulk_imports/pipeline_batch_worker.rb | 2 +- .../relation_batch_export_worker.rb | 2 +- .../bulk_imports/stale_import_worker.rb | 2 +- .../resources/process_sync_events_worker.rb | 2 +- .../create_pipeline_worker.rb | 2 +- .../prune_project_export_jobs_worker.rb | 2 +- app/workers/run_pipeline_schedule_worker.rb | 2 +- config/gitlab.yml.example | 1 + config/initializers/1_settings.rb | 1 + config/settings.rb | 4 + db/docs/agent_activity_events.yml | 2 - db/docs/agent_group_authorizations.yml | 2 - db/docs/agent_project_authorizations.yml | 2 - ...agent_user_access_group_authorizations.yml | 2 - ...ent_user_access_project_authorizations.yml | 2 - db/docs/alert_management_alert_assignees.yml | 2 - .../alert_management_alert_metric_images.yml | 2 - .../alert_management_alert_user_mentions.yml | 2 - db/docs/alert_management_alerts.yml | 2 - .../alert_management_http_integrations.yml | 2 - db/docs/allowed_email_domains.yml | 2 - ...analytics_cycle_analytics_aggregations.yml | 2 - ...analytics_cycle_analytics_group_stages.yml | 2 - ...cs_cycle_analytics_group_value_streams.yml | 2 - ...ics_cycle_analytics_issue_stage_events.yml | 2 - ...e_analytics_merge_request_stage_events.yml | 2 - ...ics_cycle_analytics_stage_aggregations.yml | 2 - ..._cycle_analytics_value_stream_settings.yml | 2 - db/docs/analytics_dashboards_pointers.yml | 2 - .../analytics_devops_adoption_segments.yml | 2 - ...cs_language_trend_repository_languages.yml | 2 - db/docs/approval_group_rules.yml | 2 - db/docs/approval_group_rules_groups.yml | 2 - ...pproval_group_rules_protected_branches.yml | 2 - db/docs/approval_group_rules_users.yml | 2 - .../approval_merge_request_rule_sources.yml | 2 - db/docs/approval_merge_request_rules.yml | 2 - ...merge_request_rules_approved_approvers.yml | 2 - .../approval_merge_request_rules_groups.yml | 2 - .../approval_merge_request_rules_users.yml | 2 - db/docs/approval_project_rules_groups.yml | 2 - ...roval_project_rules_protected_branches.yml | 2 - db/docs/approval_project_rules_users.yml | 2 - db/docs/approvals.yml | 2 - db/docs/approver_groups.yml | 2 - db/docs/approvers.yml | 2 - .../audit_events_amazon_s3_configurations.yml | 2 - ...it_events_streaming_event_type_filters.yml | 2 - db/docs/audit_events_streaming_headers.yml | 2 - ...eaming_http_instance_namespace_filters.yml | 2 - ...s_streaming_instance_namespace_filters.yml | 2 - db/docs/automation_rules.yml | 2 - db/docs/badges.yml | 2 - ...kfill_dast_site_validations_project_id.yml | 2 +- ...entifier_for_software_license_policies.yml | 8 + db/docs/board_group_recent_visits.yml | 2 - db/docs/board_project_recent_visits.yml | 2 - db/docs/boards.yml | 2 - db/docs/boards_epic_board_labels.yml | 2 - db/docs/boards_epic_board_positions.yml | 2 - db/docs/boards_epic_board_recent_visits.yml | 2 - db/docs/boards_epic_boards.yml | 2 - db/docs/boards_epic_list_user_preferences.yml | 2 - db/docs/boards_epic_lists.yml | 2 - db/docs/boards_epic_user_preferences.yml | 2 - db/docs/bulk_import_exports.yml | 2 - db/docs/catalog_resource_components.yml | 2 - db/docs/catalog_resource_versions.yml | 2 - db/docs/catalog_resources.yml | 2 - db/docs/cluster_agent_tokens.yml | 2 - db/docs/cluster_agents.yml | 2 - db/docs/cluster_groups.yml | 2 - db/docs/cluster_projects.yml | 2 - ...compliance_framework_security_policies.yml | 2 - db/docs/compliance_management_frameworks.yml | 2 - ...container_registry_data_repair_details.yml | 2 - .../container_registry_protection_rules.yml | 2 - db/docs/container_repositories.yml | 2 - db/docs/container_repository_states.yml | 2 - db/docs/coverage_fuzzing_corpuses.yml | 2 - db/docs/csv_issue_imports.yml | 2 - db/docs/custom_emoji.yml | 2 - db/docs/customer_relations_contacts.yml | 2 - db/docs/customer_relations_organizations.yml | 2 - db/docs/dependency_proxy_blob_states.yml | 2 - db/docs/dependency_proxy_blobs.yml | 2 - ...endency_proxy_image_ttl_group_policies.yml | 2 - db/docs/dependency_proxy_manifest_states.yml | 2 - db/docs/dependency_proxy_manifests.yml | 2 - .../dependency_proxy_packages_settings.yml | 2 - db/docs/deploy_keys_projects.yml | 2 - db/docs/deployment_approvals.yml | 2 - db/docs/deployment_clusters.yml | 2 - db/docs/deployment_merge_requests.yml | 2 - db/docs/deployments.yml | 2 - db/docs/design_management_designs.yml | 2 - .../design_management_designs_versions.yml | 2 - db/docs/design_management_repositories.yml | 2 - .../design_management_repository_states.yml | 2 - db/docs/design_management_versions.yml | 2 - db/docs/design_user_mentions.yml | 2 - db/docs/dora_configurations.yml | 2 - db/docs/dora_daily_metrics.yml | 2 - db/docs/dora_performance_scores.yml | 2 - db/docs/draft_notes.yml | 2 - db/docs/elastic_group_index_statuses.yml | 2 - db/docs/elasticsearch_indexed_namespaces.yml | 2 - db/docs/elasticsearch_indexed_projects.yml | 2 - db/docs/environments.yml | 2 - db/docs/epic_issues.yml | 2 - db/docs/epic_metrics.yml | 2 - db/docs/epic_user_mentions.yml | 2 - db/docs/epics.yml | 2 - db/docs/error_tracking_client_keys.yml | 2 - db/docs/error_tracking_error_events.yml | 2 - db/docs/error_tracking_errors.yml | 2 - db/docs/external_approval_rules.yml | 2 - db/docs/external_status_checks.yml | 2 - db/docs/geo_events.yml | 1 + db/docs/geo_node_namespace_links.yml | 2 - db/docs/gpg_signatures.yml | 2 - db/docs/grafana_integrations.yml | 2 - db/docs/group_custom_attributes.yml | 2 - db/docs/group_deletion_schedules.yml | 2 - db/docs/group_deploy_tokens.yml | 2 - db/docs/group_repository_storage_moves.yml | 2 - db/docs/group_ssh_certificates.yml | 2 - db/docs/group_wiki_repositories.yml | 2 - db/docs/groups_visits.yml | 2 - db/docs/import_placeholder_memberships.yml | 2 - ...ort_source_user_placeholder_references.yml | 2 - db/docs/import_source_users.yml | 2 - ...ncident_management_escalation_policies.yml | 2 - .../incident_management_escalation_rules.yml | 2 - ...anagement_issuable_escalation_statuses.yml | 2 - ...ncident_management_oncall_participants.yml | 2 - .../incident_management_oncall_rotations.yml | 2 - .../incident_management_oncall_schedules.yml | 2 - db/docs/incident_management_oncall_shifts.yml | 2 - ...t_management_pending_alert_escalations.yml | 2 - ...t_management_pending_issue_escalations.yml | 2 - ...nt_management_timeline_event_tag_links.yml | 2 - .../incident_management_timeline_events.yml | 2 - db/docs/index_statuses.yml | 2 - db/docs/insights.yml | 2 - db/docs/issuable_metric_images.yml | 2 - db/docs/issuable_resource_links.yml | 2 - db/docs/issuable_severities.yml | 2 - db/docs/issuable_slas.yml | 2 - db/docs/issue_assignees.yml | 2 - db/docs/issue_assignment_events.yml | 2 - db/docs/issue_customer_relations_contacts.yml | 2 - db/docs/issue_email_participants.yml | 2 - db/docs/issue_emails.yml | 2 - db/docs/issue_links.yml | 2 - db/docs/issue_metrics.yml | 2 - db/docs/issue_search_data.yml | 2 - db/docs/issue_user_mentions.yml | 2 - db/docs/iterations_cadences.yml | 2 - db/docs/jira_connect_subscriptions.yml | 2 - db/docs/jira_imports.yml | 2 - db/docs/label_priorities.yml | 2 - db/docs/ldap_group_links.yml | 2 - db/docs/lfs_objects_projects.yml | 2 - db/docs/merge_request_assignees.yml | 2 - db/docs/merge_request_assignment_events.yml | 2 - db/docs/merge_request_blocks.yml | 2 - db/docs/merge_request_cleanup_schedules.yml | 2 - db/docs/merge_request_diffs.yml | 2 - db/docs/merge_request_metrics.yml | 2 - db/docs/merge_request_predictions.yml | 2 - db/docs/merge_request_reviewers.yml | 2 - db/docs/merge_requests_closing_issues.yml | 2 - .../merge_requests_compliance_violations.yml | 2 - db/docs/merge_trains.yml | 2 - db/docs/metrics_users_starred_dashboards.yml | 2 - db/docs/milestones.yml | 2 - db/docs/ml_candidate_metadata.yml | 2 - db/docs/ml_candidate_params.yml | 2 - db/docs/ml_candidates.yml | 2 - db/docs/ml_experiment_metadata.yml | 2 - db/docs/ml_experiments.yml | 2 - db/docs/ml_model_metadata.yml | 2 - db/docs/ml_model_versions.yml | 2 - db/docs/ml_models.yml | 2 - db/docs/namespace_admin_notes.yml | 2 - db/docs/namespace_bans.yml | 2 - db/docs/namespace_ci_cd_settings.yml | 2 - db/docs/namespace_ldap_settings.yml | 2 - db/docs/namespace_limits.yml | 2 - db/docs/namespace_package_settings.yml | 2 - .../namespaces_storage_limit_exclusions.yml | 2 - db/docs/notes.yml | 2 - db/docs/operations_feature_flags.yml | 2 - db/docs/operations_feature_flags_clients.yml | 2 - db/docs/operations_feature_flags_issues.yml | 2 - db/docs/operations_scopes.yml | 2 - db/docs/operations_strategies.yml | 2 - db/docs/operations_strategies_user_lists.yml | 2 - db/docs/operations_user_lists.yml | 2 - db/docs/organization_settings.yml | 2 - .../p_batched_git_ref_updates_deletions.yml | 2 - db/docs/packages_build_infos.yml | 2 - db/docs/packages_cleanup_policies.yml | 2 - db/docs/packages_composer_metadata.yml | 2 - db/docs/packages_conan_file_metadata.yml | 2 - db/docs/packages_conan_metadata.yml | 2 - db/docs/packages_debian_file_metadata.yml | 2 - .../packages_debian_group_architectures.yml | 2 - .../packages_debian_group_component_files.yml | 2 - db/docs/packages_debian_group_components.yml | 2 - ...ackages_debian_group_distribution_keys.yml | 2 - .../packages_debian_group_distributions.yml | 2 - .../packages_debian_project_architectures.yml | 2 - ...ackages_debian_project_component_files.yml | 2 - .../packages_debian_project_components.yml | 2 - ...kages_debian_project_distribution_keys.yml | 2 - .../packages_debian_project_distributions.yml | 2 - db/docs/packages_debian_publications.yml | 2 - db/docs/packages_dependencies.yml | 2 - db/docs/packages_dependency_links.yml | 2 - db/docs/packages_helm_file_metadata.yml | 2 - db/docs/packages_maven_metadata.yml | 2 - db/docs/packages_npm_metadata.yml | 2 - db/docs/packages_npm_metadata_caches.yml | 2 - ...ackages_nuget_dependency_link_metadata.yml | 2 - db/docs/packages_nuget_metadata.yml | 2 - db/docs/packages_nuget_symbols.yml | 2 - db/docs/packages_package_file_build_infos.yml | 2 - db/docs/packages_package_files.yml | 2 - db/docs/packages_packages.yml | 2 - db/docs/packages_protection_rules.yml | 2 - db/docs/packages_pypi_metadata.yml | 2 - db/docs/packages_rpm_metadata.yml | 2 - db/docs/packages_rpm_repository_files.yml | 2 - db/docs/packages_rubygems_metadata.yml | 2 - db/docs/pages_deployment_states.yml | 2 - db/docs/pages_deployments.yml | 2 - db/docs/pages_domain_acme_orders.yml | 2 - db/docs/pages_domains.yml | 2 - db/docs/project_access_tokens.yml | 2 - db/docs/project_alerting_settings.yml | 2 - db/docs/project_aliases.yml | 2 - db/docs/project_auto_devops.yml | 2 - ...project_build_artifacts_size_refreshes.yml | 2 - db/docs/project_ci_feature_usages.yml | 2 - .../project_compliance_framework_settings.yml | 2 - db/docs/project_custom_attributes.yml | 2 - db/docs/project_daily_statistics.yml | 2 - db/docs/project_data_transfers.yml | 2 - db/docs/project_deploy_tokens.yml | 2 - db/docs/project_error_tracking_settings.yml | 2 - db/docs/project_export_jobs.yml | 2 - db/docs/project_feature_usages.yml | 2 - .../project_incident_management_settings.yml | 2 - db/docs/project_metrics_settings.yml | 2 - db/docs/project_mirror_data.yml | 2 - db/docs/project_relation_export_uploads.yml | 2 - db/docs/project_relation_exports.yml | 2 - db/docs/project_repository_storage_moves.yml | 2 - db/docs/project_states.yml | 2 - db/docs/project_topics.yml | 2 - db/docs/projects_visits.yml | 2 - .../protected_branch_merge_access_levels.yml | 2 - .../protected_branch_push_access_levels.yml | 2 - ...otected_branch_unprotect_access_levels.yml | 2 - .../protected_environment_approval_rules.yml | 2 - ...ected_environment_deploy_access_levels.yml | 2 - db/docs/protected_environments.yml | 2 - .../protected_tag_create_access_levels.yml | 2 - db/docs/protected_tags.yml | 2 - db/docs/raw_usage_data.yml | 2 - db/docs/related_epic_links.yml | 2 - db/docs/releases.yml | 2 - db/docs/remote_development_agent_configs.yml | 2 - ...pment_namespace_cluster_agent_mappings.yml | 2 - db/docs/required_code_owners_sections.yml | 2 - db/docs/requirements.yml | 2 - db/docs/resource_link_events.yml | 2 - db/docs/resource_weight_events.yml | 2 - db/docs/reviews.yml | 2 - db/docs/saml_group_links.yml | 2 - db/docs/scan_result_policy_violations.yml | 2 - ...ty_orchestration_policy_rule_schedules.yml | 2 - db/docs/security_trainings.yml | 2 - db/docs/sentry_issues.yml | 2 - .../service_desk_custom_email_credentials.yml | 2 - ...ervice_desk_custom_email_verifications.yml | 2 - db/docs/service_desk_settings.yml | 2 - db/docs/software_license_policies.yml | 2 - db/docs/sprints.yml | 2 - db/docs/ssh_signatures.yml | 2 - db/docs/status_check_responses.yml | 2 - db/docs/status_page_published_incidents.yml | 2 - db/docs/status_page_settings.yml | 2 - db/docs/subscription_seat_assignments.yml | 2 - db/docs/target_branch_rules.yml | 2 - db/docs/terraform_state_versions.yml | 2 - db/docs/terraform_states.yml | 2 - db/docs/timelog_categories.yml | 2 - db/docs/todos.yml | 2 - db/docs/trending_projects.yml | 2 - db/docs/user_achievements.yml | 2 - db/docs/user_namespace_callouts.yml | 2 - db/docs/user_project_callouts.yml | 2 - db/docs/users_ops_dashboard_projects.yml | 2 - db/docs/users_security_dashboard_projects.yml | 2 - db/docs/users_star_projects.yml | 2 - .../value_stream_dashboard_aggregations.yml | 2 - db/docs/value_stream_dashboard_counts.yml | 2 - db/docs/wiki_page_meta.yml | 2 - db/docs/wiki_page_slugs.yml | 2 - db/docs/wiki_repository_states.yml | 2 - db/docs/work_item_parent_links.yml | 2 - db/docs/work_item_progresses.yml | 2 - db/docs/workspace_variables.yml | 2 - db/docs/workspaces.yml | 2 - db/docs/workspaces_agent_config_versions.yml | 2 - db/docs/workspaces_agent_configs.yml | 2 - db/docs/x509_commit_signatures.yml | 2 - db/docs/zoom_meetings.yml | 2 - ...ckfill_dast_site_validations_project_id.rb | 21 + ...dentifier_for_software_license_policies.rb | 27 + db/schema_migrations/20241103232325 | 1 + db/schema_migrations/20241115211552 | 1 + doc/api/graphql/reference/index.md | 4 +- doc/api/group_enterprise_users.md | 112 + doc/api/openapi/openapi_v2.yaml | 43461 +++++++++------- .../avoiding_downtime_in_migrations.md | 2 +- .../documentation/styleguide/word_list.md | 29 +- doc/user/enterprise_user/index.md | 4 + .../import/direct_transfer_migrations.md | 6 +- doc/user/group/import/migrated_items.md | 20 +- doc/user/permissions.md | 2 + doc/user/project/import/gitea.md | 2 +- doc/user/project/import/index.md | 4 +- lib/api/groups.rb | 6 +- ...dentifier_for_software_license_policies.rb | 13 + .../database/alter_cell_sequences_range.rb | 2 +- .../gitlab/db/alter_cell_sequences_range.rake | 3 + package.json | 2 +- scripts/frontend/quarantined_vue3_specs.txt | 3 - .../work_items/work_item_children_spec.rb | 105 +- .../components/form_spec.js | 16 +- .../components/app_spec.js | 19 +- .../components/manifests_empty_state_spec.js | 2 + .../new_project_push_tip_popover_spec.js | 5 +- .../sidebar_hover_peek_behavior_spec.js | 24 +- .../components/sidebar_peek_behavior_spec.js | 22 +- spec/lib/gitlab/database/dictionary_spec.rb | 2 +- ...fier_for_software_license_policies_spec.rb | 27 + .../work_items/work_items_shared_examples.rb | 104 + .../alter_cell_sequences_range_rake_spec.rb | 40 +- yarn.lock | 8 +- 361 files changed, 23698 insertions(+), 21086 deletions(-) create mode 100644 db/docs/batched_background_migrations/backfill_software_license_spdx_identifier_for_software_license_policies.yml create mode 100644 db/post_migrate/20241103232325_finalize_backfill_dast_site_validations_project_id.rb create mode 100644 db/post_migrate/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies.rb create mode 100644 db/schema_migrations/20241103232325 create mode 100644 db/schema_migrations/20241115211552 create mode 100644 doc/api/group_enterprise_users.md create mode 100644 lib/gitlab/background_migration/backfill_software_license_spdx_identifier_for_software_license_policies.rb create mode 100644 spec/migrations/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies_spec.rb diff --git a/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml b/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml index d887b6d2fcd..7b374a02ea3 100644 --- a/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml +++ b/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml @@ -1,21 +1,15 @@ --- SidekiqLoadBalancing/WorkerDataConsistency: Exclude: - - 'app/workers/bulk_imports/finish_batched_pipeline_worker.rb' - - 'app/workers/bulk_imports/pipeline_batch_worker.rb' - - 'app/workers/bulk_imports/relation_batch_export_worker.rb' - - 'app/workers/bulk_imports/stale_import_worker.rb' - 'app/workers/ci/archive_traces_cron_worker.rb' - 'app/workers/ci/build_prepare_worker.rb' - 'app/workers/ci/build_schedule_worker.rb' - 'app/workers/ci/build_trace_chunk_flush_worker.rb' - 'app/workers/ci/cancel_pipeline_worker.rb' - - 'app/workers/ci/catalog/resources/process_sync_events_worker.rb' - 'app/workers/ci/daily_build_group_report_results_worker.rb' - 'app/workers/ci/delete_objects_worker.rb' - 'app/workers/ci/delete_unit_tests_worker.rb' - 'app/workers/ci/drop_pipeline_worker.rb' - - 'app/workers/ci/external_pull_requests/create_pipeline_worker.rb' - 'app/workers/ci/job_artifacts/expire_project_build_artifacts_worker.rb' - 'app/workers/ci/job_token/log_authorization_worker.rb' - 'app/workers/ci/merge_requests/add_todo_when_build_fails_worker.rb' @@ -86,7 +80,6 @@ SidekiqLoadBalancing/WorkerDataConsistency: - 'app/workers/export_csv_worker.rb' - 'app/workers/file_hook_worker.rb' - 'app/workers/flush_counter_increments_worker.rb' - - 'app/workers/gitlab/export/prune_project_export_jobs_worker.rb' - 'app/workers/gitlab/github_gists_import/finish_import_worker.rb' - 'app/workers/gitlab/github_gists_import/import_gist_worker.rb' - 'app/workers/gitlab/github_gists_import/start_import_worker.rb' @@ -219,7 +212,6 @@ SidekiqLoadBalancing/WorkerDataConsistency: - 'app/workers/repository_fork_worker.rb' - 'app/workers/repository_import_worker.rb' - 'app/workers/repository_update_remote_mirror_worker.rb' - - 'app/workers/run_pipeline_schedule_worker.rb' - 'app/workers/schedule_merge_request_cleanup_refs_worker.rb' - 'app/workers/schedule_migrate_external_diffs_worker.rb' - 'app/workers/service_desk_email_receiver_worker.rb' diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 52096c759a7..43cd1219129 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -bc889c809db86d6c16f8c726896a7b1d1c776aa9 +b1891e7ed098a0628dda95037f63d7f145b65adc diff --git a/app/assets/javascripts/admin/application_settings/inactive_project_deletion/components/form.vue b/app/assets/javascripts/admin/application_settings/inactive_project_deletion/components/form.vue index ac854676e1c..ced6effb6db 100644 --- a/app/assets/javascripts/admin/application_settings/inactive_project_deletion/components/form.vue +++ b/app/assets/javascripts/admin/application_settings/inactive_project_deletion/components/form.vue @@ -149,7 +149,7 @@ export default { - + @@ -183,7 +185,7 @@ export default { - + @@ -213,7 +217,7 @@ export default { {{ $options.i18n.sendWarningEmailAfterMonthsInvalidFeedback }} - + diff --git a/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue b/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue index 55c08a2b92f..4227b497a1f 100644 --- a/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue +++ b/app/assets/javascripts/work_items/components/shared/work_item_token_input.vue @@ -127,6 +127,7 @@ export default { error: '', textInputAttrs: { class: '!gl-min-w-fit', + 'aria-label': I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER, }, }; }, diff --git a/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue b/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue index 9b393782022..3b7cc31e600 100644 --- a/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue +++ b/app/assets/javascripts/work_items/components/work_item_links/work_item_links_form.vue @@ -127,7 +127,7 @@ export default { }, computed: { workItemChildIsEpic() { - return this.childrenTypeName === WORK_ITEM_TYPE_VALUE_EPIC; + return this.childrenTypeValue === WORK_ITEM_TYPE_VALUE_EPIC; }, workItemInput() { let workItemInput = { diff --git a/app/graphql/resolvers/groups_resolver.rb b/app/graphql/resolvers/groups_resolver.rb index d9130437966..977657c330c 100644 --- a/app/graphql/resolvers/groups_resolver.rb +++ b/app/graphql/resolvers/groups_resolver.rb @@ -14,7 +14,7 @@ module Resolvers argument :top_level_only, GraphQL::Types::Boolean, required: false, default_value: false, - description: 'Only include top level groups.' + description: 'Only include top-level groups.' argument :search, GraphQL::Types::String, required: false, diff --git a/app/workers/bulk_imports/finish_batched_pipeline_worker.rb b/app/workers/bulk_imports/finish_batched_pipeline_worker.rb index b73bbc64e8c..955c972c187 100644 --- a/app/workers/bulk_imports/finish_batched_pipeline_worker.rb +++ b/app/workers/bulk_imports/finish_batched_pipeline_worker.rb @@ -10,7 +10,7 @@ module BulkImports idempotent! deduplicate :until_executing - data_consistency :always + data_consistency :sticky feature_category :importers version 2 diff --git a/app/workers/bulk_imports/pipeline_batch_worker.rb b/app/workers/bulk_imports/pipeline_batch_worker.rb index 5474a0c0bad..3a5c6af509c 100644 --- a/app/workers/bulk_imports/pipeline_batch_worker.rb +++ b/app/workers/bulk_imports/pipeline_batch_worker.rb @@ -8,7 +8,7 @@ module BulkImports DEFER_ON_HEALTH_DELAY = 5.minutes - data_consistency :always + data_consistency :sticky feature_category :importers sidekiq_options dead: false, retry: 6 sidekiq_options max_retries_after_interruption: 20 diff --git a/app/workers/bulk_imports/relation_batch_export_worker.rb b/app/workers/bulk_imports/relation_batch_export_worker.rb index 39d0366000e..b0100214772 100644 --- a/app/workers/bulk_imports/relation_batch_export_worker.rb +++ b/app/workers/bulk_imports/relation_batch_export_worker.rb @@ -9,7 +9,7 @@ module BulkImports PERFORM_DELAY = 1.minute idempotent! - data_consistency :always + data_consistency :sticky feature_category :importers sidekiq_options status_expiration: StuckExportJobsWorker::EXPORT_JOBS_EXPIRATION, retry: 6 worker_resource_boundary :memory diff --git a/app/workers/bulk_imports/stale_import_worker.rb b/app/workers/bulk_imports/stale_import_worker.rb index 275abe7b856..b577de82103 100644 --- a/app/workers/bulk_imports/stale_import_worker.rb +++ b/app/workers/bulk_imports/stale_import_worker.rb @@ -8,7 +8,7 @@ module BulkImports include CronjobQueue # rubocop:disable Scalability/CronWorkerContext idempotent! - data_consistency :always + data_consistency :sticky feature_category :importers diff --git a/app/workers/ci/catalog/resources/process_sync_events_worker.rb b/app/workers/ci/catalog/resources/process_sync_events_worker.rb index d01faa0e71a..4aeee28081b 100644 --- a/app/workers/ci/catalog/resources/process_sync_events_worker.rb +++ b/app/workers/ci/catalog/resources/process_sync_events_worker.rb @@ -20,7 +20,7 @@ module Ci feature_category :pipeline_composition - data_consistency :always + data_consistency :sticky urgency :high idempotent! diff --git a/app/workers/ci/external_pull_requests/create_pipeline_worker.rb b/app/workers/ci/external_pull_requests/create_pipeline_worker.rb index 87df13a105b..60c4ce7d780 100644 --- a/app/workers/ci/external_pull_requests/create_pipeline_worker.rb +++ b/app/workers/ci/external_pull_requests/create_pipeline_worker.rb @@ -5,7 +5,7 @@ module Ci class CreatePipelineWorker # rubocop:disable Scalability/IdempotentWorker include ApplicationWorker - data_consistency :always + data_consistency :sticky queue_namespace :pipeline_creation feature_category :pipeline_composition urgency :high diff --git a/app/workers/gitlab/export/prune_project_export_jobs_worker.rb b/app/workers/gitlab/export/prune_project_export_jobs_worker.rb index c90bc0b1131..daaa5528c07 100644 --- a/app/workers/gitlab/export/prune_project_export_jobs_worker.rb +++ b/app/workers/gitlab/export/prune_project_export_jobs_worker.rb @@ -12,7 +12,7 @@ module Gitlab # rubocop:enable Scalability/CronWorkerContext feature_category :importers - data_consistency :always + data_consistency :sticky idempotent! def perform diff --git a/app/workers/run_pipeline_schedule_worker.rb b/app/workers/run_pipeline_schedule_worker.rb index 707eaf705a5..3555e15787a 100644 --- a/app/workers/run_pipeline_schedule_worker.rb +++ b/app/workers/run_pipeline_schedule_worker.rb @@ -3,7 +3,7 @@ class RunPipelineScheduleWorker include ApplicationWorker - data_consistency :always + data_consistency :sticky sidekiq_options retry: 3 include PipelineQueue diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 5e0adc94f82..dfc5e143910 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -1283,6 +1283,7 @@ production: &base cell: # id: 1 # name: cell-1 + # skip_sequence_alteration: false gitlab_kas: # enabled: true diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index 7aaf3364749..38e2132f6bc 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -1035,6 +1035,7 @@ Settings.topology_service['private_key_file'] ||= '/home/git/gitlab/config/topol Settings['cell'] ||= {} Settings.cell['id'] ||= 1 Settings.cell['name'] ||= 'cell-1' +Settings.cell['skip_sequence_alteration'] ||= false # # GitLab KAS diff --git a/config/settings.rb b/config/settings.rb index 24dfd2ce7bc..8ba43f3fd07 100644 --- a/config/settings.rb +++ b/config/settings.rb @@ -187,6 +187,10 @@ Settings = GitlabSettings.load(file, Rails.env) do cell && cell.respond_to?(:name) && cell.name.present? end + def skip_sequence_alteration? + has_configured_cell? && cell.respond_to?(:skip_sequence_alteration) && cell.skip_sequence_alteration + end + private def base_url(config) diff --git a/db/docs/agent_activity_events.yml b/db/docs/agent_activity_events.yml index 6b5aac7ce4c..9268e95ad6e 100644 --- a/db/docs/agent_activity_events.yml +++ b/db/docs/agent_activity_events.yml @@ -8,8 +8,6 @@ description: Historical timeline events belonging to a cluster agent introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74577 milestone: '14.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: agent_project_id: projects table_size: small diff --git a/db/docs/agent_group_authorizations.yml b/db/docs/agent_group_authorizations.yml index 6127de1e1a3..c612caf02fb 100644 --- a/db/docs/agent_group_authorizations.yml +++ b/db/docs/agent_group_authorizations.yml @@ -11,6 +11,4 @@ milestone: '14.3' gitlab_schema: gitlab_main_cell sharding_key: group_id: namespaces -allow_cross_foreign_keys: -- gitlab_main_clusterwide table_size: small diff --git a/db/docs/agent_project_authorizations.yml b/db/docs/agent_project_authorizations.yml index 25244e68f0e..7c305c843a9 100644 --- a/db/docs/agent_project_authorizations.yml +++ b/db/docs/agent_project_authorizations.yml @@ -9,8 +9,6 @@ description: Configuration for a project that is authorized to use a particular introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67295 milestone: '14.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/agent_user_access_group_authorizations.yml b/db/docs/agent_user_access_group_authorizations.yml index 2d9adf3d287..10c9cd225db 100644 --- a/db/docs/agent_user_access_group_authorizations.yml +++ b/db/docs/agent_user_access_group_authorizations.yml @@ -9,8 +9,6 @@ description: Configuration for a group that is authorized to use a particular cl introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116901 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/agent_user_access_project_authorizations.yml b/db/docs/agent_user_access_project_authorizations.yml index 5117209a1bd..e79b9f87ef0 100644 --- a/db/docs/agent_user_access_project_authorizations.yml +++ b/db/docs/agent_user_access_project_authorizations.yml @@ -9,8 +9,6 @@ description: Configuration for a project that is authorized to use a particular introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116901 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/alert_management_alert_assignees.yml b/db/docs/alert_management_alert_assignees.yml index ed6da6f1d24..8fac5569c98 100644 --- a/db/docs/alert_management_alert_assignees.yml +++ b/db/docs/alert_management_alert_assignees.yml @@ -8,8 +8,6 @@ description: Persists metadata between users and alerts to support alert assignm introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32609 milestone: '13.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/alert_management_alert_metric_images.yml b/db/docs/alert_management_alert_metric_images.yml index 71dd3e50e86..aa22c2f044f 100644 --- a/db/docs/alert_management_alert_metric_images.yml +++ b/db/docs/alert_management_alert_metric_images.yml @@ -8,8 +8,6 @@ description: Persists metadata for uploads related to alerts introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80339 milestone: '14.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/alert_management_alert_user_mentions.yml b/db/docs/alert_management_alert_user_mentions.yml index abbdb2816da..d88875cf230 100644 --- a/db/docs/alert_management_alert_user_mentions.yml +++ b/db/docs/alert_management_alert_user_mentions.yml @@ -8,8 +8,6 @@ description: Persists metadata for system notes related to alerts introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33217 milestone: '13.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/alert_management_alerts.yml b/db/docs/alert_management_alerts.yml index 45a25c371c2..51d8a818d0c 100644 --- a/db/docs/alert_management_alerts.yml +++ b/db/docs/alert_management_alerts.yml @@ -8,8 +8,6 @@ description: Persists incoming alert data including its payload introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29864 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: medium diff --git a/db/docs/alert_management_http_integrations.yml b/db/docs/alert_management_http_integrations.yml index 56783f38436..e4527d17282 100644 --- a/db/docs/alert_management_http_integrations.yml +++ b/db/docs/alert_management_http_integrations.yml @@ -8,8 +8,6 @@ description: Persists settings for alert HTTP integrations introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43634 milestone: '13.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/allowed_email_domains.yml b/db/docs/allowed_email_domains.yml index 1f33a130d97..d240338577b 100644 --- a/db/docs/allowed_email_domains.yml +++ b/db/docs/allowed_email_domains.yml @@ -9,8 +9,6 @@ description: Stores email domains for group, only members with email from those introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14800 milestone: '12.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/analytics_cycle_analytics_aggregations.yml b/db/docs/analytics_cycle_analytics_aggregations.yml index 672c4c21ed4..8a0beaf635a 100644 --- a/db/docs/analytics_cycle_analytics_aggregations.yml +++ b/db/docs/analytics_cycle_analytics_aggregations.yml @@ -9,8 +9,6 @@ description: Stores Value Stream Analytics aggregation related metadata for top- introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79942 milestone: '14.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/analytics_cycle_analytics_group_stages.yml b/db/docs/analytics_cycle_analytics_group_stages.yml index ee3ee1fdf63..7f4009814db 100644 --- a/db/docs/analytics_cycle_analytics_group_stages.yml +++ b/db/docs/analytics_cycle_analytics_group_stages.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/15061 milestone: '12.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/analytics_cycle_analytics_group_value_streams.yml b/db/docs/analytics_cycle_analytics_group_value_streams.yml index a88116fec22..5ec83c16987 100644 --- a/db/docs/analytics_cycle_analytics_group_value_streams.yml +++ b/db/docs/analytics_cycle_analytics_group_value_streams.yml @@ -8,8 +8,6 @@ description: Store group level Value Stream objects. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36658 milestone: '13.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/analytics_cycle_analytics_issue_stage_events.yml b/db/docs/analytics_cycle_analytics_issue_stage_events.yml index 88837fb590b..78d311cd172 100644 --- a/db/docs/analytics_cycle_analytics_issue_stage_events.yml +++ b/db/docs/analytics_cycle_analytics_issue_stage_events.yml @@ -9,8 +9,6 @@ description: Contains various Issue-related timestamps for aggregating Value Str introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68950 milestone: '14.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/analytics_cycle_analytics_merge_request_stage_events.yml b/db/docs/analytics_cycle_analytics_merge_request_stage_events.yml index 174aec27e47..d10a493a552 100644 --- a/db/docs/analytics_cycle_analytics_merge_request_stage_events.yml +++ b/db/docs/analytics_cycle_analytics_merge_request_stage_events.yml @@ -9,8 +9,6 @@ description: Contains various MergeRequest-related timestamps for aggregating Va introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68950 milestone: '14.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: medium diff --git a/db/docs/analytics_cycle_analytics_stage_aggregations.yml b/db/docs/analytics_cycle_analytics_stage_aggregations.yml index 9a6dff056a3..83c6c810835 100644 --- a/db/docs/analytics_cycle_analytics_stage_aggregations.yml +++ b/db/docs/analytics_cycle_analytics_stage_aggregations.yml @@ -9,7 +9,5 @@ description: Stores Value Stream Analytics stage aggregation related metadata fo introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170988 milestone: '17.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces diff --git a/db/docs/analytics_cycle_analytics_value_stream_settings.yml b/db/docs/analytics_cycle_analytics_value_stream_settings.yml index 34410e93182..33b506e35d0 100644 --- a/db/docs/analytics_cycle_analytics_value_stream_settings.yml +++ b/db/docs/analytics_cycle_analytics_value_stream_settings.yml @@ -8,8 +8,6 @@ description: Stores settings for each value stream. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132650 milestone: '16.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/analytics_dashboards_pointers.yml b/db/docs/analytics_dashboards_pointers.yml index 44ff7e13403..bb9f1eb6370 100644 --- a/db/docs/analytics_dashboards_pointers.yml +++ b/db/docs/analytics_dashboards_pointers.yml @@ -9,8 +9,6 @@ description: Stores project link with configuration files for Analytics Dashboar introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107673 milestone: '15.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: target_project_id: projects table_size: small diff --git a/db/docs/analytics_devops_adoption_segments.yml b/db/docs/analytics_devops_adoption_segments.yml index c22ca77440a..15e30fe79c7 100644 --- a/db/docs/analytics_devops_adoption_segments.yml +++ b/db/docs/analytics_devops_adoption_segments.yml @@ -8,8 +8,6 @@ description: Stores a reference to the Namespace which is enabled for the DevOps introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45748 milestone: '13.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/analytics_language_trend_repository_languages.yml b/db/docs/analytics_language_trend_repository_languages.yml index 915eda3f26f..0cce72e62d3 100644 --- a/db/docs/analytics_language_trend_repository_languages.yml +++ b/db/docs/analytics_language_trend_repository_languages.yml @@ -8,8 +8,6 @@ description: Contains snapshot data about the used programming languages over ti introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16491 milestone: '12.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/approval_group_rules.yml b/db/docs/approval_group_rules.yml index 029cfa5ce9c..3b5081c068b 100644 --- a/db/docs/approval_group_rules.yml +++ b/db/docs/approval_group_rules.yml @@ -8,8 +8,6 @@ description: Keeps approval group rules introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132651 milestone: '16.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/approval_group_rules_groups.yml b/db/docs/approval_group_rules_groups.yml index 1cd996aa885..511139db39c 100644 --- a/db/docs/approval_group_rules_groups.yml +++ b/db/docs/approval_group_rules_groups.yml @@ -8,8 +8,6 @@ description: Keeps connection between group and a group approval rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132651 milestone: '16.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/approval_group_rules_protected_branches.yml b/db/docs/approval_group_rules_protected_branches.yml index 8bb042abf4e..db2c03955f2 100644 --- a/db/docs/approval_group_rules_protected_branches.yml +++ b/db/docs/approval_group_rules_protected_branches.yml @@ -8,8 +8,6 @@ description: Keeps relation between approval group rules and protected branches. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132651 milestone: '16.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/approval_group_rules_users.yml b/db/docs/approval_group_rules_users.yml index c1942347471..b04bf40e40d 100644 --- a/db/docs/approval_group_rules_users.yml +++ b/db/docs/approval_group_rules_users.yml @@ -8,8 +8,6 @@ description: Keeps connection between user and a group approval rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132651 milestone: '16.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/approval_merge_request_rule_sources.yml b/db/docs/approval_merge_request_rule_sources.yml index 2fbe128275a..cba5725be13 100644 --- a/db/docs/approval_merge_request_rule_sources.yml +++ b/db/docs/approval_merge_request_rule_sources.yml @@ -8,8 +8,6 @@ description: Keeps connection between merge request and project approval rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/approval_merge_request_rules.yml b/db/docs/approval_merge_request_rules.yml index 4faefbcab3d..fdda6c8da1e 100644 --- a/db/docs/approval_merge_request_rules.yml +++ b/db/docs/approval_merge_request_rules.yml @@ -8,8 +8,6 @@ description: Keeps approval merge request rules introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/approval_merge_request_rules_approved_approvers.yml b/db/docs/approval_merge_request_rules_approved_approvers.yml index 2bc1be09f6a..28008b5e927 100644 --- a/db/docs/approval_merge_request_rules_approved_approvers.yml +++ b/db/docs/approval_merge_request_rules_approved_approvers.yml @@ -8,8 +8,6 @@ description: Join table for approved approvers and ApprovalMergeRequestRule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/approval_merge_request_rules_groups.yml b/db/docs/approval_merge_request_rules_groups.yml index 3129dbb3849..8f105fb3a63 100644 --- a/db/docs/approval_merge_request_rules_groups.yml +++ b/db/docs/approval_merge_request_rules_groups.yml @@ -8,8 +8,6 @@ description: Keeps connection between group and a merge request approval rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/approval_merge_request_rules_users.yml b/db/docs/approval_merge_request_rules_users.yml index 18c8885ac0d..d5fbe766ca7 100644 --- a/db/docs/approval_merge_request_rules_users.yml +++ b/db/docs/approval_merge_request_rules_users.yml @@ -8,8 +8,6 @@ description: Keeps connection between user and a merge request approval rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/approval_project_rules_groups.yml b/db/docs/approval_project_rules_groups.yml index 87378e5fe9d..243c4bd1129 100644 --- a/db/docs/approval_project_rules_groups.yml +++ b/db/docs/approval_project_rules_groups.yml @@ -8,8 +8,6 @@ description: Keeps connection between group and a project approval rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/approval_project_rules_protected_branches.yml b/db/docs/approval_project_rules_protected_branches.yml index 2b000e22d0b..605e183b2f7 100644 --- a/db/docs/approval_project_rules_protected_branches.yml +++ b/db/docs/approval_project_rules_protected_branches.yml @@ -8,8 +8,6 @@ description: Keeps relation between approval project rules and protected branche introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/22673 milestone: '12.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/approval_project_rules_users.yml b/db/docs/approval_project_rules_users.yml index 48d189ff963..3c5116dc71e 100644 --- a/db/docs/approval_project_rules_users.yml +++ b/db/docs/approval_project_rules_users.yml @@ -8,8 +8,6 @@ description: Keeps connection between user and a project approval rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/approvals.yml b/db/docs/approvals.yml index 469863a0374..940fdf94f24 100644 --- a/db/docs/approvals.yml +++ b/db/docs/approvals.yml @@ -8,8 +8,6 @@ description: Stores merge request approvals made by users introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/73faf3c7289c4fa4535b752a12247ee74b173976 milestone: '7.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/approver_groups.yml b/db/docs/approver_groups.yml index 4f8f66f21e0..d6962a6ac8c 100644 --- a/db/docs/approver_groups.yml +++ b/db/docs/approver_groups.yml @@ -8,8 +8,6 @@ description: Group approvers of given merge request introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/743 milestone: '8.13' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/approvers.yml b/db/docs/approvers.yml index 90a1c507ebf..a0b2e8f8225 100644 --- a/db/docs/approvers.yml +++ b/db/docs/approvers.yml @@ -8,8 +8,6 @@ description: Approvers of given merge request introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3cc78d89984d9c9df8372c52b7bba38e6226f9f2 milestone: '7.13' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide exempt_from_sharding: true notes: Exempted because Marked for drop - https://gitlab.com/gitlab-org/gitlab/-/issues/444234 table_size: small diff --git a/db/docs/audit_events_amazon_s3_configurations.yml b/db/docs/audit_events_amazon_s3_configurations.yml index d68904a6ddf..4bd0e62b62b 100644 --- a/db/docs/audit_events_amazon_s3_configurations.yml +++ b/db/docs/audit_events_amazon_s3_configurations.yml @@ -8,8 +8,6 @@ description: Stores Amazon S3 configurations associated used for audit event str introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/issues/333371 milestone: '16.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/audit_events_streaming_event_type_filters.yml b/db/docs/audit_events_streaming_event_type_filters.yml index 9f441fabf4a..ca088ddaf1e 100644 --- a/db/docs/audit_events_streaming_event_type_filters.yml +++ b/db/docs/audit_events_streaming_event_type_filters.yml @@ -8,8 +8,6 @@ description: Represents a event type filter for audit event streaming introduced_by_url: milestone: '15.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/audit_events_streaming_headers.yml b/db/docs/audit_events_streaming_headers.yml index 3a762fabecf..7c39348c165 100644 --- a/db/docs/audit_events_streaming_headers.yml +++ b/db/docs/audit_events_streaming_headers.yml @@ -8,8 +8,6 @@ description: Represents a HTTP header sent with streaming audit events introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88063 milestone: '15.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/audit_events_streaming_http_instance_namespace_filters.yml b/db/docs/audit_events_streaming_http_instance_namespace_filters.yml index a45bd4c9236..9f032357f12 100644 --- a/db/docs/audit_events_streaming_http_instance_namespace_filters.yml +++ b/db/docs/audit_events_streaming_http_instance_namespace_filters.yml @@ -11,6 +11,4 @@ milestone: '16.7' gitlab_schema: gitlab_main_cell sharding_key: namespace_id: namespaces -allow_cross_foreign_keys: -- gitlab_main_clusterwide table_size: small diff --git a/db/docs/audit_events_streaming_instance_namespace_filters.yml b/db/docs/audit_events_streaming_instance_namespace_filters.yml index c28d4ef3e98..b6abe65b308 100644 --- a/db/docs/audit_events_streaming_instance_namespace_filters.yml +++ b/db/docs/audit_events_streaming_instance_namespace_filters.yml @@ -9,8 +9,6 @@ description: Stores audit event namespace filters for external audit event desti introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/148448 milestone: '17.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/automation_rules.yml b/db/docs/automation_rules.yml index 0b49a5ef16e..7633a9d0bbb 100644 --- a/db/docs/automation_rules.yml +++ b/db/docs/automation_rules.yml @@ -6,8 +6,6 @@ feature_categories: introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111021 milestone: '15.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/badges.yml b/db/docs/badges.yml index f8fe6aec85f..4b20fada218 100644 --- a/db/docs/badges.yml +++ b/db/docs/badges.yml @@ -10,8 +10,6 @@ description: Stores badges records introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17082 milestone: '10.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects group_id: namespaces diff --git a/db/docs/batched_background_migrations/backfill_dast_site_validations_project_id.yml b/db/docs/batched_background_migrations/backfill_dast_site_validations_project_id.yml index aaeff829fd3..fd383bd4d82 100644 --- a/db/docs/batched_background_migrations/backfill_dast_site_validations_project_id.yml +++ b/db/docs/batched_background_migrations/backfill_dast_site_validations_project_id.yml @@ -5,4 +5,4 @@ feature_category: dynamic_application_security_testing introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155713 milestone: '17.1' queued_migration_version: 20240607105705 -finalized_by: # version of the migration that finalized this BBM +finalized_by: '20241103232325' diff --git a/db/docs/batched_background_migrations/backfill_software_license_spdx_identifier_for_software_license_policies.yml b/db/docs/batched_background_migrations/backfill_software_license_spdx_identifier_for_software_license_policies.yml new file mode 100644 index 00000000000..b09cb79f0be --- /dev/null +++ b/db/docs/batched_background_migrations/backfill_software_license_spdx_identifier_for_software_license_policies.yml @@ -0,0 +1,8 @@ +--- +migration_job_name: BackfillSoftwareLicenseSpdxIdentifierForSoftwareLicensePolicies +description: Backfill software_license_spdx_identifier for software_license_policies +feature_category: security_policy_management +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/171688 +milestone: '17.7' +queued_migration_version: 20241115211552 +finalized_by: # version of the migration that finalized this BBM diff --git a/db/docs/board_group_recent_visits.yml b/db/docs/board_group_recent_visits.yml index 077e4136f5c..1d15a763024 100644 --- a/db/docs/board_group_recent_visits.yml +++ b/db/docs/board_group_recent_visits.yml @@ -9,8 +9,6 @@ description: The last group issue board visited by a user, used to redirect them introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/7aeab58f4861144fcc1d334907cb1b465c645001 milestone: '11.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/board_project_recent_visits.yml b/db/docs/board_project_recent_visits.yml index 72437b56474..d188fbc9598 100644 --- a/db/docs/board_project_recent_visits.yml +++ b/db/docs/board_project_recent_visits.yml @@ -9,8 +9,6 @@ description: The last project issue board visited by a user, used to redirect th introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/7aeab58f4861144fcc1d334907cb1b465c645001 milestone: '11.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/boards.yml b/db/docs/boards.yml index 367aecc63f6..560dff1f7f4 100644 --- a/db/docs/boards.yml +++ b/db/docs/boards.yml @@ -9,8 +9,6 @@ description: Configuration information for issue boards, including default scope introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/611dab2e522e5e59cf09cd459a31686e65616863 milestone: '8.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces project_id: projects diff --git a/db/docs/boards_epic_board_labels.yml b/db/docs/boards_epic_board_labels.yml index 2827428e249..36b74a52fe3 100644 --- a/db/docs/boards_epic_board_labels.yml +++ b/db/docs/boards_epic_board_labels.yml @@ -8,8 +8,6 @@ description: Information relating epic boards to labels used to scope the boards introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48658 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/boards_epic_board_positions.yml b/db/docs/boards_epic_board_positions.yml index c44a0b7ab72..89374073590 100644 --- a/db/docs/boards_epic_board_positions.yml +++ b/db/docs/boards_epic_board_positions.yml @@ -9,8 +9,6 @@ description: Relates epics to epic boards by position, unique to each combinatio introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48120 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/boards_epic_board_recent_visits.yml b/db/docs/boards_epic_board_recent_visits.yml index e9548bce9ac..0090c981d6f 100644 --- a/db/docs/boards_epic_board_recent_visits.yml +++ b/db/docs/boards_epic_board_recent_visits.yml @@ -9,8 +9,6 @@ description: The epic board most recently visited by users, used to determine wh introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60720 milestone: '13.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/boards_epic_boards.yml b/db/docs/boards_epic_boards.yml index c9cfd9c5282..b8519b14c6c 100644 --- a/db/docs/boards_epic_boards.yml +++ b/db/docs/boards_epic_boards.yml @@ -9,8 +9,6 @@ description: Configuration information for epic boards, including default scope introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48658 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/boards_epic_list_user_preferences.yml b/db/docs/boards_epic_list_user_preferences.yml index 8c5a885051b..73ca0efd3cf 100644 --- a/db/docs/boards_epic_list_user_preferences.yml +++ b/db/docs/boards_epic_list_user_preferences.yml @@ -9,8 +9,6 @@ description: Epic board list preferences on a per-user basis, specifically wheth introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54541 milestone: '13.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/boards_epic_lists.yml b/db/docs/boards_epic_lists.yml index ce75b5843ab..05f5b7bb2b3 100644 --- a/db/docs/boards_epic_lists.yml +++ b/db/docs/boards_epic_lists.yml @@ -8,8 +8,6 @@ description: Configuration of a single list within an epic board introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49728 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/boards_epic_user_preferences.yml b/db/docs/boards_epic_user_preferences.yml index 5bf82603f9c..16e6813e8f9 100644 --- a/db/docs/boards_epic_user_preferences.yml +++ b/db/docs/boards_epic_user_preferences.yml @@ -9,8 +9,6 @@ description: The epic_ids used to create swimlanes on issue boards; stored per u introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40360 milestone: '13.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/bulk_import_exports.yml b/db/docs/bulk_import_exports.yml index 3babedfddd8..3d318463b1b 100644 --- a/db/docs/bulk_import_exports.yml +++ b/db/docs/bulk_import_exports.yml @@ -8,8 +8,6 @@ description: Used to track the generation status of export files for groups or p introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59976 milestone: '13.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects group_id: namespaces diff --git a/db/docs/catalog_resource_components.yml b/db/docs/catalog_resource_components.yml index 93e6605528b..a5290ed9765 100644 --- a/db/docs/catalog_resource_components.yml +++ b/db/docs/catalog_resource_components.yml @@ -8,8 +8,6 @@ description: CI component available in the CI Catalog introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127775 milestone: '16.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/catalog_resource_versions.yml b/db/docs/catalog_resource_versions.yml index 410996833cc..7d2ca30445b 100644 --- a/db/docs/catalog_resource_versions.yml +++ b/db/docs/catalog_resource_versions.yml @@ -8,8 +8,6 @@ description: Catalog resource versions that contain valid CI components. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124668 milestone: '16.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/catalog_resources.yml b/db/docs/catalog_resources.yml index 7a8b5b82e4e..cc5f747d3e0 100644 --- a/db/docs/catalog_resources.yml +++ b/db/docs/catalog_resources.yml @@ -8,8 +8,6 @@ description: Projects containing a catalog resource. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112482 milestone: '15.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/cluster_agent_tokens.yml b/db/docs/cluster_agent_tokens.yml index 8e54957ccaf..6677874e81b 100644 --- a/db/docs/cluster_agent_tokens.yml +++ b/db/docs/cluster_agent_tokens.yml @@ -8,8 +8,6 @@ description: Tokens used by cluster agents to connect to GitLab introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33228 milestone: '13.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/cluster_agents.yml b/db/docs/cluster_agents.yml index 1252f47eec6..f1093e191f3 100644 --- a/db/docs/cluster_agents.yml +++ b/db/docs/cluster_agents.yml @@ -8,8 +8,6 @@ description: Represents a GitLab Agent for Kubernetes installed in a Kubernetes introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33228 milestone: '13.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/cluster_groups.yml b/db/docs/cluster_groups.yml index 1bab211ee61..d55c5f15109 100644 --- a/db/docs/cluster_groups.yml +++ b/db/docs/cluster_groups.yml @@ -8,8 +8,6 @@ description: "(Deprecated) Join table between 'clusters' and 'namespaces'" introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/0e15eec86d83cbdfefe17966bf5c02e4d419a34d milestone: '11.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide exempt_from_sharding: true notes: Exempted because Table is scheduled for removal table_size: small diff --git a/db/docs/cluster_projects.yml b/db/docs/cluster_projects.yml index cd370e5a6ae..7fbf65a2cd7 100644 --- a/db/docs/cluster_projects.yml +++ b/db/docs/cluster_projects.yml @@ -8,8 +8,6 @@ description: "(Deprecated) Join table between 'clusters' and 'projects'" introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d0cff7f5855f91b5479f9fdaa39d8d95ec691a9e milestone: '10.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide exempt_from_sharding: true notes: Exempted because Table is scheduled for removal table_size: small diff --git a/db/docs/compliance_framework_security_policies.yml b/db/docs/compliance_framework_security_policies.yml index 67192ab02a5..fc7ab305b8f 100644 --- a/db/docs/compliance_framework_security_policies.yml +++ b/db/docs/compliance_framework_security_policies.yml @@ -8,8 +8,6 @@ description: Persists the relation between compliance_frameworks and security_or introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135291 milestone: '16.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/compliance_management_frameworks.yml b/db/docs/compliance_management_frameworks.yml index c0a5db37bab..ed6b00ed14a 100644 --- a/db/docs/compliance_management_frameworks.yml +++ b/db/docs/compliance_management_frameworks.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44098 milestone: '13.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/container_registry_data_repair_details.yml b/db/docs/container_registry_data_repair_details.yml index 149225e2f4e..dfccd95d893 100644 --- a/db/docs/container_registry_data_repair_details.yml +++ b/db/docs/container_registry_data_repair_details.yml @@ -8,8 +8,6 @@ description: Contains details for the container registry data repair introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113029 milestone: '15.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/container_registry_protection_rules.yml b/db/docs/container_registry_protection_rules.yml index c6ac3c9e49a..921ec96e29e 100644 --- a/db/docs/container_registry_protection_rules.yml +++ b/db/docs/container_registry_protection_rules.yml @@ -8,8 +8,6 @@ description: Represents container protection rules for the container registry. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133297 milestone: '16.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/container_repositories.yml b/db/docs/container_repositories.yml index 356354ed5bd..0cadaf88b39 100644 --- a/db/docs/container_repositories.yml +++ b/db/docs/container_repositories.yml @@ -9,8 +9,6 @@ description: Container registry repositories (images), originally named containe introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/10109 milestone: '9.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/container_repository_states.yml b/db/docs/container_repository_states.yml index 40ab565eeef..535269f4c99 100644 --- a/db/docs/container_repository_states.yml +++ b/db/docs/container_repository_states.yml @@ -8,8 +8,6 @@ classes: feature_categories: - geo_replication gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/coverage_fuzzing_corpuses.yml b/db/docs/coverage_fuzzing_corpuses.yml index 5d00cbf79d9..1baa950f021 100644 --- a/db/docs/coverage_fuzzing_corpuses.yml +++ b/db/docs/coverage_fuzzing_corpuses.yml @@ -8,8 +8,6 @@ description: Stores additional values describing corpuses used by coverage fuzzi introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71704 milestone: '14.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/csv_issue_imports.yml b/db/docs/csv_issue_imports.yml index 20380d1d8cf..60692763fbc 100644 --- a/db/docs/csv_issue_imports.yml +++ b/db/docs/csv_issue_imports.yml @@ -8,8 +8,6 @@ description: Used to report the unique user usage of the CSV Issue Import featur introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44742 milestone: '13.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/custom_emoji.yml b/db/docs/custom_emoji.yml index 4cff00f9f89..00adfb79749 100644 --- a/db/docs/custom_emoji.yml +++ b/db/docs/custom_emoji.yml @@ -8,8 +8,6 @@ description: Filename and name of custom emoji created by users introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24229 milestone: '13.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/customer_relations_contacts.yml b/db/docs/customer_relations_contacts.yml index dd43f88b1bb..9c16b0ff56c 100644 --- a/db/docs/customer_relations_contacts.yml +++ b/db/docs/customer_relations_contacts.yml @@ -9,8 +9,6 @@ description: Contacts, against which time can be spent by users on issues using introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67985 milestone: '14.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/customer_relations_organizations.yml b/db/docs/customer_relations_organizations.yml index b8282a3d4e0..841d170a4b3 100644 --- a/db/docs/customer_relations_organizations.yml +++ b/db/docs/customer_relations_organizations.yml @@ -9,8 +9,6 @@ description: Organizations, against which time can be spent by users on issues u introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67551 milestone: '14.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/dependency_proxy_blob_states.yml b/db/docs/dependency_proxy_blob_states.yml index 10781b68b6d..a95be68fe13 100644 --- a/db/docs/dependency_proxy_blob_states.yml +++ b/db/docs/dependency_proxy_blob_states.yml @@ -8,8 +8,6 @@ description: Separate table for dependency proxy blob verification states introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/101429 milestone: '15.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/dependency_proxy_blobs.yml b/db/docs/dependency_proxy_blobs.yml index 87ba5851cb4..12b6ca225da 100644 --- a/db/docs/dependency_proxy_blobs.yml +++ b/db/docs/dependency_proxy_blobs.yml @@ -8,8 +8,6 @@ description: Dependency proxy blob files introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10676 milestone: '11.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/dependency_proxy_image_ttl_group_policies.yml b/db/docs/dependency_proxy_image_ttl_group_policies.yml index 11c6e9e5529..fc5ff6a586a 100644 --- a/db/docs/dependency_proxy_image_ttl_group_policies.yml +++ b/db/docs/dependency_proxy_image_ttl_group_policies.yml @@ -8,8 +8,6 @@ description: Group-level settings for dependency proxy cleanup policies introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68809 milestone: '14.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/dependency_proxy_manifest_states.yml b/db/docs/dependency_proxy_manifest_states.yml index cac2356e6da..c14cc027a96 100644 --- a/db/docs/dependency_proxy_manifest_states.yml +++ b/db/docs/dependency_proxy_manifest_states.yml @@ -8,8 +8,6 @@ description: Separate table for dependency proxy manifest verification states introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102908 milestone: '15.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/dependency_proxy_manifests.yml b/db/docs/dependency_proxy_manifests.yml index 02bf4f50a0e..e9306afa461 100644 --- a/db/docs/dependency_proxy_manifests.yml +++ b/db/docs/dependency_proxy_manifests.yml @@ -8,8 +8,6 @@ description: Dependency proxy manifest files introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48535 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/dependency_proxy_packages_settings.yml b/db/docs/dependency_proxy_packages_settings.yml index 9f6c87c42a0..cfe2c9e728a 100644 --- a/db/docs/dependency_proxy_packages_settings.yml +++ b/db/docs/dependency_proxy_packages_settings.yml @@ -8,8 +8,6 @@ description: Settings for the dependency proxy for packages. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120894 milestone: '16.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/deploy_keys_projects.yml b/db/docs/deploy_keys_projects.yml index 181ec523d6a..97cc1516bef 100644 --- a/db/docs/deploy_keys_projects.yml +++ b/db/docs/deploy_keys_projects.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/user/project/deploy_keys/ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a735ce2aa7da72242629a4452c33e7a1900fdd62 milestone: "<6.0" gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/deployment_approvals.yml b/db/docs/deployment_approvals.yml index 7177c698669..5b93f36780e 100644 --- a/db/docs/deployment_approvals.yml +++ b/db/docs/deployment_approvals.yml @@ -10,8 +10,6 @@ description: Stores the user that approved/rejected a deployment and which appro introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74932 milestone: '14.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/deployment_clusters.yml b/db/docs/deployment_clusters.yml index 7212b4b0a0e..44fd4c83ead 100644 --- a/db/docs/deployment_clusters.yml +++ b/db/docs/deployment_clusters.yml @@ -8,8 +8,6 @@ description: "(Deprecated) Join table between `deployments` and `clusters`" introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24235 milestone: '12.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide exempt_from_sharding: true notes: Exempted because Table is scheduled for removal table_size: small diff --git a/db/docs/deployment_merge_requests.yml b/db/docs/deployment_merge_requests.yml index 524f98e5803..4798f464dd5 100644 --- a/db/docs/deployment_merge_requests.yml +++ b/db/docs/deployment_merge_requests.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/ci/environments/index.html#track-newly-i introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18755 milestone: '12.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/deployments.yml b/db/docs/deployments.yml index 099b62e2d9e..10e804dcd6d 100644 --- a/db/docs/deployments.yml +++ b/db/docs/deployments.yml @@ -9,8 +9,6 @@ description: Stores metadata related to a deployment CI Build, including user, e introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/907c0e6796b69f9577c147dd489cf55748c749ac milestone: '8.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects schema_inconsistencies: diff --git a/db/docs/design_management_designs.yml b/db/docs/design_management_designs.yml index b8bac5925a9..2596a74d3f1 100644 --- a/db/docs/design_management_designs.yml +++ b/db/docs/design_management_designs.yml @@ -9,8 +9,6 @@ description: Information about Designs, image files under management by the Desi introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9801 milestone: '11.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/design_management_designs_versions.yml b/db/docs/design_management_designs_versions.yml index ac69f64bcd7..3161c8f5b8a 100644 --- a/db/docs/design_management_designs_versions.yml +++ b/db/docs/design_management_designs_versions.yml @@ -8,8 +8,6 @@ description: The SHA referencing changes to a single design or multiple design f introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10552 milestone: '11.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/design_management_repositories.yml b/db/docs/design_management_repositories.yml index 3cb74766896..7544d94e884 100644 --- a/db/docs/design_management_repositories.yml +++ b/db/docs/design_management_repositories.yml @@ -8,8 +8,6 @@ description: Holds information about Design Management Repositories introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111555 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/design_management_repository_states.yml b/db/docs/design_management_repository_states.yml index 309227fc9e7..09b9698ac36 100644 --- a/db/docs/design_management_repository_states.yml +++ b/db/docs/design_management_repository_states.yml @@ -8,8 +8,6 @@ description: Separate table for Design Repository verification states introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113958 milestone: '16.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/design_management_versions.yml b/db/docs/design_management_versions.yml index e7cb5f82382..7e6b4345d31 100644 --- a/db/docs/design_management_versions.yml +++ b/db/docs/design_management_versions.yml @@ -9,8 +9,6 @@ description: The SHA referencing changes to individual designs made using the De introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9801 milestone: '11.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/design_user_mentions.yml b/db/docs/design_user_mentions.yml index 61b3721ad04..19d7116ddc4 100644 --- a/db/docs/design_user_mentions.yml +++ b/db/docs/design_user_mentions.yml @@ -8,8 +8,6 @@ description: User mentions in content related to designs introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/dora_configurations.yml b/db/docs/dora_configurations.yml index e77c56d7f9c..07c327709b0 100644 --- a/db/docs/dora_configurations.yml +++ b/db/docs/dora_configurations.yml @@ -8,8 +8,6 @@ description: Stores project specific configurations for DORA4 calculations. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96561 milestone: '15.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/dora_daily_metrics.yml b/db/docs/dora_daily_metrics.yml index e2ce79ea93a..cdf19e3b90f 100644 --- a/db/docs/dora_daily_metrics.yml +++ b/db/docs/dora_daily_metrics.yml @@ -9,8 +9,6 @@ description: Stores daily snapshots of DORA4 metrics per environment. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55473 milestone: '13.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/dora_performance_scores.yml b/db/docs/dora_performance_scores.yml index 51458908b56..27c9421c7f4 100644 --- a/db/docs/dora_performance_scores.yml +++ b/db/docs/dora_performance_scores.yml @@ -8,8 +8,6 @@ description: Stores monthly snapshots of DORA4 performance scores per project. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115689 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/draft_notes.yml b/db/docs/draft_notes.yml index 8c79fb26180..d37a8192b88 100644 --- a/db/docs/draft_notes.yml +++ b/db/docs/draft_notes.yml @@ -8,8 +8,6 @@ description: Notes created during the review of an MR that are not yet published introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/4213 milestone: '11.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/elastic_group_index_statuses.yml b/db/docs/elastic_group_index_statuses.yml index 8be4fa00486..2f0e8cdb2b4 100644 --- a/db/docs/elastic_group_index_statuses.yml +++ b/db/docs/elastic_group_index_statuses.yml @@ -8,8 +8,6 @@ description: Table for tracking Advanced Search indexing statuses for groups introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107579 milestone: '15.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/elasticsearch_indexed_namespaces.yml b/db/docs/elasticsearch_indexed_namespaces.yml index 391360e0577..04b3ba7ce76 100644 --- a/db/docs/elasticsearch_indexed_namespaces.yml +++ b/db/docs/elasticsearch_indexed_namespaces.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9861 milestone: '11.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/elasticsearch_indexed_projects.yml b/db/docs/elasticsearch_indexed_projects.yml index d93b3ec73b7..ef60a468373 100644 --- a/db/docs/elasticsearch_indexed_projects.yml +++ b/db/docs/elasticsearch_indexed_projects.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9861 milestone: '11.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/environments.yml b/db/docs/environments.yml index 91557014e7a..233a707f6c9 100644 --- a/db/docs/environments.yml +++ b/db/docs/environments.yml @@ -9,8 +9,6 @@ description: Project-level deployment target and metadata. See https://docs.gitl introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/907c0e6796b69f9577c147dd489cf55748c749ac milestone: '8.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/epic_issues.yml b/db/docs/epic_issues.yml index b7c0f289e9d..8a2f365e8d9 100644 --- a/db/docs/epic_issues.yml +++ b/db/docs/epic_issues.yml @@ -8,8 +8,6 @@ description: The relationships between Epics and Issues introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3302 milestone: '10.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/epic_metrics.yml b/db/docs/epic_metrics.yml index 0fc686c15b9..842634361fa 100644 --- a/db/docs/epic_metrics.yml +++ b/db/docs/epic_metrics.yml @@ -8,7 +8,5 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3126 milestone: '10.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/442042 table_size: small diff --git a/db/docs/epic_user_mentions.yml b/db/docs/epic_user_mentions.yml index eb6b79b8542..eb68dcb8684 100644 --- a/db/docs/epic_user_mentions.yml +++ b/db/docs/epic_user_mentions.yml @@ -8,8 +8,6 @@ description: User mentions in epic descriptions introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/epics.yml b/db/docs/epics.yml index 5c4763b6b20..29bc9994558 100644 --- a/db/docs/epics.yml +++ b/db/docs/epics.yml @@ -9,8 +9,6 @@ description: Information directly related to Epics, used by epic management feat introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3126 milestone: '10.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/error_tracking_client_keys.yml b/db/docs/error_tracking_client_keys.yml index a9b155be153..a6c496c413c 100644 --- a/db/docs/error_tracking_client_keys.yml +++ b/db/docs/error_tracking_client_keys.yml @@ -8,8 +8,6 @@ description: Model to store public keys used by Sentry SDK for Error Tracking introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66466 milestone: '14.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/error_tracking_error_events.yml b/db/docs/error_tracking_error_events.yml index 3f783e93cc0..74577e7f31b 100644 --- a/db/docs/error_tracking_error_events.yml +++ b/db/docs/error_tracking_error_events.yml @@ -8,8 +8,6 @@ description: Persists error event data for the Error Tracking's GitLab backend introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64712 milestone: '14.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/error_tracking_errors.yml b/db/docs/error_tracking_errors.yml index 26fe1f21cda..9597c57c339 100644 --- a/db/docs/error_tracking_errors.yml +++ b/db/docs/error_tracking_errors.yml @@ -8,8 +8,6 @@ description: Persists error data for the Error Tracking's GitLab backend introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64712 milestone: '14.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/external_approval_rules.yml b/db/docs/external_approval_rules.yml index 0217de461ff..f4f04d4e90e 100644 --- a/db/docs/external_approval_rules.yml +++ b/db/docs/external_approval_rules.yml @@ -7,8 +7,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54002 milestone: '13.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/external_status_checks.yml b/db/docs/external_status_checks.yml index 52d5b64be46..a7646cfdabd 100644 --- a/db/docs/external_status_checks.yml +++ b/db/docs/external_status_checks.yml @@ -8,8 +8,6 @@ description: Stores project's external status checks introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62186 milestone: '14.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/geo_events.yml b/db/docs/geo_events.yml index 7d03f6ef79d..b1291dce899 100644 --- a/db/docs/geo_events.yml +++ b/db/docs/geo_events.yml @@ -11,3 +11,4 @@ milestone: '12.8' gitlab_schema: gitlab_main_cell sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/464440 table_size: small +exempt_from_sharding: true diff --git a/db/docs/geo_node_namespace_links.yml b/db/docs/geo_node_namespace_links.yml index b19bd2fe50d..e13a0d35ed5 100644 --- a/db/docs/geo_node_namespace_links.yml +++ b/db/docs/geo_node_namespace_links.yml @@ -8,8 +8,6 @@ description: Passthrough table for geo_nodes many-to-many namespaces relation. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/14c6128530579ca92fa79342d4119d25bcff1f2d milestone: '9.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/gpg_signatures.yml b/db/docs/gpg_signatures.yml index a8002fa1162..8ce3d082fe3 100644 --- a/db/docs/gpg_signatures.yml +++ b/db/docs/gpg_signatures.yml @@ -8,8 +8,6 @@ description: Stores GPG signatures introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9546 milestone: '9.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: medium diff --git a/db/docs/grafana_integrations.yml b/db/docs/grafana_integrations.yml index be10d61648a..b3bc8f35da2 100644 --- a/db/docs/grafana_integrations.yml +++ b/db/docs/grafana_integrations.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17234 milestone: '12.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/group_custom_attributes.yml b/db/docs/group_custom_attributes.yml index 2b53bad45e5..d53e8e3a58a 100644 --- a/db/docs/group_custom_attributes.yml +++ b/db/docs/group_custom_attributes.yml @@ -8,8 +8,6 @@ description: Stores custom attributes per group introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14593 milestone: '10.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/group_deletion_schedules.yml b/db/docs/group_deletion_schedules.yml index 35acd8c0eaf..358484febd6 100644 --- a/db/docs/group_deletion_schedules.yml +++ b/db/docs/group_deletion_schedules.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20276 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/group_deploy_tokens.yml b/db/docs/group_deploy_tokens.yml index 4429e0c9593..b0f910fb150 100644 --- a/db/docs/group_deploy_tokens.yml +++ b/db/docs/group_deploy_tokens.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/user/project/deploy_tokens/ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23460 milestone: '12.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/group_repository_storage_moves.yml b/db/docs/group_repository_storage_moves.yml index 145a6417275..74b0c082ffe 100644 --- a/db/docs/group_repository_storage_moves.yml +++ b/db/docs/group_repository_storage_moves.yml @@ -8,8 +8,6 @@ description: Keeps track of group repositories being moved across storages. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51803 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/group_ssh_certificates.yml b/db/docs/group_ssh_certificates.yml index 67f103ec6ea..15d68c7601e 100644 --- a/db/docs/group_ssh_certificates.yml +++ b/db/docs/group_ssh_certificates.yml @@ -9,8 +9,6 @@ description: Stores CA files used to verify which certificates are authorized to introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127856 milestone: '16.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/group_wiki_repositories.yml b/db/docs/group_wiki_repositories.yml index c14e8796b0a..c19c60c6c28 100644 --- a/db/docs/group_wiki_repositories.yml +++ b/db/docs/group_wiki_repositories.yml @@ -8,8 +8,6 @@ description: Stores information about group wiki repositories. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31121 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/groups_visits.yml b/db/docs/groups_visits.yml index aaea056639b..151eeba278f 100644 --- a/db/docs/groups_visits.yml +++ b/db/docs/groups_visits.yml @@ -9,8 +9,6 @@ description: Tracks group visits so we can suggest groups that are recently and introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123554 milestone: '16.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: entity_id: namespaces table_size: small diff --git a/db/docs/import_placeholder_memberships.yml b/db/docs/import_placeholder_memberships.yml index 281c936112e..544522466bc 100644 --- a/db/docs/import_placeholder_memberships.yml +++ b/db/docs/import_placeholder_memberships.yml @@ -8,8 +8,6 @@ description: Used to map imported membership data to real users introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/issues/477845 milestone: '17.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/import_source_user_placeholder_references.yml b/db/docs/import_source_user_placeholder_references.yml index 9766fd970ab..e982423a4ba 100644 --- a/db/docs/import_source_user_placeholder_references.yml +++ b/db/docs/import_source_user_placeholder_references.yml @@ -8,8 +8,6 @@ description: Used to map placeholder user references from imported data to real introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156241 milestone: '17.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/import_source_users.yml b/db/docs/import_source_users.yml index 581c03ea6a3..1c632ea5049 100644 --- a/db/docs/import_source_users.yml +++ b/db/docs/import_source_users.yml @@ -9,8 +9,6 @@ description: Used to map imported user contributions to internal placeholder use introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/147488 milestone: '17.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/incident_management_escalation_policies.yml b/db/docs/incident_management_escalation_policies.yml index ea6277c3b5f..b9a28e250a2 100644 --- a/db/docs/incident_management_escalation_policies.yml +++ b/db/docs/incident_management_escalation_policies.yml @@ -8,8 +8,6 @@ description: Persists information about escalation policies in a project introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60685 milestone: '13.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/incident_management_escalation_rules.yml b/db/docs/incident_management_escalation_rules.yml index 41b74b33632..abfe267acf4 100644 --- a/db/docs/incident_management_escalation_rules.yml +++ b/db/docs/incident_management_escalation_rules.yml @@ -8,8 +8,6 @@ description: Persists information about escalation rules for incident management introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60685 milestone: '13.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/incident_management_issuable_escalation_statuses.yml b/db/docs/incident_management_issuable_escalation_statuses.yml index 643f918c321..65af414a43a 100644 --- a/db/docs/incident_management_issuable_escalation_statuses.yml +++ b/db/docs/incident_management_issuable_escalation_statuses.yml @@ -8,8 +8,6 @@ description: Persists escalation status information for incidents introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65206 milestone: '14.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/incident_management_oncall_participants.yml b/db/docs/incident_management_oncall_participants.yml index 46d914643cb..5a194f32264 100644 --- a/db/docs/incident_management_oncall_participants.yml +++ b/db/docs/incident_management_oncall_participants.yml @@ -9,8 +9,6 @@ description: Persists information about on-call rotation participants introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49058 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/incident_management_oncall_rotations.yml b/db/docs/incident_management_oncall_rotations.yml index 6ceb8583f9b..12d927dc5b2 100644 --- a/db/docs/incident_management_oncall_rotations.yml +++ b/db/docs/incident_management_oncall_rotations.yml @@ -9,8 +9,6 @@ description: Persists information about on-call rotation introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49058 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/incident_management_oncall_schedules.yml b/db/docs/incident_management_oncall_schedules.yml index bf4c1b142e8..9f4c393ec3b 100644 --- a/db/docs/incident_management_oncall_schedules.yml +++ b/db/docs/incident_management_oncall_schedules.yml @@ -9,8 +9,6 @@ description: Persists on-call schedules for incident management in a project introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47407 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/incident_management_oncall_shifts.yml b/db/docs/incident_management_oncall_shifts.yml index 813e9ad5cc5..6cfa5cdfa76 100644 --- a/db/docs/incident_management_oncall_shifts.yml +++ b/db/docs/incident_management_oncall_shifts.yml @@ -9,8 +9,6 @@ description: Tracks past and present on-call shifts introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49423 milestone: '13.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/incident_management_pending_alert_escalations.yml b/db/docs/incident_management_pending_alert_escalations.yml index b432904e80f..133255a9c6d 100644 --- a/db/docs/incident_management_pending_alert_escalations.yml +++ b/db/docs/incident_management_pending_alert_escalations.yml @@ -8,8 +8,6 @@ description: Persists information about pending alert escalations for incidents introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64274 milestone: '14.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/incident_management_pending_issue_escalations.yml b/db/docs/incident_management_pending_issue_escalations.yml index 1a93bba4775..cd3f8139891 100644 --- a/db/docs/incident_management_pending_issue_escalations.yml +++ b/db/docs/incident_management_pending_issue_escalations.yml @@ -9,8 +9,6 @@ description: Represents when issues should be escalated according to a project's introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65209 milestone: '14.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/incident_management_timeline_event_tag_links.yml b/db/docs/incident_management_timeline_event_tag_links.yml index 086442e2b20..58b081020fb 100644 --- a/db/docs/incident_management_timeline_event_tag_links.yml +++ b/db/docs/incident_management_timeline_event_tag_links.yml @@ -8,8 +8,6 @@ description: Persists links between timeline event tags and timeline events. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/100271 milestone: '15.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/incident_management_timeline_events.yml b/db/docs/incident_management_timeline_events.yml index cb2cf1694a4..05d8101fae7 100644 --- a/db/docs/incident_management_timeline_events.yml +++ b/db/docs/incident_management_timeline_events.yml @@ -8,8 +8,6 @@ description: Persists timeline events for an incident introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74530 milestone: '14.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/index_statuses.yml b/db/docs/index_statuses.yml index 536637525e7..4878f7b958f 100644 --- a/db/docs/index_statuses.yml +++ b/db/docs/index_statuses.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/03370b017c7b120af7b53682714ffc325742fc98 milestone: '8.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/insights.yml b/db/docs/insights.yml index 7b2b40af808..e7c13152785 100644 --- a/db/docs/insights.yml +++ b/db/docs/insights.yml @@ -9,8 +9,6 @@ description: The table is used to specify a project which contains the group lev introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9665 milestone: '11.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/issuable_metric_images.yml b/db/docs/issuable_metric_images.yml index 5ceb7cb4523..2f062fdce6d 100644 --- a/db/docs/issuable_metric_images.yml +++ b/db/docs/issuable_metric_images.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46845 milestone: '13.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issuable_resource_links.yml b/db/docs/issuable_resource_links.yml index 74c01f4928d..2ec77f2ddb7 100644 --- a/db/docs/issuable_resource_links.yml +++ b/db/docs/issuable_resource_links.yml @@ -8,8 +8,6 @@ description: Persists resources links for an issuable, particularly incident. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88417 milestone: '15.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issuable_severities.yml b/db/docs/issuable_severities.yml index dba4447eaaf..9944882a5b1 100644 --- a/db/docs/issuable_severities.yml +++ b/db/docs/issuable_severities.yml @@ -8,8 +8,6 @@ description: Integer representing severity applied to issues, currently used for introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40272 milestone: '13.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issuable_slas.yml b/db/docs/issuable_slas.yml index b9568cf6638..7df1d2a5a06 100644 --- a/db/docs/issuable_slas.yml +++ b/db/docs/issuable_slas.yml @@ -8,8 +8,6 @@ description: Persists information about incident SLAs for incidents introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44253 milestone: '13.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_assignees.yml b/db/docs/issue_assignees.yml index 283cf84b56a..df0800296e2 100644 --- a/db/docs/issue_assignees.yml +++ b/db/docs/issue_assignees.yml @@ -8,8 +8,6 @@ description: Users assigned to an issue introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1541 milestone: '9.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_assignment_events.yml b/db/docs/issue_assignment_events.yml index bf6591b3fa4..43caed3835a 100644 --- a/db/docs/issue_assignment_events.yml +++ b/db/docs/issue_assignment_events.yml @@ -8,8 +8,6 @@ description: Tracks the assignment and unassignment events for issues introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117379 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_customer_relations_contacts.yml b/db/docs/issue_customer_relations_contacts.yml index f73a4873950..a11a0944bf2 100644 --- a/db/docs/issue_customer_relations_contacts.yml +++ b/db/docs/issue_customer_relations_contacts.yml @@ -8,8 +8,6 @@ description: Holds Customer Relations (CRM) Contacts introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71007 milestone: '14.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_email_participants.yml b/db/docs/issue_email_participants.yml index b02a9491ea3..50a5311be40 100644 --- a/db/docs/issue_email_participants.yml +++ b/db/docs/issue_email_participants.yml @@ -8,8 +8,6 @@ description: Email addresses for non-GitLab users added to issues as participant introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42943 milestone: '13.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_emails.yml b/db/docs/issue_emails.yml index 7ce8f6d1d20..a8e55ba16f6 100644 --- a/db/docs/issue_emails.yml +++ b/db/docs/issue_emails.yml @@ -10,8 +10,6 @@ description: The Message-ID of the original email that resulted in the creation introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71749 milestone: '14.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_links.yml b/db/docs/issue_links.yml index 83b8dae56ff..02a07d5ecff 100644 --- a/db/docs/issue_links.yml +++ b/db/docs/issue_links.yml @@ -9,8 +9,6 @@ description: Links two issues by relationship type, which can be related or bloc introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1719 milestone: '9.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_metrics.yml b/db/docs/issue_metrics.yml index 158dffc13c4..5a5a903e82e 100644 --- a/db/docs/issue_metrics.yml +++ b/db/docs/issue_metrics.yml @@ -8,8 +8,6 @@ description: Store various metrics for issues. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/516c838a1846d049814765afa85c28a3c14a5b9f milestone: '8.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/issue_search_data.yml b/db/docs/issue_search_data.yml index be0604809ab..f4b67fbc3b3 100644 --- a/db/docs/issue_search_data.yml +++ b/db/docs/issue_search_data.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71913 milestone: '14.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: medium diff --git a/db/docs/issue_user_mentions.yml b/db/docs/issue_user_mentions.yml index 6b247d6aa66..85da267c4e3 100644 --- a/db/docs/issue_user_mentions.yml +++ b/db/docs/issue_user_mentions.yml @@ -8,8 +8,6 @@ description: User mentions in issue descriptions introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/iterations_cadences.yml b/db/docs/iterations_cadences.yml index 53ca7cb2d9f..360f9e0659a 100644 --- a/db/docs/iterations_cadences.yml +++ b/db/docs/iterations_cadences.yml @@ -9,8 +9,6 @@ description: Defines an iteration cadence for a group, used to define how iterat introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50707 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/jira_connect_subscriptions.yml b/db/docs/jira_connect_subscriptions.yml index 3c94e0077ea..b8bae945759 100644 --- a/db/docs/jira_connect_subscriptions.yml +++ b/db/docs/jira_connect_subscriptions.yml @@ -9,8 +9,6 @@ description: GitLab.com for Jira Cloud app subscriptions data, formerly Jira Con introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10453 milestone: '11.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/jira_imports.yml b/db/docs/jira_imports.yml index ed7ee384771..893b42834a8 100644 --- a/db/docs/jira_imports.yml +++ b/db/docs/jira_imports.yml @@ -8,8 +8,6 @@ description: Track Jira issue import progress into GitLab issues. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28108 milestone: '12.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/label_priorities.yml b/db/docs/label_priorities.yml index a17c97fae8f..d2f16c91a00 100644 --- a/db/docs/label_priorities.yml +++ b/db/docs/label_priorities.yml @@ -8,8 +8,6 @@ description: The relative priority assigned to a label within a project, if any introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/297892011330ecdd2fa7cbe47fbc6fd4f3b62171 milestone: '8.14' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/ldap_group_links.yml b/db/docs/ldap_group_links.yml index b28ed50cece..fc7f503483c 100644 --- a/db/docs/ldap_group_links.yml +++ b/db/docs/ldap_group_links.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/b017947ac91655f8ae6593fb63c3423cd1b439f4 milestone: '7.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/lfs_objects_projects.yml b/db/docs/lfs_objects_projects.yml index 05b26467f9f..928e6678556 100644 --- a/db/docs/lfs_objects_projects.yml +++ b/db/docs/lfs_objects_projects.yml @@ -8,8 +8,6 @@ description: Join table relating lfs_objects and projects introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/1727 milestone: '8.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: medium diff --git a/db/docs/merge_request_assignees.yml b/db/docs/merge_request_assignees.yml index 636348baae8..a248824ed00 100644 --- a/db/docs/merge_request_assignees.yml +++ b/db/docs/merge_request_assignees.yml @@ -8,8 +8,6 @@ description: Store allocated assignees for merge requests introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26496 milestone: '11.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/merge_request_assignment_events.yml b/db/docs/merge_request_assignment_events.yml index 4ab01f6604c..b646217beb8 100644 --- a/db/docs/merge_request_assignment_events.yml +++ b/db/docs/merge_request_assignment_events.yml @@ -8,8 +8,6 @@ description: Tracks the assignment and unassignment events for merge requests introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117379 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/merge_request_blocks.yml b/db/docs/merge_request_blocks.yml index 4262608c064..0620c5ada2d 100644 --- a/db/docs/merge_request_blocks.yml +++ b/db/docs/merge_request_blocks.yml @@ -8,8 +8,6 @@ description: Keeps relation between blocked and blocking merge requests introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/27323 milestone: '11.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/merge_request_cleanup_schedules.yml b/db/docs/merge_request_cleanup_schedules.yml index 7792715878a..36ba9f5e0b5 100644 --- a/db/docs/merge_request_cleanup_schedules.yml +++ b/db/docs/merge_request_cleanup_schedules.yml @@ -8,8 +8,6 @@ description: Store refs cleanup schedules for merge requests introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46758 milestone: '13.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/merge_request_diffs.yml b/db/docs/merge_request_diffs.yml index 499e29d52ca..c6803b8c847 100644 --- a/db/docs/merge_request_diffs.yml +++ b/db/docs/merge_request_diffs.yml @@ -10,8 +10,6 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/c983e8eb3d9cac0 milestone: '6.6' gitlab_schema: gitlab_main_cell desired_sharding_key_migration_job_name: BackfillMergeRequestDiffsProjectId -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: over_limit diff --git a/db/docs/merge_request_metrics.yml b/db/docs/merge_request_metrics.yml index 2c884f99188..bc819e1d176 100644 --- a/db/docs/merge_request_metrics.yml +++ b/db/docs/merge_request_metrics.yml @@ -9,8 +9,6 @@ description: Store various metrics for merge requests. introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5986 milestone: '8.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: target_project_id: projects table_size: large diff --git a/db/docs/merge_request_predictions.yml b/db/docs/merge_request_predictions.yml index 5c2616bcd9c..a9c3acecb38 100644 --- a/db/docs/merge_request_predictions.yml +++ b/db/docs/merge_request_predictions.yml @@ -8,8 +8,6 @@ description: Includes machine learning model predictions introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/97622 milestone: '15.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/merge_request_reviewers.yml b/db/docs/merge_request_reviewers.yml index 311f9db6a43..f5da9105557 100644 --- a/db/docs/merge_request_reviewers.yml +++ b/db/docs/merge_request_reviewers.yml @@ -8,8 +8,6 @@ description: Store allocated reviewers for merge requests introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40358 milestone: '13.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/merge_requests_closing_issues.yml b/db/docs/merge_requests_closing_issues.yml index 5e1d02f132d..e425e0f5e0f 100644 --- a/db/docs/merge_requests_closing_issues.yml +++ b/db/docs/merge_requests_closing_issues.yml @@ -8,8 +8,6 @@ description: Store the events of merge request closing any issues introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5986 milestone: '8.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/merge_requests_compliance_violations.yml b/db/docs/merge_requests_compliance_violations.yml index 169e549a51c..4b4ede44833 100644 --- a/db/docs/merge_requests_compliance_violations.yml +++ b/db/docs/merge_requests_compliance_violations.yml @@ -8,7 +8,5 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74290 milestone: '14.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/464719 table_size: small diff --git a/db/docs/merge_trains.yml b/db/docs/merge_trains.yml index 15aeb28ce14..7df8b63287b 100644 --- a/db/docs/merge_trains.yml +++ b/db/docs/merge_trains.yml @@ -9,8 +9,6 @@ description: Each record represents a single merge request which is or was part introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/827fc3ccb9335aa29fba0fc532b70015ec4c5186 milestone: '11.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: target_project_id: projects table_size: small diff --git a/db/docs/metrics_users_starred_dashboards.yml b/db/docs/metrics_users_starred_dashboards.yml index 15a6de1d695..2ea844830c1 100644 --- a/db/docs/metrics_users_starred_dashboards.yml +++ b/db/docs/metrics_users_starred_dashboards.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29912 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/milestones.yml b/db/docs/milestones.yml index 992e50d46cf..6a5cd71dd56 100644 --- a/db/docs/milestones.yml +++ b/db/docs/milestones.yml @@ -9,8 +9,6 @@ description: Information related to milestones, used by team planning features t introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/23d950855d6d2524d00b1f0618c008e2529f06a4 milestone: "<6.0" gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects group_id: namespaces diff --git a/db/docs/ml_candidate_metadata.yml b/db/docs/ml_candidate_metadata.yml index 9c8cebf0976..994c947521d 100644 --- a/db/docs/ml_candidate_metadata.yml +++ b/db/docs/ml_candidate_metadata.yml @@ -8,8 +8,6 @@ gitlab_schema: gitlab_main_cell description: A Candidate Metadata record holds extra information about the candidate introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/104267 milestone: '15.7' -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/ml_candidate_params.yml b/db/docs/ml_candidate_params.yml index 27b6f92984e..7ea633af82b 100644 --- a/db/docs/ml_candidate_params.yml +++ b/db/docs/ml_candidate_params.yml @@ -8,8 +8,6 @@ description: Configuration parameters recorded for a Machine Learning model cand introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95168 milestone: '15.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/ml_candidates.yml b/db/docs/ml_candidates.yml index cfe874dd3d3..8988cbcfa56 100644 --- a/db/docs/ml_candidates.yml +++ b/db/docs/ml_candidates.yml @@ -9,8 +9,6 @@ description: A Model Candidate is a record of the results on training a model on introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95168 milestone: '15.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/ml_experiment_metadata.yml b/db/docs/ml_experiment_metadata.yml index 9283dc95dc2..fef023aa5e7 100644 --- a/db/docs/ml_experiment_metadata.yml +++ b/db/docs/ml_experiment_metadata.yml @@ -8,8 +8,6 @@ gitlab_schema: gitlab_main_cell description: An Experiment Metadata record holds extra information about the experiment introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/104267 milestone: '15.7' -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/ml_experiments.yml b/db/docs/ml_experiments.yml index 8cd78d5c7c2..a781efb530d 100644 --- a/db/docs/ml_experiments.yml +++ b/db/docs/ml_experiments.yml @@ -8,8 +8,6 @@ description: A Machine Learning Experiments groups many Model Candidates introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95168 milestone: '15.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/ml_model_metadata.yml b/db/docs/ml_model_metadata.yml index 8b3f783524f..4f6be6e060e 100644 --- a/db/docs/ml_model_metadata.yml +++ b/db/docs/ml_model_metadata.yml @@ -8,8 +8,6 @@ gitlab_schema: gitlab_main_cell description: A Model Metadata record holds extra information about the model introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134443 milestone: 16.6 -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/ml_model_versions.yml b/db/docs/ml_model_versions.yml index 60c0e05be28..f446184d77e 100644 --- a/db/docs/ml_model_versions.yml +++ b/db/docs/ml_model_versions.yml @@ -8,8 +8,6 @@ description: A version of a machine learning model for the model registry introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125729 milestone: '16.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/ml_models.yml b/db/docs/ml_models.yml index 376dc499e2d..fd73879a7b5 100644 --- a/db/docs/ml_models.yml +++ b/db/docs/ml_models.yml @@ -8,8 +8,6 @@ description: A machine learning model for the model registry introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125302 milestone: '16.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/namespace_admin_notes.yml b/db/docs/namespace_admin_notes.yml index 333162ed9da..79a87dd8952 100644 --- a/db/docs/namespace_admin_notes.yml +++ b/db/docs/namespace_admin_notes.yml @@ -9,8 +9,6 @@ description: Contains notes about groups that are visible to server administrato introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47825 milestone: '13.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/namespace_bans.yml b/db/docs/namespace_bans.yml index f2bafe5e9ed..2f90bd781da 100644 --- a/db/docs/namespace_bans.yml +++ b/db/docs/namespace_bans.yml @@ -8,8 +8,6 @@ description: Contains users banned from namespaces introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91271 milestone: '15.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/namespace_ci_cd_settings.yml b/db/docs/namespace_ci_cd_settings.yml index 8130dc44835..d6bac81983c 100644 --- a/db/docs/namespace_ci_cd_settings.yml +++ b/db/docs/namespace_ci_cd_settings.yml @@ -9,8 +9,6 @@ description: Namespace-scoped settings related to the CI/CD domain introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86477 milestone: '15.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/namespace_ldap_settings.yml b/db/docs/namespace_ldap_settings.yml index 04de4b8acd3..9378d51ac5f 100644 --- a/db/docs/namespace_ldap_settings.yml +++ b/db/docs/namespace_ldap_settings.yml @@ -8,8 +8,6 @@ description: Used to store LDAP settings for namespaces introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108908 milestone: '15.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/namespace_limits.yml b/db/docs/namespace_limits.yml index fd0fc063dae..af6d9f99506 100644 --- a/db/docs/namespace_limits.yml +++ b/db/docs/namespace_limits.yml @@ -8,8 +8,6 @@ description: Contains limits for namespace features like storage and ci introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34746 milestone: '13.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/namespace_package_settings.yml b/db/docs/namespace_package_settings.yml index 6c8cc7e10fa..0a5d7556ebc 100644 --- a/db/docs/namespace_package_settings.yml +++ b/db/docs/namespace_package_settings.yml @@ -8,8 +8,6 @@ description: Namespace and group-level settings for the package registry introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50104 milestone: '13.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/namespaces_storage_limit_exclusions.yml b/db/docs/namespaces_storage_limit_exclusions.yml index 83b5618a68d..5f646756c33 100644 --- a/db/docs/namespaces_storage_limit_exclusions.yml +++ b/db/docs/namespaces_storage_limit_exclusions.yml @@ -9,8 +9,6 @@ description: Stores namespaces that are excluded from the storage limit. Any nam introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108449 milestone: '15.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/notes.yml b/db/docs/notes.yml index 37a36a87060..e520d952ab0 100644 --- a/db/docs/notes.yml +++ b/db/docs/notes.yml @@ -22,7 +22,5 @@ description: The object at the core of comments, discussions and system notes sh introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9ba1224867665844b117fa037e1465bb706b3685 milestone: "<6.0" gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/444222 table_size: over_limit diff --git a/db/docs/operations_feature_flags.yml b/db/docs/operations_feature_flags.yml index 93330e4aade..06e30f3a1ee 100644 --- a/db/docs/operations_feature_flags.yml +++ b/db/docs/operations_feature_flags.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7433 milestone: '11.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/operations_feature_flags_clients.yml b/db/docs/operations_feature_flags_clients.yml index 1babac01576..87df15337d8 100644 --- a/db/docs/operations_feature_flags_clients.yml +++ b/db/docs/operations_feature_flags_clients.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/operations/feature_flags.html introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7433 milestone: '11.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/operations_feature_flags_issues.yml b/db/docs/operations_feature_flags_issues.yml index 9908786f65b..0088e0da182 100644 --- a/db/docs/operations_feature_flags_issues.yml +++ b/db/docs/operations_feature_flags_issues.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/operations/feature_flags.html#feature-fl introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32876 milestone: '13.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/operations_scopes.yml b/db/docs/operations_scopes.yml index bb58975723a..84e7ecc8ab9 100644 --- a/db/docs/operations_scopes.yml +++ b/db/docs/operations_scopes.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/operations/feature_flags.html#feature-fl introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24819 milestone: '12.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/operations_strategies.yml b/db/docs/operations_strategies.yml index 89d81453b4d..f4742d77f2c 100644 --- a/db/docs/operations_strategies.yml +++ b/db/docs/operations_strategies.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/operations/feature_flags.html#feature-fl introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24819 milestone: '12.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/operations_strategies_user_lists.yml b/db/docs/operations_strategies_user_lists.yml index 35c6cb8cb0a..f93c69ad22d 100644 --- a/db/docs/operations_strategies_user_lists.yml +++ b/db/docs/operations_strategies_user_lists.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/operations/feature_flags.html#user-list introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30243 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/operations_user_lists.yml b/db/docs/operations_user_lists.yml index bc5f5a47b88..cccaa87e2a3 100644 --- a/db/docs/operations_user_lists.yml +++ b/db/docs/operations_user_lists.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/operations/feature_flags.html#user-list introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28822 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/organization_settings.yml b/db/docs/organization_settings.yml index 8555eeb4b86..706d155300f 100644 --- a/db/docs/organization_settings.yml +++ b/db/docs/organization_settings.yml @@ -8,8 +8,6 @@ description: Settings related to Organizations introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123380 milestone: '16.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: organization_id: organizations table_size: small diff --git a/db/docs/p_batched_git_ref_updates_deletions.yml b/db/docs/p_batched_git_ref_updates_deletions.yml index 9e5af124898..2e3a80800c2 100644 --- a/db/docs/p_batched_git_ref_updates_deletions.yml +++ b/db/docs/p_batched_git_ref_updates_deletions.yml @@ -9,8 +9,6 @@ description: Acts as a queue for refs that need to be deleted in Gitaly. This al introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125333 milestone: '16.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/packages_build_infos.yml b/db/docs/packages_build_infos.yml index a78e85edf7f..2d5c114b881 100644 --- a/db/docs/packages_build_infos.yml +++ b/db/docs/packages_build_infos.yml @@ -8,8 +8,6 @@ description: Join table relating packages_packages with ci_pipelines introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19796 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_cleanup_policies.yml b/db/docs/packages_cleanup_policies.yml index 17ed8255733..5afa20ffc36 100644 --- a/db/docs/packages_cleanup_policies.yml +++ b/db/docs/packages_cleanup_policies.yml @@ -8,8 +8,6 @@ description: Cleanup policy parameters for packages. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85918 milestone: '15.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/packages_composer_metadata.yml b/db/docs/packages_composer_metadata.yml index 51711d1331d..6f622df3ccf 100644 --- a/db/docs/packages_composer_metadata.yml +++ b/db/docs/packages_composer_metadata.yml @@ -8,8 +8,6 @@ description: Composer package metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30448 milestone: '13.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_conan_file_metadata.yml b/db/docs/packages_conan_file_metadata.yml index 9959ce335d5..a9d16e00b37 100644 --- a/db/docs/packages_conan_file_metadata.yml +++ b/db/docs/packages_conan_file_metadata.yml @@ -8,8 +8,6 @@ description: Conan package file metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16418 milestone: '12.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_conan_metadata.yml b/db/docs/packages_conan_metadata.yml index 0676a19f918..70ffcf66387 100644 --- a/db/docs/packages_conan_metadata.yml +++ b/db/docs/packages_conan_metadata.yml @@ -8,8 +8,6 @@ description: Conan package metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16418 milestone: '12.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_debian_file_metadata.yml b/db/docs/packages_debian_file_metadata.yml index 8350dbc5b6f..4c1b1c9ab38 100644 --- a/db/docs/packages_debian_file_metadata.yml +++ b/db/docs/packages_debian_file_metadata.yml @@ -8,8 +8,6 @@ description: Debian package file metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49692 milestone: '13.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_debian_group_architectures.yml b/db/docs/packages_debian_group_architectures.yml index 3f68f3d0f6f..b2eb8199fe2 100644 --- a/db/docs/packages_debian_group_architectures.yml +++ b/db/docs/packages_debian_group_architectures.yml @@ -8,8 +8,6 @@ description: Debian registry group-level architectures introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51265 milestone: '13.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/packages_debian_group_component_files.yml b/db/docs/packages_debian_group_component_files.yml index 90a7b90b0ee..8d5eaac55c4 100644 --- a/db/docs/packages_debian_group_component_files.yml +++ b/db/docs/packages_debian_group_component_files.yml @@ -8,8 +8,6 @@ description: Debian group-level component files introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52885 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/packages_debian_group_components.yml b/db/docs/packages_debian_group_components.yml index 84d77be954c..5082233793e 100644 --- a/db/docs/packages_debian_group_components.yml +++ b/db/docs/packages_debian_group_components.yml @@ -8,8 +8,6 @@ description: Debian package group-level distribution components introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51732 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/packages_debian_group_distribution_keys.yml b/db/docs/packages_debian_group_distribution_keys.yml index 4a7e7ad885c..dcb95e92af4 100644 --- a/db/docs/packages_debian_group_distribution_keys.yml +++ b/db/docs/packages_debian_group_distribution_keys.yml @@ -8,8 +8,6 @@ description: Debian group-level distribution keys introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60993 milestone: '14.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/packages_debian_group_distributions.yml b/db/docs/packages_debian_group_distributions.yml index 27c4b6ec68f..599888d7f8b 100644 --- a/db/docs/packages_debian_group_distributions.yml +++ b/db/docs/packages_debian_group_distributions.yml @@ -8,8 +8,6 @@ description: Debian registry group level distributions introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49405 milestone: '13.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/packages_debian_project_architectures.yml b/db/docs/packages_debian_project_architectures.yml index 8a73f0cd7f6..4ed20c44bb7 100644 --- a/db/docs/packages_debian_project_architectures.yml +++ b/db/docs/packages_debian_project_architectures.yml @@ -8,8 +8,6 @@ description: Debian registry group-level architectures introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51265 milestone: '13.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_debian_project_component_files.yml b/db/docs/packages_debian_project_component_files.yml index a1f7400f6f5..e79d4657684 100644 --- a/db/docs/packages_debian_project_component_files.yml +++ b/db/docs/packages_debian_project_component_files.yml @@ -8,8 +8,6 @@ description: Debian project-level component files introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52885 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_debian_project_components.yml b/db/docs/packages_debian_project_components.yml index e54b28f4509..4a03a0dcf3f 100644 --- a/db/docs/packages_debian_project_components.yml +++ b/db/docs/packages_debian_project_components.yml @@ -8,8 +8,6 @@ description: Debian package project-level distribution components introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51732 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_debian_project_distribution_keys.yml b/db/docs/packages_debian_project_distribution_keys.yml index 0c4f6321619..712033fbc18 100644 --- a/db/docs/packages_debian_project_distribution_keys.yml +++ b/db/docs/packages_debian_project_distribution_keys.yml @@ -8,8 +8,6 @@ description: Debian project-level distribution keys introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60993 milestone: '14.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_debian_project_distributions.yml b/db/docs/packages_debian_project_distributions.yml index 6c18b34e731..3fdb062370d 100644 --- a/db/docs/packages_debian_project_distributions.yml +++ b/db/docs/packages_debian_project_distributions.yml @@ -8,8 +8,6 @@ description: Debian package registry project level distributions introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49405 milestone: '13.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/packages_debian_publications.yml b/db/docs/packages_debian_publications.yml index 9eb166c9c45..cda6b97b736 100644 --- a/db/docs/packages_debian_publications.yml +++ b/db/docs/packages_debian_publications.yml @@ -8,8 +8,6 @@ description: Debian package publications relating distributions to packages introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52916 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_dependencies.yml b/db/docs/packages_dependencies.yml index 884c47b1c97..7a4c431ec0f 100644 --- a/db/docs/packages_dependencies.yml +++ b/db/docs/packages_dependencies.yml @@ -9,8 +9,6 @@ description: Information about package dependencies for a set of supported packa introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20549 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/packages_dependency_links.yml b/db/docs/packages_dependency_links.yml index 63d95008130..c438b359b9f 100644 --- a/db/docs/packages_dependency_links.yml +++ b/db/docs/packages_dependency_links.yml @@ -8,8 +8,6 @@ description: Join table between packages_packages and packages_dependencies introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20549 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_helm_file_metadata.yml b/db/docs/packages_helm_file_metadata.yml index 0095b537f98..bc0dc7f5853 100644 --- a/db/docs/packages_helm_file_metadata.yml +++ b/db/docs/packages_helm_file_metadata.yml @@ -8,8 +8,6 @@ description: Helm package file metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/57017 milestone: '13.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_maven_metadata.yml b/db/docs/packages_maven_metadata.yml index f87413cc89e..b27e84bb0db 100644 --- a/db/docs/packages_maven_metadata.yml +++ b/db/docs/packages_maven_metadata.yml @@ -8,8 +8,6 @@ description: Maven package metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607 milestone: '11.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_npm_metadata.yml b/db/docs/packages_npm_metadata.yml index 1538cf779c6..4c5181e76f4 100644 --- a/db/docs/packages_npm_metadata.yml +++ b/db/docs/packages_npm_metadata.yml @@ -8,8 +8,6 @@ description: Npm package metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73639 milestone: '14.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_npm_metadata_caches.yml b/db/docs/packages_npm_metadata_caches.yml index fbbdcea73cc..70a23df8d53 100644 --- a/db/docs/packages_npm_metadata_caches.yml +++ b/db/docs/packages_npm_metadata_caches.yml @@ -8,8 +8,6 @@ description: Store the metadata of npm packages to use later as a cache introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114312 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/packages_nuget_dependency_link_metadata.yml b/db/docs/packages_nuget_dependency_link_metadata.yml index a28e6ac6ef6..1d6e2681f4e 100644 --- a/db/docs/packages_nuget_dependency_link_metadata.yml +++ b/db/docs/packages_nuget_dependency_link_metadata.yml @@ -8,8 +8,6 @@ description: Join table between nuget target frameworks and packages_dependency_ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30618 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_nuget_metadata.yml b/db/docs/packages_nuget_metadata.yml index ad50397ab15..48da846a961 100644 --- a/db/docs/packages_nuget_metadata.yml +++ b/db/docs/packages_nuget_metadata.yml @@ -8,8 +8,6 @@ description: Nuget package metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30994 milestone: '13.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_nuget_symbols.yml b/db/docs/packages_nuget_symbols.yml index 9ea1ab99be3..c51b6895b2d 100644 --- a/db/docs/packages_nuget_symbols.yml +++ b/db/docs/packages_nuget_symbols.yml @@ -8,8 +8,6 @@ description: Nuget package symbols introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129916 milestone: '16.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_package_file_build_infos.yml b/db/docs/packages_package_file_build_infos.yml index cc65652ce13..c866f66115c 100644 --- a/db/docs/packages_package_file_build_infos.yml +++ b/db/docs/packages_package_file_build_infos.yml @@ -8,8 +8,6 @@ description: Join table relating packages_package_files and ci_pipelines introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44348 milestone: '13.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_package_files.yml b/db/docs/packages_package_files.yml index 8177ead228b..5e3fe59e593 100644 --- a/db/docs/packages_package_files.yml +++ b/db/docs/packages_package_files.yml @@ -8,8 +8,6 @@ description: Package registry file links and file metadata for all package types introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607 milestone: '11.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_packages.yml b/db/docs/packages_packages.yml index e0af3fcb4c7..2ef1f0ccf1d 100644 --- a/db/docs/packages_packages.yml +++ b/db/docs/packages_packages.yml @@ -21,8 +21,6 @@ description: Information for individual packages in the package registry introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607 milestone: '11.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: medium diff --git a/db/docs/packages_protection_rules.yml b/db/docs/packages_protection_rules.yml index 8e1da372986..0a192069f8d 100644 --- a/db/docs/packages_protection_rules.yml +++ b/db/docs/packages_protection_rules.yml @@ -8,8 +8,6 @@ description: Represents package protection rules for package registry. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124776 milestone: '16.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/packages_pypi_metadata.yml b/db/docs/packages_pypi_metadata.yml index 7e27cd9f2ea..6801af9cb73 100644 --- a/db/docs/packages_pypi_metadata.yml +++ b/db/docs/packages_pypi_metadata.yml @@ -8,8 +8,6 @@ description: PyPI package metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27632 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_rpm_metadata.yml b/db/docs/packages_rpm_metadata.yml index 13ef2b75d3f..8808fa11d74 100644 --- a/db/docs/packages_rpm_metadata.yml +++ b/db/docs/packages_rpm_metadata.yml @@ -8,8 +8,6 @@ description: Rpm package metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96019 milestone: '15.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/packages_rpm_repository_files.yml b/db/docs/packages_rpm_repository_files.yml index 05de3564e74..7ab91c4f66d 100644 --- a/db/docs/packages_rpm_repository_files.yml +++ b/db/docs/packages_rpm_repository_files.yml @@ -8,8 +8,6 @@ description: Package registry file links and file metadata for RPM packages introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/97484 milestone: '15.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/packages_rubygems_metadata.yml b/db/docs/packages_rubygems_metadata.yml index ebd8cecf3cc..88b0d3b011c 100644 --- a/db/docs/packages_rubygems_metadata.yml +++ b/db/docs/packages_rubygems_metadata.yml @@ -8,8 +8,6 @@ description: Ruby gems metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52639 milestone: '13.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/pages_deployment_states.yml b/db/docs/pages_deployment_states.yml index a5907e5710b..9f7d4e2ba76 100644 --- a/db/docs/pages_deployment_states.yml +++ b/db/docs/pages_deployment_states.yml @@ -8,8 +8,6 @@ description: Stores verification state for Geo replicated Pages deployments. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74905 milestone: '14.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/pages_deployments.yml b/db/docs/pages_deployments.yml index 2ba29fde209..b1577e58d13 100644 --- a/db/docs/pages_deployments.yml +++ b/db/docs/pages_deployments.yml @@ -8,8 +8,6 @@ description: Stores ZIP archives for GitLab Pages websites. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41785 milestone: '13.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/pages_domain_acme_orders.yml b/db/docs/pages_domain_acme_orders.yml index 6795b10f4f7..326f9b17d14 100644 --- a/db/docs/pages_domain_acme_orders.yml +++ b/db/docs/pages_domain_acme_orders.yml @@ -9,8 +9,6 @@ description: Stores ACME order information used in obtaining Let's Encrypt certi introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14014 milestone: '12.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/pages_domains.yml b/db/docs/pages_domains.yml index 791780f6ff4..ff403835e9a 100644 --- a/db/docs/pages_domains.yml +++ b/db/docs/pages_domains.yml @@ -8,8 +8,6 @@ description: Store Pages domain, certificate and encryption meta data. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173 milestone: '8.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_access_tokens.yml b/db/docs/project_access_tokens.yml index 71ed8e73992..a688949780e 100644 --- a/db/docs/project_access_tokens.yml +++ b/db/docs/project_access_tokens.yml @@ -7,8 +7,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33272 milestone: '13.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_alerting_settings.yml b/db/docs/project_alerting_settings.yml index f87c44cf350..5069da02efa 100644 --- a/db/docs/project_alerting_settings.yml +++ b/db/docs/project_alerting_settings.yml @@ -8,8 +8,6 @@ description: Persists project-level tokens for manual Prometheus installations introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9334 milestone: '11.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_aliases.yml b/db/docs/project_aliases.yml index 62574a4b496..f331c151599 100644 --- a/db/docs/project_aliases.yml +++ b/db/docs/project_aliases.yml @@ -8,8 +8,6 @@ description: Stores aliases of projects introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14108 milestone: '12.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_auto_devops.yml b/db/docs/project_auto_devops.yml index 068c6771662..123c5e2f71a 100644 --- a/db/docs/project_auto_devops.yml +++ b/db/docs/project_auto_devops.yml @@ -8,8 +8,6 @@ description: Auto DevOps settings for a project introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/6ed490401f49a8941dc7a9e3757ec4012f14ef0b milestone: '10.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_build_artifacts_size_refreshes.yml b/db/docs/project_build_artifacts_size_refreshes.yml index 9ed3c180939..82f61562bd6 100644 --- a/db/docs/project_build_artifacts_size_refreshes.yml +++ b/db/docs/project_build_artifacts_size_refreshes.yml @@ -8,8 +8,6 @@ description: Temporary table to accurately recompute artifacts size. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81306 milestone: '14.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_ci_feature_usages.yml b/db/docs/project_ci_feature_usages.yml index 87ad37d5165..f7b4bf0cf65 100644 --- a/db/docs/project_ci_feature_usages.yml +++ b/db/docs/project_ci_feature_usages.yml @@ -9,8 +9,6 @@ description: Project CI feature usage information used to access CI data from th introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68186 milestone: '14.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_compliance_framework_settings.yml b/db/docs/project_compliance_framework_settings.yml index c3d6218f85c..b2dbe790444 100644 --- a/db/docs/project_compliance_framework_settings.yml +++ b/db/docs/project_compliance_framework_settings.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28182 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_custom_attributes.yml b/db/docs/project_custom_attributes.yml index 7f3be893576..ef3c2cdf477 100644 --- a/db/docs/project_custom_attributes.yml +++ b/db/docs/project_custom_attributes.yml @@ -8,8 +8,6 @@ description: Stores custom attributes per project introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14593 milestone: '10.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_daily_statistics.yml b/db/docs/project_daily_statistics.yml index ad906fd43a5..8fdf6870f2f 100644 --- a/db/docs/project_daily_statistics.yml +++ b/db/docs/project_daily_statistics.yml @@ -8,8 +8,6 @@ description: Stores repository fetch statistics per day introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/23596 milestone: '11.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: medium diff --git a/db/docs/project_data_transfers.yml b/db/docs/project_data_transfers.yml index cf2a0169c59..4e9c5d75cca 100644 --- a/db/docs/project_data_transfers.yml +++ b/db/docs/project_data_transfers.yml @@ -8,8 +8,6 @@ description: Data transfer metrics per project introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107970 milestone: '15.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_deploy_tokens.yml b/db/docs/project_deploy_tokens.yml index 13456949cc7..65c2c691813 100644 --- a/db/docs/project_deploy_tokens.yml +++ b/db/docs/project_deploy_tokens.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/user/project/deploy_tokens/ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8315861c9a50675b4f4f4ca536f0da90f27994f3 milestone: '10.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_error_tracking_settings.yml b/db/docs/project_error_tracking_settings.yml index 929fd24bd16..4270243c8c7 100644 --- a/db/docs/project_error_tracking_settings.yml +++ b/db/docs/project_error_tracking_settings.yml @@ -8,8 +8,6 @@ description: Project settings related to Error Tracking introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24047 milestone: '11.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_export_jobs.yml b/db/docs/project_export_jobs.yml index 903b3d3bb40..8d63fc25888 100644 --- a/db/docs/project_export_jobs.yml +++ b/db/docs/project_export_jobs.yml @@ -8,8 +8,6 @@ description: Used to track and control project export status introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23664 milestone: '12.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_feature_usages.yml b/db/docs/project_feature_usages.yml index 888c24cc297..c658784e55e 100644 --- a/db/docs/project_feature_usages.yml +++ b/db/docs/project_feature_usages.yml @@ -8,8 +8,6 @@ description: Track Jira DVCS usage introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/21db9a55e200b23a5a47251e9df46fd548c74559 milestone: '11.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_incident_management_settings.yml b/db/docs/project_incident_management_settings.yml index adb3261e4d2..f01e9b53be0 100644 --- a/db/docs/project_incident_management_settings.yml +++ b/db/docs/project_incident_management_settings.yml @@ -8,8 +8,6 @@ description: Persists project settings for incident management introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9744 milestone: '11.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_metrics_settings.yml b/db/docs/project_metrics_settings.yml index 3c6920e7581..aa74d363a7a 100644 --- a/db/docs/project_metrics_settings.yml +++ b/db/docs/project_metrics_settings.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/bb13ae974c295718eb80c14a179b721ba192a089 milestone: '11.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_mirror_data.yml b/db/docs/project_mirror_data.yml index f3ad1a4eacf..026e0f7f836 100644 --- a/db/docs/project_mirror_data.yml +++ b/db/docs/project_mirror_data.yml @@ -9,8 +9,6 @@ description: Used to store and track the project import status when using the Im introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/0ca479d1ce0eadfcdc0e29d0e18136f5790d5b2f milestone: '9.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_relation_export_uploads.yml b/db/docs/project_relation_export_uploads.yml index cd3411da2e2..a184583a262 100644 --- a/db/docs/project_relation_export_uploads.yml +++ b/db/docs/project_relation_export_uploads.yml @@ -8,8 +8,6 @@ description: Used to store relation export files location introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90624 milestone: '15.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/project_relation_exports.yml b/db/docs/project_relation_exports.yml index cf3f3703d82..aa4277af68a 100644 --- a/db/docs/project_relation_exports.yml +++ b/db/docs/project_relation_exports.yml @@ -8,8 +8,6 @@ description: Used to track the generation of relation export files for projects introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90624 milestone: '15.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/project_repository_storage_moves.yml b/db/docs/project_repository_storage_moves.yml index c4ec9b31da0..848c335c642 100644 --- a/db/docs/project_repository_storage_moves.yml +++ b/db/docs/project_repository_storage_moves.yml @@ -8,8 +8,6 @@ description: Stores status of project repository moves introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29095 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_states.yml b/db/docs/project_states.yml index 911c57125a6..70b872bec9c 100644 --- a/db/docs/project_states.yml +++ b/db/docs/project_states.yml @@ -8,8 +8,6 @@ description: Separate table for project containing Geo verification metadata. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117909 milestone: '16.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/project_topics.yml b/db/docs/project_topics.yml index 9007709f185..6b04f409c73 100644 --- a/db/docs/project_topics.yml +++ b/db/docs/project_topics.yml @@ -8,8 +8,6 @@ description: Stores topics per project relationship introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67574 milestone: '14.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/projects_visits.yml b/db/docs/projects_visits.yml index 815482004aa..449500f3395 100644 --- a/db/docs/projects_visits.yml +++ b/db/docs/projects_visits.yml @@ -9,8 +9,6 @@ description: Tracks project visits so we can suggest projects that are recently introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123554 milestone: '16.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: entity_id: projects table_size: small diff --git a/db/docs/protected_branch_merge_access_levels.yml b/db/docs/protected_branch_merge_access_levels.yml index 16f8f7259aa..20f3e82dff6 100644 --- a/db/docs/protected_branch_merge_access_levels.yml +++ b/db/docs/protected_branch_merge_access_levels.yml @@ -8,8 +8,6 @@ description: Stores merge access settings for protected branches introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081 milestone: '8.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: protected_branch_project_id: references: projects diff --git a/db/docs/protected_branch_push_access_levels.yml b/db/docs/protected_branch_push_access_levels.yml index 2a146bcd5cc..f78880ca3f9 100644 --- a/db/docs/protected_branch_push_access_levels.yml +++ b/db/docs/protected_branch_push_access_levels.yml @@ -8,8 +8,6 @@ description: Stores push access settings for protected branches introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081 milestone: '8.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: protected_branch_project_id: references: projects diff --git a/db/docs/protected_branch_unprotect_access_levels.yml b/db/docs/protected_branch_unprotect_access_levels.yml index e1c14bee25b..4533301fc60 100644 --- a/db/docs/protected_branch_unprotect_access_levels.yml +++ b/db/docs/protected_branch_unprotect_access_levels.yml @@ -8,8 +8,6 @@ description: Stores access settings for protected branch unprotection introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/5103 milestone: '10.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: protected_branch_project_id: references: projects diff --git a/db/docs/protected_environment_approval_rules.yml b/db/docs/protected_environment_approval_rules.yml index 327f85ec2cc..160905e196e 100644 --- a/db/docs/protected_environment_approval_rules.yml +++ b/db/docs/protected_environment_approval_rules.yml @@ -10,8 +10,6 @@ description: A rule associated to a protected environment that allows a user, gr introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82800 milestone: '14.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: protected_environment_project_id: references: projects diff --git a/db/docs/protected_environment_deploy_access_levels.yml b/db/docs/protected_environment_deploy_access_levels.yml index 4921e695b18..e26c13fc00d 100644 --- a/db/docs/protected_environment_deploy_access_levels.yml +++ b/db/docs/protected_environment_deploy_access_levels.yml @@ -10,8 +10,6 @@ description: A rule associated to a protected environment that allows a user, gr introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6672 milestone: '11.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: protected_environment_project_id: references: projects diff --git a/db/docs/protected_environments.yml b/db/docs/protected_environments.yml index 381fde89565..0795d4d2d67 100644 --- a/db/docs/protected_environments.yml +++ b/db/docs/protected_environments.yml @@ -10,8 +10,6 @@ description: Project or group-level record associated to one or more environment introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6672 milestone: '11.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects group_id: namespaces diff --git a/db/docs/protected_tag_create_access_levels.yml b/db/docs/protected_tag_create_access_levels.yml index 8ea1e0a5b85..3a67ba51443 100644 --- a/db/docs/protected_tag_create_access_levels.yml +++ b/db/docs/protected_tag_create_access_levels.yml @@ -8,8 +8,6 @@ description: Stores create access settings for protected tags introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/07d7d8e65905a39164b63f55eccdcea8f10f5d14 milestone: '9.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/protected_tags.yml b/db/docs/protected_tags.yml index 218d97f0005..3821ff37853 100644 --- a/db/docs/protected_tags.yml +++ b/db/docs/protected_tags.yml @@ -8,8 +8,6 @@ description: Keeps a list of protected tags by project introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/10356 milestone: '9.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/raw_usage_data.yml b/db/docs/raw_usage_data.yml index 1fab783a76d..3b597001884 100644 --- a/db/docs/raw_usage_data.yml +++ b/db/docs/raw_usage_data.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38457 milestone: '13.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: organization_id: organizations table_size: small diff --git a/db/docs/related_epic_links.yml b/db/docs/related_epic_links.yml index 99078de1d91..871ddb3b23c 100644 --- a/db/docs/related_epic_links.yml +++ b/db/docs/related_epic_links.yml @@ -8,8 +8,6 @@ description: Information on the relationship between two epics introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80499 milestone: '14.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: group_id: references: namespaces diff --git a/db/docs/releases.yml b/db/docs/releases.yml index 249bc90f71b..cba84ada499 100644 --- a/db/docs/releases.yml +++ b/db/docs/releases.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/user/project/releases introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1c4d1c3bd69a6f9ec43cce4ab59de4ba47f73229 milestone: '8.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: medium diff --git a/db/docs/remote_development_agent_configs.yml b/db/docs/remote_development_agent_configs.yml index 7f55ed398ed..4b50ff50326 100644 --- a/db/docs/remote_development_agent_configs.yml +++ b/db/docs/remote_development_agent_configs.yml @@ -8,8 +8,6 @@ description: Remote Development Cluster Agent Configuration introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105783 milestone: '16.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/remote_development_namespace_cluster_agent_mappings.yml b/db/docs/remote_development_namespace_cluster_agent_mappings.yml index 275668a4d91..21a94c0092b 100644 --- a/db/docs/remote_development_namespace_cluster_agent_mappings.yml +++ b/db/docs/remote_development_namespace_cluster_agent_mappings.yml @@ -10,8 +10,6 @@ description: This table records associations between Namespaces and Cluster Agen introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/145101 milestone: '16.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/required_code_owners_sections.yml b/db/docs/required_code_owners_sections.yml index e043a2e598a..88ffd8b9c6a 100644 --- a/db/docs/required_code_owners_sections.yml +++ b/db/docs/required_code_owners_sections.yml @@ -8,8 +8,6 @@ description: Keeps required code owners sections introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43573 milestone: '13.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: protected_branch_project_id: references: projects diff --git a/db/docs/requirements.yml b/db/docs/requirements.yml index d34725f0f6f..20f80ac90a8 100644 --- a/db/docs/requirements.yml +++ b/db/docs/requirements.yml @@ -9,8 +9,6 @@ description: Information relating to Requirements as implemented by the Requirem introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26097 milestone: '12.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/resource_link_events.yml b/db/docs/resource_link_events.yml index 06591413e5d..23308620779 100644 --- a/db/docs/resource_link_events.yml +++ b/db/docs/resource_link_events.yml @@ -8,8 +8,6 @@ description: Records the change of parent link on work items along with timestam introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114394 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/resource_weight_events.yml b/db/docs/resource_weight_events.yml index 81c3f6c880a..2bd54a9f303 100644 --- a/db/docs/resource_weight_events.yml +++ b/db/docs/resource_weight_events.yml @@ -8,8 +8,6 @@ description: Records the change of weight on issues along with timestamps introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21515 milestone: '12.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/reviews.yml b/db/docs/reviews.yml index c469c521823..4ed9c58c3bc 100644 --- a/db/docs/reviews.yml +++ b/db/docs/reviews.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8442 milestone: '11.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/saml_group_links.yml b/db/docs/saml_group_links.yml index 493cd7320e6..7618bd2d811 100644 --- a/db/docs/saml_group_links.yml +++ b/db/docs/saml_group_links.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45061 milestone: '13.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/scan_result_policy_violations.yml b/db/docs/scan_result_policy_violations.yml index 5a24aa3878d..ea1a1aa9700 100644 --- a/db/docs/scan_result_policy_violations.yml +++ b/db/docs/scan_result_policy_violations.yml @@ -8,8 +8,6 @@ description: Stores scan result policy violations. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132254 milestone: '16.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/security_orchestration_policy_rule_schedules.yml b/db/docs/security_orchestration_policy_rule_schedules.yml index d8c9ec813e6..3d4f7af55ab 100644 --- a/db/docs/security_orchestration_policy_rule_schedules.yml +++ b/db/docs/security_orchestration_policy_rule_schedules.yml @@ -8,8 +8,6 @@ description: Security policies scheduled to run based on cadence defined in the introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59842 milestone: '13.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/security_trainings.yml b/db/docs/security_trainings.yml index 899e7e12ddf..5c424c483cc 100644 --- a/db/docs/security_trainings.yml +++ b/db/docs/security_trainings.yml @@ -9,8 +9,6 @@ description: Stores information about the primary security training provider for introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78195 milestone: '14.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/sentry_issues.yml b/db/docs/sentry_issues.yml index edd8bea4873..0f11ca4aa47 100644 --- a/db/docs/sentry_issues.yml +++ b/db/docs/sentry_issues.yml @@ -8,8 +8,6 @@ description: Persists issue data for the Error Tracking's Sentry backend introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20629 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/service_desk_custom_email_credentials.yml b/db/docs/service_desk_custom_email_credentials.yml index ad738f11818..30f43341736 100644 --- a/db/docs/service_desk_custom_email_credentials.yml +++ b/db/docs/service_desk_custom_email_credentials.yml @@ -8,8 +8,6 @@ description: Holds all the credentials for custom email addresses for Service De introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114917 milestone: '15.11' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/service_desk_custom_email_verifications.yml b/db/docs/service_desk_custom_email_verifications.yml index 0e888434c11..dfcab8da882 100644 --- a/db/docs/service_desk_custom_email_verifications.yml +++ b/db/docs/service_desk_custom_email_verifications.yml @@ -9,8 +9,6 @@ description: Holds the verification state and additional information for custom introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112938 milestone: '15.10' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/service_desk_settings.yml b/db/docs/service_desk_settings.yml index 6028c1ccd29..90e6e4b2953 100644 --- a/db/docs/service_desk_settings.yml +++ b/db/docs/service_desk_settings.yml @@ -8,8 +8,6 @@ description: Settings related to Service Desk such as templates to use for email introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19515 milestone: '12.6' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/software_license_policies.yml b/db/docs/software_license_policies.yml index 36fc7997aed..509616a5fc0 100644 --- a/db/docs/software_license_policies.yml +++ b/db/docs/software_license_policies.yml @@ -9,8 +9,6 @@ description: Allows user to approve or deny the use certain software licenses in introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6246 milestone: '11.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/sprints.yml b/db/docs/sprints.yml index 358696839a0..f46f6304ccb 100644 --- a/db/docs/sprints.yml +++ b/db/docs/sprints.yml @@ -9,8 +9,6 @@ description: Also called iterations, timeboxes to which issues can be assigned. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30125 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: group_id: namespaces table_size: small diff --git a/db/docs/ssh_signatures.yml b/db/docs/ssh_signatures.yml index 83ff6022088..4d1a5fac4f5 100644 --- a/db/docs/ssh_signatures.yml +++ b/db/docs/ssh_signatures.yml @@ -9,8 +9,6 @@ description: The verification status for commits which are signed by SSH keys. T introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87962 milestone: '15.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/status_check_responses.yml b/db/docs/status_check_responses.yml index 2e51d10e91f..7b38b835179 100644 --- a/db/docs/status_check_responses.yml +++ b/db/docs/status_check_responses.yml @@ -8,8 +8,6 @@ description: TODO introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61135 milestone: '13.12' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/status_page_published_incidents.yml b/db/docs/status_page_published_incidents.yml index b0707eab92c..3e8b40075a3 100644 --- a/db/docs/status_page_published_incidents.yml +++ b/db/docs/status_page_published_incidents.yml @@ -8,8 +8,6 @@ description: Corresponds to an issue which has been published to the Status Page introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29994 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/status_page_settings.yml b/db/docs/status_page_settings.yml index 5fbd0392394..8d6913a0cd2 100644 --- a/db/docs/status_page_settings.yml +++ b/db/docs/status_page_settings.yml @@ -8,8 +8,6 @@ description: Project settings related to Status Page introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25863 milestone: '12.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/subscription_seat_assignments.yml b/db/docs/subscription_seat_assignments.yml index e36fc2ffe3a..90a19839825 100644 --- a/db/docs/subscription_seat_assignments.yml +++ b/db/docs/subscription_seat_assignments.yml @@ -8,7 +8,5 @@ feature_categories: classes: - GitlabSubscriptions::SeatAssignment gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces diff --git a/db/docs/target_branch_rules.yml b/db/docs/target_branch_rules.yml index 66b73dfc324..77779a4a04e 100644 --- a/db/docs/target_branch_rules.yml +++ b/db/docs/target_branch_rules.yml @@ -8,8 +8,6 @@ description: Represents a target branch rule introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126877 milestone: '16.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/terraform_state_versions.yml b/db/docs/terraform_state_versions.yml index 6f9ab617361..15603647896 100644 --- a/db/docs/terraform_state_versions.yml +++ b/db/docs/terraform_state_versions.yml @@ -9,8 +9,6 @@ description: Represents a Terraform state file at a point in time, with a corres introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35211 milestone: '13.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/terraform_states.yml b/db/docs/terraform_states.yml index 129165a046d..c8ba5d6c745 100644 --- a/db/docs/terraform_states.yml +++ b/db/docs/terraform_states.yml @@ -8,8 +8,6 @@ description: Represents a Terraform state backend introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26619 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/timelog_categories.yml b/db/docs/timelog_categories.yml index 634050d624c..b739211e1a6 100644 --- a/db/docs/timelog_categories.yml +++ b/db/docs/timelog_categories.yml @@ -8,8 +8,6 @@ description: Categories that can be associated to a timelog to categorize them introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87529 milestone: '15.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/todos.yml b/db/docs/todos.yml index 4f216bf8774..c0701985d43 100644 --- a/db/docs/todos.yml +++ b/db/docs/todos.yml @@ -9,8 +9,6 @@ description: An action required or notification of action taken for a user on a introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3d52e139b13ad077286f2f9f46b7e98f43ad9564 milestone: '8.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects group_id: namespaces diff --git a/db/docs/trending_projects.yml b/db/docs/trending_projects.yml index b6bde6cbadf..2e8a193f247 100644 --- a/db/docs/trending_projects.yml +++ b/db/docs/trending_projects.yml @@ -8,8 +8,6 @@ description: Stores the list of trending projects introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/6749 milestone: '8.13' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/user_achievements.yml b/db/docs/user_achievements.yml index 37b51e7a144..4e42f6153c1 100644 --- a/db/docs/user_achievements.yml +++ b/db/docs/user_achievements.yml @@ -8,8 +8,6 @@ description: Achievements awarded to and revoked from users introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107027 milestone: '15.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/user_namespace_callouts.yml b/db/docs/user_namespace_callouts.yml index 85952de6048..536fc1ae70d 100644 --- a/db/docs/user_namespace_callouts.yml +++ b/db/docs/user_namespace_callouts.yml @@ -8,8 +8,6 @@ description: Contains records of which users have dismissed a callout, grouped b introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91092 milestone: '15.2' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/user_project_callouts.yml b/db/docs/user_project_callouts.yml index 79a571d47df..ba3147bab1a 100644 --- a/db/docs/user_project_callouts.yml +++ b/db/docs/user_project_callouts.yml @@ -8,8 +8,6 @@ description: Adds the ability to track a user callout being dismissed by project introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94144 milestone: '15.3' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/users_ops_dashboard_projects.yml b/db/docs/users_ops_dashboard_projects.yml index 51608a8deea..890e71462f2 100644 --- a/db/docs/users_ops_dashboard_projects.yml +++ b/db/docs/users_ops_dashboard_projects.yml @@ -8,8 +8,6 @@ description: https://docs.gitlab.com/ee/user/operations_dashboard/ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7341 milestone: '11.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/users_security_dashboard_projects.yml b/db/docs/users_security_dashboard_projects.yml index 90a5403034f..c9b9f062654 100644 --- a/db/docs/users_security_dashboard_projects.yml +++ b/db/docs/users_security_dashboard_projects.yml @@ -8,8 +8,6 @@ description: Stores projects which users select to appear in their Security Dash introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18708 milestone: '12.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/users_star_projects.yml b/db/docs/users_star_projects.yml index 69a5d8fa359..46bcb86cfa4 100644 --- a/db/docs/users_star_projects.yml +++ b/db/docs/users_star_projects.yml @@ -8,8 +8,6 @@ description: Stores conection between users and project through staring action introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/714f7201d3362793d11f33793e5ef6dc83bdd2f0 milestone: '7.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/value_stream_dashboard_aggregations.yml b/db/docs/value_stream_dashboard_aggregations.yml index 2c9a05e203f..50f7f5af15d 100644 --- a/db/docs/value_stream_dashboard_aggregations.yml +++ b/db/docs/value_stream_dashboard_aggregations.yml @@ -9,8 +9,6 @@ description: Stores the top-level namespaces which are opted-in to the value str introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118908 milestone: '16.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/value_stream_dashboard_counts.yml b/db/docs/value_stream_dashboard_counts.yml index 447b1761c56..f2bdc396f1f 100644 --- a/db/docs/value_stream_dashboard_counts.yml +++ b/db/docs/value_stream_dashboard_counts.yml @@ -9,8 +9,6 @@ description: Collects counts for various objects in GitLab for the Value Stream introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118220 milestone: '16.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: namespace_id: namespaces table_size: small diff --git a/db/docs/wiki_page_meta.yml b/db/docs/wiki_page_meta.yml index d0c1f339894..39e16e0062f 100644 --- a/db/docs/wiki_page_meta.yml +++ b/db/docs/wiki_page_meta.yml @@ -8,8 +8,6 @@ description: Used to record the metadata for wiki pages when we create events. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26529 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects namespace_id: namespaces diff --git a/db/docs/wiki_page_slugs.yml b/db/docs/wiki_page_slugs.yml index dad984f55bb..377b5120188 100644 --- a/db/docs/wiki_page_slugs.yml +++ b/db/docs/wiki_page_slugs.yml @@ -8,8 +8,6 @@ description: Stores wiki page slug metadata for when we create events. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26529 milestone: '13.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/wiki_repository_states.yml b/db/docs/wiki_repository_states.yml index 134f93e9b42..539386db802 100644 --- a/db/docs/wiki_repository_states.yml +++ b/db/docs/wiki_repository_states.yml @@ -8,8 +8,6 @@ description: Separate table for project wikis containing Geo verification metada introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109033 milestone: '15.9' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/work_item_parent_links.yml b/db/docs/work_item_parent_links.yml index 83caafe8573..6876d1a21e3 100644 --- a/db/docs/work_item_parent_links.yml +++ b/db/docs/work_item_parent_links.yml @@ -8,8 +8,6 @@ description: Persists link between work item and its parent. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87283 milestone: '15.1' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/work_item_progresses.yml b/db/docs/work_item_progresses.yml index d85bf829c97..4e2ac23e472 100644 --- a/db/docs/work_item_progresses.yml +++ b/db/docs/work_item_progresses.yml @@ -8,8 +8,6 @@ description: The progress of a Work Item. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/104591/ milestone: '15.7' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: namespace_id: references: namespaces diff --git a/db/docs/workspace_variables.yml b/db/docs/workspace_variables.yml index 30d06f89827..ff273a407e3 100644 --- a/db/docs/workspace_variables.yml +++ b/db/docs/workspace_variables.yml @@ -8,8 +8,6 @@ description: Remote Development Workspace variables introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129688 milestone: '16.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide desired_sharding_key: project_id: references: projects diff --git a/db/docs/workspaces.yml b/db/docs/workspaces.yml index 7830c988a12..bf7406fb309 100644 --- a/db/docs/workspaces.yml +++ b/db/docs/workspaces.yml @@ -8,8 +8,6 @@ description: Remote Development Workspaces introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105783 milestone: '16.0' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/workspaces_agent_config_versions.yml b/db/docs/workspaces_agent_config_versions.yml index a9702ba760c..f9a43f046b1 100644 --- a/db/docs/workspaces_agent_config_versions.yml +++ b/db/docs/workspaces_agent_config_versions.yml @@ -8,7 +8,5 @@ description: Worksapces Cluster Agent Configuration Version introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163572 milestone: '17.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects diff --git a/db/docs/workspaces_agent_configs.yml b/db/docs/workspaces_agent_configs.yml index 107f15554a2..0ad2fa35570 100644 --- a/db/docs/workspaces_agent_configs.yml +++ b/db/docs/workspaces_agent_configs.yml @@ -10,8 +10,6 @@ description: Workspaces Cluster Agent Configs introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163846 milestone: '17.4' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/x509_commit_signatures.yml b/db/docs/x509_commit_signatures.yml index c213275f514..f0aa4ed12ce 100644 --- a/db/docs/x509_commit_signatures.yml +++ b/db/docs/x509_commit_signatures.yml @@ -8,8 +8,6 @@ description: Stores X.509 verification status of the commit introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17773 milestone: '12.8' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/docs/zoom_meetings.yml b/db/docs/zoom_meetings.yml index 16ad2251047..6b48723d583 100644 --- a/db/docs/zoom_meetings.yml +++ b/db/docs/zoom_meetings.yml @@ -8,8 +8,6 @@ description: Persists Zoom meetings, its associations and its metadata introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17890 milestone: '12.5' gitlab_schema: gitlab_main_cell -allow_cross_foreign_keys: -- gitlab_main_clusterwide sharding_key: project_id: projects table_size: small diff --git a/db/post_migrate/20241103232325_finalize_backfill_dast_site_validations_project_id.rb b/db/post_migrate/20241103232325_finalize_backfill_dast_site_validations_project_id.rb new file mode 100644 index 00000000000..b1e240387d8 --- /dev/null +++ b/db/post_migrate/20241103232325_finalize_backfill_dast_site_validations_project_id.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class FinalizeBackfillDastSiteValidationsProjectId < Gitlab::Database::Migration[2.2] + milestone '17.6' + + disable_ddl_transaction! + + restrict_gitlab_migration gitlab_schema: :gitlab_main_cell + + def up + ensure_batched_background_migration_is_finished( + job_class_name: 'BackfillDastSiteValidationsProjectId', + table_name: :dast_site_validations, + column_name: :id, + job_arguments: [:project_id, :dast_site_tokens, :project_id, :dast_site_token_id], + finalize: true + ) + end + + def down; end +end diff --git a/db/post_migrate/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies.rb b/db/post_migrate/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies.rb new file mode 100644 index 00000000000..43f9bcf33c0 --- /dev/null +++ b/db/post_migrate/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class QueueBackfillSoftwareLicenseSpdxIdentifierForSoftwareLicensePolicies < Gitlab::Database::Migration[2.2] + milestone '17.7' + + restrict_gitlab_migration gitlab_schema: :gitlab_main + + MIGRATION = "BackfillSoftwareLicenseSpdxIdentifierForSoftwareLicensePolicies" + DELAY_INTERVAL = 2.minutes + BATCH_SIZE = 1000 + SUB_BATCH_SIZE = 100 + + def up + queue_batched_background_migration( + MIGRATION, + :software_license_policies, + :id, + job_interval: DELAY_INTERVAL, + batch_size: BATCH_SIZE, + sub_batch_size: SUB_BATCH_SIZE + ) + end + + def down + delete_batched_background_migration(MIGRATION, :software_license_policies, :id, []) + end +end diff --git a/db/schema_migrations/20241103232325 b/db/schema_migrations/20241103232325 new file mode 100644 index 00000000000..7efaaa769b1 --- /dev/null +++ b/db/schema_migrations/20241103232325 @@ -0,0 +1 @@ +92287195bd4afd9c6883d9d153869d77d05c2f6e55880a3164d1b86743529334 \ No newline at end of file diff --git a/db/schema_migrations/20241115211552 b/db/schema_migrations/20241115211552 new file mode 100644 index 00000000000..1196ebc2cf7 --- /dev/null +++ b/db/schema_migrations/20241115211552 @@ -0,0 +1 @@ +25f76c47374e41f8714e22fc520d3a8cf2f4c31af59b5ab317d0154543fe6c51 \ No newline at end of file diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index c373b8cfa3c..561d4fe691f 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -595,7 +595,7 @@ four standard [pagination arguments](#pagination-arguments): | `markedForDeletionOn` | [`Date`](#date) | Date when the group was marked for deletion. | | `search` | [`String`](#string) | Search query for group name or group full path. | | `sort` | [`String`](#string) | Sort order of results. Format: `_`, for example: `id_desc` or `name_asc`. | -| `topLevelOnly` | [`Boolean`](#boolean) | Only include top level groups. | +| `topLevelOnly` | [`Boolean`](#boolean) | Only include top-level groups. | ### `Query.instanceExternalAuditEventDestinations` @@ -29896,7 +29896,7 @@ four standard [pagination arguments](#pagination-arguments): | `markedForDeletionOn` | [`Date`](#date) | Date when the group was marked for deletion. | | `search` | [`String`](#string) | Search query for group name or group full path. | | `sort` | [`String`](#string) | Sort order of results. Format: `_`, for example: `id_desc` or `name_asc`. | -| `topLevelOnly` | [`Boolean`](#boolean) | Only include top level groups. | +| `topLevelOnly` | [`Boolean`](#boolean) | Only include top-level groups. | ##### `Organization.projects` diff --git a/doc/api/group_enterprise_users.md b/doc/api/group_enterprise_users.md new file mode 100644 index 00000000000..91877eecae9 --- /dev/null +++ b/doc/api/group_enterprise_users.md @@ -0,0 +1,112 @@ +--- +stage: Software Supply Chain Security +group: Authentication +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments +--- + +# Group enterprise users API + +DETAILS: +**Tier:** Premium, Ultimate +**Offering:** GitLab.com + +Interact with [enterprise users](../user/enterprise_user/index.md) using the REST API. + +These API endpoints only work for top-level groups. Users do not have to be a member of the group. + +Prerequisites: + +- You must have the Owner role in the group. + +## List enterprise users + +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/438366) in GitLab 17.7. + +Gets a list of enterprise users for a given top-level group. + +Takes [pagination parameters](rest/index.md#offset-based-pagination) `page` and `per_page` to restrict the list of enterprise users. + +```plaintext +GET /groups/:id/enterprise_users +``` + +Parameters: + +| Attribute | Type | Required | Description | +|:-----------------|:---------------|:---------|:------------| +| `id` | integer/string | yes | ID or [URL-encoded path](rest/index.md#namespaced-paths) of a top-level group. | +| `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. | +| `blocked` | boolean | no | Return only blocked users. | +| `created_after` | datetime | no | Return users created after the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). | +| `created_before` | datetime | no | Return users created before the specified time. Format: ISO 8601 (`YYYY-MM-DDTHH:MM:SSZ`). | +| `two_factor` | string | no | Filter users by two-factor authentication (2FA). Filter values are `enabled` or `disabled`. By default it returns all users. | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/groups/:id/enterprise_users" +``` + +Example response: + +```json +[ + { + "id": 66, + "username": "user22", + "name": "Sidney Jones22", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/xxx?s=80&d=identicon", + "web_url": "http://my.gitlab.com/user22", + "created_at": "2021-09-10T12:48:22.381Z", + "bio": "", + "location": null, + "public_email": "", + "skype": "", + "linkedin": "", + "twitter": "", + "website_url": "", + "organization": null, + "job_title": "", + "pronouns": null, + "bot": false, + "work_information": null, + "followers": 0, + "following": 0, + "local_time": null, + "last_sign_in_at": null, + "confirmed_at": "2021-09-10T12:48:22.330Z", + "last_activity_on": null, + "email": "user22@example.org", + "theme_id": 1, + "color_scheme_id": 1, + "projects_limit": 100000, + "current_sign_in_at": null, + "identities": [ + { + "provider": "group_saml", + "extern_uid": "2435223452345", + "saml_provider_id": 1 + } + ], + "can_create_group": true, + "can_create_project": true, + "two_factor_enabled": false, + "external": false, + "private_profile": false, + "commit_email": "user22@example.org", + "shared_runners_minutes_limit": null, + "extra_shared_runners_minutes_limit": null, + "scim_identities": [ + { + "extern_uid": "2435223452345", + "group_id": 1, + "active": true + } + ] + }, + ... +] +``` diff --git a/doc/api/openapi/openapi_v2.yaml b/doc/api/openapi/openapi_v2.yaml index b56b020c193..b94a91715da 100644 --- a/doc/api/openapi/openapi_v2.yaml +++ b/doc/api/openapi/openapi_v2.yaml @@ -22,8 +22,6 @@ tags: description: Operations about groups - name: runners description: Operations about runners -- name: web_commits - description: Operations about web commits - name: group_avatar description: Operations about group_avatars - name: invitations @@ -34,6 +32,8 @@ tags: description: Operations about group_access_tokens - name: wikis description: Operations about wikis +- name: alert_management + description: Operations about alert_managements - name: branches description: Operations about branches - name: secure_files @@ -58,8 +58,6 @@ tags: description: Operations about project_access_tokens - name: tags description: Operations about tags -- name: alert_management - description: Operations about alert_managements - name: batched_background_migrations description: Operations about batched_background_migrations - name: admin @@ -88,6 +86,8 @@ tags: description: Operations about markdowns - name: namespaces description: Operations about namespaces +- name: organizations + description: Operations about organizations - name: personal_access_tokens description: Operations about personal_access_tokens - name: project_repository_storage_moves @@ -114,6 +114,8 @@ tags: description: Operations about slacks - name: topics description: Operations about topics +- name: web_commits + description: Operations about web_commits - name: access_requests description: Operations related to access requests - name: ci_lint @@ -729,7 +731,7 @@ paths: required: false - in: query name: top_level_only - description: Only include top level groups + description: Only include top-level groups type: boolean required: false - in: query @@ -737,6 +739,12 @@ paths: description: Filter by repository storage used by the group type: string required: false + - in: query + name: marked_for_deletion_on + description: Date when the group was marked for deletion + type: string + format: date + required: false - in: query name: page description: Current page number @@ -862,6 +870,173 @@ paths: tags: - groups operationId: deleteApiV4GroupsId + "/api/v4/groups/{id}/groups/shared": + get: + description: Get a list of shared groups this group was invited to + produces: + - application/json + parameters: + - in: path + name: id + description: The ID of a group + type: string + required: true + - in: query + name: skip_groups + description: Array of group ids to exclude from list + type: array + items: + type: integer + format: int32 + required: false + - in: query + name: visibility + description: Limit by visibility + type: string + enum: + - private + - internal + - public + required: false + - in: query + name: search + description: Search for a specific group + type: string + required: false + - in: query + name: min_access_level + description: Minimum access level of authenticated user + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + required: false + - in: query + name: order_by + description: Order by name, path, id or similarity if searching + type: string + default: name + enum: + - name + - path + - id + - similarity + required: false + - in: query + name: sort + description: Sort by asc (ascending) or desc (descending) + type: string + default: asc + enum: + - asc + - desc + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: with_custom_attributes + description: Include custom attributes in the response + type: boolean + default: false + required: false + responses: + '200': + description: Get a list of shared groups this group was invited to + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Group" + tags: + - groups + operationId: getApiV4GroupsIdGroupsShared + "/api/v4/groups/{id}/invited_groups": + get: + description: Get a list of invited groups in this group + produces: + - application/json + parameters: + - in: path + name: id + description: The ID of a group + type: string + required: true + - in: query + name: relation + description: Include group relations + type: array + items: + type: string + enum: + - direct + - inherited + required: false + - in: query + name: search + description: Search for a specific group + type: string + required: false + - in: query + name: min_access_level + description: Minimum access level of authenticated user + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: with_custom_attributes + description: Include custom attributes in the response + type: boolean + default: false + required: false + responses: + '200': + description: Get a list of invited groups in this group + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Group" + tags: + - groups + operationId: getApiV4GroupsIdInvitedGroups "/api/v4/groups/{id}/projects": get: description: Get a list of projects in this group. @@ -1219,7 +1394,7 @@ paths: required: false - in: query name: top_level_only - description: Only include top level groups + description: Only include top-level groups type: boolean required: false - in: query @@ -1227,6 +1402,12 @@ paths: description: Filter by repository storage used by the group type: string required: false + - in: query + name: marked_for_deletion_on + description: Date when the group was marked for deletion + type: string + format: date + required: false - in: query name: page description: Current page number @@ -1343,7 +1524,7 @@ paths: required: false - in: query name: top_level_only - description: Only include top level groups + description: Only include top-level groups type: boolean required: false - in: query @@ -1351,6 +1532,12 @@ paths: description: Filter by repository storage used by the group type: string required: false + - in: query + name: marked_for_deletion_on + description: Date when the group was marked for deletion + type: string + format: date + required: false - in: query name: page description: Current page number @@ -1456,7 +1643,7 @@ paths: "/api/v4/groups/{id}/transfer": post: description: Transfer a group to a new parent group or promote a subgroup to - a root group + a top-level group produces: - application/json consumes: @@ -1475,7 +1662,7 @@ paths: responses: '201': description: Transfer a group to a new parent group or promote a subgroup - to a root group + to a top-level group tags: - groups operationId: postApiV4GroupsIdTransfer @@ -1527,6 +1714,47 @@ paths: tags: - groups operationId: deleteApiV4GroupsIdShareGroupId + "/api/v4/groups/{id}/tokens/revoke": + post: + summary: Revoke a single token + description: | + Revoke a token, if it has access to the group or any of its subgroups + and projects. If the token is revoked, or was already revoked, its + details are returned in the response. + + The following criteria must be met: + + - The group must be a top-level group. + - You must have Owner permission in the group. + - The token type is one of: + - Personal access token + - Group access token + - Project access token + - Group deploy token + - User feed token + + This feature is gated by the :group_agnostic_token_revocation feature flag. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID of a top-level group + type: string + required: true + - name: postApiV4GroupsIdTokensRevoke + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4GroupsIdTokensRevoke" + responses: + '201': + description: Revoke a single token + tags: + - groups + operationId: postApiV4GroupsIdTokensRevoke "/api/v4/groups/{id}/ldap_sync": post: description: Sync a group with LDAP. @@ -1546,6 +1774,82 @@ paths: tags: - groups operationId: postApiV4GroupsIdLdapSync + "/api/v4/groups/{id}/audit_events": + get: + description: Get a list of audit events in this group. + produces: + - application/json + parameters: + - in: query + name: created_after + description: Return audit events created after the specified time + type: string + format: date-time + required: false + example: '2016-01-19T09:05:50.355Z' + - in: query + name: created_before + description: Return audit events created before the specified time + type: string + format: date-time + required: false + example: '2016-01-19T09:05:50.355Z' + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get a list of audit events in this group. + schema: + type: array + items: + "$ref": "#/definitions/EE_API_Entities_AuditEvent" + tags: + - groups + operationId: getApiV4GroupsIdAuditEvents + "/api/v4/groups/{id}/audit_events/{audit_event_id}": + get: + description: Get a specific audit event in this group. + produces: + - application/json + parameters: + - in: path + name: audit_event_id + description: The ID of the audit event + type: integer + format: int32 + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get a specific audit event in this group. + schema: + "$ref": "#/definitions/EE_API_Entities_AuditEvent" + tags: + - groups + operationId: getApiV4GroupsIdAuditEventsAuditEventId "/api/v4/groups/{id}/restore": post: description: Restore a group. @@ -1917,6 +2221,441 @@ paths: - runners - groups operationId: postApiV4GroupsIdRunnersResetRegistrationToken + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/Release.gpg": + get: + summary: The Release file signature + description: This feature was introduced in GitLab 13.5 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + responses: + '200': + description: The Release file signature + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionReleaseGpg + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/Release": + get: + summary: The unsigned Release file + description: This feature was introduced in GitLab 13.5 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + responses: + '200': + description: The unsigned Release file + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionRelease + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/InRelease": + get: + summary: The signed Release file + description: This feature was introduced in GitLab 13.5 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + responses: + '200': + description: The signed Release file + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionInrelease + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/Packages": + get: + summary: The installer (udeb) binary files index + description: This feature was introduced in GitLab 15.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + - in: path + name: component + description: The Debian Component + type: string + required: true + example: main + - in: path + name: architecture + description: The Debian Architecture + type: string + required: true + example: binary-amd64 + responses: + '200': + description: The installer (udeb) binary files index + '202': + description: The installer (udeb) binary files index + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitecturePackages + ? "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/by-hash/SHA256/{file_sha256}" + : get: + summary: The installer (udeb) binary files index by hash + description: This feature was introduced in GitLab 15.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + - in: path + name: component + description: The Debian Component + type: string + required: true + example: main + - in: path + name: architecture + description: The Debian Architecture + type: string + required: true + example: binary-amd64 + - in: path + name: file_sha256 + type: integer + format: int32 + required: true + responses: + '200': + description: The installer (udeb) binary files index by hash + '202': + description: The installer (udeb) binary files index by hash + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitectureByHashSha256FileSha256 + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/source/Sources": + get: + summary: The source files index + description: This feature was introduced in GitLab 15.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + - in: path + name: component + description: The Debian Component + type: string + required: true + example: main + responses: + '200': + description: The source files index + '202': + description: The source files index + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentSourceSources + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/source/by-hash/SHA256/{file_sha256}": + get: + summary: The source files index by hash + description: This feature was introduced in GitLab 15.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + - in: path + name: component + description: The Debian Component + type: string + required: true + example: main + - in: path + name: file_sha256 + type: integer + format: int32 + required: true + responses: + '200': + description: The source files index by hash + '202': + description: The source files index by hash + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentSourceByHashSha256FileSha256 + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/binary-{architecture}/Packages": + get: + summary: The binary files index + description: This feature was introduced in GitLab 13.5 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + - in: path + name: component + description: The Debian Component + type: string + required: true + example: main + - in: path + name: architecture + description: The Debian Architecture + type: string + required: true + example: binary-amd64 + responses: + '200': + description: The binary files index + '202': + description: The binary files index + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentBinaryArchitecturePackages + "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/binary-{architecture}/by-hash/SHA256/{file_sha256}": + get: + summary: The binary files index by hash + description: This feature was introduced in GitLab 15.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: query + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + - in: path + name: component + description: The Debian Component + type: string + required: true + example: main + - in: path + name: architecture + description: The Debian Architecture + type: string + required: true + example: binary-amd64 + - in: path + name: file_sha256 + type: integer + format: int32 + required: true + responses: + '200': + description: The binary files index by hash + '202': + description: The binary files index by hash + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentBinaryArchitectureByHashSha256FileSha256 + "/api/v4/groups/{id}/-/packages/debian/pool/{distribution}/{project_id}/{letter}/{package_name}/{package_version}/{file_name}": + get: + summary: Download Debian package + description: This feature was introduced in GitLab 14.2 + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID or full group path. + type: string + required: true + - in: path + name: project_id + description: The Project Id + type: integer + format: int32 + required: true + - in: path + name: distribution + description: The Debian Codename or Suite + type: string + required: true + example: my-distro + - in: path + name: letter + description: The Debian Classification (first-letter or lib-first-letter) + type: string + required: true + example: a + - in: path + name: package_name + description: The Debian Source Package Name + type: string + required: true + example: my-pkg + - in: path + name: package_version + description: The Debian Source Package Version + type: string + required: true + example: 1.0.0 + - in: path + name: file_name + description: The Debian File Name + type: string + required: true + example: example_1.0.0~alpha2_amd64.deb + responses: + '200': + description: Download Debian package + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_packages + operationId: getApiV4GroupsIdPackagesDebianPoolDistributionProjectIdLetterPackageNamePackageVersionFileName "/api/v4/groups/{id}/dependency_proxy/cache": delete: summary: Purge the dependency proxy for a group @@ -2327,6 +3066,331 @@ paths: tags: - container_registry operationId: getApiV4GroupsIdRegistryRepositories + "/api/v4/groups/{id}/-/debian_distributions": + post: + summary: Create a Debian Distribution + description: This feature was introduced in 14.0 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group + type: string + required: true + - name: postApiV4GroupsIdDebianDistributions + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4GroupsIdDebianDistributions" + responses: + '201': + description: Create a Debian Distribution + schema: + "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_distribution + operationId: postApiV4GroupsIdDebianDistributions + get: + summary: Get a list of Debian Distributions + description: This feature was introduced in 14.0 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: codename + description: The Debian Codename + type: string + required: false + example: sid + - in: query + name: suite + description: The Debian Suite + type: string + required: false + example: unstable + - in: query + name: origin + description: The Debian Origin + type: string + required: false + example: Grep + - in: query + name: label + description: The Debian Label + type: string + required: false + example: grep.be + - in: query + name: version + description: The Debian Version + type: string + required: false + example: '12' + - in: query + name: description + description: The Debian Description + type: string + required: false + example: My description + - in: query + name: valid_time_duration_seconds + description: The duration before the Release file should be considered expired + by the client + type: integer + format: int32 + required: false + example: 604800 + - in: query + name: components + description: The list of Components + type: array + items: + type: string + required: false + example: main + - in: query + name: architectures + description: The list of Architectures + type: array + items: + type: string + required: false + example: amd64 + responses: + '200': + description: Get a list of Debian Distributions + schema: + "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_distribution + operationId: getApiV4GroupsIdDebianDistributions + "/api/v4/groups/{id}/-/debian_distributions/{codename}": + get: + summary: Get a Debian Distribution + description: This feature was introduced in 14.0 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group + type: string + required: true + - in: path + name: codename + description: The Debian Codename + type: string + required: true + example: sid + responses: + '200': + description: Get a Debian Distribution + schema: + "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_distribution + operationId: getApiV4GroupsIdDebianDistributionsCodename + put: + summary: Update a Debian Distribution + description: This feature was introduced in 14.0 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group + type: string + required: true + - in: path + name: codename + description: The Debian Codename + type: string + required: true + example: sid + - name: putApiV4GroupsIdDebianDistributionsCodename + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4GroupsIdDebianDistributionsCodename" + responses: + '200': + description: Update a Debian Distribution + schema: + "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_distribution + operationId: putApiV4GroupsIdDebianDistributionsCodename + delete: + summary: Delete a Debian Distribution + description: This feature was introduced in 14.0 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group + type: string + required: true + - in: path + name: codename + description: The Debian Codename + type: string + required: true + example: sid + - in: query + name: suite + description: The Debian Suite + type: string + required: false + example: unstable + - in: query + name: origin + description: The Debian Origin + type: string + required: false + example: Grep + - in: query + name: label + description: The Debian Label + type: string + required: false + example: grep.be + - in: query + name: version + description: The Debian Version + type: string + required: false + example: '12' + - in: query + name: description + description: The Debian Description + type: string + required: false + example: My description + - in: query + name: valid_time_duration_seconds + description: The duration before the Release file should be considered expired + by the client + type: integer + format: int32 + required: false + example: 604800 + - in: query + name: components + description: The list of Components + type: array + items: + type: string + required: false + example: main + - in: query + name: architectures + description: The list of Architectures + type: array + items: + type: string + required: false + example: amd64 + responses: + '202': + description: Delete a Debian Distribution + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_distribution + operationId: deleteApiV4GroupsIdDebianDistributionsCodename + "/api/v4/groups/{id}/-/debian_distributions/{codename}/key.asc": + get: + summary: Get a Debian Distribution Key + description: This feature was introduced in 14.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group + type: string + required: true + - in: path + name: codename + description: The Debian Codename + type: string + required: true + example: sid + responses: + '200': + description: Get a Debian Distribution Key + schema: + "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - debian_distribution + operationId: getApiV4GroupsIdDebianDistributionsCodenameKeyAsc "/api/v4/groups/{id}/export/download": get: summary: Download export @@ -2547,6 +3611,7 @@ paths: description: 'The ID of the organization that the group will be part of. ' type: integer format: int32 + default: {} required: false responses: '202': @@ -2965,6 +4030,169 @@ paths: tags: - invitations operationId: deleteApiV4GroupsIdInvitationsEmail + "/api/v4/groups/{id}/uploads": + get: + description: Get the list of uploads of a group + produces: + - application/json + parameters: + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get the list of uploads of a group + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_MarkdownUploadAdmin" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - groups + operationId: getApiV4GroupsIdUploads + "/api/v4/groups/{id}/uploads/{upload_id}": + get: + description: Download a single group upload by ID + produces: + - application/json + parameters: + - in: path + name: upload_id + description: The ID of a group upload + type: integer + format: int32 + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Download a single group upload by ID + schema: + type: file + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - groups + operationId: getApiV4GroupsIdUploadsUploadId + delete: + description: Delete a single group upload + produces: + - application/json + parameters: + - in: path + name: upload_id + description: The ID of a group upload + type: integer + format: int32 + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a single group upload + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - groups + operationId: deleteApiV4GroupsIdUploadsUploadId + "/api/v4/groups/{id}/uploads/{secret}/{filename}": + get: + description: Download a single project upload by secret and filename + produces: + - application/json + parameters: + - in: path + name: secret + description: The 32-character secret of a group upload + type: string + required: true + - in: path + name: filename + description: The filename of a group upload + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Download a single project upload by secret and filename + schema: + type: file + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - groups + operationId: getApiV4GroupsIdUploadsSecretFilename + delete: + description: Delete a single group upload by secret and filename + produces: + - application/json + parameters: + - in: path + name: secret + description: The 32-character secret of a group upload + type: string + required: true + - in: path + name: filename + description: The filename of a group upload + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a single group upload by secret and filename + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - groups + operationId: deleteApiV4GroupsIdUploadsSecretFilename "/api/v4/groups/{id}/-/packages/maven/*path/{file_name}": get: summary: Download the maven package file at a group level @@ -3412,7 +4640,7 @@ paths: operationId: getApiV4GroupsIdPendingMembers "/api/v4/groups/{id}/billable_members": get: - description: Gets a list of billable users of root group. + description: Gets a list of billable users of top-level group. produces: - application/json parameters: @@ -3460,7 +4688,7 @@ paths: required: false responses: '200': - description: Gets a list of billable users of root group. + description: Gets a list of billable users of top-level group. schema: "$ref": "#/definitions/API_Entities_Member" tags: @@ -3498,7 +4726,7 @@ paths: operationId: putApiV4GroupsIdMembersUserIdState "/api/v4/groups/{id}/billable_members/{user_id}/memberships": get: - description: Get the direct memberships of a billable user of a root group. + description: Get the direct memberships of a billable user of a top-level group. produces: - application/json parameters: @@ -3531,7 +4759,8 @@ paths: example: 20 responses: '200': - description: Get the direct memberships of a billable user of a root group. + description: Get the direct memberships of a billable user of a top-level + group. schema: "$ref": "#/definitions/EE_API_Entities_BillableMembership" tags: @@ -3539,7 +4768,8 @@ paths: operationId: getApiV4GroupsIdBillableMembersUserIdMemberships "/api/v4/groups/{id}/billable_members/{user_id}/indirect": get: - description: Get the indirect memberships of a billable user of a root group. + description: Get the indirect memberships of a billable user of a top-level + group. produces: - application/json parameters: @@ -3572,7 +4802,8 @@ paths: example: 20 responses: '200': - description: Get the indirect memberships of a billable user of a root group. + description: Get the indirect memberships of a billable user of a top-level + group. schema: "$ref": "#/definitions/EE_API_Entities_BillableMembership" tags: @@ -3698,8 +4929,8 @@ paths: - in: query name: order_by description: Returns merge requests ordered by `created_at`, `label_priority`, - `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields. - Introduced in GitLab 14.8. + `milestone_due`, `popularity`, `priority`, `title`, `updated_at` or `merged_at` + fields. Introduced in GitLab 14.8. type: string default: created_at enum: @@ -3710,6 +4941,7 @@ paths: - priority - title - updated_at + - merged_at required: false - in: query name: sort @@ -3991,1222 +5223,6 @@ paths: tags: - merge_requests operationId: getApiV4GroupsIdMergeRequests - "/api/v4/groups/{id}/releases": - get: - summary: List group releases - description: Returns a list of group releases. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group owned by the authenticated - user - type: string - required: true - - in: query - name: sort - description: The direction of the order. Either `desc` (default) for descending - order or `asc` for ascending order - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: simple - description: Return only limited fields for each release - type: boolean - default: false - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List group releases - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Release" - '400': - description: Bad request - '403': - description: Forbidden - '404': - description: Not found - tags: - - releases - operationId: getApiV4GroupsIdReleases - "/api/v4/groups/{id}/access_tokens": - get: - summary: Get list of all access tokens for the specified resource - description: This feature was introduced in GitLab 13.9. - produces: - - application/json - parameters: - - in: path - name: id - description: ID or URL-encoded path of the group - type: string - required: true - responses: - '200': - description: Get list of all access tokens for the specified resource - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ResourceAccessToken" - tags: - - group_access_tokens - operationId: getApiV4GroupsIdAccessTokens - post: - summary: Create a resource access token - description: This feature was introduced in GitLab 13.9. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The group ID - type: string - required: true - example: 2 - - name: postApiV4GroupsIdAccessTokens - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4GroupsIdAccessTokens" - responses: - '201': - description: Create a resource access token - schema: - "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" - tags: - - group_access_tokens - operationId: postApiV4GroupsIdAccessTokens - "/api/v4/groups/{id}/access_tokens/{token_id}": - get: - summary: Get an access token for the specified resource by ID - description: This feature was introduced in GitLab 14.10. - produces: - - application/json - parameters: - - in: path - name: id - description: ID or URL-encoded path of the group - type: string - required: true - - in: path - name: token_id - description: The ID of the token - type: string - required: true - responses: - '200': - description: Get an access token for the specified resource by ID - schema: - "$ref": "#/definitions/API_Entities_ResourceAccessToken" - tags: - - group_access_tokens - operationId: getApiV4GroupsIdAccessTokensTokenId - delete: - summary: Revoke a resource access token - description: This feature was introduced in GitLab 13.9. - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID - type: string - required: true - - in: path - name: token_id - description: The ID of the token - type: string - required: true - responses: - '204': - description: Revoke a resource access token - '400': - description: Bad Request - '404': - description: Not found - tags: - - group_access_tokens - operationId: deleteApiV4GroupsIdAccessTokensTokenId - "/api/v4/groups/{id}/access_tokens/{token_id}/rotate": - post: - summary: Rotate a resource access token - description: This feature was introduced in GitLab 16.0. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The group ID - type: string - required: true - - in: path - name: token_id - description: The ID of the token - type: string - required: true - - name: postApiV4GroupsIdAccessTokensTokenIdRotate - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4GroupsIdAccessTokensTokenIdRotate" - responses: - '201': - description: Rotate a resource access token - schema: - "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" - tags: - - group_access_tokens - operationId: postApiV4GroupsIdAccessTokensTokenIdRotate - "/api/v4/groups/{id}/wikis": - get: - description: Get a list of wiki pages - produces: - - application/json - parameters: - - in: query - name: with_content - description: Include pages' content - type: boolean - default: false - required: false - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get a list of wiki pages - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_WikiPageBasic" - '404': - description: Not found - tags: - - wikis - operationId: getApiV4GroupsIdWikis - post: - description: Create a wiki page - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: postApiV4GroupsIdWikis - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4GroupsIdWikis" - responses: - '201': - description: Create a wiki page - schema: - "$ref": "#/definitions/API_Entities_WikiPage" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - wikis - operationId: postApiV4GroupsIdWikis - "/api/v4/groups/{id}/wikis/{slug}": - get: - description: Get a wiki page - produces: - - application/json - parameters: - - in: path - name: slug - description: The slug of a wiki page - type: string - required: true - - in: query - name: version - description: The version hash of a wiki page - type: string - required: false - - in: query - name: render_html - description: Render content to HTML - type: boolean - default: false - required: false - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get a wiki page - schema: - "$ref": "#/definitions/API_Entities_WikiPage" - '404': - description: Not found - tags: - - wikis - operationId: getApiV4GroupsIdWikisSlug - put: - description: Update a wiki page - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - in: path - name: slug - type: integer - format: int32 - required: true - - name: putApiV4GroupsIdWikisSlug - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4GroupsIdWikisSlug" - responses: - '200': - description: Update a wiki page - schema: - "$ref": "#/definitions/API_Entities_WikiPage" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - wikis - operationId: putApiV4GroupsIdWikisSlug - delete: - description: Delete a wiki page - produces: - - application/json - parameters: - - in: path - name: slug - description: The slug of a wiki page - type: string - required: true - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a wiki page - '400': - description: Validation error - '404': - description: Not found - tags: - - wikis - operationId: deleteApiV4GroupsIdWikisSlug - "/api/v4/groups/{id}/wikis/attachments": - post: - summary: Upload an attachment to the wiki repository - description: This feature was introduced in GitLab 11.3. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: postApiV4GroupsIdWikisAttachments - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4GroupsIdWikisAttachments" - responses: - '201': - description: Upload an attachment to the wiki repository - schema: - "$ref": "#/definitions/API_Entities_WikiAttachment" - '404': - description: Not found - tags: - - wikis - operationId: postApiV4GroupsIdWikisAttachments - "/api/v4/groups/{id}/audit_events": - get: - description: Get a list of audit events in this group. - produces: - - application/json - parameters: - - in: query - name: created_after - description: Return audit events created after the specified time - type: string - format: date-time - required: false - example: '2016-01-19T09:05:50.355Z' - - in: query - name: created_before - description: Return audit events created before the specified time - type: string - format: date-time - required: false - example: '2016-01-19T09:05:50.355Z' - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get a list of audit events in this group. - schema: - type: array - items: - "$ref": "#/definitions/EE_API_Entities_AuditEvent" - tags: - - groups - operationId: getApiV4GroupsIdAuditEvents - "/api/v4/groups/{id}/audit_events/{audit_event_id}": - get: - description: Get a specific audit event in this group. - produces: - - application/json - parameters: - - in: path - name: audit_event_id - description: The ID of the audit event - type: integer - format: int32 - required: true - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get a specific audit event in this group. - schema: - "$ref": "#/definitions/EE_API_Entities_AuditEvent" - tags: - - groups - operationId: getApiV4GroupsIdAuditEventsAuditEventId - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/Release.gpg": - get: - summary: The Release file signature - description: This feature was introduced in GitLab 13.5 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - responses: - '200': - description: The Release file signature - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionReleaseGpg - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/Release": - get: - summary: The unsigned Release file - description: This feature was introduced in GitLab 13.5 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - responses: - '200': - description: The unsigned Release file - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionRelease - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/InRelease": - get: - summary: The signed Release file - description: This feature was introduced in GitLab 13.5 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - responses: - '200': - description: The signed Release file - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionInrelease - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/Packages": - get: - summary: The installer (udeb) binary files index - description: This feature was introduced in GitLab 15.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - - in: path - name: component - description: The Debian Component - type: string - required: true - example: main - - in: path - name: architecture - description: The Debian Architecture - type: string - required: true - example: binary-amd64 - responses: - '200': - description: The installer (udeb) binary files index - '202': - description: The installer (udeb) binary files index - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitecturePackages - ? "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/by-hash/SHA256/{file_sha256}" - : get: - summary: The installer (udeb) binary files index by hash - description: This feature was introduced in GitLab 15.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - - in: path - name: component - description: The Debian Component - type: string - required: true - example: main - - in: path - name: architecture - description: The Debian Architecture - type: string - required: true - example: binary-amd64 - - in: path - name: file_sha256 - type: integer - format: int32 - required: true - responses: - '200': - description: The installer (udeb) binary files index by hash - '202': - description: The installer (udeb) binary files index by hash - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitectureByHashSha256FileSha256 - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/source/Sources": - get: - summary: The source files index - description: This feature was introduced in GitLab 15.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - - in: path - name: component - description: The Debian Component - type: string - required: true - example: main - responses: - '200': - description: The source files index - '202': - description: The source files index - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentSourceSources - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/source/by-hash/SHA256/{file_sha256}": - get: - summary: The source files index by hash - description: This feature was introduced in GitLab 15.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - - in: path - name: component - description: The Debian Component - type: string - required: true - example: main - - in: path - name: file_sha256 - type: integer - format: int32 - required: true - responses: - '200': - description: The source files index by hash - '202': - description: The source files index by hash - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentSourceByHashSha256FileSha256 - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/binary-{architecture}/Packages": - get: - summary: The binary files index - description: This feature was introduced in GitLab 13.5 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - - in: path - name: component - description: The Debian Component - type: string - required: true - example: main - - in: path - name: architecture - description: The Debian Architecture - type: string - required: true - example: binary-amd64 - responses: - '200': - description: The binary files index - '202': - description: The binary files index - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentBinaryArchitecturePackages - "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/binary-{architecture}/by-hash/SHA256/{file_sha256}": - get: - summary: The binary files index by hash - description: This feature was introduced in GitLab 15.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: query - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - - in: path - name: component - description: The Debian Component - type: string - required: true - example: main - - in: path - name: architecture - description: The Debian Architecture - type: string - required: true - example: binary-amd64 - - in: path - name: file_sha256 - type: integer - format: int32 - required: true - responses: - '200': - description: The binary files index by hash - '202': - description: The binary files index by hash - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentBinaryArchitectureByHashSha256FileSha256 - "/api/v4/groups/{id}/-/packages/debian/pool/{distribution}/{project_id}/{letter}/{package_name}/{package_version}/{file_name}": - get: - summary: Download Debian package - description: This feature was introduced in GitLab 14.2 - produces: - - application/json - parameters: - - in: path - name: id - description: The group ID or full group path. - type: string - required: true - - in: path - name: project_id - description: The Project Id - type: integer - format: int32 - required: true - - in: path - name: distribution - description: The Debian Codename or Suite - type: string - required: true - example: my-distro - - in: path - name: letter - description: The Debian Classification (first-letter or lib-first-letter) - type: string - required: true - example: a - - in: path - name: package_name - description: The Debian Source Package Name - type: string - required: true - example: my-pkg - - in: path - name: package_version - description: The Debian Source Package Version - type: string - required: true - example: 1.0.0 - - in: path - name: file_name - description: The Debian File Name - type: string - required: true - example: example_1.0.0~alpha2_amd64.deb - responses: - '200': - description: Download Debian package - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_packages - operationId: getApiV4GroupsIdPackagesDebianPoolDistributionProjectIdLetterPackageNamePackageVersionFileName - "/api/v4/groups/{id}/-/debian_distributions": - post: - summary: Create a Debian Distribution - description: This feature was introduced in 14.0 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group - type: string - required: true - - name: postApiV4GroupsIdDebianDistributions - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4GroupsIdDebianDistributions" - responses: - '201': - description: Create a Debian Distribution - schema: - "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_distribution - operationId: postApiV4GroupsIdDebianDistributions - get: - summary: Get a list of Debian Distributions - description: This feature was introduced in 14.0 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: codename - description: The Debian Codename - type: string - required: false - example: sid - - in: query - name: suite - description: The Debian Suite - type: string - required: false - example: unstable - - in: query - name: origin - description: The Debian Origin - type: string - required: false - example: Grep - - in: query - name: label - description: The Debian Label - type: string - required: false - example: grep.be - - in: query - name: version - description: The Debian Version - type: string - required: false - example: '12' - - in: query - name: description - description: The Debian Description - type: string - required: false - example: My description - - in: query - name: valid_time_duration_seconds - description: The duration before the Release file should be considered expired - by the client - type: integer - format: int32 - required: false - example: 604800 - - in: query - name: components - description: The list of Components - type: array - items: - type: string - required: false - example: main - - in: query - name: architectures - description: The list of Architectures - type: array - items: - type: string - required: false - example: amd64 - responses: - '200': - description: Get a list of Debian Distributions - schema: - "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_distribution - operationId: getApiV4GroupsIdDebianDistributions - "/api/v4/groups/{id}/-/debian_distributions/{codename}": - get: - summary: Get a Debian Distribution - description: This feature was introduced in 14.0 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group - type: string - required: true - - in: path - name: codename - description: The Debian Codename - type: string - required: true - example: sid - responses: - '200': - description: Get a Debian Distribution - schema: - "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_distribution - operationId: getApiV4GroupsIdDebianDistributionsCodename - put: - summary: Update a Debian Distribution - description: This feature was introduced in 14.0 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group - type: string - required: true - - in: path - name: codename - description: The Debian Codename - type: string - required: true - example: sid - - name: putApiV4GroupsIdDebianDistributionsCodename - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4GroupsIdDebianDistributionsCodename" - responses: - '200': - description: Update a Debian Distribution - schema: - "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_distribution - operationId: putApiV4GroupsIdDebianDistributionsCodename - delete: - summary: Delete a Debian Distribution - description: This feature was introduced in 14.0 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group - type: string - required: true - - in: path - name: codename - description: The Debian Codename - type: string - required: true - example: sid - - in: query - name: suite - description: The Debian Suite - type: string - required: false - example: unstable - - in: query - name: origin - description: The Debian Origin - type: string - required: false - example: Grep - - in: query - name: label - description: The Debian Label - type: string - required: false - example: grep.be - - in: query - name: version - description: The Debian Version - type: string - required: false - example: '12' - - in: query - name: description - description: The Debian Description - type: string - required: false - example: My description - - in: query - name: valid_time_duration_seconds - description: The duration before the Release file should be considered expired - by the client - type: integer - format: int32 - required: false - example: 604800 - - in: query - name: components - description: The list of Components - type: array - items: - type: string - required: false - example: main - - in: query - name: architectures - description: The list of Architectures - type: array - items: - type: string - required: false - example: amd64 - responses: - '202': - description: Delete a Debian Distribution - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_distribution - operationId: deleteApiV4GroupsIdDebianDistributionsCodename - "/api/v4/groups/{id}/-/debian_distributions/{codename}/key.asc": - get: - summary: Get a Debian Distribution Key - description: This feature was introduced in 14.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group - type: string - required: true - - in: path - name: codename - description: The Debian Codename - type: string - required: true - example: sid - responses: - '200': - description: Get a Debian Distribution Key - schema: - "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - debian_distribution - operationId: getApiV4GroupsIdDebianDistributionsCodenameKeyAsc "/api/v4/groups/{id}/-/packages/npm/-/package/*package_name/dist-tags": get: summary: Get all tags for a given an NPM package @@ -5314,42 +5330,6 @@ paths: tags: - npm_packages operationId: deleteApiV4GroupsIdPackagesNpmPackage*packageNameDistTagsTag - "/api/v4/groups/{id}/-/packages/npm/*package_name": - get: - summary: NPM registry metadata endpoint - description: This feature was introduced in GitLab 11.8 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the group - type: string - required: true - - in: query - name: package_name - description: Package name - type: string - required: true - example: mypackage - responses: - '200': - description: Ok - schema: - "$ref": "#/definitions/API_Entities_NpmPackage" - '302': - description: Found (redirect) - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - npm_packages - operationId: getApiV4GroupsIdPackagesNpm*packageName "/api/v4/groups/{id}/-/packages/npm/-/npm/v1/security/advisories/bulk": post: summary: NPM registry bulk advisory endpoint @@ -5406,6 +5386,42 @@ paths: tags: - npm_packages operationId: postApiV4GroupsIdPackagesNpmNpmV1SecurityAuditsQuick + "/api/v4/groups/{id}/-/packages/npm/*package_name": + get: + summary: NPM registry metadata endpoint + description: This feature was introduced in GitLab 11.8 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group + type: string + required: true + - in: query + name: package_name + description: Package name + type: string + required: true + example: mypackage + responses: + '200': + description: Ok + schema: + "$ref": "#/definitions/API_Entities_NpmPackage" + '302': + description: Found (redirect) + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - npm_packages + operationId: getApiV4GroupsIdPackagesNpm*packageName "/api/v4/groups/{id}/-/packages/nuget/index": get: summary: The NuGet V3 Feed Service Index @@ -5734,6 +5750,395 @@ paths: tags: - pypi_packages operationId: getApiV4GroupsIdPackagesPypiSimple*packageName + "/api/v4/groups/{id}/releases": + get: + summary: List group releases + description: Returns a list of group releases. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the group owned by the authenticated + user + type: string + required: true + - in: query + name: sort + description: The direction of the order. Either `desc` (default) for descending + order or `asc` for ascending order + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: simple + description: Return only limited fields for each release + type: boolean + default: false + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List group releases + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Release" + '400': + description: Bad request + '403': + description: Forbidden + '404': + description: Not found + tags: + - releases + operationId: getApiV4GroupsIdReleases + "/api/v4/groups/{id}/access_tokens": + get: + summary: Get list of all access tokens for the specified resource + description: This feature was introduced in GitLab 13.9. + produces: + - application/json + parameters: + - in: path + name: id + description: ID or URL-encoded path of the group + type: string + required: true + - in: query + name: state + description: Filter tokens which are either active or inactive + type: string + enum: + - active + - inactive + required: false + example: active + responses: + '200': + description: Get list of all access tokens for the specified resource + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ResourceAccessToken" + tags: + - group_access_tokens + operationId: getApiV4GroupsIdAccessTokens + post: + summary: Create a resource access token + description: This feature was introduced in GitLab 13.9. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The group ID + type: string + required: true + example: 2 + - name: postApiV4GroupsIdAccessTokens + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4GroupsIdAccessTokens" + responses: + '201': + description: Create a resource access token + schema: + "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" + tags: + - group_access_tokens + operationId: postApiV4GroupsIdAccessTokens + "/api/v4/groups/{id}/access_tokens/{token_id}": + get: + summary: Get an access token for the specified resource by ID + description: This feature was introduced in GitLab 14.10. + produces: + - application/json + parameters: + - in: path + name: id + description: ID or URL-encoded path of the group + type: string + required: true + - in: path + name: token_id + description: The ID of the token + type: string + required: true + responses: + '200': + description: Get an access token for the specified resource by ID + schema: + "$ref": "#/definitions/API_Entities_ResourceAccessToken" + tags: + - group_access_tokens + operationId: getApiV4GroupsIdAccessTokensTokenId + delete: + summary: Revoke a resource access token + description: This feature was introduced in GitLab 13.9. + produces: + - application/json + parameters: + - in: path + name: id + description: The group ID + type: string + required: true + - in: path + name: token_id + description: The ID of the token + type: string + required: true + responses: + '204': + description: Revoke a resource access token + '400': + description: Bad Request + '404': + description: Not found + tags: + - group_access_tokens + operationId: deleteApiV4GroupsIdAccessTokensTokenId + "/api/v4/groups/{id}/access_tokens/{token_id}/rotate": + post: + summary: Rotate a resource access token + description: This feature was introduced in GitLab 16.0. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The group ID + type: string + required: true + - in: path + name: token_id + description: The ID of the token + type: string + required: true + - name: postApiV4GroupsIdAccessTokensTokenIdRotate + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4GroupsIdAccessTokensTokenIdRotate" + responses: + '201': + description: Rotate a resource access token + schema: + "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" + tags: + - group_access_tokens + operationId: postApiV4GroupsIdAccessTokensTokenIdRotate + "/api/v4/groups/{id}/wikis": + get: + description: Get a list of wiki pages + produces: + - application/json + parameters: + - in: query + name: with_content + description: Include pages' content + type: boolean + default: false + required: false + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get a list of wiki pages + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_WikiPageBasic" + '404': + description: Not found + tags: + - wikis + operationId: getApiV4GroupsIdWikis + post: + description: Create a wiki page + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - name: postApiV4GroupsIdWikis + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4GroupsIdWikis" + responses: + '201': + description: Create a wiki page + schema: + "$ref": "#/definitions/API_Entities_WikiPage" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - wikis + operationId: postApiV4GroupsIdWikis + "/api/v4/groups/{id}/wikis/{slug}": + get: + description: Get a wiki page + produces: + - application/json + parameters: + - in: path + name: slug + description: The slug of a wiki page + type: string + required: true + - in: query + name: version + description: The version hash of a wiki page + type: string + required: false + - in: query + name: render_html + description: Render content to HTML + type: boolean + default: false + required: false + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get a wiki page + schema: + "$ref": "#/definitions/API_Entities_WikiPage" + '404': + description: Not found + tags: + - wikis + operationId: getApiV4GroupsIdWikisSlug + put: + description: Update a wiki page + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - in: path + name: slug + type: integer + format: int32 + required: true + - name: putApiV4GroupsIdWikisSlug + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4GroupsIdWikisSlug" + responses: + '200': + description: Update a wiki page + schema: + "$ref": "#/definitions/API_Entities_WikiPage" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - wikis + operationId: putApiV4GroupsIdWikisSlug + delete: + description: Delete a wiki page + produces: + - application/json + parameters: + - in: path + name: slug + description: The slug of a wiki page + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a wiki page + '400': + description: Validation error + '404': + description: Not found + tags: + - wikis + operationId: deleteApiV4GroupsIdWikisSlug + "/api/v4/groups/{id}/wikis/attachments": + post: + summary: Upload an attachment to the wiki repository + description: This feature was introduced in GitLab 11.3. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - name: postApiV4GroupsIdWikisAttachments + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4GroupsIdWikisAttachments" + responses: + '201': + description: Upload an attachment to the wiki repository + schema: + "$ref": "#/definitions/API_Entities_WikiAttachment" + '404': + description: Not found + tags: + - wikis + operationId: postApiV4GroupsIdWikisAttachments "/api/v4/projects/{id}/access_requests": get: summary: Gets a list of access requests for a project. @@ -5868,6 +6273,202 @@ paths: tags: - access_requests operationId: deleteApiV4ProjectsIdAccessRequestsUserId + "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/authorize": + post: + description: Workhorse authorize metric image file upload + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 17 + - in: path + name: alert_iid + description: The IID of the Alert + type: integer + format: int32 + required: true + example: 23 + responses: + '200': + description: Workhorse authorize metric image file upload + '403': + description: Forbidden + tags: + - alert_management + operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesAuthorize + "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images": + post: + description: Upload a metric image for an alert + produces: + - application/json + consumes: + - multipart/form-data + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 17 + - in: path + name: alert_iid + description: The IID of the Alert + type: integer + format: int32 + required: true + example: 23 + - in: formData + name: file + description: The image file to be uploaded + type: file + required: true + - in: formData + name: url + description: The url to view more metric info + type: string + required: false + example: https://example.com/metric + - in: formData + name: url_text + description: A description of the image or URL + type: string + required: false + example: An example metric + responses: + '200': + description: Upload a metric image for an alert + schema: + "$ref": "#/definitions/API_Entities_MetricImage" + '403': + description: Forbidden + tags: + - alert_management + operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages + get: + description: Metric Images for alert + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 17 + - in: path + name: alert_iid + description: The IID of the Alert + type: integer + format: int32 + required: true + example: 23 + responses: + '200': + description: Metric Images for alert + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_MetricImage" + '404': + description: Not found + tags: + - alert_management + operationId: getApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages + "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/{metric_image_id}": + put: + description: Update a metric image for an alert + produces: + - application/json + consumes: + - multipart/form-data + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 17 + - in: path + name: alert_iid + description: The IID of the Alert + type: integer + format: int32 + required: true + example: 23 + - in: path + name: metric_image_id + description: The ID of metric image + type: integer + format: int32 + required: true + example: 42 + - in: formData + name: url + description: The url to view more metric info + type: string + required: false + example: https://example.com/metric + - in: formData + name: url_text + description: A description of the image or URL + type: string + required: false + example: An example metric + responses: + '200': + description: Update a metric image for an alert + schema: + "$ref": "#/definitions/API_Entities_MetricImage" + '403': + description: Forbidden + '422': + description: Unprocessable entity + tags: + - alert_management + operationId: putApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId + delete: + description: Remove a metric image for an alert + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 17 + - in: path + name: alert_iid + description: The IID of the Alert + type: integer + format: int32 + required: true + example: 23 + - in: path + name: metric_image_id + description: The ID of metric image + type: integer + format: int32 + required: true + example: 42 + responses: + '204': + description: Remove a metric image for an alert + schema: + "$ref": "#/definitions/API_Entities_MetricImage" + '403': + description: Forbidden + '422': + description: Unprocessable entity + tags: + - alert_management + operationId: deleteApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId "/api/v4/projects/{id}/badges": get: summary: Gets a list of project badges viewable by the authenticated user. @@ -6144,6 +6745,78 @@ paths: tags: - branches operationId: postApiV4ProjectsIdRepositoryBranches + "/api/v4/projects/{id}/repository/branches/{branch}": + head: + description: Check if a branch exists + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: branch + description: The name of the branch + type: string + required: true + responses: + '204': + description: No Content + '404': + description: Not Found + tags: + - branches + operationId: headApiV4ProjectsIdRepositoryBranchesBranch + get: + description: Get a single repository branch + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: branch + type: integer + format: int32 + required: true + responses: + '200': + description: Get a single repository branch + schema: + "$ref": "#/definitions/API_Entities_Branch" + '404': + description: Branch Not Found + tags: + - branches + operationId: getApiV4ProjectsIdRepositoryBranchesBranch + delete: + description: Delete a branch + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: branch + description: The name of the branch + type: string + required: true + responses: + '204': + description: Delete a branch + '404': + description: Branch Not Found + tags: + - branches + operationId: deleteApiV4ProjectsIdRepositoryBranchesBranch "/api/v4/projects/{id}/repository/branches/{branch}/protect": put: description: Protect a single branch @@ -6205,78 +6878,6 @@ paths: tags: - branches operationId: putApiV4ProjectsIdRepositoryBranchesBranchUnprotect - "/api/v4/projects/{id}/repository/branches/{branch}": - delete: - description: Delete a branch - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: branch - description: The name of the branch - type: string - required: true - responses: - '204': - description: Delete a branch - '404': - description: Branch Not Found - tags: - - branches - operationId: deleteApiV4ProjectsIdRepositoryBranchesBranch - head: - description: Check if a branch exists - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: branch - description: The name of the branch - type: string - required: true - responses: - '204': - description: No Content - '404': - description: Not Found - tags: - - branches - operationId: headApiV4ProjectsIdRepositoryBranchesBranch - get: - description: Get a single repository branch - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: branch - type: integer - format: int32 - required: true - responses: - '200': - description: Get a single repository branch - schema: - "$ref": "#/definitions/API_Entities_Branch" - '404': - description: Branch Not Found - tags: - - branches - operationId: getApiV4ProjectsIdRepositoryBranchesBranch "/api/v4/projects/{id}/repository/merged_branches": delete: description: Delete all merged branches @@ -6296,6 +6897,43 @@ paths: tags: - branches operationId: deleteApiV4ProjectsIdRepositoryMergedBranches + "/api/v4/projects/{id}/catalog/publish": + post: + summary: Publish a new component project release as version to the CI/CD catalog + description: Publishes a release of a catalog resource as version to the CI/CD + catalog. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdCatalogPublish + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdCatalogPublish" + responses: + '201': + description: Publish a new component project release as version to the CI/CD + catalog + schema: + "$ref": "#/definitions/API_Entities_Ci_Catalog_Resources_Version" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - projects + operationId: postApiV4ProjectsIdCatalogPublish "/api/v4/projects/{id}/jobs/artifacts/{ref_name}/download": get: summary: Download the artifacts archive from a job @@ -7474,6 +8112,7 @@ paths: - ondemand_dast_validation - security_orchestration_policy - container_registry_push + - duo_workflow required: false example: push - in: query @@ -8657,7 +9296,7 @@ paths: - in: path name: id description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of - the project + the project owned by the authenticated user type: string required: true - in: query @@ -8694,7 +9333,7 @@ paths: - in: path name: id description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of - the project + the project owned by the authenticated user type: string required: true - name: postApiV4ProjectsIdVariables @@ -8721,7 +9360,7 @@ paths: - in: path name: id description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of - the project + the project owned by the authenticated user type: string required: true - in: path @@ -8754,7 +9393,7 @@ paths: - in: path name: id description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of - the project + the project owned by the authenticated user type: string required: true - in: path @@ -8785,7 +9424,7 @@ paths: - in: path name: id description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of - the project + the project owned by the authenticated user type: string required: true - in: path @@ -8808,6 +9447,144 @@ paths: tags: - ci_variables operationId: deleteApiV4ProjectsIdVariablesKey + "/api/v4/projects/{id}/cluster_agents/{agent_id}/tokens": + get: + summary: List tokens for an agent + description: This feature was introduced in GitLab 15.0. Returns a list of tokens + for an agent. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: agent_id + description: The ID of an agent + type: integer + format: int32 + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List tokens for an agent + schema: + "$ref": "#/definitions/API_Entities_Clusters_AgentTokenBasic" + tags: + - cluster_agents + operationId: getApiV4ProjectsIdClusterAgentsAgentIdTokens + post: + summary: Create an agent token + description: This feature was introduced in GitLab 15.0. Creates a new token + for an agent. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: agent_id + description: The ID of an agent + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdClusterAgentsAgentIdTokens + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdClusterAgentsAgentIdTokens" + responses: + '201': + description: Create an agent token + schema: + "$ref": "#/definitions/API_Entities_Clusters_AgentTokenWithToken" + tags: + - cluster_agents + operationId: postApiV4ProjectsIdClusterAgentsAgentIdTokens + "/api/v4/projects/{id}/cluster_agents/{agent_id}/tokens/{token_id}": + get: + summary: Get a single agent token + description: This feature was introduced in GitLab 15.0. Gets a single agent + token. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: agent_id + description: The ID of an agent + type: integer + format: int32 + required: true + - in: path + name: token_id + description: The ID of the agent token + type: integer + format: int32 + required: true + responses: + '200': + description: Get a single agent token + schema: + "$ref": "#/definitions/API_Entities_Clusters_AgentToken" + tags: + - cluster_agents + operationId: getApiV4ProjectsIdClusterAgentsAgentIdTokensTokenId + delete: + summary: Revoke an agent token + description: This feature was introduced in GitLab 15.0. Revokes an agent token. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: agent_id + description: The ID of an agent + type: integer + format: int32 + required: true + - in: path + name: token_id + description: The ID of the agent token + type: integer + format: int32 + required: true + responses: + '204': + description: Revoke an agent token + tags: + - cluster_agents + operationId: deleteApiV4ProjectsIdClusterAgentsAgentIdTokensTokenId "/api/v4/projects/{id}/cluster_agents": get: summary: List the agents for a project @@ -9020,6 +9797,8 @@ paths: type: array items: "$ref": "#/definitions/API_Entities_Commit" + '400': + description: Bad request '401': description: Unauthorized '404': @@ -9565,15881 +10344,6 @@ paths: tags: - projects operationId: postApiV4ProjectsIdStatusesSha - "/api/v4/projects/{id}/deploy_keys": - get: - summary: List deploy keys for project - description: Get a list of a project's deploy keys. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List deploy keys for project - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_DeployKeysProject" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_keys - operationId: getApiV4ProjectsIdDeployKeys - post: - summary: Add deploy key - description: Creates a new deploy key for a project. If the deploy key already - exists in another project, it's joined to the current project only if the - original one is accessible by the same user. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: postApiV4ProjectsIdDeployKeys - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdDeployKeys" - responses: - '201': - description: Add deploy key - schema: - "$ref": "#/definitions/API_Entities_DeployKeysProject" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_keys - operationId: postApiV4ProjectsIdDeployKeys - "/api/v4/projects/{id}/deploy_keys/{key_id}": - get: - summary: Get a single deploy key - description: Get a single key. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: key_id - description: The ID of the deploy key - type: integer - format: int32 - required: true - responses: - '200': - description: Get a single deploy key - schema: - "$ref": "#/definitions/API_Entities_DeployKeysProject" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_keys - operationId: getApiV4ProjectsIdDeployKeysKeyId - put: - summary: Update deploy key - description: Updates a deploy key for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: key_id - description: The ID of the deploy key - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdDeployKeysKeyId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdDeployKeysKeyId" - responses: - '200': - description: Update deploy key - schema: - "$ref": "#/definitions/API_Entities_DeployKey" - '400': - description: Bad request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - deploy_keys - operationId: putApiV4ProjectsIdDeployKeysKeyId - delete: - summary: Delete deploy key - description: Removes a deploy key from the project. If the deploy key is used - only for this project, it's deleted from the system. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: key_id - description: The ID of the deploy key - type: integer - format: int32 - required: true - responses: - '204': - description: Delete deploy key - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_keys - operationId: deleteApiV4ProjectsIdDeployKeysKeyId - "/api/v4/projects/{id}/deploy_keys/{key_id}/enable": - post: - summary: Enable a deploy key - description: Enables a deploy key for a project so this can be used. Returns - the enabled key, with a status code 201 when successful. This feature was - added in GitLab 8.11. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: key_id - description: The ID of the deploy key - type: integer - format: int32 - required: true - responses: - '201': - description: Enable a deploy key - schema: - "$ref": "#/definitions/API_Entities_DeployKey" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_keys - operationId: postApiV4ProjectsIdDeployKeysKeyIdEnable - "/api/v4/projects/{id}/deploy_tokens": - get: - summary: List project deploy tokens - description: Get a list of a project's deploy tokens. This feature was introduced - in GitLab 12.9. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: active - description: Limit by active status - type: boolean - required: false - responses: - '200': - description: List project deploy tokens - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_DeployToken" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - deploy_tokens - operationId: getApiV4ProjectsIdDeployTokens - post: - summary: Create a project deploy token - description: Creates a new deploy token for a project. This feature was introduced - in GitLab 12.9. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: postApiV4ProjectsIdDeployTokens - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdDeployTokens" - responses: - '201': - description: Create a project deploy token - schema: - "$ref": "#/definitions/API_Entities_DeployTokenWithToken" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_tokens - operationId: postApiV4ProjectsIdDeployTokens - "/api/v4/projects/{id}/deploy_tokens/{token_id}": - get: - summary: Get a project deploy token - description: Get a single project's deploy token by ID. This feature was introduced - in GitLab 14.9. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: token_id - description: The ID of the deploy token - type: integer - format: int32 - required: true - responses: - '200': - description: Get a project deploy token - schema: - "$ref": "#/definitions/API_Entities_DeployToken" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_tokens - operationId: getApiV4ProjectsIdDeployTokensTokenId - delete: - summary: Delete a project deploy token - description: This feature was introduced in GitLab 12.9. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: token_id - description: The ID of the deploy token - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a project deploy token - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deploy_tokens - operationId: deleteApiV4ProjectsIdDeployTokensTokenId - "/api/v4/projects/{id}/deployments": - get: - summary: List project deployments - description: Get a list of deployments in a project. This feature was introduced - in GitLab 8.11. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: order_by - description: Return deployments ordered by either one of `id`, `iid`, `created_at`, - `updated_at` or `ref` fields. Default is `id` - type: string - default: id - enum: - - id - - iid - - created_at - - updated_at - - finished_at - required: false - - in: query - name: sort - description: Return deployments sorted in `asc` or `desc` order. Default is - `asc` - type: string - default: asc - enum: - - asc - - desc - required: false - - in: query - name: updated_after - description: Return deployments updated after the specified date. Expected - in ISO 8601 format (`2019-03-15T08:00:00Z`) - type: string - format: date-time - required: false - - in: query - name: updated_before - description: Return deployments updated before the specified date. Expected - in ISO 8601 format (`2019-03-15T08:00:00Z`) - type: string - format: date-time - required: false - - in: query - name: finished_after - description: Return deployments finished after the specified date. Expected - in ISO 8601 format (`2019-03-15T08:00:00Z`) - type: string - format: date-time - required: false - - in: query - name: finished_before - description: Return deployments finished before the specified date. Expected - in ISO 8601 format (`2019-03-15T08:00:00Z`) - type: string - format: date-time - required: false - - in: query - name: environment - description: The name of the environment to filter deployments by - type: string - required: false - - in: query - name: status - description: The status to filter deployments by. One of `created`, `running`, - `success`, `failed`, `canceled`, or `blocked` - type: string - enum: - - created - - running - - success - - failed - - canceled - - skipped - - blocked - required: false - responses: - '200': - description: List project deployments - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Deployment" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deployments - operationId: getApiV4ProjectsIdDeployments - post: - summary: Create a deployment - description: This feature was introduced in GitLab 12.4. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: postApiV4ProjectsIdDeployments - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdDeployments" - responses: - '201': - description: Create a deployment - schema: - "$ref": "#/definitions/API_Entities_DeploymentExtended" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deployments - operationId: postApiV4ProjectsIdDeployments - "/api/v4/projects/{id}/deployments/{deployment_id}": - get: - summary: Get a specific deployment - description: This feature was introduced in GitLab 8.11. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: deployment_id - description: The ID of the deployment - type: integer - format: int32 - required: true - responses: - '200': - description: Get a specific deployment - schema: - "$ref": "#/definitions/API_Entities_DeploymentExtended" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deployments - operationId: getApiV4ProjectsIdDeploymentsDeploymentId - put: - summary: Update a deployment - description: This feature was introduced in GitLab 12.4. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: deployment_id - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdDeploymentsDeploymentId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdDeploymentsDeploymentId" - responses: - '200': - description: Update a deployment - schema: - "$ref": "#/definitions/API_Entities_DeploymentExtended" - '400': - description: Bad request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - deployments - operationId: putApiV4ProjectsIdDeploymentsDeploymentId - delete: - summary: Delete a specific deployment - description: Delete a specific deployment that is not currently the last deployment - for an environment or in a running state. This feature was introduced in GitLab - 15.3. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: deployment_id - description: The ID of the deployment - type: integer - format: int32 - required: true - responses: - '204': - description: Deployment destroyed - '403': - description: Forbidden - '400': - description: '"Cannot destroy running deployment" or "Deployment currently - deployed to environment"' - tags: - - deployments - operationId: deleteApiV4ProjectsIdDeploymentsDeploymentId - "/api/v4/projects/{id}/deployments/{deployment_id}/merge_requests": - get: - summary: List of merge requests associated with a deployment - description: Retrieves the list of merge requests shipped with a given deployment. - This feature was introduced in GitLab 12.7. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: path - name: deployment_id - description: The ID of the deployment - type: integer - format: int32 - required: true - - in: query - name: author_id - description: Returns merge requests created by the given user `id`. Mutually - exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. - type: integer - format: int32 - required: false - - in: query - name: author_username - description: Returns merge requests created by the given `username`. Mutually - exclusive with `author_id`. - type: string - required: false - - in: query - name: assignee_id - description: Returns merge requests assigned to the given user `id`. `None` - returns unassigned merge requests. `Any` returns merge requests with an - assignee. - type: integer - format: int32 - required: false - - in: query - name: assignee_username - description: Returns merge requests created by the given `username`. Mutually - exclusive with `author_id`. - type: array - items: - type: string - required: false - - in: query - name: reviewer_username - description: Returns merge requests which have the user as a reviewer with - the given `username`. `None` returns merge requests with no reviewers. `Any` - returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. - Introduced in GitLab 13.8. - type: string - required: false - - in: query - name: labels - description: Returns merge requests matching a comma-separated list of labels. - `None` lists all merge requests with no labels. `Any` lists all merge requests - with at least one label. Predefined names are case-insensitive. - type: array - items: - type: string - required: false - - in: query - name: milestone - description: Returns merge requests for a specific milestone. `None` returns - merge requests with no milestone. `Any` returns merge requests that have - an assigned milestone. - type: string - required: false - - in: query - name: my_reaction_emoji - description: Returns merge requests reacted by the authenticated user by the - given `emoji`. `None` returns issues not given a reaction. `Any` returns - issues given at least one reaction. - type: string - required: false - - in: query - name: reviewer_id - description: Returns merge requests which have the user as a reviewer with - the given user `id`. `None` returns merge requests with no reviewers. `Any` - returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. - type: integer - format: int32 - required: false - - in: query - name: state - description: Returns `all` merge requests or just those that are `opened`, - `closed`, `locked`, or `merged`. - type: string - default: all - enum: - - opened - - closed - - locked - - merged - - all - required: false - - in: query - name: order_by - description: Returns merge requests ordered by `created_at`, `label_priority`, - `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields. - Introduced in GitLab 14.8. - type: string - default: created_at - enum: - - created_at - - label_priority - - milestone_due - - popularity - - priority - - title - - updated_at - required: false - - in: query - name: sort - description: Returns merge requests sorted in `asc` or `desc` order. - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: with_labels_details - description: 'If `true`, response returns more details for each label in labels - field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`' - type: boolean - default: false - required: false - - in: query - name: with_merge_status_recheck - description: If `true`, this projection requests (but does not guarantee) - that the `merge_status` field be recalculated asynchronously. Introduced - in GitLab 13.0. - type: boolean - default: false - required: false - - in: query - name: created_after - description: Returns merge requests created on or after the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: created_before - description: Returns merge requests created on or before the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: updated_after - description: Returns merge requests updated on or after the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: updated_before - description: Returns merge requests updated on or before the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: view - description: If simple, returns the `iid`, URL, title, description, and basic - state of merge request - type: string - enum: - - simple - required: false - - in: query - name: scope - description: 'Returns merge requests for the given scope: `created_by_me`, - `assigned_to_me` or `all`' - type: string - enum: - - created-by-me - - assigned-to-me - - created_by_me - - assigned_to_me - - all - required: false - - in: query - name: source_branch - description: Returns merge requests with the given source branch - type: string - required: false - - in: query - name: source_project_id - description: Returns merge requests with the given source project id - type: integer - format: int32 - required: false - - in: query - name: target_branch - description: Returns merge requests with the given target branch - type: string - required: false - - in: query - name: search - description: Search merge requests against their `title` and `description`. - type: string - required: false - - in: query - name: in - description: Modify the scope of the search attribute. `title`, `description`, - or a string joining them with comma. - type: string - required: false - example: title,description - - in: query - name: wip - description: Filter merge requests against their `wip` status. `yes` to return - only draft merge requests, `no` to return non-draft merge requests. - type: string - enum: - - 'yes' - - 'no' - required: false - - in: query - name: not[author_id] - description: "`` Returns merge requests created by the given user - `id`. Mutually exclusive with `author_username`. Combine with `scope=all` - or `scope=assigned_to_me`." - type: integer - format: int32 - required: false - - in: query - name: not[author_username] - description: "`` Returns merge requests created by the given `username`. - Mutually exclusive with `author_id`." - type: string - required: false - - in: query - name: not[assignee_id] - description: "`` Returns merge requests assigned to the given user - `id`. `None` returns unassigned merge requests. `Any` returns merge requests - with an assignee." - type: integer - format: int32 - required: false - - in: query - name: not[assignee_username] - description: "`` Returns merge requests created by the given `username`. - Mutually exclusive with `author_id`." - type: array - items: - type: string - required: false - - in: query - name: not[reviewer_username] - description: "`` Returns merge requests which have the user as a - reviewer with the given `username`. `None` returns merge requests with no - reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive - with `reviewer_id`. Introduced in GitLab 13.8." - type: string - required: false - - in: query - name: not[labels] - description: "`` Returns merge requests matching a comma-separated - list of labels. `None` lists all merge requests with no labels. `Any` lists - all merge requests with at least one label. Predefined names are case-insensitive." - type: array - items: - type: string - required: false - - in: query - name: not[milestone] - description: "`` Returns merge requests for a specific milestone. - `None` returns merge requests with no milestone. `Any` returns merge requests - that have an assigned milestone." - type: string - required: false - - in: query - name: not[my_reaction_emoji] - description: "`` Returns merge requests reacted by the authenticated - user by the given `emoji`. `None` returns issues not given a reaction. `Any` - returns issues given at least one reaction." - type: string - required: false - - in: query - name: not[reviewer_id] - description: "`` Returns merge requests which have the user as a - reviewer with the given user `id`. `None` returns merge requests with no - reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive - with `reviewer_username`." - type: integer - format: int32 - required: false - - in: query - name: deployed_before - description: Returns merge requests deployed before the given date/time. Expected - in ISO 8601 format. - type: string - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: deployed_after - description: Returns merge requests deployed after the given date/time. Expected - in ISO 8601 format - type: string - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: environment - description: Returns merge requests deployed to the given environment - type: string - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: approved - description: Filters merge requests by their `approved` status. `yes` returns - only approved merge requests. `no` returns only non-approved merge requests. - type: string - enum: - - 'yes' - - 'no' - required: false - - in: query - name: merge_user_id - description: Returns merge requests which have been merged by the user with - the given user `id`. Mutually exclusive with `merge_user_username`. - type: integer - format: int32 - required: false - - in: query - name: merge_user_username - description: Returns merge requests which have been merged by the user with - the given `username`. Mutually exclusive with `merge_user_id`. - type: string - required: false - responses: - '200': - description: List of merge requests associated with a deployment - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_MergeRequestBasic" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - deployments - operationId: getApiV4ProjectsIdDeploymentsDeploymentIdMergeRequests - "/api/v4/projects/{id}/deployments/{deployment_id}/approval": - post: - summary: Approve or reject a blocked deployment - description: This feature was introduced in GitLab 14.8. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: deployment_id - description: The ID of the deployment - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdDeploymentsDeploymentIdApproval - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdDeploymentsDeploymentIdApproval" - responses: - '201': - description: Approve or reject a blocked deployment - schema: - "$ref": "#/definitions/API_Entities_Deployments_Approval" - tags: - - deployments - operationId: postApiV4ProjectsIdDeploymentsDeploymentIdApproval - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes": - get: - description: Get a list of merge request draft notes - produces: - - application/json - parameters: - - in: path - name: id - description: The ID of a project - type: string - required: true - - in: path - name: merge_request_iid - description: The ID of a merge request - type: integer - format: int32 - required: true - responses: - '200': - description: Get a list of merge request draft notes - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_DraftNote" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes - post: - description: Create a new draft note - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID of a project. - type: string - required: true - - in: path - name: merge_request_iid - description: The ID of a merge request. - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes" - responses: - '201': - description: Create a new draft note - schema: - "$ref": "#/definitions/API_Entities_DraftNote" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/{draft_note_id}": - get: - description: Get a single draft note - produces: - - application/json - parameters: - - in: path - name: id - description: The ID of a project - type: string - required: true - - in: path - name: merge_request_iid - description: The ID of a merge request - type: integer - format: int32 - required: true - - in: path - name: draft_note_id - description: The ID of a draft note - type: integer - format: int32 - required: true - responses: - '200': - description: Get a single draft note - schema: - "$ref": "#/definitions/API_Entities_DraftNote" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId - put: - description: Modify an existing draft note - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID of a project. - type: string - required: true - - in: path - name: merge_request_iid - description: The ID of a merge request. - type: integer - format: int32 - required: true - - in: path - name: draft_note_id - description: The ID of a draft note - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId" - responses: - '200': - description: Modify an existing draft note - schema: - "$ref": "#/definitions/API_Entities_DraftNote" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId - delete: - description: Delete a draft note - produces: - - application/json - parameters: - - in: path - name: id - description: The ID of a project - type: string - required: true - - in: path - name: merge_request_iid - description: The ID of a merge request - type: integer - format: int32 - required: true - - in: path - name: draft_note_id - description: The ID of a draft note - type: integer - format: int32 - required: true - responses: - '401': - description: Unauthorized - '204': - description: Delete a draft note - schema: - "$ref": "#/definitions/API_Entities_DraftNote" - '404': - description: Not found - tags: - - projects - operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/{draft_note_id}/publish": - put: - description: Publish a pending draft note - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID of a project - type: string - required: true - - in: path - name: merge_request_iid - description: The ID of a merge request - type: integer - format: int32 - required: true - - in: path - name: draft_note_id - description: The ID of a draft note - type: integer - format: int32 - required: true - responses: - '204': - description: Publish a pending draft note - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteIdPublish - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/bulk_publish": - post: - description: Bulk publish all pending draft notes - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID of a project - type: string - required: true - - in: path - name: merge_request_iid - description: The ID of a merge request - type: integer - format: int32 - required: true - responses: - '204': - description: Bulk publish all pending draft notes - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesBulkPublish - "/api/v4/projects/{id}/environments": - get: - summary: List environments - description: Get all environments for a given project. This feature was introduced - in GitLab 8.11. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: name - description: Return the environment with this name. Mutually exclusive with - search - type: string - required: false - - in: query - name: search - description: Return list of environments matching the search criteria. Mutually - exclusive with name. Must be at least 3 characters. - type: string - required: false - - in: query - name: states - description: 'List all environments that match a specific state. Accepted - values: `available`, `stopping`, or `stopped`. If no state value given, - returns all environments' - type: string - enum: - - stopped - - available - - stopping - required: false - responses: - '200': - description: List environments - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Environment" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - environments - operationId: getApiV4ProjectsIdEnvironments - post: - summary: Create a new environment - description: Creates a new environment with the given name and `external_url`. - It returns `201` if the environment was successfully created, `400` for wrong - parameters. This feature was introduced in GitLab 8.11. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: postApiV4ProjectsIdEnvironments - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdEnvironments" - responses: - '201': - description: Create a new environment - schema: - "$ref": "#/definitions/API_Entities_Environment" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - environments - operationId: postApiV4ProjectsIdEnvironments - "/api/v4/projects/{id}/environments/{environment_id}": - put: - summary: Update an existing environment - description: Updates an existing environment name and/or `external_url`. It - returns `200` if the environment was successfully updated. In case of an error, - a status code `400` is returned. This feature was introduced in GitLab 8.11. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: environment_id - description: The ID of the environment - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdEnvironmentsEnvironmentId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdEnvironmentsEnvironmentId" - responses: - '200': - description: Update an existing environment - schema: - "$ref": "#/definitions/API_Entities_Environment" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - environments - operationId: putApiV4ProjectsIdEnvironmentsEnvironmentId - delete: - summary: Delete an environment - description: It returns 204 if the environment was successfully deleted, and - 404 if the environment does not exist. This feature was introduced in GitLab - 8.11. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: environment_id - description: The ID of the environment - type: integer - format: int32 - required: true - responses: - '401': - description: Unauthorized - '204': - description: Delete an environment - schema: - "$ref": "#/definitions/API_Entities_Environment" - '404': - description: Not found - tags: - - environments - operationId: deleteApiV4ProjectsIdEnvironmentsEnvironmentId - get: - description: Get a specific environment - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: environment_id - description: The ID of the environment - type: integer - format: int32 - required: true - responses: - '200': - description: Get a specific environment - schema: - "$ref": "#/definitions/API_Entities_Environment" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - environments - operationId: getApiV4ProjectsIdEnvironmentsEnvironmentId - "/api/v4/projects/{id}/environments/review_apps": - delete: - summary: Delete multiple stopped review apps - description: It schedules for deletion multiple environments that have already - been stopped and are in the review app folder. The actual deletion is performed - after 1 week from the time of execution. By default, it only deletes environments - 30 days or older. You can change this default using the `before` parameter. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: query - name: before - description: The date before which environments can be deleted. Defaults to - 30 days ago. Expected in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`) - type: string - format: date-time - default: {} - required: false - - in: query - name: limit - description: Maximum number of environments to delete. Defaults to 100 - type: integer - format: int32 - default: 100 - minimum: 1 - maximum: 1000 - required: false - - in: query - name: dry_run - description: 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 - type: boolean - default: true - required: false - responses: - '400': - description: Bad request - '204': - description: Delete multiple stopped review apps - schema: - "$ref": "#/definitions/API_Entities_EnvironmentBasic" - '401': - description: Unauthorized - '404': - description: Not found - '409': - description: Conflict - tags: - - environments - operationId: deleteApiV4ProjectsIdEnvironmentsReviewApps - "/api/v4/projects/{id}/environments/{environment_id}/stop": - post: - summary: Stop an environment - description: It returns 200 if the environment was successfully stopped, and - 404 if the environment does not exist. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: environment_id - description: The ID of the environment - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdEnvironmentsEnvironmentIdStop - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdEnvironmentsEnvironmentIdStop" - responses: - '201': - description: Stop an environment - schema: - "$ref": "#/definitions/API_Entities_Environment" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - environments - operationId: postApiV4ProjectsIdEnvironmentsEnvironmentIdStop - "/api/v4/projects/{id}/environments/stop_stale": - post: - summary: Stop stale environments - description: It returns `200` if stale environment check was scheduled successfully - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: postApiV4ProjectsIdEnvironmentsStopStale - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdEnvironmentsStopStale" - responses: - '201': - description: Stop stale environments - '400': - description: Bad request - '401': - description: Unauthorized - tags: - - environments - operationId: postApiV4ProjectsIdEnvironmentsStopStale - "/api/v4/projects/{id}/error_tracking/settings": - get: - summary: Get Error Tracking settings - description: Get error tracking settings for the project. This feature was introduced - in GitLab 12.7. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - responses: - '200': - description: Get Error Tracking settings - schema: - "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting" - tags: - - error_tracking_project_settings - operationId: getApiV4ProjectsIdErrorTrackingSettings - patch: - summary: Enable or disable the Error Tracking project settings - description: The API allows you to enable or disable the Error Tracking settings - for a project.Only for users with the Maintainer role for the project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: patchApiV4ProjectsIdErrorTrackingSettings - in: body - required: true - schema: - "$ref": "#/definitions/patchApiV4ProjectsIdErrorTrackingSettings" - responses: - '200': - description: Enable or disable the Error Tracking project settings - schema: - "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - error_tracking_project_settings - operationId: patchApiV4ProjectsIdErrorTrackingSettings - put: - summary: Update Error Tracking project settings. Available in GitLab 15.10 and - later. - description: Update Error Tracking settings for a project. Only for users with - Maintainer role for the project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: putApiV4ProjectsIdErrorTrackingSettings - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdErrorTrackingSettings" - responses: - '200': - description: Update Error Tracking project settings. Available in GitLab - 15.10 and later. - schema: - "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - error_tracking_project_settings - operationId: putApiV4ProjectsIdErrorTrackingSettings - "/api/v4/projects/{id}/repository/files/{file_path}/blame": - head: - description: Get blame file metadata from repository - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - in: query - name: ref - description: The name of branch, tag or commit - type: string - required: true - example: main - responses: - '200': - description: Get blame file metadata from repository - tags: - - projects - operationId: headApiV4ProjectsIdRepositoryFilesFilePathBlame - get: - description: Get blame file from the repository - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - in: query - name: ref - description: The name of branch, tag or commit - type: string - required: true - example: main - - in: query - name: range[start] - description: The first line of the range to blame - type: integer - format: int32 - required: true - - in: query - name: range[end] - description: The last line of the range to blame - type: integer - format: int32 - required: true - responses: - '200': - description: Get blame file from the repository - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryFilesFilePathBlame - "/api/v4/projects/{id}/repository/files/{file_path}/raw": - get: - description: Get raw file contents from the repository - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - in: query - name: ref - description: The name of branch, tag or commit - type: string - required: false - example: main - - in: query - name: lfs - description: Retrieve binary data for a file that is an lfs pointer - type: boolean - default: false - required: false - responses: - '200': - description: Get raw file contents from the repository - schema: - type: file - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryFilesFilePathRaw - "/api/v4/projects/{id}/repository/files/{file_path}": - head: - description: Get file metadata from repository - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - in: query - name: ref - description: The name of branch, tag or commit - type: string - required: true - example: main - responses: - '200': - description: Get file metadata from repository - tags: - - projects - operationId: headApiV4ProjectsIdRepositoryFilesFilePath - get: - description: Get a file from the repository - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - in: query - name: ref - description: The name of branch, tag or commit - type: string - required: true - example: main - responses: - '200': - description: Get a file from the repository - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryFilesFilePath - post: - description: Create new file in repository - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - name: postApiV4ProjectsIdRepositoryFilesFilePath - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdRepositoryFilesFilePath" - responses: - '201': - description: Create new file in repository - tags: - - projects - operationId: postApiV4ProjectsIdRepositoryFilesFilePath - put: - description: Update existing file in repository - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - name: putApiV4ProjectsIdRepositoryFilesFilePath - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdRepositoryFilesFilePath" - responses: - '200': - description: Update existing file in repository - tags: - - projects - operationId: putApiV4ProjectsIdRepositoryFilesFilePath - delete: - description: Delete an existing file in repository - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: file_path - description: The url encoded path to the file. - type: string - required: true - example: lib%2Fclass%2Erb - - in: query - name: branch - description: Name of the branch to commit into. To create a new branch, also - provide `start_branch`. - type: string - required: true - example: main - - in: query - name: commit_message - description: Commit message - type: string - required: true - example: Initial commit - - in: query - name: start_branch - description: Name of the branch to start the new commit from - type: string - required: false - example: main - - in: query - name: author_email - description: The email of the author - type: string - required: false - example: johndoe@example.com - - in: query - name: author_name - description: The name of the author - type: string - required: false - example: John Doe - responses: - '204': - description: Delete an existing file in repository - tags: - - projects - operationId: deleteApiV4ProjectsIdRepositoryFilesFilePath - "/api/v4/projects/{id}/freeze_periods": - get: - summary: List freeze periods - description: Paginated list of Freeze Periods, sorted by created_at in ascending - order. This feature was introduced in GitLab 13.0. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List freeze periods - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_FreezePeriod" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - freeze_periods - operationId: getApiV4ProjectsIdFreezePeriods - post: - summary: Create a freeze period - description: Creates a freeze period. This feature was introduced in GitLab - 13.0. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdFreezePeriods - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdFreezePeriods" - responses: - '201': - description: Create a freeze period - schema: - "$ref": "#/definitions/API_Entities_FreezePeriod" - '400': - description: Bad request - '401': - description: Unauthorized - tags: - - freeze_periods - operationId: postApiV4ProjectsIdFreezePeriods - "/api/v4/projects/{id}/freeze_periods/{freeze_period_id}": - get: - summary: Get a freeze period - description: Get a freeze period for the given `freeze_period_id`. This feature - was introduced in GitLab 13.0. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: freeze_period_id - description: The ID of the freeze period - type: integer - format: int32 - required: true - responses: - '200': - description: Get a freeze period - schema: - "$ref": "#/definitions/API_Entities_FreezePeriod" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - freeze_periods - operationId: getApiV4ProjectsIdFreezePeriodsFreezePeriodId - put: - summary: Update a freeze period - description: Updates a freeze period for the given `freeze_period_id`. This - feature was introduced in GitLab 13.0. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: freeze_period_id - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdFreezePeriodsFreezePeriodId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdFreezePeriodsFreezePeriodId" - responses: - '200': - description: Update a freeze period - schema: - "$ref": "#/definitions/API_Entities_FreezePeriod" - '400': - description: Bad request - '401': - description: Unauthorized - tags: - - freeze_periods - operationId: putApiV4ProjectsIdFreezePeriodsFreezePeriodId - delete: - summary: Delete a freeze period - description: Deletes a freeze period for the given `freeze_period_id`. This - feature was introduced in GitLab 13.0. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: freeze_period_id - description: The ID of the freeze period - type: integer - format: int32 - required: true - responses: - '401': - description: Unauthorized - '204': - description: Delete a freeze period - schema: - "$ref": "#/definitions/API_Entities_FreezePeriod" - tags: - - freeze_periods - operationId: deleteApiV4ProjectsIdFreezePeriodsFreezePeriodId - "/api/v4/projects/{id}/services": - get: - summary: List all active integrations - description: Get a list of all active project integrations. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: List all active integrations - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: getApiV4ProjectsIdServices - "/api/v4/projects/{id}/services/apple-app-store": - put: - summary: Create/Edit Apple App Store integration - description: Set Apple App Store integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesAppleAppStore - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesAppleAppStore" - responses: - '200': - description: Create/Edit Apple App Store integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesAppleAppStore - "/api/v4/projects/{id}/services/asana": - put: - summary: Create/Edit Asana integration - description: Set Asana integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesAsana - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesAsana" - responses: - '200': - description: Create/Edit Asana integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesAsana - "/api/v4/projects/{id}/services/assembla": - put: - summary: Create/Edit Assembla integration - description: Set Assembla integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesAssembla - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesAssembla" - responses: - '200': - description: Create/Edit Assembla integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesAssembla - "/api/v4/projects/{id}/services/bamboo": - put: - summary: Create/Edit Bamboo integration - description: Set Bamboo integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesBamboo - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesBamboo" - responses: - '200': - description: Create/Edit Bamboo integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesBamboo - "/api/v4/projects/{id}/services/bugzilla": - put: - summary: Create/Edit Bugzilla integration - description: Set Bugzilla integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesBugzilla - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesBugzilla" - responses: - '200': - description: Create/Edit Bugzilla integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesBugzilla - "/api/v4/projects/{id}/services/buildkite": - put: - summary: Create/Edit Buildkite integration - description: Set Buildkite integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesBuildkite - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesBuildkite" - responses: - '200': - description: Create/Edit Buildkite integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesBuildkite - "/api/v4/projects/{id}/services/campfire": - put: - summary: Create/Edit Campfire integration - description: Set Campfire integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesCampfire - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesCampfire" - responses: - '200': - description: Create/Edit Campfire integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesCampfire - "/api/v4/projects/{id}/services/confluence": - put: - summary: Create/Edit Confluence integration - description: Set Confluence integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesConfluence - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesConfluence" - responses: - '200': - description: Create/Edit Confluence integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesConfluence - "/api/v4/projects/{id}/services/custom-issue-tracker": - put: - summary: Create/Edit Custom Issue Tracker integration - description: Set Custom Issue Tracker integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesCustomIssueTracker - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesCustomIssueTracker" - responses: - '200': - description: Create/Edit Custom Issue Tracker integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesCustomIssueTracker - "/api/v4/projects/{id}/services/datadog": - put: - summary: Create/Edit Datadog integration - description: Set Datadog integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesDatadog - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesDatadog" - responses: - '200': - description: Create/Edit Datadog integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesDatadog - "/api/v4/projects/{id}/services/diffblue-cover": - put: - summary: Create/Edit Diffblue Cover integration - description: Set Diffblue Cover integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesDiffblueCover - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesDiffblueCover" - responses: - '200': - description: Create/Edit Diffblue Cover integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesDiffblueCover - "/api/v4/projects/{id}/services/discord": - put: - summary: Create/Edit Discord integration - description: Set Discord integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesDiscord - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesDiscord" - responses: - '200': - description: Create/Edit Discord integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesDiscord - "/api/v4/projects/{id}/services/drone-ci": - put: - summary: Create/Edit Drone Ci integration - description: Set Drone Ci integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesDroneCi - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesDroneCi" - responses: - '200': - description: Create/Edit Drone Ci integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesDroneCi - "/api/v4/projects/{id}/services/emails-on-push": - put: - summary: Create/Edit Emails On Push integration - description: Set Emails On Push integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesEmailsOnPush - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesEmailsOnPush" - responses: - '200': - description: Create/Edit Emails On Push integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesEmailsOnPush - "/api/v4/projects/{id}/services/external-wiki": - put: - summary: Create/Edit External Wiki integration - description: Set External Wiki integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesExternalWiki - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesExternalWiki" - responses: - '200': - description: Create/Edit External Wiki integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesExternalWiki - "/api/v4/projects/{id}/services/gitlab-slack-application": - put: - summary: Create/Edit Gitlab Slack Application integration - description: Set Gitlab Slack Application integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesGitlabSlackApplication - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesGitlabSlackApplication" - responses: - '200': - description: Create/Edit Gitlab Slack Application integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesGitlabSlackApplication - "/api/v4/projects/{id}/services/google-play": - put: - summary: Create/Edit Google Play integration - description: Set Google Play integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesGooglePlay - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesGooglePlay" - responses: - '200': - description: Create/Edit Google Play integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesGooglePlay - "/api/v4/projects/{id}/services/hangouts-chat": - put: - summary: Create/Edit Hangouts Chat integration - description: Set Hangouts Chat integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesHangoutsChat - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesHangoutsChat" - responses: - '200': - description: Create/Edit Hangouts Chat integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesHangoutsChat - "/api/v4/projects/{id}/services/harbor": - put: - summary: Create/Edit Harbor integration - description: Set Harbor integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesHarbor - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesHarbor" - responses: - '200': - description: Create/Edit Harbor integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesHarbor - "/api/v4/projects/{id}/services/irker": - put: - summary: Create/Edit Irker integration - description: Set Irker integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesIrker - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesIrker" - responses: - '200': - description: Create/Edit Irker integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesIrker - "/api/v4/projects/{id}/services/jenkins": - put: - summary: Create/Edit Jenkins integration - description: Set Jenkins integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesJenkins - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesJenkins" - responses: - '200': - description: Create/Edit Jenkins integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesJenkins - "/api/v4/projects/{id}/services/jira": - put: - summary: Create/Edit Jira integration - description: Set Jira integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesJira - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesJira" - responses: - '200': - description: Create/Edit Jira integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesJira - "/api/v4/projects/{id}/services/mattermost-slash-commands": - put: - summary: Create/Edit Mattermost Slash Commands integration - description: Set Mattermost Slash Commands integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesMattermostSlashCommands - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesMattermostSlashCommands" - responses: - '200': - description: Create/Edit Mattermost Slash Commands integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesMattermostSlashCommands - "/api/v4/projects/{id}/services/slack-slash-commands": - put: - summary: Create/Edit Slack Slash Commands integration - description: Set Slack Slash Commands integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesSlackSlashCommands - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesSlackSlashCommands" - responses: - '200': - description: Create/Edit Slack Slash Commands integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesSlackSlashCommands - "/api/v4/projects/{id}/services/packagist": - put: - summary: Create/Edit Packagist integration - description: Set Packagist integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesPackagist - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesPackagist" - responses: - '200': - description: Create/Edit Packagist integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesPackagist - "/api/v4/projects/{id}/services/phorge": - put: - summary: Create/Edit Phorge integration - description: Set Phorge integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesPhorge - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesPhorge" - responses: - '200': - description: Create/Edit Phorge integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesPhorge - "/api/v4/projects/{id}/services/pipelines-email": - put: - summary: Create/Edit Pipelines Email integration - description: Set Pipelines Email integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesPipelinesEmail - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesPipelinesEmail" - responses: - '200': - description: Create/Edit Pipelines Email integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesPipelinesEmail - "/api/v4/projects/{id}/services/pivotaltracker": - put: - summary: Create/Edit Pivotaltracker integration - description: Set Pivotaltracker integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesPivotaltracker - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesPivotaltracker" - responses: - '200': - description: Create/Edit Pivotaltracker integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesPivotaltracker - "/api/v4/projects/{id}/services/prometheus": - put: - summary: Create/Edit Prometheus integration - description: Set Prometheus integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesPrometheus - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesPrometheus" - responses: - '200': - description: Create/Edit Prometheus integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesPrometheus - "/api/v4/projects/{id}/services/pumble": - put: - summary: Create/Edit Pumble integration - description: Set Pumble integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesPumble - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesPumble" - responses: - '200': - description: Create/Edit Pumble integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesPumble - "/api/v4/projects/{id}/services/pushover": - put: - summary: Create/Edit Pushover integration - description: Set Pushover integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesPushover - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesPushover" - responses: - '200': - description: Create/Edit Pushover integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesPushover - "/api/v4/projects/{id}/services/redmine": - put: - summary: Create/Edit Redmine integration - description: Set Redmine integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesRedmine - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesRedmine" - responses: - '200': - description: Create/Edit Redmine integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesRedmine - "/api/v4/projects/{id}/services/ewm": - put: - summary: Create/Edit Ewm integration - description: Set Ewm integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesEwm - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesEwm" - responses: - '200': - description: Create/Edit Ewm integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesEwm - "/api/v4/projects/{id}/services/youtrack": - put: - summary: Create/Edit Youtrack integration - description: Set Youtrack integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesYoutrack - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesYoutrack" - responses: - '200': - description: Create/Edit Youtrack integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesYoutrack - "/api/v4/projects/{id}/services/clickup": - put: - summary: Create/Edit Clickup integration - description: Set Clickup integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesClickup - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesClickup" - responses: - '200': - description: Create/Edit Clickup integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesClickup - "/api/v4/projects/{id}/services/slack": - put: - summary: Create/Edit Slack integration - description: Set Slack integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesSlack - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesSlack" - responses: - '200': - description: Create/Edit Slack integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesSlack - "/api/v4/projects/{id}/services/microsoft-teams": - put: - summary: Create/Edit Microsoft Teams integration - description: Set Microsoft Teams integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesMicrosoftTeams - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesMicrosoftTeams" - responses: - '200': - description: Create/Edit Microsoft Teams integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesMicrosoftTeams - "/api/v4/projects/{id}/services/mattermost": - put: - summary: Create/Edit Mattermost integration - description: Set Mattermost integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesMattermost - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesMattermost" - responses: - '200': - description: Create/Edit Mattermost integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesMattermost - "/api/v4/projects/{id}/services/teamcity": - put: - summary: Create/Edit Teamcity integration - description: Set Teamcity integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesTeamcity - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesTeamcity" - responses: - '200': - description: Create/Edit Teamcity integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesTeamcity - "/api/v4/projects/{id}/services/telegram": - put: - summary: Create/Edit Telegram integration - description: Set Telegram integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesTelegram - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesTelegram" - responses: - '200': - description: Create/Edit Telegram integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesTelegram - "/api/v4/projects/{id}/services/unify-circuit": - put: - summary: Create/Edit Unify Circuit integration - description: Set Unify Circuit integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesUnifyCircuit - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesUnifyCircuit" - responses: - '200': - description: Create/Edit Unify Circuit integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesUnifyCircuit - "/api/v4/projects/{id}/services/webex-teams": - put: - summary: Create/Edit Webex Teams integration - description: Set Webex Teams integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesWebexTeams - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesWebexTeams" - responses: - '200': - description: Create/Edit Webex Teams integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesWebexTeams - "/api/v4/projects/{id}/services/zentao": - put: - summary: Create/Edit Zentao integration - description: Set Zentao integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesZentao - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesZentao" - responses: - '200': - description: Create/Edit Zentao integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesZentao - "/api/v4/projects/{id}/services/squash-tm": - put: - summary: Create/Edit Squash Tm integration - description: Set Squash Tm integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesSquashTm - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesSquashTm" - responses: - '200': - description: Create/Edit Squash Tm integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesSquashTm - "/api/v4/projects/{id}/services/github": - put: - summary: Create/Edit Github integration - description: Set Github integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesGithub - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesGithub" - responses: - '200': - description: Create/Edit Github integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesGithub - "/api/v4/projects/{id}/services/git-guardian": - put: - summary: Create/Edit Git Guardian integration - description: Set Git Guardian integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesGitGuardian - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesGitGuardian" - responses: - '200': - description: Create/Edit Git Guardian integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesGitGuardian - "/api/v4/projects/{id}/services/google-cloud-platform-artifact-registry": - put: - summary: Create/Edit Google Cloud Platform Artifact Registry integration - description: Set Google Cloud Platform Artifact Registry integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry" - responses: - '200': - description: Create/Edit Google Cloud Platform Artifact Registry integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry - "/api/v4/projects/{id}/services/google-cloud-platform-workload-identity-federation": - put: - summary: Create/Edit Google Cloud Platform Workload Identity Federation integration - description: Set Google Cloud Platform Workload Identity Federation integration - for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation" - responses: - '200': - description: Create/Edit Google Cloud Platform Workload Identity Federation - integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation - "/api/v4/projects/{id}/services/mock-ci": - put: - summary: Create/Edit Mock Ci integration - description: Set Mock Ci integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdServicesMockCi - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdServicesMockCi" - responses: - '200': - description: Create/Edit Mock Ci integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesMockCi - "/api/v4/projects/{id}/services/mock-monitoring": - put: - summary: Create/Edit Mock Monitoring integration - description: Set Mock Monitoring integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Create/Edit Mock Monitoring integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdServicesMockMonitoring - "/api/v4/projects/{id}/services/{slug}": - delete: - summary: Disable an integration - description: Disable the integration for a project. Integration settings are - preserved. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: slug - description: The name of the integration - type: string - enum: - - apple-app-store - - asana - - assembla - - bamboo - - bugzilla - - buildkite - - campfire - - confluence - - custom-issue-tracker - - datadog - - diffblue-cover - - discord - - drone-ci - - emails-on-push - - external-wiki - - gitlab-slack-application - - google-play - - hangouts-chat - - harbor - - irker - - jenkins - - jira - - jira-cloud-app - - mattermost-slash-commands - - slack-slash-commands - - packagist - - phorge - - pipelines-email - - pivotaltracker - - prometheus - - pumble - - pushover - - redmine - - ewm - - youtrack - - clickup - - slack - - microsoft-teams - - mattermost - - teamcity - - telegram - - unify-circuit - - webex-teams - - zentao - - squash-tm - - github - - git-guardian - - google-cloud-platform-artifact-registry - - google-cloud-platform-workload-identity-federation - - mock-ci - - mock-monitoring - required: true - responses: - '204': - description: Disable an integration - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: deleteApiV4ProjectsIdServicesSlug - get: - summary: Get an integration settings - description: Get the integration settings for a project. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: slug - description: The name of the integration - type: string - enum: - - apple-app-store - - asana - - assembla - - bamboo - - bugzilla - - buildkite - - campfire - - confluence - - custom-issue-tracker - - datadog - - diffblue-cover - - discord - - drone-ci - - emails-on-push - - external-wiki - - gitlab-slack-application - - google-play - - hangouts-chat - - harbor - - irker - - jenkins - - jira - - jira-cloud-app - - mattermost-slash-commands - - slack-slash-commands - - packagist - - phorge - - pipelines-email - - pivotaltracker - - prometheus - - pumble - - pushover - - redmine - - ewm - - youtrack - - clickup - - slack - - microsoft-teams - - mattermost - - teamcity - - telegram - - unify-circuit - - webex-teams - - zentao - - squash-tm - - github - - git-guardian - - google-cloud-platform-artifact-registry - - google-cloud-platform-workload-identity-federation - - mock-ci - - mock-monitoring - required: true - responses: - '200': - description: Get an integration settings - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegration" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: getApiV4ProjectsIdServicesSlug - "/api/v4/projects/{id}/services/mattermost_slash_commands/trigger": - post: - summary: Trigger a slash command for mattermost-slash-commands - description: Added in GitLab 8.13 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger" - responses: - '201': - description: Trigger a slash command for mattermost-slash-commands - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger - "/api/v4/projects/{id}/services/slack_slash_commands/trigger": - post: - summary: Trigger a slash command for slack-slash-commands - description: Added in GitLab 8.13 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdServicesSlackSlashCommandsTrigger - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdServicesSlackSlashCommandsTrigger" - responses: - '201': - description: Trigger a slash command for slack-slash-commands - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: postApiV4ProjectsIdServicesSlackSlashCommandsTrigger - "/api/v4/projects/{id}/integrations": - get: - summary: List all active integrations - description: Get a list of all active project integrations. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: List all active integrations - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: getApiV4ProjectsIdIntegrations - "/api/v4/projects/{id}/integrations/apple-app-store": - put: - summary: Create/Edit Apple App Store integration - description: Set Apple App Store integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsAppleAppStore - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAppleAppStore" - responses: - '200': - description: Create/Edit Apple App Store integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsAppleAppStore - "/api/v4/projects/{id}/integrations/asana": - put: - summary: Create/Edit Asana integration - description: Set Asana integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsAsana - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAsana" - responses: - '200': - description: Create/Edit Asana integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsAsana - "/api/v4/projects/{id}/integrations/assembla": - put: - summary: Create/Edit Assembla integration - description: Set Assembla integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsAssembla - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAssembla" - responses: - '200': - description: Create/Edit Assembla integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsAssembla - "/api/v4/projects/{id}/integrations/bamboo": - put: - summary: Create/Edit Bamboo integration - description: Set Bamboo integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsBamboo - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBamboo" - responses: - '200': - description: Create/Edit Bamboo integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsBamboo - "/api/v4/projects/{id}/integrations/bugzilla": - put: - summary: Create/Edit Bugzilla integration - description: Set Bugzilla integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsBugzilla - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBugzilla" - responses: - '200': - description: Create/Edit Bugzilla integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsBugzilla - "/api/v4/projects/{id}/integrations/buildkite": - put: - summary: Create/Edit Buildkite integration - description: Set Buildkite integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsBuildkite - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBuildkite" - responses: - '200': - description: Create/Edit Buildkite integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsBuildkite - "/api/v4/projects/{id}/integrations/campfire": - put: - summary: Create/Edit Campfire integration - description: Set Campfire integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsCampfire - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsCampfire" - responses: - '200': - description: Create/Edit Campfire integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsCampfire - "/api/v4/projects/{id}/integrations/confluence": - put: - summary: Create/Edit Confluence integration - description: Set Confluence integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsConfluence - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsConfluence" - responses: - '200': - description: Create/Edit Confluence integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsConfluence - "/api/v4/projects/{id}/integrations/custom-issue-tracker": - put: - summary: Create/Edit Custom Issue Tracker integration - description: Set Custom Issue Tracker integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsCustomIssueTracker - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsCustomIssueTracker" - responses: - '200': - description: Create/Edit Custom Issue Tracker integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsCustomIssueTracker - "/api/v4/projects/{id}/integrations/datadog": - put: - summary: Create/Edit Datadog integration - description: Set Datadog integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsDatadog - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDatadog" - responses: - '200': - description: Create/Edit Datadog integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsDatadog - "/api/v4/projects/{id}/integrations/diffblue-cover": - put: - summary: Create/Edit Diffblue Cover integration - description: Set Diffblue Cover integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsDiffblueCover - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDiffblueCover" - responses: - '200': - description: Create/Edit Diffblue Cover integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsDiffblueCover - "/api/v4/projects/{id}/integrations/discord": - put: - summary: Create/Edit Discord integration - description: Set Discord integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsDiscord - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDiscord" - responses: - '200': - description: Create/Edit Discord integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsDiscord - "/api/v4/projects/{id}/integrations/drone-ci": - put: - summary: Create/Edit Drone Ci integration - description: Set Drone Ci integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsDroneCi - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDroneCi" - responses: - '200': - description: Create/Edit Drone Ci integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsDroneCi - "/api/v4/projects/{id}/integrations/emails-on-push": - put: - summary: Create/Edit Emails On Push integration - description: Set Emails On Push integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsEmailsOnPush - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsEmailsOnPush" - responses: - '200': - description: Create/Edit Emails On Push integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsEmailsOnPush - "/api/v4/projects/{id}/integrations/external-wiki": - put: - summary: Create/Edit External Wiki integration - description: Set External Wiki integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsExternalWiki - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsExternalWiki" - responses: - '200': - description: Create/Edit External Wiki integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsExternalWiki - "/api/v4/projects/{id}/integrations/gitlab-slack-application": - put: - summary: Create/Edit Gitlab Slack Application integration - description: Set Gitlab Slack Application integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsGitlabSlackApplication - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGitlabSlackApplication" - responses: - '200': - description: Create/Edit Gitlab Slack Application integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsGitlabSlackApplication - "/api/v4/projects/{id}/integrations/google-play": - put: - summary: Create/Edit Google Play integration - description: Set Google Play integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsGooglePlay - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGooglePlay" - responses: - '200': - description: Create/Edit Google Play integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsGooglePlay - "/api/v4/projects/{id}/integrations/hangouts-chat": - put: - summary: Create/Edit Hangouts Chat integration - description: Set Hangouts Chat integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsHangoutsChat - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsHangoutsChat" - responses: - '200': - description: Create/Edit Hangouts Chat integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsHangoutsChat - "/api/v4/projects/{id}/integrations/harbor": - put: - summary: Create/Edit Harbor integration - description: Set Harbor integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsHarbor - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsHarbor" - responses: - '200': - description: Create/Edit Harbor integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsHarbor - "/api/v4/projects/{id}/integrations/irker": - put: - summary: Create/Edit Irker integration - description: Set Irker integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsIrker - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsIrker" - responses: - '200': - description: Create/Edit Irker integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsIrker - "/api/v4/projects/{id}/integrations/jenkins": - put: - summary: Create/Edit Jenkins integration - description: Set Jenkins integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsJenkins - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsJenkins" - responses: - '200': - description: Create/Edit Jenkins integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsJenkins - "/api/v4/projects/{id}/integrations/jira": - put: - summary: Create/Edit Jira integration - description: Set Jira integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsJira - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsJira" - responses: - '200': - description: Create/Edit Jira integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsJira - "/api/v4/projects/{id}/integrations/mattermost-slash-commands": - put: - summary: Create/Edit Mattermost Slash Commands integration - description: Set Mattermost Slash Commands integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsMattermostSlashCommands - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMattermostSlashCommands" - responses: - '200': - description: Create/Edit Mattermost Slash Commands integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsMattermostSlashCommands - "/api/v4/projects/{id}/integrations/slack-slash-commands": - put: - summary: Create/Edit Slack Slash Commands integration - description: Set Slack Slash Commands integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsSlackSlashCommands - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSlackSlashCommands" - responses: - '200': - description: Create/Edit Slack Slash Commands integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsSlackSlashCommands - "/api/v4/projects/{id}/integrations/packagist": - put: - summary: Create/Edit Packagist integration - description: Set Packagist integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsPackagist - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPackagist" - responses: - '200': - description: Create/Edit Packagist integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsPackagist - "/api/v4/projects/{id}/integrations/phorge": - put: - summary: Create/Edit Phorge integration - description: Set Phorge integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsPhorge - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPhorge" - responses: - '200': - description: Create/Edit Phorge integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsPhorge - "/api/v4/projects/{id}/integrations/pipelines-email": - put: - summary: Create/Edit Pipelines Email integration - description: Set Pipelines Email integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsPipelinesEmail - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPipelinesEmail" - responses: - '200': - description: Create/Edit Pipelines Email integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsPipelinesEmail - "/api/v4/projects/{id}/integrations/pivotaltracker": - put: - summary: Create/Edit Pivotaltracker integration - description: Set Pivotaltracker integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsPivotaltracker - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPivotaltracker" - responses: - '200': - description: Create/Edit Pivotaltracker integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsPivotaltracker - "/api/v4/projects/{id}/integrations/prometheus": - put: - summary: Create/Edit Prometheus integration - description: Set Prometheus integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsPrometheus - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPrometheus" - responses: - '200': - description: Create/Edit Prometheus integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsPrometheus - "/api/v4/projects/{id}/integrations/pumble": - put: - summary: Create/Edit Pumble integration - description: Set Pumble integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsPumble - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPumble" - responses: - '200': - description: Create/Edit Pumble integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsPumble - "/api/v4/projects/{id}/integrations/pushover": - put: - summary: Create/Edit Pushover integration - description: Set Pushover integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsPushover - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPushover" - responses: - '200': - description: Create/Edit Pushover integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsPushover - "/api/v4/projects/{id}/integrations/redmine": - put: - summary: Create/Edit Redmine integration - description: Set Redmine integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsRedmine - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsRedmine" - responses: - '200': - description: Create/Edit Redmine integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsRedmine - "/api/v4/projects/{id}/integrations/ewm": - put: - summary: Create/Edit Ewm integration - description: Set Ewm integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsEwm - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsEwm" - responses: - '200': - description: Create/Edit Ewm integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsEwm - "/api/v4/projects/{id}/integrations/youtrack": - put: - summary: Create/Edit Youtrack integration - description: Set Youtrack integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsYoutrack - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsYoutrack" - responses: - '200': - description: Create/Edit Youtrack integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsYoutrack - "/api/v4/projects/{id}/integrations/clickup": - put: - summary: Create/Edit Clickup integration - description: Set Clickup integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsClickup - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsClickup" - responses: - '200': - description: Create/Edit Clickup integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsClickup - "/api/v4/projects/{id}/integrations/slack": - put: - summary: Create/Edit Slack integration - description: Set Slack integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsSlack - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSlack" - responses: - '200': - description: Create/Edit Slack integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsSlack - "/api/v4/projects/{id}/integrations/microsoft-teams": - put: - summary: Create/Edit Microsoft Teams integration - description: Set Microsoft Teams integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsMicrosoftTeams - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMicrosoftTeams" - responses: - '200': - description: Create/Edit Microsoft Teams integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsMicrosoftTeams - "/api/v4/projects/{id}/integrations/mattermost": - put: - summary: Create/Edit Mattermost integration - description: Set Mattermost integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsMattermost - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMattermost" - responses: - '200': - description: Create/Edit Mattermost integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsMattermost - "/api/v4/projects/{id}/integrations/teamcity": - put: - summary: Create/Edit Teamcity integration - description: Set Teamcity integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsTeamcity - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsTeamcity" - responses: - '200': - description: Create/Edit Teamcity integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsTeamcity - "/api/v4/projects/{id}/integrations/telegram": - put: - summary: Create/Edit Telegram integration - description: Set Telegram integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsTelegram - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsTelegram" - responses: - '200': - description: Create/Edit Telegram integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsTelegram - "/api/v4/projects/{id}/integrations/unify-circuit": - put: - summary: Create/Edit Unify Circuit integration - description: Set Unify Circuit integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsUnifyCircuit - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsUnifyCircuit" - responses: - '200': - description: Create/Edit Unify Circuit integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsUnifyCircuit - "/api/v4/projects/{id}/integrations/webex-teams": - put: - summary: Create/Edit Webex Teams integration - description: Set Webex Teams integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsWebexTeams - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsWebexTeams" - responses: - '200': - description: Create/Edit Webex Teams integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsWebexTeams - "/api/v4/projects/{id}/integrations/zentao": - put: - summary: Create/Edit Zentao integration - description: Set Zentao integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsZentao - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsZentao" - responses: - '200': - description: Create/Edit Zentao integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsZentao - "/api/v4/projects/{id}/integrations/squash-tm": - put: - summary: Create/Edit Squash Tm integration - description: Set Squash Tm integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsSquashTm - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSquashTm" - responses: - '200': - description: Create/Edit Squash Tm integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsSquashTm - "/api/v4/projects/{id}/integrations/github": - put: - summary: Create/Edit Github integration - description: Set Github integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsGithub - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGithub" - responses: - '200': - description: Create/Edit Github integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsGithub - "/api/v4/projects/{id}/integrations/git-guardian": - put: - summary: Create/Edit Git Guardian integration - description: Set Git Guardian integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsGitGuardian - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGitGuardian" - responses: - '200': - description: Create/Edit Git Guardian integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsGitGuardian - "/api/v4/projects/{id}/integrations/google-cloud-platform-artifact-registry": - put: - summary: Create/Edit Google Cloud Platform Artifact Registry integration - description: Set Google Cloud Platform Artifact Registry integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry" - responses: - '200': - description: Create/Edit Google Cloud Platform Artifact Registry integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry - "/api/v4/projects/{id}/integrations/google-cloud-platform-workload-identity-federation": - put: - summary: Create/Edit Google Cloud Platform Workload Identity Federation integration - description: Set Google Cloud Platform Workload Identity Federation integration - for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation" - responses: - '200': - description: Create/Edit Google Cloud Platform Workload Identity Federation - integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation - "/api/v4/projects/{id}/integrations/mock-ci": - put: - summary: Create/Edit Mock Ci integration - description: Set Mock Ci integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdIntegrationsMockCi - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMockCi" - responses: - '200': - description: Create/Edit Mock Ci integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsMockCi - "/api/v4/projects/{id}/integrations/mock-monitoring": - put: - summary: Create/Edit Mock Monitoring integration - description: Set Mock Monitoring integration for a project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Create/Edit Mock Monitoring integration - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: putApiV4ProjectsIdIntegrationsMockMonitoring - "/api/v4/projects/{id}/integrations/{slug}": - delete: - summary: Disable an integration - description: Disable the integration for a project. Integration settings are - preserved. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: slug - description: The name of the integration - type: string - enum: - - apple-app-store - - asana - - assembla - - bamboo - - bugzilla - - buildkite - - campfire - - confluence - - custom-issue-tracker - - datadog - - diffblue-cover - - discord - - drone-ci - - emails-on-push - - external-wiki - - gitlab-slack-application - - google-play - - hangouts-chat - - harbor - - irker - - jenkins - - jira - - jira-cloud-app - - mattermost-slash-commands - - slack-slash-commands - - packagist - - phorge - - pipelines-email - - pivotaltracker - - prometheus - - pumble - - pushover - - redmine - - ewm - - youtrack - - clickup - - slack - - microsoft-teams - - mattermost - - teamcity - - telegram - - unify-circuit - - webex-teams - - zentao - - squash-tm - - github - - git-guardian - - google-cloud-platform-artifact-registry - - google-cloud-platform-workload-identity-federation - - mock-ci - - mock-monitoring - required: true - responses: - '204': - description: Disable an integration - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: deleteApiV4ProjectsIdIntegrationsSlug - get: - summary: Get an integration settings - description: Get the integration settings for a project. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: slug - description: The name of the integration - type: string - enum: - - apple-app-store - - asana - - assembla - - bamboo - - bugzilla - - buildkite - - campfire - - confluence - - custom-issue-tracker - - datadog - - diffblue-cover - - discord - - drone-ci - - emails-on-push - - external-wiki - - gitlab-slack-application - - google-play - - hangouts-chat - - harbor - - irker - - jenkins - - jira - - jira-cloud-app - - mattermost-slash-commands - - slack-slash-commands - - packagist - - phorge - - pipelines-email - - pivotaltracker - - prometheus - - pumble - - pushover - - redmine - - ewm - - youtrack - - clickup - - slack - - microsoft-teams - - mattermost - - teamcity - - telegram - - unify-circuit - - webex-teams - - zentao - - squash-tm - - github - - git-guardian - - google-cloud-platform-artifact-registry - - google-cloud-platform-workload-identity-federation - - mock-ci - - mock-monitoring - required: true - responses: - '200': - description: Get an integration settings - schema: - "$ref": "#/definitions/API_Entities_ProjectIntegration" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: getApiV4ProjectsIdIntegrationsSlug - "/api/v4/projects/{id}/integrations/mattermost_slash_commands/trigger": - post: - summary: Trigger a slash command for mattermost-slash-commands - description: Added in GitLab 8.13 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger" - responses: - '201': - description: Trigger a slash command for mattermost-slash-commands - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger - "/api/v4/projects/{id}/integrations/slack_slash_commands/trigger": - post: - summary: Trigger a slash command for slack-slash-commands - description: Added in GitLab 8.13 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger" - responses: - '201': - description: Trigger a slash command for slack-slash-commands - '401': - description: Unauthorized - '404': - description: Not found - tags: - - integrations - operationId: postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger - "/api/v4/projects/{id}/invitations": - post: - summary: Invite non-members by email address to a group or project. - description: This feature was introduced in GitLab 13.6 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - name: postApiV4ProjectsIdInvitations - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdInvitations" - responses: - '201': - description: Invite non-members by email address to a group or project. - schema: - "$ref": "#/definitions/API_Entities_Invitation" - tags: - - invitations - operationId: postApiV4ProjectsIdInvitations - get: - summary: Get a list of group or project invitations viewable by the authenticated - user - description: This feature was introduced in GitLab 13.6 - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: query - description: A query string to search for members - type: string - required: false - responses: - '200': - description: Get a list of group or project invitations viewable by the - authenticated user - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Invitation" - tags: - - invitations - operationId: getApiV4ProjectsIdInvitations - "/api/v4/projects/{id}/invitations/{email}": - put: - description: Updates a group or project invitation. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: email - description: The email address of the invitation - type: string - required: true - - name: putApiV4ProjectsIdInvitationsEmail - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdInvitationsEmail" - responses: - '200': - description: Updates a group or project invitation. - schema: - "$ref": "#/definitions/API_Entities_Invitation" - tags: - - invitations - operationId: putApiV4ProjectsIdInvitationsEmail - delete: - description: Removes an invitation from a group or project. - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: email - description: The email address of the invitation - type: string - required: true - responses: - '204': - description: Removes an invitation from a group or project. - '403': - description: Forbidden - '404': - description: Not found - '409': - description: Could not delete invitation - tags: - - invitations - operationId: deleteApiV4ProjectsIdInvitationsEmail - "/api/v4/projects/{id}/issues/{issue_iid}/links": - get: - summary: List issue relations - description: Get a list of a given issue’s linked issues, sorted by the relationship - creation datetime (ascending).Issues are filtered according to the user authorizations. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: issue_iid - description: The internal ID of a project’s issue - type: integer - format: int32 - required: true - responses: - '200': - description: List issue relations - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_RelatedIssue" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - issue_links - operationId: getApiV4ProjectsIdIssuesIssueIidLinks - post: - summary: Create an issue link - description: Creates a two-way relation between two issues.The user must be - allowed to update both issues to succeed. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: issue_iid - description: The internal ID of a project’s issue - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdIssuesIssueIidLinks - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdIssuesIssueIidLinks" - responses: - '201': - description: Create an issue link - schema: - "$ref": "#/definitions/API_Entities_IssueLink" - '400': - description: Bad Request - '401': - description: Unauthorized - tags: - - issue_links - operationId: postApiV4ProjectsIdIssuesIssueIidLinks - "/api/v4/projects/{id}/issues/{issue_iid}/links/{issue_link_id}": - get: - summary: Get an issue link - description: Gets details about an issue link. This feature was introduced in - GitLab 15.1. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: issue_iid - description: The internal ID of a project’s issue - type: integer - format: int32 - required: true - - in: path - name: issue_link_id - description: ID of an issue relationship - type: string - required: true - responses: - '200': - description: Get an issue link - schema: - "$ref": "#/definitions/API_Entities_IssueLink" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - issue_links - operationId: getApiV4ProjectsIdIssuesIssueIidLinksIssueLinkId - delete: - summary: Delete an issue link - description: Deletes an issue link, thus removes the two-way relationship. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: issue_iid - description: The internal ID of a project’s issue - type: integer - format: int32 - required: true - - in: path - name: issue_link_id - description: The ID of an issue relationship - type: string - required: true - responses: - '401': - description: Unauthorized - '204': - description: Delete an issue link - schema: - "$ref": "#/definitions/API_Entities_IssueLink" - '404': - description: Not found - tags: - - issue_links - operationId: deleteApiV4ProjectsIdIssuesIssueIidLinksIssueLinkId - "/api/v4/projects/{id}/ci/lint": - get: - summary: Validates a CI YAML configuration with a namespace - description: |- - Checks if a project’s .gitlab-ci.yml configuration in a given commit (by default HEAD of the - project’s default branch) is valid - produces: - - application/json - parameters: - - in: query - name: sha - description: 'Deprecated: Use content_ref instead' - type: string - required: false - - in: query - name: content_ref - description: The CI/CD configuration content is taken from this commit SHA, - branch or tag. Defaults to the HEAD of the project's default branch - type: string - required: false - - in: query - name: dry_run - description: Run pipeline creation simulation, or only do static check. This - is false by default - type: boolean - default: false - required: false - - in: query - name: include_jobs - description: |- - If the list of jobs that would exist in a static check or pipeline - simulation should be included in the response. This is false by default - type: boolean - required: false - - in: query - name: ref - description: 'Deprecated: Use dry_run_ref instead' - type: string - required: false - - in: query - name: dry_run_ref - description: Branch or tag used as context when executing a dry run. Defaults - to the default branch of the project. Only used when dry_run is true - type: string - required: false - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Validates a CI YAML configuration with a namespace - schema: - "$ref": "#/definitions/API_Entities_Ci_Lint_Result" - '404': - description: Not found - tags: - - ci_lint - operationId: getApiV4ProjectsIdCiLint - post: - summary: Validate a CI YAML configuration with a namespace - description: Checks if CI/CD YAML configuration is valid. This endpoint has - namespace specific context - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdCiLint - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdCiLint" - responses: - '200': - description: Validate a CI YAML configuration with a namespace - schema: - "$ref": "#/definitions/API_Entities_Ci_Lint_Result" - tags: - - ci_lint - operationId: postApiV4ProjectsIdCiLint - "/api/v4/projects/{id}/packages/maven/*path/{file_name}": - get: - summary: Download the maven package file at a project level - description: This feature was introduced in GitLab 11.3 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: path - description: Package path - type: string - required: true - example: foo/bar/mypkg/1.0-SNAPSHOT - - in: path - name: file_name - description: Package file name - type: string - required: true - example: mypkg-1.0-SNAPSHOT.jar - responses: - '200': - description: Download the maven package file at a project level - '302': - description: Download the maven package file at a project level - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - maven_packages - operationId: getApiV4ProjectsIdPackagesMaven*pathFileName - put: - summary: Upload the maven package file - description: This feature was introduced in GitLab 11.3 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: file_name - description: Package file name - type: string - required: true - example: mypkg-1.0-SNAPSHOT.pom - - name: putApiV4ProjectsIdPackagesMaven*pathFileName - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdPackagesMaven*pathFileName" - responses: - '200': - description: Upload the maven package file - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - '422': - description: Unprocessable Entity - tags: - - maven_packages - operationId: putApiV4ProjectsIdPackagesMaven*pathFileName - "/api/v4/projects/{id}/packages/maven/*path/{file_name}/authorize": - put: - summary: Workhorse authorize the maven package file upload - description: This feature was introduced in GitLab 11.3 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: file_name - description: Package file name - type: string - required: true - example: mypkg-1.0-SNAPSHOT.pom - - name: putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize" - responses: - '200': - description: Workhorse authorize the maven package file upload - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - maven_packages - operationId: putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize - "/api/v4/projects/{id}/members": - get: - description: Gets a list of group or project members viewable by the authenticated - user. - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: query - name: query - description: A query string to search for members - type: string - required: false - - in: query - name: user_ids - description: Array of user ids to look up for membership - type: array - items: - type: integer - format: int32 - required: false - - in: query - name: skip_users - description: Array of user ids to be skipped for membership - type: array - items: - type: integer - format: int32 - required: false - - in: query - name: show_seat_info - description: Show seat information for members - type: boolean - required: false - - in: query - name: with_saml_identity - description: List only members with linked SAML identity - type: boolean - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Gets a list of group or project members viewable by the authenticated - user. - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Member" - tags: - - members - operationId: getApiV4ProjectsIdMembers - post: - description: Adds a member to a group or project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - name: postApiV4ProjectsIdMembers - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdMembers" - responses: - '201': - description: Adds a member to a group or project. - schema: - "$ref": "#/definitions/API_Entities_Member" - tags: - - members - operationId: postApiV4ProjectsIdMembers - "/api/v4/projects/{id}/members/all": - get: - description: Gets a list of group or project members viewable by the authenticated - user, including those who gained membership through ancestor group. - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: query - name: query - description: A query string to search for members - type: string - required: false - - in: query - name: user_ids - description: Array of user ids to look up for membership - type: array - items: - type: integer - format: int32 - required: false - - in: query - name: show_seat_info - description: Show seat information for members - type: boolean - required: false - - in: query - name: state - description: Filter results by member state - type: string - enum: - - awaiting - - active - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Gets a list of group or project members viewable by the authenticated - user, including those who gained membership through ancestor group. - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Member" - tags: - - members - operationId: getApiV4ProjectsIdMembersAll - "/api/v4/projects/{id}/members/{user_id}": - get: - description: Gets a member of a group or project. - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: user_id - description: The user ID of the member - type: integer - format: int32 - required: true - responses: - '200': - description: Gets a member of a group or project. - schema: - "$ref": "#/definitions/API_Entities_Member" - tags: - - members - operationId: getApiV4ProjectsIdMembersUserId - put: - description: Updates a member of a group or project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: user_id - description: The user ID of the new member - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdMembersUserId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdMembersUserId" - responses: - '200': - description: Updates a member of a group or project. - schema: - "$ref": "#/definitions/API_Entities_Member" - tags: - - members - operationId: putApiV4ProjectsIdMembersUserId - delete: - description: Removes a user from a group or project. - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: user_id - description: The user ID of the member - type: integer - format: int32 - required: true - - in: query - name: skip_subresources - description: Flag indicating if the deletion of direct memberships of the - removed member in subgroups and projects should be skipped - type: boolean - default: false - required: false - - in: query - name: unassign_issuables - description: Flag indicating if the removed member should be unassigned from - any issues or merge requests within given group or project - type: boolean - default: false - required: false - responses: - '204': - description: Removes a user from a group or project. - tags: - - members - operationId: deleteApiV4ProjectsIdMembersUserId - "/api/v4/projects/{id}/members/all/{user_id}": - get: - description: Gets a member of a group or project, including those who gained - membership through ancestor group - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: user_id - description: The user ID of the member - type: integer - format: int32 - required: true - responses: - '200': - description: Gets a member of a group or project, including those who gained - membership through ancestor group - schema: - "$ref": "#/definitions/API_Entities_Member" - tags: - - members - operationId: getApiV4ProjectsIdMembersAllUserId - "/api/v4/projects/{id}/create_ci_config": - post: - description: Creates merge request for missing ci config in project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '201': - description: Creates merge request for missing ci config in project - tags: - - projects - operationId: postApiV4ProjectsIdCreateCiConfig - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_estimate": - post: - summary: Set a time estimate for a merge_request - description: Sets an estimated time of work for this merge_request. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge_request. - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate" - responses: - '201': - description: Set a time estimate for a merge_request - schema: - "$ref": "#/definitions/API_Entities_IssuableTimeStats" - '401': - description: Unauthorized - '400': - description: Bad request - '404': - description: Not found - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_time_estimate": - post: - summary: Reset the time estimate for a project merge_request - description: Resets the estimated time for this merge_request to 0 seconds. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge_request. - type: integer - format: int32 - required: true - responses: - '201': - description: Reset the time estimate for a project merge_request - schema: - "$ref": "#/definitions/API_Entities_IssuableTimeStats" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidResetTimeEstimate - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/add_spent_time": - post: - summary: Add spent time for a merge_request - description: Adds spent time for this merge_request. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge_request. - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime" - responses: - '201': - description: Add spent time for a merge_request - schema: - "$ref": "#/definitions/API_Entities_IssuableTimeStats" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_spent_time": - post: - summary: Reset spent time for a merge_request - description: Resets the total spent time for this merge_request to 0 seconds. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge_request - type: integer - format: int32 - required: true - responses: - '201': - description: Reset spent time for a merge_request - schema: - "$ref": "#/definitions/API_Entities_IssuableTimeStats" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidResetSpentTime - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_stats": - get: - summary: Get time tracking stats - description: Get time tracking stats - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge_request - type: integer - format: int32 - required: true - responses: - '200': - description: Get time tracking stats - schema: - "$ref": "#/definitions/API_Entities_IssuableTimeStats" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidTimeStats - "/api/v4/projects/{id}/merge_requests": - get: - summary: List project merge requests - description: Get all merge requests for this project. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: query - name: author_id - description: Returns merge requests created by the given user `id`. Mutually - exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. - type: integer - format: int32 - required: false - - in: query - name: author_username - description: Returns merge requests created by the given `username`. Mutually - exclusive with `author_id`. - type: string - required: false - - in: query - name: assignee_id - description: Returns merge requests assigned to the given user `id`. `None` - returns unassigned merge requests. `Any` returns merge requests with an - assignee. - type: integer - format: int32 - required: false - - in: query - name: assignee_username - description: Returns merge requests created by the given `username`. Mutually - exclusive with `author_id`. - type: array - items: - type: string - required: false - - in: query - name: reviewer_username - description: Returns merge requests which have the user as a reviewer with - the given `username`. `None` returns merge requests with no reviewers. `Any` - returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. - Introduced in GitLab 13.8. - type: string - required: false - - in: query - name: labels - description: Returns merge requests matching a comma-separated list of labels. - `None` lists all merge requests with no labels. `Any` lists all merge requests - with at least one label. Predefined names are case-insensitive. - type: array - items: - type: string - required: false - - in: query - name: milestone - description: Returns merge requests for a specific milestone. `None` returns - merge requests with no milestone. `Any` returns merge requests that have - an assigned milestone. - type: string - required: false - - in: query - name: my_reaction_emoji - description: Returns merge requests reacted by the authenticated user by the - given `emoji`. `None` returns issues not given a reaction. `Any` returns - issues given at least one reaction. - type: string - required: false - - in: query - name: reviewer_id - description: Returns merge requests which have the user as a reviewer with - the given user `id`. `None` returns merge requests with no reviewers. `Any` - returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. - type: integer - format: int32 - required: false - - in: query - name: state - description: Returns `all` merge requests or just those that are `opened`, - `closed`, `locked`, or `merged`. - type: string - default: all - enum: - - opened - - closed - - locked - - merged - - all - required: false - - in: query - name: order_by - description: Returns merge requests ordered by `created_at`, `label_priority`, - `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields. - Introduced in GitLab 14.8. - type: string - default: created_at - enum: - - created_at - - label_priority - - milestone_due - - popularity - - priority - - title - - updated_at - required: false - - in: query - name: sort - description: Returns merge requests sorted in `asc` or `desc` order. - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: with_labels_details - description: 'If `true`, response returns more details for each label in labels - field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`' - type: boolean - default: false - required: false - - in: query - name: with_merge_status_recheck - description: If `true`, this projection requests (but does not guarantee) - that the `merge_status` field be recalculated asynchronously. Introduced - in GitLab 13.0. - type: boolean - default: false - required: false - - in: query - name: created_after - description: Returns merge requests created on or after the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: created_before - description: Returns merge requests created on or before the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: updated_after - description: Returns merge requests updated on or after the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: updated_before - description: Returns merge requests updated on or before the given time. Expected - in ISO 8601 format. - type: string - format: date-time - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: view - description: If simple, returns the `iid`, URL, title, description, and basic - state of merge request - type: string - enum: - - simple - required: false - - in: query - name: scope - description: 'Returns merge requests for the given scope: `created_by_me`, - `assigned_to_me` or `all`' - type: string - enum: - - created-by-me - - assigned-to-me - - created_by_me - - assigned_to_me - - all - required: false - - in: query - name: source_branch - description: Returns merge requests with the given source branch - type: string - required: false - - in: query - name: source_project_id - description: Returns merge requests with the given source project id - type: integer - format: int32 - required: false - - in: query - name: target_branch - description: Returns merge requests with the given target branch - type: string - required: false - - in: query - name: search - description: Search merge requests against their `title` and `description`. - type: string - required: false - - in: query - name: in - description: Modify the scope of the search attribute. `title`, `description`, - or a string joining them with comma. - type: string - required: false - example: title,description - - in: query - name: wip - description: Filter merge requests against their `wip` status. `yes` to return - only draft merge requests, `no` to return non-draft merge requests. - type: string - enum: - - 'yes' - - 'no' - required: false - - in: query - name: not[author_id] - description: "`` Returns merge requests created by the given user - `id`. Mutually exclusive with `author_username`. Combine with `scope=all` - or `scope=assigned_to_me`." - type: integer - format: int32 - required: false - - in: query - name: not[author_username] - description: "`` Returns merge requests created by the given `username`. - Mutually exclusive with `author_id`." - type: string - required: false - - in: query - name: not[assignee_id] - description: "`` Returns merge requests assigned to the given user - `id`. `None` returns unassigned merge requests. `Any` returns merge requests - with an assignee." - type: integer - format: int32 - required: false - - in: query - name: not[assignee_username] - description: "`` Returns merge requests created by the given `username`. - Mutually exclusive with `author_id`." - type: array - items: - type: string - required: false - - in: query - name: not[reviewer_username] - description: "`` Returns merge requests which have the user as a - reviewer with the given `username`. `None` returns merge requests with no - reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive - with `reviewer_id`. Introduced in GitLab 13.8." - type: string - required: false - - in: query - name: not[labels] - description: "`` Returns merge requests matching a comma-separated - list of labels. `None` lists all merge requests with no labels. `Any` lists - all merge requests with at least one label. Predefined names are case-insensitive." - type: array - items: - type: string - required: false - - in: query - name: not[milestone] - description: "`` Returns merge requests for a specific milestone. - `None` returns merge requests with no milestone. `Any` returns merge requests - that have an assigned milestone." - type: string - required: false - - in: query - name: not[my_reaction_emoji] - description: "`` Returns merge requests reacted by the authenticated - user by the given `emoji`. `None` returns issues not given a reaction. `Any` - returns issues given at least one reaction." - type: string - required: false - - in: query - name: not[reviewer_id] - description: "`` Returns merge requests which have the user as a - reviewer with the given user `id`. `None` returns merge requests with no - reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive - with `reviewer_username`." - type: integer - format: int32 - required: false - - in: query - name: deployed_before - description: Returns merge requests deployed before the given date/time. Expected - in ISO 8601 format. - type: string - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: deployed_after - description: Returns merge requests deployed after the given date/time. Expected - in ISO 8601 format - type: string - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: environment - description: Returns merge requests deployed to the given environment - type: string - required: false - example: '2019-03-15T08:00:00Z' - - in: query - name: approved - description: Filters merge requests by their `approved` status. `yes` returns - only approved merge requests. `no` returns only non-approved merge requests. - type: string - enum: - - 'yes' - - 'no' - required: false - - in: query - name: merge_user_id - description: Returns merge requests which have been merged by the user with - the given user `id`. Mutually exclusive with `merge_user_username`. - type: integer - format: int32 - required: false - - in: query - name: merge_user_username - description: Returns merge requests which have been merged by the user with - the given `username`. Mutually exclusive with `merge_user_id`. - type: string - required: false - - in: query - name: approver_ids - description: Return merge requests which have specified the users with the - given IDs as an individual approver - type: string - required: false - - in: query - name: approved_by_ids - description: Return merge requests which have been approved by the specified - users with the given IDs - type: string - required: false - - in: query - name: approved_by_usernames - description: |- - Return merge requests which have been approved by the specified users with the given - usernames - type: string - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: iids - description: Returns the request having the given `iid`. - type: array - items: - type: integer - format: int32 - required: false - responses: - '200': - description: List project merge requests - schema: - "$ref": "#/definitions/API_Entities_MergeRequestBasic" - '401': - description: Unauthorized - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequests - post: - summary: Create merge request - description: Create a new merge request. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - name: postApiV4ProjectsIdMergeRequests - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdMergeRequests" - responses: - '201': - description: Create merge request - schema: - "$ref": "#/definitions/API_Entities_MergeRequest" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - '409': - description: Conflict - '422': - description: Unprocessable entity - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequests - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}": - delete: - summary: Delete a merge request - description: 'Only for administrators and project owners. Deletes the merge - request in question. ' - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge request. - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a merge request - '401': - description: Unauthorized - '404': - description: Not found - '412': - description: Precondition failed - tags: - - merge_requests - operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIid - get: - summary: Get single merge request - description: 'Shows information about a single merge request. Note: the `changes_count` - value in the response is a string, not an integer. This is because when an - merge request has too many changes to display and store, it is capped at 1,000. - In that case, the API returns the string `"1000+"` for the changes count.' - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge request. - type: integer - format: int32 - required: true - - in: query - name: render_html - description: If `true`, response includes rendered HTML for title and description. - type: boolean - required: false - - in: query - name: include_diverged_commits_count - description: If `true`, response includes the commits behind the target branch. - type: boolean - required: false - - in: query - name: include_rebase_in_progress - description: If `true`, response includes whether a rebase operation is in - progress. - type: boolean - required: false - responses: - '200': - description: Get single merge request - schema: - "$ref": "#/definitions/API_Entities_MergeRequest" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIid - put: - summary: Update merge request - description: Updates an existing merge request. You can change the target branch, - title, or even close the merge request. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdMergeRequestsMergeRequestIid - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIid" - responses: - '200': - description: Update merge request - schema: - "$ref": "#/definitions/API_Entities_MergeRequest" - '400': - description: Bad request - '404': - description: Not found - '409': - description: Conflict - '422': - description: Unprocessable entity - tags: - - merge_requests - operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIid - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/participants": - get: - summary: Get single merge request participants - description: Get a list of merge request participants. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: Get single merge request participants - schema: - "$ref": "#/definitions/API_Entities_UserBasic" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidParticipants - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reviewers": - get: - summary: Get single merge request reviewers - description: Get a list of merge request reviewers. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: Get single merge request reviewers - schema: - "$ref": "#/definitions/API_Entities_MergeRequestReviewer" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidReviewers - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/commits": - get: - summary: Get single merge request commits - description: Get a list of merge request commits. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: Get single merge request commits - schema: - "$ref": "#/definitions/API_Entities_Commit" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidCommits - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits": - get: - summary: List merge request context commits - description: Get a list of merge request context commits. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: List merge request context commits - schema: - "$ref": "#/definitions/API_Entities_Commit" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits - post: - summary: Create merge request context commits - description: Create a list of merge request context commits. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits" - responses: - '201': - description: Create merge request context commits - schema: - "$ref": "#/definitions/API_Entities_Commit" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits - delete: - summary: Delete merge request context commits - description: Delete a list of merge request context commits. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: query - name: commits - description: The context commits’ SHA. - type: array - items: - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '204': - description: Delete merge request context commits - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - merge_requests - operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/changes": - get: - summary: Get single merge request changes - description: Shows information about the merge request including its files and - changes. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: query - name: unidiff - description: A diff in a Unified diff format - type: boolean - default: false - required: false - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: Get single merge request changes - schema: - "$ref": "#/definitions/API_Entities_MergeRequestChanges" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidChanges - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/diffs": - get: - summary: Get the merge request diffs - description: Get a list of merge request diffs. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: unidiff - description: A diff in a Unified diff format - type: boolean - default: false - required: false - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: Get the merge request diffs - schema: - "$ref": "#/definitions/API_Entities_Diff" - '403': - description: Forbidden - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDiffs - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/pipelines": - get: - summary: Get single merge request pipelines - description: Get a list of merge request pipelines. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: Get single merge request pipelines - schema: - "$ref": "#/definitions/API_Entities_Ci_PipelineBasic" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines - post: - summary: Create merge request pipeline - description: 'Create a new pipeline for a merge request. A pipeline created - via this endpoint doesn’t run a regular branch/tag pipeline. It requires `.gitlab-ci.yml` - to be configured with `only: [merge_requests]` to create jobs.' - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '201': - description: Create merge request pipeline - schema: - "$ref": "#/definitions/API_Entities_Ci_Pipeline" - '400': - description: Bad request - '404': - description: Not found - '405': - description: Method not allowed - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge": - put: - summary: Merge a merge request - description: Accept and merge changes submitted with the merge request using - this API. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge" - responses: - '200': - description: Merge a merge request - schema: - "$ref": "#/definitions/API_Entities_MergeRequest" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - '405': - description: Method not allowed - '409': - description: Conflict - '422': - description: Unprocessable entity - tags: - - merge_requests - operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge_ref": - get: - summary: Returns the up to date merge-ref HEAD commit - description: Returns the up to date merge-ref HEAD commit - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: Returns the up to date merge-ref HEAD commit - '400': - description: Bad request - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidMergeRef - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/cancel_merge_when_pipeline_succeeds": - post: - summary: Cancel Merge When Pipeline Succeeds - description: Cancel merge if "Merge When Pipeline Succeeds" is enabled - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '201': - description: Cancel Merge When Pipeline Succeeds - schema: - "$ref": "#/definitions/API_Entities_MergeRequest" - '401': - description: Unauthorized - '404': - description: Not found - '405': - description: Method not allowed - '406': - description: Not acceptable - tags: - - merge_requests - operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidCancelMergeWhenPipelineSucceeds - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/rebase": - put: - summary: Rebase a merge request - description: Automatically rebase the `source_branch` of the merge request against - its `target_branch`. This feature was added in GitLab 11.6 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase" - responses: - '200': - description: Rebase a merge request - '403': - description: Forbidden - '404': - description: Not found - '409': - description: Conflict - tags: - - merge_requests - operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/closes_issues": - get: - summary: List issues that close on merge - description: Get all the issues that would be closed by merging the provided - merge request. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project. - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: path - name: merge_request_iid - type: integer - format: int32 - required: true - responses: - '200': - description: List issues that close on merge - schema: - "$ref": "#/definitions/API_Entities_MRNote" - '404': - description: Not found - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidClosesIssues - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions": - get: - summary: Get a list of merge request diff versions - description: This feature was introduced in GitLab 8.12. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge request - type: integer - format: int32 - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get a list of merge request diff versions - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_MergeRequestDiff" - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidVersions - "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions/{version_id}": - get: - summary: Get a single merge request diff version - description: This feature was introduced in GitLab 8.12. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: merge_request_iid - description: The internal ID of the merge request - type: integer - format: int32 - required: true - - in: path - name: version_id - description: The ID of the merge request diff version - type: integer - format: int32 - required: true - - in: query - name: unidiff - description: A diff in a Unified diff format - type: boolean - default: false - required: false - responses: - '200': - description: Get a single merge request diff version - schema: - "$ref": "#/definitions/API_Entities_MergeRequestDiffFull" - tags: - - merge_requests - operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidVersionsVersionId - "/api/v4/projects/{id}/packages/{package_id}/package_files": - get: - summary: List package files - description: Get a list of package files of a single package - produces: - - application/json - parameters: - - in: path - name: id - description: ID or URL-encoded path of the project - type: string - required: true - - in: path - name: package_id - description: ID of a package - type: integer - format: int32 - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List package files - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_PackageFile" - tags: - - package_files - operationId: getApiV4ProjectsIdPackagesPackageIdPackageFiles - "/api/v4/projects/{id}/packages/{package_id}/package_files/{package_file_id}": - delete: - summary: Delete a package file - description: This feature was introduced in GitLab 13.12 - produces: - - application/json - parameters: - - in: path - name: id - description: ID or URL-encoded path of the project - type: string - required: true - - in: path - name: package_id - description: ID of a package - type: integer - format: int32 - required: true - - in: path - name: package_file_id - description: ID of a package file - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a package file - '403': - description: Forbidden - '404': - description: Not found - tags: - - package_files - operationId: deleteApiV4ProjectsIdPackagesPackageIdPackageFilesPackageFileId - "/api/v4/projects/{id}/pages": - delete: - summary: Unpublish pages - description: Remove pages. The user must have administrator access. This feature - was introduced in GitLab 12.6 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - responses: - '204': - description: Unpublish pages - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - pages - operationId: deleteApiV4ProjectsIdPages - patch: - summary: Update pages settings - description: Update page settings for a project. User must have administrative - access. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: patchApiV4ProjectsIdPages - in: body - required: true - schema: - "$ref": "#/definitions/patchApiV4ProjectsIdPages" - responses: - '200': - description: Update pages settings - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - pages - operationId: patchApiV4ProjectsIdPages - get: - summary: Get pages settings - description: Get pages URL and other settings. This feature was introduced in - Gitlab 16.8 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - responses: - '200': - description: Get pages settings - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - pages - operationId: getApiV4ProjectsIdPages - "/api/v4/projects/{id}/pages/domains": - get: - description: Get all pages domains - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get all pages domains - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_PagesDomain" - tags: - - pages_domains - operationId: getApiV4ProjectsIdPagesDomains - post: - description: Create a new pages domain - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - name: postApiV4ProjectsIdPagesDomains - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdPagesDomains" - responses: - '201': - description: Create a new pages domain - schema: - "$ref": "#/definitions/API_Entities_PagesDomain" - tags: - - projects - operationId: postApiV4ProjectsIdPagesDomains - "/api/v4/projects/{id}/pages/domains/{domain}": - get: - description: Get a single pages domain - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: domain - description: The domain - type: string - required: true - responses: - '200': - description: Get a single pages domain - schema: - "$ref": "#/definitions/API_Entities_PagesDomain" - tags: - - projects - operationId: getApiV4ProjectsIdPagesDomainsDomain - put: - description: Updates a pages domain - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: domain - description: The domain - type: string - required: true - - name: putApiV4ProjectsIdPagesDomainsDomain - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdPagesDomainsDomain" - responses: - '200': - description: Updates a pages domain - tags: - - projects - operationId: putApiV4ProjectsIdPagesDomainsDomain - delete: - description: Delete a pages domain - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project owned by the authenticated - user - type: string - required: true - - in: path - name: domain - description: The domain - type: string - required: true - responses: - '204': - description: Delete a pages domain - tags: - - projects - operationId: deleteApiV4ProjectsIdPagesDomainsDomain - "/api/v4/projects/{id}/avatar": - get: - summary: Download a project avatar - description: This feature was introduced in GitLab 16.9 - produces: - - application/json - parameters: - - in: path - name: id - description: ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Download a project avatar - tags: - - project_avatar - operationId: getApiV4ProjectsIdAvatar - "/api/v4/projects/{id}/clusters": - get: - summary: List project clusters - description: This feature was introduced in GitLab 11.7. Returns a list of project - clusters. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List project clusters - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Cluster" - '403': - description: Forbidden - tags: - - clusters - operationId: getApiV4ProjectsIdClusters - "/api/v4/projects/{id}/clusters/{cluster_id}": - get: - summary: Get a single project cluster - description: This feature was introduced in GitLab 11.7. Gets a single project - cluster. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: cluster_id - description: The cluster ID - type: integer - format: int32 - required: true - responses: - '200': - description: Get a single project cluster - schema: - "$ref": "#/definitions/API_Entities_ClusterProject" - '403': - description: Forbidden - '404': - description: Not found - tags: - - clusters - operationId: getApiV4ProjectsIdClustersClusterId - put: - summary: Edit project cluster - description: This feature was introduced in GitLab 11.7. Updates an existing - project cluster. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: cluster_id - description: The cluster ID - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdClustersClusterId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdClustersClusterId" - responses: - '200': - description: Edit project cluster - schema: - "$ref": "#/definitions/API_Entities_ClusterProject" - '400': - description: Validation error - '403': - description: Forbidden - '404': - description: Not found - tags: - - clusters - operationId: putApiV4ProjectsIdClustersClusterId - delete: - summary: Delete project cluster - description: This feature was introduced in GitLab 11.7. Deletes an existing - project cluster. Does not remove existing resources within the connected Kubernetes - cluster. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: cluster_id - description: The Cluster ID - type: integer - format: int32 - required: true - responses: - '403': - description: Forbidden - '204': - description: Delete project cluster - schema: - "$ref": "#/definitions/API_Entities_ClusterProject" - '404': - description: Not found - tags: - - clusters - operationId: deleteApiV4ProjectsIdClustersClusterId - "/api/v4/projects/{id}/clusters/user": - post: - summary: Add existing cluster to project - description: This feature was introduced in GitLab 11.7. Adds an existing Kubernetes - cluster to the project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdClustersUser - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdClustersUser" - responses: - '201': - description: Add existing cluster to project - schema: - "$ref": "#/definitions/API_Entities_ClusterProject" - '400': - description: Validation error - '403': - description: Forbidden - '404': - description: Not found - tags: - - clusters - operationId: postApiV4ProjectsIdClustersUser - "/api/v4/projects/{id}/registry/repositories": - get: - summary: List container repositories within a project - description: This feature was introduced in GitLab 11.8. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: tags - description: Determines if tags should be included - type: boolean - default: false - required: false - - in: query - name: tags_count - description: Determines if the tags count should be included - type: boolean - default: false - required: false - responses: - '200': - description: List container repositories within a project - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ContainerRegistry_Repository" - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - container_registry - operationId: getApiV4ProjectsIdRegistryRepositories - "/api/v4/projects/{id}/registry/repositories/{repository_id}": - delete: - summary: Delete repository - description: This feature was introduced in GitLab 11.8. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: repository_id - description: The ID of the repository - type: integer - format: int32 - required: true - responses: - '204': - description: Success - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - container_registry - operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryId - "/api/v4/projects/{id}/registry/repositories/{repository_id}/tags": - get: - summary: List tags of a repository - description: This feature was introduced in GitLab 11.8. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: repository_id - description: The ID of the repository - type: integer - format: int32 - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List tags of a repository - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ContainerRegistry_Tag" - '401': - description: Unauthorized - '404': - description: Not Found - '405': - description: Method Not Allowed - tags: - - container_registry - operationId: getApiV4ProjectsIdRegistryRepositoriesRepositoryIdTags - delete: - summary: Delete repository tags (in bulk) - description: This feature was introduced in GitLab 11.8. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: repository_id - description: The ID of the repository - type: integer - format: int32 - required: true - - in: query - name: name_regex_delete - description: The tag name regexp to delete, specify .* to delete all - type: string - required: false - - in: query - name: name_regex - description: The tag name regexp to delete, specify .* to delete all - type: string - required: false - - in: query - name: name_regex_keep - description: The tag name regexp to retain - type: string - required: false - - in: query - name: keep_n - description: Keep n of latest tags with matching name - type: integer - format: int32 - required: false - - in: query - name: older_than - description: 'Delete older than: 1h, 1d, 1month' - type: string - required: false - responses: - '204': - description: Success - '400': - description: Bad Request - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - container_registry - operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryIdTags - "/api/v4/projects/{id}/registry/repositories/{repository_id}/tags/{tag_name}": - get: - summary: Get details about a repository tag - description: This feature was introduced in GitLab 11.8. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: repository_id - description: The ID of the repository - type: integer - format: int32 - required: true - - in: path - name: tag_name - description: The name of the tag - type: string - required: true - responses: - '200': - description: Get details about a repository tag - schema: - "$ref": "#/definitions/API_Entities_ContainerRegistry_TagDetails" - '400': - description: Bad Request - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - container_registry - operationId: getApiV4ProjectsIdRegistryRepositoriesRepositoryIdTagsTagName - delete: - summary: Delete repository tag - description: This feature was introduced in GitLab 11.8. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: repository_id - description: The ID of the repository - type: integer - format: int32 - required: true - - in: path - name: tag_name - description: The name of the tag - type: string - required: true - responses: - '204': - description: Success - '400': - description: Bad Request - '401': - description: Unauthorized - '404': - description: Not Found - tags: - - container_registry - operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryIdTagsTagName - "/api/v4/projects/{id}/events": - get: - description: List a project's visible events - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: action - description: Event action to filter on - type: string - required: false - - in: query - name: target_type - description: Event target type to filter on - type: string - enum: - - issue - - milestone - - merge_request - - note - - project - - snippet - - user - - wiki - - design - required: false - - in: query - name: before - description: Include only events created before this date - type: string - format: date - required: false - - in: query - name: after - description: Include only events created after this date - type: string - format: date - required: false - - in: query - name: sort - description: Return events sorted in ascending and descending order - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List a project's visible events - schema: - "$ref": "#/definitions/API_Entities_Event" - tags: - - projects - operationId: getApiV4ProjectsIdEvents - "/api/v4/projects/{id}/export": - get: - summary: Get export status - description: This feature was introduced in GitLab 10.6. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Get export status - schema: - "$ref": "#/definitions/API_Entities_ProjectExportStatus" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_export - operationId: getApiV4ProjectsIdExport - post: - summary: Start export - description: This feature was introduced in GitLab 10.6. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdExport - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdExport" - responses: - '202': - description: Start export - '400': - description: Bad request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '429': - description: Too many requests - '503': - description: Service unavailable - tags: - - project_export - operationId: postApiV4ProjectsIdExport - "/api/v4/projects/{id}/export/download": - get: - summary: Download export - description: This feature was introduced in GitLab 10.6. - produces: - - application/octet-stream - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Download export - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_export - operationId: getApiV4ProjectsIdExportDownload - "/api/v4/projects/{id}/export_relations": - post: - summary: Start relations export - description: This feature was introduced in GitLab 14.4 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdExportRelations - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdExportRelations" - responses: - '202': - description: Start relations export - '400': - description: Bad request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_export - operationId: postApiV4ProjectsIdExportRelations - "/api/v4/projects/{id}/export_relations/download": - get: - summary: Download relations export - description: This feature was introduced in GitLab 14.4 - produces: - - application/octet-stream - - application/gzip - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: relation - description: Project relation name - type: string - required: true - - in: query - name: batched - description: Whether to download in batches - type: boolean - required: false - - in: query - name: batch_number - description: Batch number to download - type: integer - format: int32 - required: false - responses: - '200': - description: Download relations export - '400': - description: Bad request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '500': - description: Internal Server Error - '503': - description: Service unavailable - tags: - - project_export - operationId: getApiV4ProjectsIdExportRelationsDownload - "/api/v4/projects/{id}/export_relations/status": - get: - summary: Relations export status - description: This feature was introduced in GitLab 14.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: relation - description: Project relation name - type: string - required: false - responses: - '200': - description: Relations export status - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_BulkImports_ExportStatus" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_export - operationId: getApiV4ProjectsIdExportRelationsStatus - "/api/v4/projects/{id}/hooks": - get: - summary: List project hooks - description: Get a list of project hooks - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List project hooks - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ProjectHook" - tags: - - project_hooks - operationId: getApiV4ProjectsIdHooks - post: - summary: Add project hook - description: Adds a hook to a specified project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdHooks - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdHooks" - responses: - '201': - description: Add project hook - schema: - "$ref": "#/definitions/API_Entities_ProjectHook" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - project_hooks - operationId: postApiV4ProjectsIdHooks - "/api/v4/projects/{id}/hooks/{hook_id}": - get: - summary: Get project hook - description: Get a specific hook for a project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: hook_id - description: The ID of a project hook - type: integer - format: int32 - required: true - responses: - '200': - description: Get project hook - schema: - "$ref": "#/definitions/API_Entities_ProjectHook" - '404': - description: Not found - tags: - - project_hooks - operationId: getApiV4ProjectsIdHooksHookId - put: - summary: Edit project hook - description: Edits a hook for a specified project. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: hook_id - description: The ID of the project hook - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdHooksHookId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdHooksHookId" - responses: - '200': - description: Edit project hook - schema: - "$ref": "#/definitions/API_Entities_ProjectHook" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - project_hooks - operationId: putApiV4ProjectsIdHooksHookId - delete: - summary: Delete a project hook - description: Removes a hook from a project. This is an idempotent method and - can be called multiple times. Either the hook is available or not. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: hook_id - description: The ID of the project hook - type: integer - format: int32 - required: true - responses: - '404': - description: Not found - '204': - description: Delete a project hook - schema: - "$ref": "#/definitions/API_Entities_ProjectHook" - tags: - - project_hooks - operationId: deleteApiV4ProjectsIdHooksHookId - "/api/v4/projects/import/authorize": - post: - summary: Workhorse authorize the project import upload - description: This feature was introduced in GitLab 12.9 - produces: - - application/json - consumes: - - application/json - responses: - '201': - description: Workhorse authorize the project import upload - tags: - - project_import - operationId: postApiV4ProjectsImportAuthorize - "/api/v4/projects/import": - post: - summary: Create a new project import - description: This feature was introduced in GitLab 10.6. - produces: - - application/json - consumes: - - multipart/form-data - parameters: - - in: formData - name: path - description: The new project path and name - type: string - required: true - - in: formData - name: file - description: The project export file to be imported - type: file - required: true - - in: formData - name: name - description: The name of the project to be imported. Defaults to the path - of the project if not provided. - type: string - required: false - - in: formData - name: namespace - description: The ID or name of the namespace that the project will be imported - into. Defaults to the current user's namespace. - type: string - required: false - - in: formData - name: overwrite - description: If there is a project in the same namespace and with the same - name overwrite it - type: boolean - default: false - required: false - - in: formData - name: override_params[description] - description: The description of the project - type: string - required: false - - in: formData - name: override_params[build_git_strategy] - description: The Git strategy. Defaults to `fetch` - type: string - enum: - - fetch - - clone - required: false - - in: formData - name: override_params[build_timeout] - description: Build timeout - type: integer - format: int32 - required: false - - in: formData - name: override_params[auto_cancel_pending_pipelines] - description: Auto-cancel pending pipelines - type: string - enum: - - disabled - - enabled - required: false - - in: formData - name: override_params[ci_config_path] - description: The path to CI config file. Defaults to `.gitlab-ci.yml` - type: string - required: false - - in: formData - name: override_params[service_desk_enabled] - description: Disable or enable the service desk - type: boolean - required: false - - in: formData - name: override_params[issues_enabled] - description: Flag indication if the issue tracker is enabled - type: boolean - required: false - - in: formData - name: override_params[merge_requests_enabled] - description: Flag indication if merge requests are enabled - type: boolean - required: false - - in: formData - name: override_params[wiki_enabled] - description: Flag indication if the wiki is enabled - type: boolean - required: false - - in: formData - name: override_params[jobs_enabled] - description: Flag indication if jobs are enabled - type: boolean - required: false - - in: formData - name: override_params[snippets_enabled] - description: Flag indication if snippets are enabled - type: boolean - required: false - - in: formData - name: override_params[issues_access_level] - description: Issues access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[repository_access_level] - description: Repository access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[merge_requests_access_level] - description: Merge requests access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[forking_access_level] - description: Forks access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[wiki_access_level] - description: Wiki access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[builds_access_level] - description: Builds access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[snippets_access_level] - description: Snippets access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[pages_access_level] - description: Pages access level. One of `disabled`, `private`, `enabled` or - `public` - type: string - enum: - - disabled - - private - - enabled - - public - required: false - - in: formData - name: override_params[analytics_access_level] - description: Analytics access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[container_registry_access_level] - description: Controls visibility of the container registry. One of `disabled`, - `private` or `enabled`. `private` will make the container registry accessible - only to project members (reporter role and above). `enabled` will make the - container registry accessible to everyone who has access to the project. - `disabled` will disable the container registry - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[security_and_compliance_access_level] - description: Security and compliance access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[releases_access_level] - description: Releases access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[environments_access_level] - description: Environments access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[feature_flags_access_level] - description: Feature flags access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[infrastructure_access_level] - description: Infrastructure access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[monitor_access_level] - description: Monitor access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[model_experiments_access_level] - description: Model experiments access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[model_registry_access_level] - description: Model registry access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[emails_disabled] - description: 'Deprecated: Use emails_enabled instead.' - type: boolean - required: false - - in: formData - name: override_params[emails_enabled] - description: Enable email notifications - type: boolean - required: false - - in: formData - name: override_params[show_default_award_emojis] - description: Show default award emojis - type: boolean - required: false - - in: formData - name: override_params[show_diff_preview_in_email] - description: Include the code diff preview in merge request notification emails - type: boolean - required: false - - in: formData - name: override_params[warn_about_potentially_unwanted_characters] - description: Warn about potentially unwanted characters - type: boolean - required: false - - in: formData - name: override_params[enforce_auth_checks_on_uploads] - description: Enforce auth check on uploads - type: boolean - required: false - - in: formData - name: override_params[shared_runners_enabled] - description: Flag indication if shared runners are enabled for that project - type: boolean - required: false - - in: formData - name: override_params[group_runners_enabled] - description: Flag indication if group runners are enabled for that project - type: boolean - required: false - - in: formData - name: override_params[resolve_outdated_diff_discussions] - description: Automatically resolve merge request diff threads on lines changed - with a push - type: boolean - required: false - - in: formData - name: override_params[remove_source_branch_after_merge] - description: Remove the source branch by default after merge - type: boolean - required: false - - in: formData - name: override_params[container_registry_enabled] - description: 'Deprecated: Use :container_registry_access_level instead. Flag - indication if the container registry is enabled for that project' - type: boolean - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][cadence] - description: Container expiration policy cadence for recurring job - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][keep_n] - description: Container expiration policy number of images to keep - type: integer - format: int32 - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][older_than] - description: Container expiration policy remove images older than value - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][name_regex] - description: Container expiration policy regex for image removal - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][name_regex_keep] - description: Container expiration policy regex for image retention - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][enabled] - description: Flag indication if container expiration policy is enabled - type: boolean - required: false - - in: formData - name: override_params[lfs_enabled] - description: Flag indication if Git LFS is enabled for that project - type: boolean - required: false - - in: formData - name: override_params[visibility] - description: The visibility of the project. - type: string - enum: - - private - - internal - - public - required: false - - in: formData - name: override_params[public_builds] - description: 'Deprecated: Use public_jobs instead.' - type: boolean - required: false - - in: formData - name: override_params[public_jobs] - description: Perform public builds - type: boolean - required: false - - in: formData - name: override_params[request_access_enabled] - description: Allow users to request member access - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_pipeline_succeeds] - description: Only allow to merge if builds succeed - type: boolean - required: false - - in: formData - name: override_params[allow_merge_on_skipped_pipeline] - description: Allow to merge if pipeline is skipped - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_all_discussions_are_resolved] - description: Only allow to merge if all threads are resolved - type: boolean - required: false - - in: formData - name: override_params[tag_list] - description: 'Deprecated: Use :topics instead' - type: array - items: - type: string - required: false - - in: formData - name: override_params[topics] - description: The list of topics for a project - type: array - items: - type: string - required: false - - in: formData - name: override_params[avatar] - description: Avatar image for project - type: file - required: false - - in: formData - name: override_params[printing_merge_request_link_enabled] - description: Show link to create/view merge request when pushing from the - command line - type: boolean - required: false - - in: formData - name: override_params[merge_method] - description: The merge method used when merging merge requests - type: string - enum: - - ff - - rebase_merge - - merge - required: false - - in: formData - name: override_params[suggestion_commit_message] - description: The commit message used to apply merge request suggestions - type: string - required: false - - in: formData - name: override_params[merge_commit_template] - description: Template used to create merge commit message - type: string - required: false - - in: formData - name: override_params[squash_commit_template] - description: Template used to create squash commit message - type: string - required: false - - in: formData - name: override_params[issue_branch_template] - description: Template used to create a branch from an issue - type: string - required: false - - in: formData - name: override_params[initialize_with_readme] - description: Initialize a project with a README.md - type: boolean - required: false - - in: formData - name: override_params[auto_devops_enabled] - description: Flag indication if Auto DevOps is enabled - type: boolean - required: false - - in: formData - name: override_params[auto_devops_deploy_strategy] - description: Auto Deploy strategy - type: string - enum: - - continuous - - manual - - timed_incremental - required: false - - in: formData - name: override_params[autoclose_referenced_issues] - description: Flag indication if referenced issues auto-closing is enabled - type: boolean - required: false - - in: formData - name: override_params[repository_storage] - description: Which storage shard the repository is on. Available only to admins - type: string - required: false - - in: formData - name: override_params[packages_enabled] - description: Enable project packages feature - type: boolean - required: false - - in: formData - name: override_params[squash_option] - description: Squash default for project. One of `never`, `always`, `default_on`, - or `default_off`. - type: string - enum: - - never - - always - - default_on - - default_off - required: false - - in: formData - name: override_params[mr_default_target_self] - description: Merge requests of this forked project targets itself by default - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_all_status_checks_passed] - description: Blocks merge requests from merging unless all status checks have - passed - type: boolean - required: false - - in: formData - name: override_params[approvals_before_merge] - description: How many approvers should approve merge request by default - type: integer - format: int32 - required: false - - in: formData - name: override_params[mirror] - description: Enables pull mirroring in a project - type: boolean - required: false - - in: formData - name: override_params[mirror_trigger_builds] - description: Pull mirroring triggers builds - type: boolean - required: false - - in: formData - name: override_params[external_authorization_classification_label] - description: The classification label for the project - type: string - required: false - - in: formData - name: override_params[requirements_access_level] - description: Requirements feature access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[prevent_merge_without_jira_issue] - description: Require an associated issue from Jira - type: boolean - required: false - - in: formData - name: file.path - description: Path to locally stored body (generated by Workhorse) - type: string - required: false - - in: formData - name: file.name - description: Real filename as send in Content-Disposition (generated by Workhorse) - type: string - required: false - - in: formData - name: file.type - description: Real content type as send in Content-Type (generated by Workhorse) - type: string - required: false - - in: formData - name: file.size - description: Real size of file (generated by Workhorse) - type: integer - format: int32 - required: false - - in: formData - name: file.md5 - description: MD5 checksum of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.sha1 - description: SHA1 checksum of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.sha256 - description: SHA256 checksum of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.etag - description: Etag of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.remote_id - description: Remote_id of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.remote_url - description: Remote_url of the file (generated by Workhorse) - type: string - required: false - responses: - '201': - description: Create a new project import - schema: - "$ref": "#/definitions/API_Entities_ProjectImportStatus" - '401': - description: Unauthorized - '403': - description: Forbidden - '400': - description: Bad request - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_import - operationId: postApiV4ProjectsImport - "/api/v4/projects/{id}/import": - get: - summary: Get a project import status - description: This feature was introduced in GitLab 10.6. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Get a project import status - schema: - "$ref": "#/definitions/API_Entities_ProjectImportStatus" - '401': - description: Unauthorized - '403': - description: Forbidden - '400': - description: Bad request - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_import - operationId: getApiV4ProjectsIdImport - "/api/v4/projects/remote-import": - post: - summary: Create a new project import using a remote object storage path - description: This feature was introduced in GitLab 13.2. - produces: - - application/json - consumes: - - multipart/form-data - parameters: - - in: formData - name: url - description: The URL for the file. - type: string - required: true - - in: formData - name: path - description: The new project path and name - type: string - required: true - - in: formData - name: name - description: The name of the project to be imported. Defaults to the path - of the project if not provided. - type: string - required: false - - in: formData - name: namespace - description: The ID or name of the namespace that the project will be imported - into. Defaults to the current user's namespace. - type: string - required: false - - in: formData - name: overwrite - description: If there is a project in the same namespace and with the same - name overwrite it - type: boolean - default: false - required: false - - in: formData - name: override_params[description] - description: The description of the project - type: string - required: false - - in: formData - name: override_params[build_git_strategy] - description: The Git strategy. Defaults to `fetch` - type: string - enum: - - fetch - - clone - required: false - - in: formData - name: override_params[build_timeout] - description: Build timeout - type: integer - format: int32 - required: false - - in: formData - name: override_params[auto_cancel_pending_pipelines] - description: Auto-cancel pending pipelines - type: string - enum: - - disabled - - enabled - required: false - - in: formData - name: override_params[ci_config_path] - description: The path to CI config file. Defaults to `.gitlab-ci.yml` - type: string - required: false - - in: formData - name: override_params[service_desk_enabled] - description: Disable or enable the service desk - type: boolean - required: false - - in: formData - name: override_params[issues_enabled] - description: Flag indication if the issue tracker is enabled - type: boolean - required: false - - in: formData - name: override_params[merge_requests_enabled] - description: Flag indication if merge requests are enabled - type: boolean - required: false - - in: formData - name: override_params[wiki_enabled] - description: Flag indication if the wiki is enabled - type: boolean - required: false - - in: formData - name: override_params[jobs_enabled] - description: Flag indication if jobs are enabled - type: boolean - required: false - - in: formData - name: override_params[snippets_enabled] - description: Flag indication if snippets are enabled - type: boolean - required: false - - in: formData - name: override_params[issues_access_level] - description: Issues access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[repository_access_level] - description: Repository access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[merge_requests_access_level] - description: Merge requests access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[forking_access_level] - description: Forks access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[wiki_access_level] - description: Wiki access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[builds_access_level] - description: Builds access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[snippets_access_level] - description: Snippets access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[pages_access_level] - description: Pages access level. One of `disabled`, `private`, `enabled` or - `public` - type: string - enum: - - disabled - - private - - enabled - - public - required: false - - in: formData - name: override_params[analytics_access_level] - description: Analytics access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[container_registry_access_level] - description: Controls visibility of the container registry. One of `disabled`, - `private` or `enabled`. `private` will make the container registry accessible - only to project members (reporter role and above). `enabled` will make the - container registry accessible to everyone who has access to the project. - `disabled` will disable the container registry - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[security_and_compliance_access_level] - description: Security and compliance access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[releases_access_level] - description: Releases access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[environments_access_level] - description: Environments access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[feature_flags_access_level] - description: Feature flags access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[infrastructure_access_level] - description: Infrastructure access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[monitor_access_level] - description: Monitor access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[model_experiments_access_level] - description: Model experiments access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[model_registry_access_level] - description: Model registry access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[emails_disabled] - description: 'Deprecated: Use emails_enabled instead.' - type: boolean - required: false - - in: formData - name: override_params[emails_enabled] - description: Enable email notifications - type: boolean - required: false - - in: formData - name: override_params[show_default_award_emojis] - description: Show default award emojis - type: boolean - required: false - - in: formData - name: override_params[show_diff_preview_in_email] - description: Include the code diff preview in merge request notification emails - type: boolean - required: false - - in: formData - name: override_params[warn_about_potentially_unwanted_characters] - description: Warn about potentially unwanted characters - type: boolean - required: false - - in: formData - name: override_params[enforce_auth_checks_on_uploads] - description: Enforce auth check on uploads - type: boolean - required: false - - in: formData - name: override_params[shared_runners_enabled] - description: Flag indication if shared runners are enabled for that project - type: boolean - required: false - - in: formData - name: override_params[group_runners_enabled] - description: Flag indication if group runners are enabled for that project - type: boolean - required: false - - in: formData - name: override_params[resolve_outdated_diff_discussions] - description: Automatically resolve merge request diff threads on lines changed - with a push - type: boolean - required: false - - in: formData - name: override_params[remove_source_branch_after_merge] - description: Remove the source branch by default after merge - type: boolean - required: false - - in: formData - name: override_params[container_registry_enabled] - description: 'Deprecated: Use :container_registry_access_level instead. Flag - indication if the container registry is enabled for that project' - type: boolean - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][cadence] - description: Container expiration policy cadence for recurring job - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][keep_n] - description: Container expiration policy number of images to keep - type: integer - format: int32 - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][older_than] - description: Container expiration policy remove images older than value - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][name_regex] - description: Container expiration policy regex for image removal - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][name_regex_keep] - description: Container expiration policy regex for image retention - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][enabled] - description: Flag indication if container expiration policy is enabled - type: boolean - required: false - - in: formData - name: override_params[lfs_enabled] - description: Flag indication if Git LFS is enabled for that project - type: boolean - required: false - - in: formData - name: override_params[visibility] - description: The visibility of the project. - type: string - enum: - - private - - internal - - public - required: false - - in: formData - name: override_params[public_builds] - description: 'Deprecated: Use public_jobs instead.' - type: boolean - required: false - - in: formData - name: override_params[public_jobs] - description: Perform public builds - type: boolean - required: false - - in: formData - name: override_params[request_access_enabled] - description: Allow users to request member access - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_pipeline_succeeds] - description: Only allow to merge if builds succeed - type: boolean - required: false - - in: formData - name: override_params[allow_merge_on_skipped_pipeline] - description: Allow to merge if pipeline is skipped - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_all_discussions_are_resolved] - description: Only allow to merge if all threads are resolved - type: boolean - required: false - - in: formData - name: override_params[tag_list] - description: 'Deprecated: Use :topics instead' - type: array - items: - type: string - required: false - - in: formData - name: override_params[topics] - description: The list of topics for a project - type: array - items: - type: string - required: false - - in: formData - name: override_params[avatar] - description: Avatar image for project - type: file - required: false - - in: formData - name: override_params[printing_merge_request_link_enabled] - description: Show link to create/view merge request when pushing from the - command line - type: boolean - required: false - - in: formData - name: override_params[merge_method] - description: The merge method used when merging merge requests - type: string - enum: - - ff - - rebase_merge - - merge - required: false - - in: formData - name: override_params[suggestion_commit_message] - description: The commit message used to apply merge request suggestions - type: string - required: false - - in: formData - name: override_params[merge_commit_template] - description: Template used to create merge commit message - type: string - required: false - - in: formData - name: override_params[squash_commit_template] - description: Template used to create squash commit message - type: string - required: false - - in: formData - name: override_params[issue_branch_template] - description: Template used to create a branch from an issue - type: string - required: false - - in: formData - name: override_params[initialize_with_readme] - description: Initialize a project with a README.md - type: boolean - required: false - - in: formData - name: override_params[auto_devops_enabled] - description: Flag indication if Auto DevOps is enabled - type: boolean - required: false - - in: formData - name: override_params[auto_devops_deploy_strategy] - description: Auto Deploy strategy - type: string - enum: - - continuous - - manual - - timed_incremental - required: false - - in: formData - name: override_params[autoclose_referenced_issues] - description: Flag indication if referenced issues auto-closing is enabled - type: boolean - required: false - - in: formData - name: override_params[repository_storage] - description: Which storage shard the repository is on. Available only to admins - type: string - required: false - - in: formData - name: override_params[packages_enabled] - description: Enable project packages feature - type: boolean - required: false - - in: formData - name: override_params[squash_option] - description: Squash default for project. One of `never`, `always`, `default_on`, - or `default_off`. - type: string - enum: - - never - - always - - default_on - - default_off - required: false - - in: formData - name: override_params[mr_default_target_self] - description: Merge requests of this forked project targets itself by default - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_all_status_checks_passed] - description: Blocks merge requests from merging unless all status checks have - passed - type: boolean - required: false - - in: formData - name: override_params[approvals_before_merge] - description: How many approvers should approve merge request by default - type: integer - format: int32 - required: false - - in: formData - name: override_params[mirror] - description: Enables pull mirroring in a project - type: boolean - required: false - - in: formData - name: override_params[mirror_trigger_builds] - description: Pull mirroring triggers builds - type: boolean - required: false - - in: formData - name: override_params[external_authorization_classification_label] - description: The classification label for the project - type: string - required: false - - in: formData - name: override_params[requirements_access_level] - description: Requirements feature access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[prevent_merge_without_jira_issue] - description: Require an associated issue from Jira - type: boolean - required: false - responses: - '201': - description: Create a new project import using a remote object storage path - schema: - "$ref": "#/definitions/API_Entities_ProjectImportStatus" - '401': - description: Unauthorized - '403': - description: Forbidden - '400': - description: Bad request - '404': - description: Not found - '429': - description: Too many requests - '503': - description: Service unavailable - tags: - - project_import - operationId: postApiV4ProjectsRemoteImport - "/api/v4/projects/import-relation/authorize": - post: - summary: Workhorse authorize the project relation import upload - description: This feature was introduced in GitLab 16.11 - produces: - - application/json - consumes: - - application/json - responses: - '201': - description: Workhorse authorize the project relation import upload - tags: - - project_import - operationId: postApiV4ProjectsImportRelationAuthorize - "/api/v4/projects/import-relation": - post: - summary: Re-import a relation into a project - description: This feature was introduced in GitLab 16.11. - produces: - - application/json - consumes: - - multipart/form-data - parameters: - - in: formData - name: path - description: The project path and name - type: string - required: true - - in: formData - name: file - description: The project export file from which to extract the relation. - type: file - required: true - - in: formData - name: relation - description: The relation to import. Must be one of issues, merge_requests, - ci_pipelines, or milestones. - type: string - required: true - - in: formData - name: file.path - description: Path to locally stored body (generated by Workhorse) - type: string - required: false - - in: formData - name: file.name - description: Real filename as sent in Content-Disposition (generated by Workhorse) - type: string - required: false - - in: formData - name: file.type - description: Real content type as send in Content-Type (generated by Workhorse) - type: string - required: false - - in: formData - name: file.size - description: Real size of file (generated by Workhorse) - type: integer - format: int32 - required: false - - in: formData - name: file.md5 - description: MD5 checksum of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.sha1 - description: SHA1 checksum of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.sha256 - description: SHA256 checksum of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.etag - description: Etag of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.remote_id - description: Remote_id of the file (generated by Workhorse) - type: string - required: false - - in: formData - name: file.remote_url - description: Remote_url of the file (generated by Workhorse) - type: string - required: false - responses: - '201': - description: Re-import a relation into a project - schema: - "$ref": "#/definitions/API_Entities_RelationImportTracker" - '401': - description: Unauthorized - '403': - description: Forbidden - '400': - description: Bad request - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_import - operationId: postApiV4ProjectsImportRelation - "/api/v4/projects/{id}/relation-imports": - get: - summary: Get the statuses of relation imports for specified project - description: This feature was introduced in GitLab 16.11. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Get the statuses of relation imports for specified project - schema: - "$ref": "#/definitions/API_Entities_ProjectImportStatus" - '401': - description: Unauthorized - '403': - description: Forbidden - '400': - description: Bad request - '404': - description: Not found - '503': - description: Service unavailable - tags: - - project_import - operationId: getApiV4ProjectsIdRelationImports - "/api/v4/projects/remote-import-s3": - post: - summary: Create a new project import using a file from AWS S3 - description: This feature was introduced in GitLab 14.9. - produces: - - application/json - consumes: - - multipart/form-data - parameters: - - in: formData - name: region - description: AWS region - type: string - required: true - - in: formData - name: bucket_name - description: Bucket name - type: string - required: true - - in: formData - name: file_key - description: File key - type: string - required: true - - in: formData - name: access_key_id - description: Access key id - type: string - required: true - - in: formData - name: secret_access_key - description: Secret access key - type: string - required: true - - in: formData - name: path - description: The new project path and name - type: string - required: true - - in: formData - name: name - description: The name of the project to be imported. Defaults to the path - of the project if not provided. - type: string - required: false - - in: formData - name: namespace - description: The ID or name of the namespace that the project will be imported - into. Defaults to the current user's namespace. - type: string - required: false - - in: formData - name: overwrite - description: If there is a project in the same namespace and with the same - name overwrite it - type: boolean - default: false - required: false - - in: formData - name: override_params[description] - description: The description of the project - type: string - required: false - - in: formData - name: override_params[build_git_strategy] - description: The Git strategy. Defaults to `fetch` - type: string - enum: - - fetch - - clone - required: false - - in: formData - name: override_params[build_timeout] - description: Build timeout - type: integer - format: int32 - required: false - - in: formData - name: override_params[auto_cancel_pending_pipelines] - description: Auto-cancel pending pipelines - type: string - enum: - - disabled - - enabled - required: false - - in: formData - name: override_params[ci_config_path] - description: The path to CI config file. Defaults to `.gitlab-ci.yml` - type: string - required: false - - in: formData - name: override_params[service_desk_enabled] - description: Disable or enable the service desk - type: boolean - required: false - - in: formData - name: override_params[issues_enabled] - description: Flag indication if the issue tracker is enabled - type: boolean - required: false - - in: formData - name: override_params[merge_requests_enabled] - description: Flag indication if merge requests are enabled - type: boolean - required: false - - in: formData - name: override_params[wiki_enabled] - description: Flag indication if the wiki is enabled - type: boolean - required: false - - in: formData - name: override_params[jobs_enabled] - description: Flag indication if jobs are enabled - type: boolean - required: false - - in: formData - name: override_params[snippets_enabled] - description: Flag indication if snippets are enabled - type: boolean - required: false - - in: formData - name: override_params[issues_access_level] - description: Issues access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[repository_access_level] - description: Repository access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[merge_requests_access_level] - description: Merge requests access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[forking_access_level] - description: Forks access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[wiki_access_level] - description: Wiki access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[builds_access_level] - description: Builds access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[snippets_access_level] - description: Snippets access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[pages_access_level] - description: Pages access level. One of `disabled`, `private`, `enabled` or - `public` - type: string - enum: - - disabled - - private - - enabled - - public - required: false - - in: formData - name: override_params[analytics_access_level] - description: Analytics access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[container_registry_access_level] - description: Controls visibility of the container registry. One of `disabled`, - `private` or `enabled`. `private` will make the container registry accessible - only to project members (reporter role and above). `enabled` will make the - container registry accessible to everyone who has access to the project. - `disabled` will disable the container registry - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[security_and_compliance_access_level] - description: Security and compliance access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[releases_access_level] - description: Releases access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[environments_access_level] - description: Environments access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[feature_flags_access_level] - description: Feature flags access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[infrastructure_access_level] - description: Infrastructure access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[monitor_access_level] - description: Monitor access level. One of `disabled`, `private` or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[model_experiments_access_level] - description: Model experiments access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[model_registry_access_level] - description: Model registry access level. One of `disabled`, `private` or - `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[emails_disabled] - description: 'Deprecated: Use emails_enabled instead.' - type: boolean - required: false - - in: formData - name: override_params[emails_enabled] - description: Enable email notifications - type: boolean - required: false - - in: formData - name: override_params[show_default_award_emojis] - description: Show default award emojis - type: boolean - required: false - - in: formData - name: override_params[show_diff_preview_in_email] - description: Include the code diff preview in merge request notification emails - type: boolean - required: false - - in: formData - name: override_params[warn_about_potentially_unwanted_characters] - description: Warn about potentially unwanted characters - type: boolean - required: false - - in: formData - name: override_params[enforce_auth_checks_on_uploads] - description: Enforce auth check on uploads - type: boolean - required: false - - in: formData - name: override_params[shared_runners_enabled] - description: Flag indication if shared runners are enabled for that project - type: boolean - required: false - - in: formData - name: override_params[group_runners_enabled] - description: Flag indication if group runners are enabled for that project - type: boolean - required: false - - in: formData - name: override_params[resolve_outdated_diff_discussions] - description: Automatically resolve merge request diff threads on lines changed - with a push - type: boolean - required: false - - in: formData - name: override_params[remove_source_branch_after_merge] - description: Remove the source branch by default after merge - type: boolean - required: false - - in: formData - name: override_params[container_registry_enabled] - description: 'Deprecated: Use :container_registry_access_level instead. Flag - indication if the container registry is enabled for that project' - type: boolean - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][cadence] - description: Container expiration policy cadence for recurring job - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][keep_n] - description: Container expiration policy number of images to keep - type: integer - format: int32 - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][older_than] - description: Container expiration policy remove images older than value - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][name_regex] - description: Container expiration policy regex for image removal - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][name_regex_keep] - description: Container expiration policy regex for image retention - type: string - required: false - - in: formData - name: override_params[container_expiration_policy_attributes][enabled] - description: Flag indication if container expiration policy is enabled - type: boolean - required: false - - in: formData - name: override_params[lfs_enabled] - description: Flag indication if Git LFS is enabled for that project - type: boolean - required: false - - in: formData - name: override_params[visibility] - description: The visibility of the project. - type: string - enum: - - private - - internal - - public - required: false - - in: formData - name: override_params[public_builds] - description: 'Deprecated: Use public_jobs instead.' - type: boolean - required: false - - in: formData - name: override_params[public_jobs] - description: Perform public builds - type: boolean - required: false - - in: formData - name: override_params[request_access_enabled] - description: Allow users to request member access - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_pipeline_succeeds] - description: Only allow to merge if builds succeed - type: boolean - required: false - - in: formData - name: override_params[allow_merge_on_skipped_pipeline] - description: Allow to merge if pipeline is skipped - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_all_discussions_are_resolved] - description: Only allow to merge if all threads are resolved - type: boolean - required: false - - in: formData - name: override_params[tag_list] - description: 'Deprecated: Use :topics instead' - type: array - items: - type: string - required: false - - in: formData - name: override_params[topics] - description: The list of topics for a project - type: array - items: - type: string - required: false - - in: formData - name: override_params[avatar] - description: Avatar image for project - type: file - required: false - - in: formData - name: override_params[printing_merge_request_link_enabled] - description: Show link to create/view merge request when pushing from the - command line - type: boolean - required: false - - in: formData - name: override_params[merge_method] - description: The merge method used when merging merge requests - type: string - enum: - - ff - - rebase_merge - - merge - required: false - - in: formData - name: override_params[suggestion_commit_message] - description: The commit message used to apply merge request suggestions - type: string - required: false - - in: formData - name: override_params[merge_commit_template] - description: Template used to create merge commit message - type: string - required: false - - in: formData - name: override_params[squash_commit_template] - description: Template used to create squash commit message - type: string - required: false - - in: formData - name: override_params[issue_branch_template] - description: Template used to create a branch from an issue - type: string - required: false - - in: formData - name: override_params[initialize_with_readme] - description: Initialize a project with a README.md - type: boolean - required: false - - in: formData - name: override_params[auto_devops_enabled] - description: Flag indication if Auto DevOps is enabled - type: boolean - required: false - - in: formData - name: override_params[auto_devops_deploy_strategy] - description: Auto Deploy strategy - type: string - enum: - - continuous - - manual - - timed_incremental - required: false - - in: formData - name: override_params[autoclose_referenced_issues] - description: Flag indication if referenced issues auto-closing is enabled - type: boolean - required: false - - in: formData - name: override_params[repository_storage] - description: Which storage shard the repository is on. Available only to admins - type: string - required: false - - in: formData - name: override_params[packages_enabled] - description: Enable project packages feature - type: boolean - required: false - - in: formData - name: override_params[squash_option] - description: Squash default for project. One of `never`, `always`, `default_on`, - or `default_off`. - type: string - enum: - - never - - always - - default_on - - default_off - required: false - - in: formData - name: override_params[mr_default_target_self] - description: Merge requests of this forked project targets itself by default - type: boolean - required: false - - in: formData - name: override_params[only_allow_merge_if_all_status_checks_passed] - description: Blocks merge requests from merging unless all status checks have - passed - type: boolean - required: false - - in: formData - name: override_params[approvals_before_merge] - description: How many approvers should approve merge request by default - type: integer - format: int32 - required: false - - in: formData - name: override_params[mirror] - description: Enables pull mirroring in a project - type: boolean - required: false - - in: formData - name: override_params[mirror_trigger_builds] - description: Pull mirroring triggers builds - type: boolean - required: false - - in: formData - name: override_params[external_authorization_classification_label] - description: The classification label for the project - type: string - required: false - - in: formData - name: override_params[requirements_access_level] - description: Requirements feature access level. One of `disabled`, `private` - or `enabled` - type: string - enum: - - disabled - - private - - enabled - required: false - - in: formData - name: override_params[prevent_merge_without_jira_issue] - description: Require an associated issue from Jira - type: boolean - required: false - responses: - '201': - description: Create a new project import using a file from AWS S3 - schema: - "$ref": "#/definitions/API_Entities_ProjectImportStatus" - '401': - description: Unauthorized - '403': - description: Forbidden - '400': - description: Bad request - '404': - description: Not found - '429': - description: Too many requests - '503': - description: Service unavailable - tags: - - project_import - operationId: postApiV4ProjectsRemoteImportS3 - "/api/v4/projects/{id}/job_token_scope": - get: - description: Fetch CI_JOB_TOKEN access settings. - produces: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Fetch CI_JOB_TOKEN access settings. - schema: - "$ref": "#/definitions/API_Entities_ProjectJobTokenScope" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - projects_job_token_scope - operationId: getApiV4ProjectsIdJobTokenScope - patch: - description: Patch CI_JOB_TOKEN access settings. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: patchApiV4ProjectsIdJobTokenScope - in: body - required: true - schema: - "$ref": "#/definitions/patchApiV4ProjectsIdJobTokenScope" - responses: - '204': - description: Patch CI_JOB_TOKEN access settings. - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - projects_job_token_scope - operationId: patchApiV4ProjectsIdJobTokenScope - "/api/v4/projects/{id}/job_token_scope/allowlist": - get: - description: Fetch project inbound allowlist for CI_JOB_TOKEN access settings. - produces: - - application/json - parameters: - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Fetch project inbound allowlist for CI_JOB_TOKEN access settings. - schema: - "$ref": "#/definitions/API_Entities_BasicProjectDetails" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - projects_job_token_scope - operationId: getApiV4ProjectsIdJobTokenScopeAllowlist - post: - description: Add target project to allowlist. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: ID of user project - type: integer - format: int32 - required: true - example: 1 - - name: postApiV4ProjectsIdJobTokenScopeAllowlist - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdJobTokenScopeAllowlist" - responses: - '201': - description: Add target project to allowlist. - schema: - "$ref": "#/definitions/API_Entities_BasicProjectDetails" - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - projects_job_token_scope - operationId: postApiV4ProjectsIdJobTokenScopeAllowlist - "/api/v4/projects/{id}/job_token_scope/groups_allowlist": - get: - description: Fetch project groups allowlist for CI_JOB_TOKEN access settings. - produces: - - application/json - parameters: - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Fetch project groups allowlist for CI_JOB_TOKEN access settings. - schema: - "$ref": "#/definitions/API_Entities_BasicProjectDetails" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - projects_job_token_scope - operationId: getApiV4ProjectsIdJobTokenScopeGroupsAllowlist - post: - description: Add target group to allowlist. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: ID of user project - type: integer - format: int32 - required: true - example: 1 - - name: postApiV4ProjectsIdJobTokenScopeGroupsAllowlist - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdJobTokenScopeGroupsAllowlist" - responses: - '201': - description: Add target group to allowlist. - schema: - "$ref": "#/definitions/API_Entities_BasicGroupDetails" - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - projects_job_token_scope - operationId: postApiV4ProjectsIdJobTokenScopeGroupsAllowlist - "/api/v4/projects/{id}/job_token_scope/groups_allowlist/{target_group_id}": - delete: - description: Delete target group from allowlist. - produces: - - application/json - parameters: - - in: path - name: id - description: ID of user project - type: integer - format: int32 - required: true - example: 1 - - in: path - name: target_group_id - description: ID of the group to be removed from the allowlist - type: integer - format: int32 - required: true - example: 2 - responses: - '204': - description: Delete target group from allowlist. - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - projects_job_token_scope - operationId: deleteApiV4ProjectsIdJobTokenScopeGroupsAllowlistTargetGroupId - "/api/v4/projects/{id}/job_token_scope/allowlist/{target_project_id}": - delete: - description: Delete project from allowlist. - produces: - - application/json - parameters: - - in: path - name: id - description: ID of user project - type: integer - format: int32 - required: true - example: 1 - - in: path - name: target_project_id - description: ID of the project to be removed from the allowlist - type: integer - format: int32 - required: true - example: 2 - responses: - '204': - description: Delete project from allowlist. - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - projects_job_token_scope - operationId: deleteApiV4ProjectsIdJobTokenScopeAllowlistTargetProjectId - "/api/v4/projects/{id}/packages": - get: - summary: Get a list of project packages - description: This feature was introduced in GitLab 11.8 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: order_by - description: Return packages ordered by `created_at`, `name`, `version` or - `type` fields. - type: string - default: created_at - enum: - - created_at - - name - - version - - type - required: false - - in: query - name: sort - description: Return packages sorted in `asc` or `desc` order. - type: string - default: asc - enum: - - asc - - desc - required: false - - in: query - name: package_type - description: Return packages of a certain type - type: string - enum: - - maven - - npm - - conan - - nuget - - pypi - - composer - - generic - - golang - - debian - - rubygems - - helm - - terraform_module - - rpm - - ml_model - required: false - - in: query - name: package_name - description: Return packages with this name - type: string - required: false - - in: query - name: package_version - description: Return packages with this version - type: string - required: false - - in: query - name: include_versionless - description: Returns packages without a version - type: boolean - required: false - - in: query - name: status - description: Return packages with specified status - type: string - enum: - - default - - hidden - - processing - - error - - pending_destruction - required: false - responses: - '200': - description: Get a list of project packages - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Package" - '403': - description: Forbidden - '404': - description: Project Not Found - tags: - - project_packages - operationId: getApiV4ProjectsIdPackages - "/api/v4/projects/{id}/packages/{package_id}": - get: - summary: Get a single project package - description: This feature was introduced in GitLab 11.9 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: package_id - description: The ID of a package - type: integer - format: int32 - required: true - responses: - '200': - description: Get a single project package - schema: - "$ref": "#/definitions/API_Entities_Package" - '403': - description: Forbidden - '404': - description: Not Found - tags: - - project_packages - operationId: getApiV4ProjectsIdPackagesPackageId - delete: - summary: Delete a project package - description: This feature was introduced in GitLab 11.9 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: package_id - description: The ID of a package - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a project package - '403': - description: Forbidden - '404': - description: Not Found - tags: - - project_packages - operationId: deleteApiV4ProjectsIdPackagesPackageId - "/api/v4/projects/{id}/packages/{package_id}/pipelines": - get: - summary: Get the pipelines for a single project package - description: This feature was introduced in GitLab 16.1 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - minimum: 1 - maximum: 20 - required: false - example: 20 - - in: path - name: package_id - description: The ID of a package - type: integer - format: int32 - required: true - - in: query - name: cursor - description: Cursor for obtaining the next set of records - type: string - required: false - responses: - '200': - description: Get the pipelines for a single project package - schema: - "$ref": "#/definitions/API_Entities_Package_Pipeline" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - project_packages - operationId: getApiV4ProjectsIdPackagesPackageIdPipelines - "/api/v4/projects/{id}/repository_storage_moves": - get: - summary: Get a list of all project repository storage moves - description: This feature was introduced in GitLab 13.1. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get a list of all project repository storage moves - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove" - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryStorageMoves - post: - summary: Schedule a project repository storage move - description: This feature was introduced in GitLab 13.1. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdRepositoryStorageMoves - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdRepositoryStorageMoves" - responses: - '201': - description: Schedule a project repository storage move - schema: - "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove" - tags: - - projects - operationId: postApiV4ProjectsIdRepositoryStorageMoves - "/api/v4/projects/{id}/repository_storage_moves/{repository_storage_move_id}": - get: - summary: Get a project repository storage move - description: This feature was introduced in GitLab 13.1. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: repository_storage_move_id - description: The ID of a project repository storage move - type: integer - format: int32 - required: true - responses: - '200': - description: Get a project repository storage move - schema: - "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove" - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryStorageMovesRepositoryStorageMoveId - "/api/v4/projects/{id}/snippets": - get: - description: Get all project snippets - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get all project snippets - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ProjectSnippet" - '404': - description: Not found - tags: - - project_snippets - operationId: getApiV4ProjectsIdSnippets - post: - description: Create a new project snippet - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdSnippets - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdSnippets" - responses: - '201': - description: Create a new project snippet - schema: - "$ref": "#/definitions/API_Entities_ProjectSnippet" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - project_snippets - operationId: postApiV4ProjectsIdSnippets - "/api/v4/projects/{id}/snippets/{snippet_id}": - get: - description: Get a single project snippet - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: snippet_id - description: The ID of a project snippet - type: integer - format: int32 - required: true - responses: - '200': - description: Get a single project snippet - schema: - "$ref": "#/definitions/API_Entities_ProjectSnippet" - '404': - description: Not found - tags: - - project_snippets - operationId: getApiV4ProjectsIdSnippetsSnippetId - put: - description: Update an existing project snippet - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: snippet_id - description: The ID of a project snippet - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdSnippetsSnippetId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdSnippetsSnippetId" - responses: - '200': - description: Update an existing project snippet - schema: - "$ref": "#/definitions/API_Entities_ProjectSnippet" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - project_snippets - operationId: putApiV4ProjectsIdSnippetsSnippetId - delete: - description: Delete a project snippet - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: snippet_id - description: The ID of a project snippet - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a project snippet - '400': - description: Validation error - '404': - description: Not found - tags: - - project_snippets - operationId: deleteApiV4ProjectsIdSnippetsSnippetId - "/api/v4/projects/{id}/snippets/{snippet_id}/raw": - get: - description: Get a raw project snippet - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: snippet_id - description: The ID of a project snippet - type: integer - format: int32 - required: true - responses: - '200': - description: Get a raw project snippet - schema: - "$ref": "#/definitions/API_Entities_ProjectSnippet" - '404': - description: Not found - tags: - - project_snippets - operationId: getApiV4ProjectsIdSnippetsSnippetIdRaw - "/api/v4/projects/{id}/snippets/{snippet_id}/files/{ref}/{file_path}/raw": - get: - description: Get raw project snippet file contents from the repository - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: file_path - description: The url encoded path to the file, e.g. lib%2Fclass%2Erb - type: string - required: true - - in: path - name: ref - description: The name of branch, tag or commit - type: string - required: true - - in: path - name: snippet_id - type: integer - format: int32 - required: true - responses: - '200': - description: Get raw project snippet file contents from the repository - schema: - "$ref": "#/definitions/API_Entities_ProjectSnippet" - '404': - description: Not found - tags: - - project_snippets - operationId: getApiV4ProjectsIdSnippetsSnippetIdFilesRefFilePathRaw - "/api/v4/projects/{id}/snippets/{snippet_id}/user_agent_detail": - get: - description: Get the user agent details for a project snippet - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: snippet_id - description: The ID of a project snippet - type: integer - format: int32 - required: true - responses: - '200': - description: Get the user agent details for a project snippet - schema: - "$ref": "#/definitions/API_Entities_UserAgentDetail" - '404': - description: Not found - tags: - - project_snippets - operationId: getApiV4ProjectsIdSnippetsSnippetIdUserAgentDetail - "/api/v4/projects/{id}/snapshot": - get: - summary: Download a (possibly inconsistent) snapshot of a repository - description: This feature was introduced in GitLab 10.7 - produces: - - application/x-tar - parameters: - - in: query - name: wiki - description: Set to true to receive the wiki repository - type: boolean - required: false - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Download a (possibly inconsistent) snapshot of a repository - schema: - type: file - '401': - description: Unauthorized - tags: - - projects - operationId: getApiV4ProjectsIdSnapshot - "/api/v4/projects/{id}/statistics": - get: - description: Get the list of project fetch statistics for the last 30 days - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Get the list of project fetch statistics for the last 30 days - schema: - "$ref": "#/definitions/API_Entities_ProjectDailyStatistics" - '404': - description: 404 Project Not Found - '401': - description: 401 Unauthorized - tags: - - projects - operationId: getApiV4ProjectsIdStatistics - "/api/v4/projects/{id}/templates/{type}": - get: - summary: Get a list of templates available to this project - description: This endpoint was introduced in GitLab 11.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: type - description: The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses|issues|merge_requests) - of the template - type: string - enum: - - dockerfiles - - gitignores - - gitlab_ci_ymls - - licenses - - issues - - merge_requests - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get a list of templates available to this project - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_TemplatesList" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdTemplatesType - "/api/v4/projects/{id}/templates/{type}/{name}": - get: - summary: Download a template available to this project - description: This endpoint was introduced in GitLab 11.4 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: type - description: The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses|issues|merge_requests) - of the template - type: string - enum: - - dockerfiles - - gitignores - - gitlab_ci_ymls - - licenses - - issues - - merge_requests - required: true - - in: path - name: name - description: The key of the template, as obtained from the collection endpoint. - type: string - required: true - example: MIT - - in: query - name: source_template_project_id - description: The project id where a given template is being stored. This is - useful when multiple templates from different projects have the same name - type: integer - format: int32 - required: false - example: 1 - - in: query - name: project - description: The project name to use when expanding placeholders in the template. - Only affects licenses - type: string - required: false - example: GitLab - - in: query - name: fullname - description: The full name of the copyright holder to use when expanding placeholders - in the template. Only affects licenses - type: string - required: false - example: GitLab B.V. - responses: - '200': - description: Download a template available to this project - schema: - "$ref": "#/definitions/API_Entities_License" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdTemplatesTypeName - "/api/v4/projects/{id}/custom_attributes": - get: - description: Get all custom attributes on a project - produces: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get all custom attributes on a project - schema: - "$ref": "#/definitions/API_Entities_CustomAttribute" - tags: - - projects - operationId: getApiV4ProjectsIdCustomAttributes - "/api/v4/projects/{id}/custom_attributes/{key}": - get: - description: Get a custom attribute on a project - produces: - - application/json - parameters: - - in: path - name: key - description: The key of the custom attribute - type: string - required: true - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get a custom attribute on a project - schema: - "$ref": "#/definitions/API_Entities_CustomAttribute" - tags: - - projects - operationId: getApiV4ProjectsIdCustomAttributesKey - put: - description: Set a custom attribute on a project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: key - description: The key of the custom attribute - type: string - required: true - - in: path - name: id - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdCustomAttributesKey - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdCustomAttributesKey" - responses: - '200': - description: Set a custom attribute on a project - tags: - - projects - operationId: putApiV4ProjectsIdCustomAttributesKey - delete: - description: Delete a custom attribute on a project - produces: - - application/json - parameters: - - in: path - name: key - description: The key of the custom attribute - type: string - required: true - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a custom attribute on a project - tags: - - projects - operationId: deleteApiV4ProjectsIdCustomAttributesKey - "/api/v4/projects": - get: - description: Get a list of visible projects for authenticated user - produces: - - application/json - parameters: - - in: query - name: order_by - description: Return projects ordered by field. storage_size, repository_size, - wiki_size, packages_size are only available to admins. Similarity is available - when searching and is limited to projects the user has access to. - type: string - default: created_at - enum: - - id - - name - - path - - created_at - - updated_at - - last_activity_at - - similarity - - storage_size - - repository_size - - wiki_size - - packages_size - required: false - - in: query - name: sort - description: Return projects sorted in ascending and descending order - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: archived - description: Limit by archived status - type: boolean - required: false - - in: query - name: visibility - description: Limit by visibility - type: string - enum: - - private - - internal - - public - required: false - - in: query - name: search - description: Return list of projects matching the search criteria - type: string - required: false - - in: query - name: search_namespaces - description: Include ancestor namespaces when matching search criteria - type: boolean - required: false - - in: query - name: owned - description: Limit by owned by authenticated user - type: boolean - default: false - required: false - - in: query - name: starred - description: Limit by starred status - type: boolean - default: false - required: false - - in: query - name: imported - description: Limit by imported by authenticated user - type: boolean - default: false - required: false - - in: query - name: membership - description: Limit by projects that the current user is a member of - type: boolean - default: false - required: false - - in: query - name: with_issues_enabled - description: Limit by enabled issues feature - type: boolean - default: false - required: false - - in: query - name: with_merge_requests_enabled - description: Limit by enabled merge requests feature - type: boolean - default: false - required: false - - in: query - name: with_programming_language - description: Limit to repositories which use the given programming language - type: string - required: false - - in: query - name: min_access_level - description: Limit by minimum access level of authenticated user - type: integer - format: int32 - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - required: false - - in: query - name: id_after - description: Limit results to projects with IDs greater than the specified - ID - type: integer - format: int32 - required: false - - in: query - name: id_before - description: Limit results to projects with IDs less than the specified ID - type: integer - format: int32 - required: false - - in: query - name: last_activity_after - description: 'Limit results to projects with last_activity after specified - time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: last_activity_before - description: 'Limit results to projects with last_activity before specified - time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: repository_storage - description: Which storage shard the repository is on. Available only to admins - type: string - required: false - - in: query - name: topic - description: Comma-separated list of topics. Limit results to projects having - all topics - type: array - items: - type: string - required: false - - in: query - name: topic_id - description: Limit results to projects with the assigned topic given by the - topic ID - type: integer - format: int32 - required: false - - in: query - name: updated_before - description: 'Return projects updated before the specified datetime. Format: - ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: updated_after - description: 'Return projects updated after the specified datetime. Format: - ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: include_pending_delete - description: Include projects in pending delete state. Can only be set by - admins - type: boolean - required: false - - in: query - name: wiki_checksum_failed - description: Limit by projects where wiki checksum is failed - type: boolean - default: false - required: false - - in: query - name: repository_checksum_failed - description: Limit by projects where repository checksum is failed - type: boolean - default: false - required: false - - in: query - name: include_hidden - description: Include hidden projects. Can only be set by admins - type: boolean - default: false - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: simple - description: Return only the ID, URL, name, and path of each project - type: boolean - default: false - required: false - - in: query - name: statistics - description: Include project statistics - type: boolean - default: false - required: false - - in: query - name: with_custom_attributes - description: Include custom attributes in the response - type: boolean - default: false - required: false - responses: - '200': - description: Get a list of visible projects for authenticated user - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_BasicProjectDetails" - '400': - description: Bad request - tags: - - projects - operationId: getApiV4Projects - post: - description: Create new project - produces: - - application/json - consumes: - - application/json - parameters: - - name: postApiV4Projects - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4Projects" - responses: - '201': - description: Create new project - schema: - "$ref": "#/definitions/API_Entities_Project" - '403': - description: Unauthenticated - '404': - description: Not found - '400': - description: Bad request - tags: - - projects - operationId: postApiV4Projects - "/api/v4/projects/user/{user_id}": - post: - description: Create new project for a specified user. Only available to admin - users. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: user_id - description: The ID of a user - type: integer - format: int32 - required: true - example: 1 - - name: postApiV4ProjectsUserUserId - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsUserUserId" - responses: - '201': - description: Create new project for a specified user. Only available to - admin users. - schema: - "$ref": "#/definitions/API_Entities_Project" - '403': - description: Unauthenticated - '404': - description: Not found - '400': - description: Bad request - tags: - - projects - operationId: postApiV4ProjectsUserUserId - "/api/v4/projects/{id}/share_locations": - get: - description: Returns group that can be shared with the given project - produces: - - application/json - parameters: - - in: path - name: id - description: The id of the project - type: integer - format: int32 - required: true - - in: query - name: search - description: Return list of groups matching the search criteria - type: string - required: false - responses: - '200': - description: Returns group that can be shared with the given project - schema: - "$ref": "#/definitions/API_Entities_Group" - tags: - - projects - operationId: getApiV4ProjectsIdShareLocations - "/api/v4/projects/{id}": - get: - description: Get a single project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: statistics - description: Include project statistics - type: boolean - default: false - required: false - - in: query - name: with_custom_attributes - description: Include custom attributes in the response - type: boolean - default: false - required: false - - in: query - name: license - description: Include project license data - type: boolean - default: false - required: false - responses: - '200': - description: Get a single project - schema: - "$ref": "#/definitions/API_Entities_ProjectWithAccess" - tags: - - projects - operationId: getApiV4ProjectsId - put: - description: Update an existing project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsId" - responses: - '200': - description: Update an existing project - schema: - "$ref": "#/definitions/API_Entities_Project" - '400': - description: Bad request - '403': - description: Unauthenticated - tags: - - projects - operationId: putApiV4ProjectsId - delete: - description: Delete a project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '202': - description: Delete a project - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: deleteApiV4ProjectsId - "/api/v4/projects/{id}/fork": - post: - description: Fork new project for the current user or provided namespace. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdFork - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdFork" - responses: - '201': - description: Fork new project for the current user or provided namespace. - schema: - "$ref": "#/definitions/API_Entities_Project" - '403': - description: Unauthenticated - '404': - description: Not found - '409': - description: Conflict - tags: - - projects - operationId: postApiV4ProjectsIdFork - delete: - description: Remove a forked_from relationship - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '204': - description: Remove a forked_from relationship - '304': - description: Not modified - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: deleteApiV4ProjectsIdFork - "/api/v4/projects/{id}/forks": - get: - description: List forks of this project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: order_by - description: Return projects ordered by field. storage_size, repository_size, - wiki_size, packages_size are only available to admins. Similarity is available - when searching and is limited to projects the user has access to. - type: string - default: created_at - enum: - - id - - name - - path - - created_at - - updated_at - - last_activity_at - - similarity - - storage_size - - repository_size - - wiki_size - - packages_size - required: false - - in: query - name: sort - description: Return projects sorted in ascending and descending order - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: archived - description: Limit by archived status - type: boolean - required: false - - in: query - name: visibility - description: Limit by visibility - type: string - enum: - - private - - internal - - public - required: false - - in: query - name: search - description: Return list of projects matching the search criteria - type: string - required: false - - in: query - name: search_namespaces - description: Include ancestor namespaces when matching search criteria - type: boolean - required: false - - in: query - name: owned - description: Limit by owned by authenticated user - type: boolean - default: false - required: false - - in: query - name: starred - description: Limit by starred status - type: boolean - default: false - required: false - - in: query - name: imported - description: Limit by imported by authenticated user - type: boolean - default: false - required: false - - in: query - name: membership - description: Limit by projects that the current user is a member of - type: boolean - default: false - required: false - - in: query - name: with_issues_enabled - description: Limit by enabled issues feature - type: boolean - default: false - required: false - - in: query - name: with_merge_requests_enabled - description: Limit by enabled merge requests feature - type: boolean - default: false - required: false - - in: query - name: with_programming_language - description: Limit to repositories which use the given programming language - type: string - required: false - - in: query - name: min_access_level - description: Limit by minimum access level of authenticated user - type: integer - format: int32 - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - required: false - - in: query - name: id_after - description: Limit results to projects with IDs greater than the specified - ID - type: integer - format: int32 - required: false - - in: query - name: id_before - description: Limit results to projects with IDs less than the specified ID - type: integer - format: int32 - required: false - - in: query - name: last_activity_after - description: 'Limit results to projects with last_activity after specified - time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: last_activity_before - description: 'Limit results to projects with last_activity before specified - time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: repository_storage - description: Which storage shard the repository is on. Available only to admins - type: string - required: false - - in: query - name: topic - description: Comma-separated list of topics. Limit results to projects having - all topics - type: array - items: - type: string - required: false - - in: query - name: topic_id - description: Limit results to projects with the assigned topic given by the - topic ID - type: integer - format: int32 - required: false - - in: query - name: updated_before - description: 'Return projects updated before the specified datetime. Format: - ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: updated_after - description: 'Return projects updated after the specified datetime. Format: - ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: include_pending_delete - description: Include projects in pending delete state. Can only be set by - admins - type: boolean - required: false - - in: query - name: wiki_checksum_failed - description: Limit by projects where wiki checksum is failed - type: boolean - default: false - required: false - - in: query - name: repository_checksum_failed - description: Limit by projects where repository checksum is failed - type: boolean - default: false - required: false - - in: query - name: include_hidden - description: Include hidden projects. Can only be set by admins - type: boolean - default: false - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: simple - description: Return only the ID, URL, name, and path of each project - type: boolean - default: false - required: false - - in: query - name: with_custom_attributes - description: Include custom attributes in the response - type: boolean - default: false - required: false - responses: - '200': - description: List forks of this project - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Project" - tags: - - projects - operationId: getApiV4ProjectsIdForks - "/api/v4/projects/{id}/pages_access": - get: - description: Check pages access of this project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Check pages access of this project - '403': - description: Unauthenticated - tags: - - projects - operationId: getApiV4ProjectsIdPagesAccess - "/api/v4/projects/{id}/archive": - post: - description: Archive a project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '201': - description: Archive a project - schema: - "$ref": "#/definitions/API_Entities_Project" - '403': - description: Unauthenticated - tags: - - projects - operationId: postApiV4ProjectsIdArchive - "/api/v4/projects/{id}/unarchive": - post: - description: Unarchive a project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '201': - description: Unarchive a project - schema: - "$ref": "#/definitions/API_Entities_Project" - '403': - description: Unauthenticated - tags: - - projects - operationId: postApiV4ProjectsIdUnarchive - "/api/v4/projects/{id}/star": - post: - description: Star a project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '201': - description: Star a project - schema: - "$ref": "#/definitions/API_Entities_Project" - '304': - description: Not modified - '403': - description: Unauthenticated - tags: - - projects - operationId: postApiV4ProjectsIdStar - "/api/v4/projects/{id}/unstar": - post: - description: Unstar a project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '201': - description: Unstar a project - schema: - "$ref": "#/definitions/API_Entities_Project" - '304': - description: Not modified - '403': - description: Unauthenticated - tags: - - projects - operationId: postApiV4ProjectsIdUnstar - "/api/v4/projects/{id}/starrers": - get: - description: Get the users who starred a project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: search - description: Return list of users matching the search criteria - type: string - required: false - example: user - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get the users who starred a project - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_UserBasic" - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdStarrers - "/api/v4/projects/{id}/languages": - get: - description: Get languages in project repository - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Get languages in project repository - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdLanguages - "/api/v4/projects/{id}/fork/{forked_from_id}": - post: - description: Mark this project as forked from another - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: forked_from_id - description: The ID of the project it was forked from - type: string - required: true - example: gitlab - responses: - '201': - description: Mark this project as forked from another - schema: - "$ref": "#/definitions/API_Entities_Project" - '401': - description: Unauthorized - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: postApiV4ProjectsIdForkForkedFromId - "/api/v4/projects/{id}/share": - post: - description: Share the project with a group - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdShare - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdShare" - responses: - '201': - description: Share the project with a group - schema: - "$ref": "#/definitions/API_Entities_ProjectGroupLink" - '400': - description: Bad request - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: postApiV4ProjectsIdShare - "/api/v4/projects/{id}/share/{group_id}": - delete: - description: Remove a group share - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: group_id - description: The ID of the group - type: integer - format: int32 - required: true - responses: - '204': - description: Remove a group share - '400': - description: Bad request - '404': - description: Not found - tags: - - projects - operationId: deleteApiV4ProjectsIdShareGroupId - "/api/v4/projects/{id}/import_project_members/{project_id}": - post: - summary: Import members from another project - description: This feature was introduced in GitLab 14.2 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: project_id - description: The ID of the source project to import the members from. - type: integer - format: int32 - required: true - responses: - '200': - description: Import members from another project - '403': - description: Unauthenticated - '404': - description: Project Not Found - '422': - description: Import failed - tags: - - projects - operationId: postApiV4ProjectsIdImportProjectMembersProjectId - "/api/v4/projects/{id}/uploads/authorize": - post: - summary: Workhorse authorize the file upload - description: This feature was introduced in GitLab 13.11 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Workhorse authorize the file upload - '404': - description: Not found - tags: - - projects - operationId: postApiV4ProjectsIdUploadsAuthorize - "/api/v4/projects/{id}/uploads": - post: - description: Upload a file - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdUploads - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdUploads" - responses: - '201': - description: Upload a file - schema: - "$ref": "#/definitions/API_Entities_ProjectUpload" - '404': - description: Not found - tags: - - projects - operationId: postApiV4ProjectsIdUploads - "/api/v4/projects/{id}/users": - get: - description: Get the users list of a project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: search - description: Return list of users matching the search criteria - type: string - required: false - example: user - - in: query - name: skip_users - description: Filter out users with the specified IDs - type: array - items: - type: integer - format: int32 - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get the users list of a project - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_UserBasic" - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdUsers - "/api/v4/projects/{id}/groups": - get: - description: Get ancestor and shared groups for a project - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: search - description: Return list of groups matching the search criteria - type: string - required: false - example: group - - in: query - name: skip_groups - description: Array of group ids to exclude from list - type: array - items: - type: integer - format: int32 - required: false - - in: query - name: with_shared - description: Include shared groups - type: boolean - default: false - required: false - - in: query - name: shared_visible_only - description: Limit to shared groups user has access to - type: boolean - default: false - required: false - - in: query - name: shared_min_access_level - description: Limit returned shared groups by minimum access level to the project - type: integer - format: int32 - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get ancestor and shared groups for a project - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_PublicGroupDetails" - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: getApiV4ProjectsIdGroups - "/api/v4/projects/{id}/housekeeping": - post: - summary: Start the housekeeping task for a project - description: This feature was introduced in GitLab 9.0. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdHousekeeping - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdHousekeeping" - responses: - '201': - description: Start the housekeeping task for a project - '401': - description: Unauthorized - '403': - description: Unauthenticated - '409': - description: Conflict - tags: - - projects - operationId: postApiV4ProjectsIdHousekeeping - "/api/v4/projects/{id}/repository_size": - post: - summary: Start a task to recalculate repository size for a project - description: This feature was introduced in GitLab 15.0. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '201': - description: Start a task to recalculate repository size for a project - '401': - description: Unauthorized - '403': - description: Unauthenticated - tags: - - projects - operationId: postApiV4ProjectsIdRepositorySize - "/api/v4/projects/{id}/transfer": - put: - description: Transfer a project to a new namespace - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdTransfer - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdTransfer" - responses: - '200': - description: Transfer a project to a new namespace - schema: - "$ref": "#/definitions/API_Entities_Project" - '400': - description: Bad request - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - projects - operationId: putApiV4ProjectsIdTransfer - "/api/v4/projects/{id}/transfer_locations": - get: - description: Get the namespaces to where the project can be transferred - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: search - description: Return list of namespaces matching the search criteria - type: string - required: false - example: search - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get the namespaces to where the project can be transferred - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_PublicGroupDetails" - '403': - description: Unauthenticated - tags: - - projects - operationId: getApiV4ProjectsIdTransferLocations - "/api/v4/projects/{id}/storage": - get: - description: Show the storage information - produces: - - application/json - parameters: - - in: path - name: id - description: ID of a project - type: string - required: true - responses: - '200': - description: Show the storage information - schema: - "$ref": "#/definitions/API_Entities_ProjectRepositoryStorage" - '403': - description: Unauthenticated - tags: - - projects - operationId: getApiV4ProjectsIdStorage - "/api/v4/projects/{id}/restore": - post: - description: Restore a project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '201': - description: Restore a project - schema: - "$ref": "#/definitions/API_Entities_Project" - tags: - - projects - operationId: postApiV4ProjectsIdRestore - "/api/v4/projects/{id}/protected_branches": - get: - description: Get a project's protected branches - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: gitlab-org/gitlab - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: search - description: Search for a protected branch by name - type: string - required: false - example: mai - responses: - '200': - description: Get a project's protected branches - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ProtectedBranch" - '404': - description: 404 Project Not Found - '401': - description: 401 Unauthorized - tags: - - projects - operationId: getApiV4ProjectsIdProtectedBranches - post: - description: Protect a single branch - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: gitlab-org/gitlab - - name: postApiV4ProjectsIdProtectedBranches - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdProtectedBranches" - responses: - '201': - description: Protect a single branch - schema: - "$ref": "#/definitions/API_Entities_ProtectedBranch" - '422': - description: name is missing - '409': - description: Protected branch 'main' already exists - '404': - description: 404 Project Not Found - '401': - description: 401 Unauthorized - tags: - - projects - operationId: postApiV4ProjectsIdProtectedBranches - "/api/v4/projects/{id}/protected_branches/{name}": - get: - description: Get a single protected branch - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: name - description: The name of the branch or wildcard - type: string - required: true - example: main - responses: - '200': - description: Get a single protected branch - schema: - "$ref": "#/definitions/API_Entities_ProtectedBranch" - '404': - description: 404 Project Not Found - '401': - description: 401 Unauthorized - tags: - - projects - operationId: getApiV4ProjectsIdProtectedBranchesName - patch: - description: Update a protected branch - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: name - description: The name of the branch - type: string - required: true - example: main - - name: patchApiV4ProjectsIdProtectedBranchesName - in: body - required: true - schema: - "$ref": "#/definitions/patchApiV4ProjectsIdProtectedBranchesName" - responses: - '200': - description: Update a protected branch - schema: - "$ref": "#/definitions/API_Entities_ProtectedBranch" - '422': - description: Push access levels access level has already been taken - '404': - description: 404 Project Not Found - '401': - description: 401 Unauthorized - '400': - description: 400 Bad request - tags: - - projects - operationId: patchApiV4ProjectsIdProtectedBranchesName - delete: - description: Unprotect a single branch - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: name - description: The name of the protected branch - type: string - required: true - example: main - responses: - '204': - description: Unprotect a single branch - '404': - description: 404 Project Not Found - '401': - description: 401 Unauthorized - tags: - - projects - operationId: deleteApiV4ProjectsIdProtectedBranchesName - "/api/v4/projects/{id}/protected_tags": - get: - summary: Get a project's protected tags - description: This feature was introduced in GitLab 11.3. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get a project's protected tags - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ProtectedTag" - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - protected_tags - operationId: getApiV4ProjectsIdProtectedTags - post: - summary: Protect a single tag or wildcard - description: This feature was introduced in GitLab 11.3. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdProtectedTags - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdProtectedTags" - responses: - '201': - description: Protect a single tag or wildcard - schema: - "$ref": "#/definitions/API_Entities_ProtectedTag" - '403': - description: Unauthenticated - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - protected_tags - operationId: postApiV4ProjectsIdProtectedTags - "/api/v4/projects/{id}/protected_tags/{name}": - get: - summary: Get a single protected tag - description: This feature was introduced in GitLab 11.3. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: name - description: The name of the tag or wildcard - type: string - required: true - example: release* - responses: - '200': - description: Get a single protected tag - schema: - "$ref": "#/definitions/API_Entities_ProtectedTag" - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - protected_tags - operationId: getApiV4ProjectsIdProtectedTagsName - delete: - summary: Unprotect a single tag - description: This feature was introduced in GitLab 11.3. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: name - description: The name of the protected tag - type: string - required: true - example: release-1-0 - responses: - '204': - description: Unprotect a single tag - '403': - description: Unauthenticated - '404': - description: Not found - '412': - description: Precondition Failed - tags: - - protected_tags - operationId: deleteApiV4ProjectsIdProtectedTagsName - "/api/v4/projects/{id}/releases": - get: - summary: List Releases - description: Returns a paginated list of releases. This feature was introduced - in GitLab 11.7. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: order_by - description: The field to use as order. Either `released_at` (default) or - `created_at` - type: string - default: released_at - enum: - - released_at - - created_at - required: false - - in: query - name: sort - description: The direction of the order. Either `desc` (default) for descending - order or `asc` for ascending order - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: include_html_description - description: If `true`, a response includes HTML rendered markdown of the - release description - type: boolean - required: false - - in: query - name: updated_before - description: 'Return releases updated before the specified datetime. Format: - ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - - in: query - name: updated_after - description: 'Return releases updated after the specified datetime. Format: - ISO 8601 YYYY-MM-DDTHH:MM:SSZ' - type: string - format: date-time - required: false - responses: - '200': - description: List Releases - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Release" - tags: - - releases - operationId: getApiV4ProjectsIdReleases - post: - summary: Create a release - description: Creates a release. Developer level access to the project is required - to create a release. This feature was introduced in GitLab 11.7. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdReleases - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdReleases" - responses: - '201': - description: Create a release - schema: - "$ref": "#/definitions/API_Entities_Release" - '400': - description: Bad request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - '409': - description: Conflict - '422': - description: Unprocessable entity - tags: - - releases - operationId: postApiV4ProjectsIdReleases - "/api/v4/projects/{id}/releases/{tag_name}": - get: - summary: Get a release by a tag name - description: Gets a release for the given tag. This feature was introduced in - GitLab 11.7. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: tag_name - description: The Git tag the release is associated with - type: string - required: true - - in: query - name: include_html_description - description: If `true`, a response includes HTML rendered markdown of the - release description - type: boolean - required: false - responses: - '200': - description: Get a release by a tag name - schema: - "$ref": "#/definitions/API_Entities_Release" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - releases - operationId: getApiV4ProjectsIdReleasesTagName - put: - summary: Update a release - description: Updates a release. Developer level access to the project is required - to update a release. This feature was introduced in GitLab 11.7. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: tag_name - description: The Git tag the release is associated with - type: string - required: true - - name: putApiV4ProjectsIdReleasesTagName - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdReleasesTagName" - responses: - '200': - description: Update a release - schema: - "$ref": "#/definitions/API_Entities_Release" - '400': - description: Bad request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - releases - operationId: putApiV4ProjectsIdReleasesTagName - delete: - summary: Delete a release - description: Delete a release. Deleting a release doesn't delete the associated - tag. Maintainer level access to the project is required to delete a release. - This feature was introduced in GitLab 11.7. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: tag_name - description: The Git tag the release is associated with - type: string - required: true - responses: - '400': - description: Bad request - '204': - description: Delete a release - schema: - "$ref": "#/definitions/API_Entities_Release" - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not found - tags: - - releases - operationId: deleteApiV4ProjectsIdReleasesTagName - "/api/v4/projects/{id}/releases/{tag_name}/downloads/*direct_asset_path": - get: - summary: Download a project release asset file - description: This feature was introduced in GitLab 15.4. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: tag_name - description: The Git tag the release is associated with - type: string - required: true - - in: query - name: direct_asset_path - description: The path to the file to download, as specified when creating - the release asset - type: string - required: true - responses: - '200': - description: Download a project release asset file - '401': - description: Unauthorized - '404': - description: Not found - tags: - - releases - operationId: getApiV4ProjectsIdReleasesTagNameDownloads*directAssetPath - "/api/v4/projects/{id}/releases/permalink/latest(/)(*suffix_path)": - get: - summary: Get the latest project release - description: This feature was introduced in GitLab 15.4. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: suffix_path - description: The path to be suffixed to the latest release - type: string - required: true - responses: - '200': - description: Get the latest project release - '401': - description: Unauthorized - '404': - description: Not found - tags: - - releases - operationId: getApiV4ProjectsIdReleasesPermalinkLatest()(*suffixPath) - "/api/v4/projects/{id}/releases/{tag_name}/evidence": - post: - summary: Collect release evidence - description: Creates an evidence for an existing Release. This feature was introduced - in GitLab 12.10. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: tag_name - description: The Git tag the release is associated with - type: string - required: true - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '201': - description: Collect release evidence - schema: - "$ref": "#/definitions/API_Entities_Release" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - releases - operationId: postApiV4ProjectsIdReleasesTagNameEvidence - "/api/v4/projects/{id}/remote_mirrors": - get: - description: List the project's remote mirrors - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List the project's remote mirrors - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_RemoteMirror" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - remote_mirrors - operationId: getApiV4ProjectsIdRemoteMirrors - post: - description: Create remote mirror for a project - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdRemoteMirrors - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdRemoteMirrors" - responses: - '201': - description: Create remote mirror for a project - schema: - "$ref": "#/definitions/API_Entities_RemoteMirror" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - remote_mirrors - operationId: postApiV4ProjectsIdRemoteMirrors - "/api/v4/projects/{id}/remote_mirrors/{mirror_id}": - get: - description: Get a single remote mirror - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: mirror_id - description: The ID of a remote mirror - type: string - required: true - responses: - '200': - description: Get a single remote mirror - schema: - "$ref": "#/definitions/API_Entities_RemoteMirror" - '401': - description: Unauthorized - '404': - description: Not found - tags: - - remote_mirrors - operationId: getApiV4ProjectsIdRemoteMirrorsMirrorId - put: - description: Update the attributes of a single remote mirror - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: mirror_id - description: The ID of a remote mirror - type: string - required: true - - name: putApiV4ProjectsIdRemoteMirrorsMirrorId - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdRemoteMirrorsMirrorId" - responses: - '200': - description: Update the attributes of a single remote mirror - schema: - "$ref": "#/definitions/API_Entities_RemoteMirror" - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - remote_mirrors - operationId: putApiV4ProjectsIdRemoteMirrorsMirrorId - delete: - summary: Delete a single remote mirror - description: This feature was introduced in GitLab 14.10 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: mirror_id - description: The ID of a remote mirror - type: string - required: true - responses: - '204': - description: Delete a single remote mirror - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - remote_mirrors - operationId: deleteApiV4ProjectsIdRemoteMirrorsMirrorId - "/api/v4/projects/{id}/remote_mirrors/{mirror_id}/sync": - post: - description: Triggers a push mirror operation - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: mirror_id - description: The ID of a remote mirror - type: string - required: true - responses: - '204': - description: Triggers a push mirror operation - '400': - description: Bad request - '401': - description: Unauthorized - '404': - description: Not found - tags: - - remote_mirrors - operationId: postApiV4ProjectsIdRemoteMirrorsMirrorIdSync - "/api/v4/projects/{id}/repository/tree": - get: - description: Get a project repository tree - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: query - name: ref - description: The name of a repository branch or tag, if not given the default - branch is used - type: string - required: false - example: main - - in: query - name: path - description: The path of the tree - type: string - required: false - example: files/html - - in: query - name: recursive - description: Used to get a recursive tree - type: boolean - default: false - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: pagination - description: Specify the pagination method ("none" is only valid if "recursive" - is true) - type: string - default: legacy - enum: - - legacy - - keyset - - none - required: false - - in: query - name: page_token - description: Record from which to start the keyset pagination - type: string - required: false - example: a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba - responses: - '200': - description: Get a project repository tree - schema: - "$ref": "#/definitions/API_Entities_TreeObject" - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryTree - "/api/v4/projects/{id}/repository/blobs/{sha}/raw": - get: - description: Get raw blob contents from the repository - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: path - name: sha - description: The commit hash - type: string - required: true - example: 7d70e02340bac451f281cecf0a980907974bd8be - responses: - '200': - description: Get raw blob contents from the repository - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryBlobsShaRaw - "/api/v4/projects/{id}/repository/blobs/{sha}": - get: - description: Get a blob from the repository - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: path - name: sha - description: The commit hash - type: string - required: true - example: 7d70e02340bac451f281cecf0a980907974bd8be - responses: - '200': - description: Get a blob from the repository - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryBlobsSha - "/api/v4/projects/{id}/repository/archive": - get: - description: Get an archive of the repository - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: query - name: sha - description: The commit sha of the archive to be downloaded - type: string - required: false - example: 7d70e02340bac451f281cecf0a980907974bd8be - - in: query - name: format - description: The archive format - type: string - required: false - example: tar.gz - - in: query - name: path - description: Subfolder of the repository to be downloaded - type: string - required: false - example: files/archives - responses: - '200': - description: Get an archive of the repository - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryArchive - "/api/v4/projects/{id}/repository/compare": - get: - description: Compare two branches, tags, or commits - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: query - name: from - description: The commit, branch name, or tag name to start comparison - type: string - required: true - example: main - - in: query - name: to - description: The commit, branch name, or tag name to stop comparison - type: string - required: true - example: feature - - in: query - name: from_project_id - description: The project to compare from - type: integer - format: int32 - required: false - example: 1 - - in: query - name: straight - description: Comparison method, `true` for direct comparison between `from` - and `to` (`from`..`to`), `false` to compare using merge base (`from`...`to`) - type: boolean - default: false - required: false - - in: query - name: unidiff - description: A diff in a Unified diff format - type: boolean - default: false - required: false - responses: - '200': - description: Compare two branches, tags, or commits - schema: - "$ref": "#/definitions/API_Entities_Compare" - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryCompare - "/api/v4/projects/{id}/repository/contributors": - get: - description: Get repository contributors - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - - in: query - name: order_by - description: Return contributors ordered by `name` or `email` or `commits` - type: string - default: commits - enum: - - email - - name - - commits - required: false - - in: query - name: sort - description: Sort by asc (ascending) or desc (descending) - type: string - default: asc - enum: - - asc - - desc - required: false - responses: - '200': - description: Get repository contributors - schema: - "$ref": "#/definitions/API_Entities_Contributor" - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryContributors - "/api/v4/projects/{id}/repository/merge_base": - get: - description: Get the common ancestor between commits - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: query - name: refs - description: The refs to find the common ancestor of, multiple refs can be - passed - type: array - items: - type: string - required: true - example: main - responses: - '200': - description: Get the common ancestor between commits - schema: - "$ref": "#/definitions/API_Entities_Commit" - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryMergeBase - "/api/v4/projects/{id}/repository/changelog": - get: - summary: Generates a changelog section for a release and returns it - description: This feature was introduced in GitLab 14.6 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - in: query - name: version - description: The version of the release, using the semantic versioning format - type: string - required: true - example: 1.0.0 - - in: query - name: from - description: The first commit in the range of commits to use for the changelog - type: string - required: false - example: ed899a2f4b50b4370feeea94676502b42383c746 - - in: query - name: to - description: The last commit in the range of commits to use for the changelog - type: string - required: false - example: 6104942438c14ec7bd21c6cd5bd995272b3faff6 - - in: query - name: date - description: The date and time of the release - type: string - format: date-time - required: false - example: '2021-09-20T11:50:22.001+00:00' - - in: query - name: trailer - description: The Git trailer to use for determining if commits are to be included - in the changelog - type: string - default: Changelog - required: false - example: Changelog - - in: query - name: config_file - description: The file path to the configuration file as stored in the project's - Git repository. Defaults to '.gitlab/changelog_config.yml' - type: string - required: false - example: ".gitlab/changelog_config.yml" - responses: - '200': - description: Generates a changelog section for a release and returns it - schema: - "$ref": "#/definitions/API_Entities_Changelog" - tags: - - projects - operationId: getApiV4ProjectsIdRepositoryChangelog - post: - summary: Generates a changelog section for a release and commits it in a changelog - file - description: This feature was introduced in GitLab 13.9 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 1 - - name: postApiV4ProjectsIdRepositoryChangelog - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdRepositoryChangelog" - responses: - '200': - description: Generates a changelog section for a release and commits it - in a changelog file - tags: - - projects - operationId: postApiV4ProjectsIdRepositoryChangelog - "/api/v4/projects/{id}/access_tokens": - get: - summary: Get list of all access tokens for the specified resource - description: This feature was introduced in GitLab 13.9. - produces: - - application/json - parameters: - - in: path - name: id - description: ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Get list of all access tokens for the specified resource - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ResourceAccessToken" - tags: - - project_access_tokens - operationId: getApiV4ProjectsIdAccessTokens - post: - summary: Create a resource access token - description: This feature was introduced in GitLab 13.9. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - example: 2 - - name: postApiV4ProjectsIdAccessTokens - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdAccessTokens" - responses: - '201': - description: Create a resource access token - schema: - "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" - tags: - - project_access_tokens - operationId: postApiV4ProjectsIdAccessTokens - "/api/v4/projects/{id}/access_tokens/{token_id}": - get: - summary: Get an access token for the specified resource by ID - description: This feature was introduced in GitLab 14.10. - produces: - - application/json - parameters: - - in: path - name: id - description: ID or URL-encoded path of the project - type: string - required: true - - in: path - name: token_id - description: The ID of the token - type: string - required: true - responses: - '200': - description: Get an access token for the specified resource by ID - schema: - "$ref": "#/definitions/API_Entities_ResourceAccessToken" - tags: - - project_access_tokens - operationId: getApiV4ProjectsIdAccessTokensTokenId - delete: - summary: Revoke a resource access token - description: This feature was introduced in GitLab 13.9. - produces: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: token_id - description: The ID of the token - type: string - required: true - responses: - '204': - description: Revoke a resource access token - '400': - description: Bad Request - '404': - description: Not found - tags: - - project_access_tokens - operationId: deleteApiV4ProjectsIdAccessTokensTokenId - "/api/v4/projects/{id}/access_tokens/{token_id}/rotate": - post: - summary: Rotate a resource access token - description: This feature was introduced in GitLab 16.0. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The project ID - type: string - required: true - - in: path - name: token_id - description: The ID of the token - type: string - required: true - - name: postApiV4ProjectsIdAccessTokensTokenIdRotate - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdAccessTokensTokenIdRotate" - responses: - '201': - description: Rotate a resource access token - schema: - "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" - tags: - - project_access_tokens - operationId: postApiV4ProjectsIdAccessTokensTokenIdRotate - "/api/v4/projects/{id}/issues/{eventable_id}/resource_milestone_events": - get: - summary: List project Issue milestone events - description: Gets a list of all milestone events for a single Issue - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: eventable_id - description: The ID of the eventable - type: integer - format: int32 - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List project Issue milestone events - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" - tags: - - resource_milestone_events - operationId: getApiV4ProjectsIdIssuesEventableIdResourceMilestoneEvents - "/api/v4/projects/{id}/issues/{eventable_id}/resource_milestone_events/{event_id}": - get: - summary: Get single Issue milestone event - description: Returns a single milestone event for a specific project Issue - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: event_id - description: The ID of a resource milestone event - type: string - required: true - - in: path - name: eventable_id - description: The ID of the eventable - type: integer - format: int32 - required: true - responses: - '200': - description: Get single Issue milestone event - schema: - "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" - '404': - description: Not found - tags: - - resource_milestone_events - operationId: getApiV4ProjectsIdIssuesEventableIdResourceMilestoneEventsEventId - "/api/v4/projects/{id}/merge_requests/{eventable_id}/resource_milestone_events": - get: - summary: List project Merge request milestone events - description: Gets a list of all milestone events for a single Merge request - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: eventable_id - description: The ID of the eventable - type: integer - format: int32 - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List project Merge request milestone events - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" - tags: - - resource_milestone_events - operationId: getApiV4ProjectsIdMergeRequestsEventableIdResourceMilestoneEvents - "/api/v4/projects/{id}/merge_requests/{eventable_id}/resource_milestone_events/{event_id}": - get: - summary: Get single Merge request milestone event - description: Returns a single milestone event for a specific project Merge request - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: event_id - description: The ID of a resource milestone event - type: string - required: true - - in: path - name: eventable_id - description: The ID of the eventable - type: integer - format: int32 - required: true - responses: - '200': - description: Get single Merge request milestone event - schema: - "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" - '404': - description: Not found - tags: - - resource_milestone_events - operationId: getApiV4ProjectsIdMergeRequestsEventableIdResourceMilestoneEventsEventId - "/api/v4/projects/{id}/repository/submodules/{submodule}": - put: - description: Update existing submodule reference in repository - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of a project - type: string - required: true - example: gitlab-org/gitlab - - in: path - name: submodule - description: Url encoded full path to submodule. - type: string - required: true - example: gitlab-org/gitlab-shell - - name: putApiV4ProjectsIdRepositorySubmodulesSubmodule - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdRepositorySubmodulesSubmodule" - responses: - '200': - description: Update existing submodule reference in repository - schema: - "$ref": "#/definitions/API_Entities_CommitDetail" - '404': - description: 404 Project Not Found - '401': - description: 401 Unauthorized - '400': - description: The repository is empty - tags: - - projects - operationId: putApiV4ProjectsIdRepositorySubmodulesSubmodule - "/api/v4/projects/{id}/repository/tags": - get: - description: Get a project repository tags - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: sort - description: Return tags sorted in updated by `asc` or `desc` order. - type: string - default: desc - enum: - - asc - - desc - required: false - - in: query - name: order_by - description: Return tags ordered by `name`, `updated`, `version` fields. - type: string - default: updated - enum: - - name - - updated - - version - required: false - - in: query - name: search - description: Return list of tags matching the search criteria - type: string - required: false - - in: query - name: page_token - description: Name of tag to start the paginaition from - type: string - required: false - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: Get a project repository tags - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_Tag" - '403': - description: Unauthenticated - '404': - description: Not found - '422': - description: Unprocessable entity - '503': - description: Service unavailable - tags: - - tags - operationId: getApiV4ProjectsIdRepositoryTags - post: - description: Create a new repository tag - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: postApiV4ProjectsIdRepositoryTags - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdRepositoryTags" - responses: - '201': - description: Create a new repository tag - schema: - "$ref": "#/definitions/API_Entities_Tag" - '400': - description: Bad request - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - tags - operationId: postApiV4ProjectsIdRepositoryTags - "/api/v4/projects/{id}/repository/tags/{tag_name}": - get: - description: Get a single repository tag - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: tag_name - description: The name of the tag - type: string - required: true - responses: - '200': - description: Get a single repository tag - schema: - "$ref": "#/definitions/API_Entities_Tag" - '403': - description: Unauthenticated - '404': - description: Not found - tags: - - tags - operationId: getApiV4ProjectsIdRepositoryTagsTagName - delete: - description: Delete a repository tag - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: tag_name - description: The name of the tag - type: string - required: true - responses: - '204': - description: Delete a repository tag - '403': - description: Unauthenticated - '404': - description: Not found - '412': - description: Precondition failed - tags: - - tags - operationId: deleteApiV4ProjectsIdRepositoryTagsTagName - "/api/v4/projects/{id}/repository/tags/{tag_name}/signature": - get: - description: Get a tag's signature - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: tag_name - description: The name of the tag - type: string - required: true - responses: - '200': - description: Get a tag's signature - schema: - "$ref": "#/definitions/API_Entities_TagSignature" - '404': - description: Not found - tags: - - tags - operationId: getApiV4ProjectsIdRepositoryTagsTagNameSignature - "/api/v4/projects/{id}/wikis": - get: - description: Get a list of wiki pages - produces: - - application/json - parameters: - - in: query - name: with_content - description: Include pages' content - type: boolean - default: false - required: false - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get a list of wiki pages - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_WikiPageBasic" - '404': - description: Not found - tags: - - wikis - operationId: getApiV4ProjectsIdWikis - post: - description: Create a wiki page - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdWikis - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdWikis" - responses: - '201': - description: Create a wiki page - schema: - "$ref": "#/definitions/API_Entities_WikiPage" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - wikis - operationId: postApiV4ProjectsIdWikis - "/api/v4/projects/{id}/wikis/{slug}": - get: - description: Get a wiki page - produces: - - application/json - parameters: - - in: path - name: slug - description: The slug of a wiki page - type: string - required: true - - in: query - name: version - description: The version hash of a wiki page - type: string - required: false - - in: query - name: render_html - description: Render content to HTML - type: boolean - default: false - required: false - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '200': - description: Get a wiki page - schema: - "$ref": "#/definitions/API_Entities_WikiPage" - '404': - description: Not found - tags: - - wikis - operationId: getApiV4ProjectsIdWikisSlug - put: - description: Update a wiki page - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - in: path - name: slug - type: integer - format: int32 - required: true - - name: putApiV4ProjectsIdWikisSlug - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdWikisSlug" - responses: - '200': - description: Update a wiki page - schema: - "$ref": "#/definitions/API_Entities_WikiPage" - '400': - description: Validation error - '404': - description: Not found - '422': - description: Unprocessable entity - tags: - - wikis - operationId: putApiV4ProjectsIdWikisSlug - delete: - description: Delete a wiki page - produces: - - application/json - parameters: - - in: path - name: slug - description: The slug of a wiki page - type: string - required: true - - in: path - name: id - type: integer - format: int32 - required: true - responses: - '204': - description: Delete a wiki page - '400': - description: Validation error - '404': - description: Not found - tags: - - wikis - operationId: deleteApiV4ProjectsIdWikisSlug - "/api/v4/projects/{id}/wikis/attachments": - post: - summary: Upload an attachment to the wiki repository - description: This feature was introduced in GitLab 11.3. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdWikisAttachments - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdWikisAttachments" - responses: - '201': - description: Upload an attachment to the wiki repository - schema: - "$ref": "#/definitions/API_Entities_WikiAttachment" - '404': - description: Not found - tags: - - wikis - operationId: postApiV4ProjectsIdWikisAttachments - "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/authorize": - post: - description: Workhorse authorize metric image file upload - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 17 - - in: path - name: alert_iid - description: The IID of the Alert - type: integer - format: int32 - required: true - example: 23 - responses: - '200': - description: Workhorse authorize metric image file upload - '403': - description: Forbidden - tags: - - alert_management - operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesAuthorize - "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images": - post: - description: Upload a metric image for an alert - produces: - - application/json - consumes: - - multipart/form-data - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 17 - - in: path - name: alert_iid - description: The IID of the Alert - type: integer - format: int32 - required: true - example: 23 - - in: formData - name: file - description: The image file to be uploaded - type: file - required: true - - in: formData - name: url - description: The url to view more metric info - type: string - required: false - example: https://example.com/metric - - in: formData - name: url_text - description: A description of the image or URL - type: string - required: false - example: An example metric - responses: - '200': - description: Upload a metric image for an alert - schema: - "$ref": "#/definitions/API_Entities_MetricImage" - '403': - description: Forbidden - tags: - - alert_management - operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages - get: - description: Metric Images for alert - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 17 - - in: path - name: alert_iid - description: The IID of the Alert - type: integer - format: int32 - required: true - example: 23 - responses: - '200': - description: Metric Images for alert - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_MetricImage" - '404': - description: Not found - tags: - - alert_management - operationId: getApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages - "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/{metric_image_id}": - put: - description: Update a metric image for an alert - produces: - - application/json - consumes: - - multipart/form-data - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 17 - - in: path - name: alert_iid - description: The IID of the Alert - type: integer - format: int32 - required: true - example: 23 - - in: path - name: metric_image_id - description: The ID of metric image - type: integer - format: int32 - required: true - example: 42 - - in: formData - name: url - description: The url to view more metric info - type: string - required: false - example: https://example.com/metric - - in: formData - name: url_text - description: A description of the image or URL - type: string - required: false - example: An example metric - responses: - '200': - description: Update a metric image for an alert - schema: - "$ref": "#/definitions/API_Entities_MetricImage" - '403': - description: Forbidden - '422': - description: Unprocessable entity - tags: - - alert_management - operationId: putApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId - delete: - description: Remove a metric image for an alert - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - example: 17 - - in: path - name: alert_iid - description: The IID of the Alert - type: integer - format: int32 - required: true - example: 23 - - in: path - name: metric_image_id - description: The ID of metric image - type: integer - format: int32 - required: true - example: 42 - responses: - '204': - description: Remove a metric image for an alert - schema: - "$ref": "#/definitions/API_Entities_MetricImage" - '403': - description: Forbidden - '422': - description: Unprocessable entity - tags: - - alert_management - operationId: deleteApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId - "/api/v4/projects/{id}/cluster_agents/{agent_id}/tokens": - get: - summary: List tokens for an agent - description: This feature was introduced in GitLab 15.0. Returns a list of tokens - for an agent. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: agent_id - description: The ID of an agent - type: integer - format: int32 - required: true - - in: query - name: page - description: Current page number - type: integer - format: int32 - default: 1 - required: false - example: 1 - - in: query - name: per_page - description: Number of items per page - type: integer - format: int32 - default: 20 - required: false - example: 20 - responses: - '200': - description: List tokens for an agent - schema: - "$ref": "#/definitions/API_Entities_Clusters_AgentTokenBasic" - tags: - - cluster_agents - operationId: getApiV4ProjectsIdClusterAgentsAgentIdTokens - post: - summary: Create an agent token - description: This feature was introduced in GitLab 15.0. Creates a new token - for an agent. - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: agent_id - description: The ID of an agent - type: integer - format: int32 - required: true - - name: postApiV4ProjectsIdClusterAgentsAgentIdTokens - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4ProjectsIdClusterAgentsAgentIdTokens" - responses: - '201': - description: Create an agent token - schema: - "$ref": "#/definitions/API_Entities_Clusters_AgentTokenWithToken" - tags: - - cluster_agents - operationId: postApiV4ProjectsIdClusterAgentsAgentIdTokens - "/api/v4/projects/{id}/cluster_agents/{agent_id}/tokens/{token_id}": - get: - summary: Get a single agent token - description: This feature was introduced in GitLab 15.0. Gets a single agent - token. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: agent_id - description: The ID of an agent - type: integer - format: int32 - required: true - - in: path - name: token_id - description: The ID of the agent token - type: integer - format: int32 - required: true - responses: - '200': - description: Get a single agent token - schema: - "$ref": "#/definitions/API_Entities_Clusters_AgentToken" - tags: - - cluster_agents - operationId: getApiV4ProjectsIdClusterAgentsAgentIdTokensTokenId - delete: - summary: Revoke an agent token - description: This feature was introduced in GitLab 15.0. Revokes an agent token. - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: agent_id - description: The ID of an agent - type: integer - format: int32 - required: true - - in: path - name: token_id - description: The ID of the agent token - type: integer - format: int32 - required: true - responses: - '204': - description: Revoke an agent token - tags: - - cluster_agents - operationId: deleteApiV4ProjectsIdClusterAgentsAgentIdTokensTokenId "/api/v4/projects/{id}/packages/composer": post: summary: Composer packages endpoint for registering packages @@ -27041,6 +11945,1590 @@ paths: tags: - debian_packages operationId: putApiV4ProjectsIdPackagesDebianFileNameAuthorize + "/api/v4/projects/{id}/deploy_keys": + get: + summary: List deploy keys for project + description: Get a list of a project's deploy keys. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List deploy keys for project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_DeployKeysProject" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_keys + operationId: getApiV4ProjectsIdDeployKeys + post: + summary: Add deploy key + description: Creates a new deploy key for a project. If the deploy key already + exists in another project, it's joined to the current project only if the + original one is accessible by the same user. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: postApiV4ProjectsIdDeployKeys + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdDeployKeys" + responses: + '201': + description: Add deploy key + schema: + "$ref": "#/definitions/API_Entities_DeployKeysProject" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_keys + operationId: postApiV4ProjectsIdDeployKeys + "/api/v4/projects/{id}/deploy_keys/{key_id}": + get: + summary: Get a single deploy key + description: Get a single key. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: key_id + description: The ID of the deploy key + type: integer + format: int32 + required: true + responses: + '200': + description: Get a single deploy key + schema: + "$ref": "#/definitions/API_Entities_DeployKeysProject" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_keys + operationId: getApiV4ProjectsIdDeployKeysKeyId + put: + summary: Update deploy key + description: Updates a deploy key for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: key_id + description: The ID of the deploy key + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdDeployKeysKeyId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdDeployKeysKeyId" + responses: + '200': + description: Update deploy key + schema: + "$ref": "#/definitions/API_Entities_DeployKey" + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - deploy_keys + operationId: putApiV4ProjectsIdDeployKeysKeyId + delete: + summary: Delete deploy key + description: Removes a deploy key from the project. If the deploy key is used + only for this project, it's deleted from the system. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: key_id + description: The ID of the deploy key + type: integer + format: int32 + required: true + responses: + '204': + description: Delete deploy key + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_keys + operationId: deleteApiV4ProjectsIdDeployKeysKeyId + "/api/v4/projects/{id}/deploy_keys/{key_id}/enable": + post: + summary: Enable a deploy key + description: Enables a deploy key for a project so this can be used. Returns + the enabled key, with a status code 201 when successful. This feature was + added in GitLab 8.11. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: key_id + description: The ID of the deploy key + type: integer + format: int32 + required: true + responses: + '201': + description: Enable a deploy key + schema: + "$ref": "#/definitions/API_Entities_DeployKey" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_keys + operationId: postApiV4ProjectsIdDeployKeysKeyIdEnable + "/api/v4/projects/{id}/deploy_tokens": + get: + summary: List project deploy tokens + description: Get a list of a project's deploy tokens. This feature was introduced + in GitLab 12.9. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: active + description: Limit by active status + type: boolean + required: false + responses: + '200': + description: List project deploy tokens + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_DeployToken" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - deploy_tokens + operationId: getApiV4ProjectsIdDeployTokens + post: + summary: Create a project deploy token + description: Creates a new deploy token for a project. This feature was introduced + in GitLab 12.9. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: postApiV4ProjectsIdDeployTokens + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdDeployTokens" + responses: + '201': + description: Create a project deploy token + schema: + "$ref": "#/definitions/API_Entities_DeployTokenWithToken" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_tokens + operationId: postApiV4ProjectsIdDeployTokens + "/api/v4/projects/{id}/deploy_tokens/{token_id}": + get: + summary: Get a project deploy token + description: Get a single project's deploy token by ID. This feature was introduced + in GitLab 14.9. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: token_id + description: The ID of the deploy token + type: integer + format: int32 + required: true + responses: + '200': + description: Get a project deploy token + schema: + "$ref": "#/definitions/API_Entities_DeployToken" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_tokens + operationId: getApiV4ProjectsIdDeployTokensTokenId + delete: + summary: Delete a project deploy token + description: This feature was introduced in GitLab 12.9. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: token_id + description: The ID of the deploy token + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a project deploy token + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deploy_tokens + operationId: deleteApiV4ProjectsIdDeployTokensTokenId + "/api/v4/projects/{id}/deployments": + get: + summary: List project deployments + description: Get a list of deployments in a project. This feature was introduced + in GitLab 8.11. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: order_by + description: Return deployments ordered by either one of `id`, `iid`, `created_at`, + `updated_at` or `ref` fields. Default is `id` + type: string + default: id + enum: + - id + - iid + - created_at + - updated_at + - finished_at + required: false + - in: query + name: sort + description: Return deployments sorted in `asc` or `desc` order. Default is + `asc` + type: string + default: asc + enum: + - asc + - desc + required: false + - in: query + name: updated_after + description: Return deployments updated after the specified date. Expected + in ISO 8601 format (`2019-03-15T08:00:00Z`) + type: string + format: date-time + required: false + - in: query + name: updated_before + description: Return deployments updated before the specified date. Expected + in ISO 8601 format (`2019-03-15T08:00:00Z`) + type: string + format: date-time + required: false + - in: query + name: finished_after + description: Return deployments finished after the specified date. Expected + in ISO 8601 format (`2019-03-15T08:00:00Z`) + type: string + format: date-time + required: false + - in: query + name: finished_before + description: Return deployments finished before the specified date. Expected + in ISO 8601 format (`2019-03-15T08:00:00Z`) + type: string + format: date-time + required: false + - in: query + name: environment + description: The name of the environment to filter deployments by + type: string + required: false + - in: query + name: status + description: The status to filter deployments by. One of `created`, `running`, + `success`, `failed`, `canceled`, or `blocked` + type: string + enum: + - created + - running + - success + - failed + - canceled + - skipped + - blocked + required: false + responses: + '200': + description: List project deployments + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Deployment" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deployments + operationId: getApiV4ProjectsIdDeployments + post: + summary: Create a deployment + description: This feature was introduced in GitLab 12.4. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: postApiV4ProjectsIdDeployments + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdDeployments" + responses: + '201': + description: Create a deployment + schema: + "$ref": "#/definitions/API_Entities_DeploymentExtended" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deployments + operationId: postApiV4ProjectsIdDeployments + "/api/v4/projects/{id}/deployments/{deployment_id}": + get: + summary: Get a specific deployment + description: This feature was introduced in GitLab 8.11. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: deployment_id + description: The ID of the deployment + type: integer + format: int32 + required: true + responses: + '200': + description: Get a specific deployment + schema: + "$ref": "#/definitions/API_Entities_DeploymentExtended" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deployments + operationId: getApiV4ProjectsIdDeploymentsDeploymentId + put: + summary: Update a deployment + description: This feature was introduced in GitLab 12.4. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: deployment_id + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdDeploymentsDeploymentId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdDeploymentsDeploymentId" + responses: + '200': + description: Update a deployment + schema: + "$ref": "#/definitions/API_Entities_DeploymentExtended" + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - deployments + operationId: putApiV4ProjectsIdDeploymentsDeploymentId + delete: + summary: Delete a specific deployment + description: Delete a specific deployment that is not currently the last deployment + for an environment or in a running state. This feature was introduced in GitLab + 15.3. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: deployment_id + description: The ID of the deployment + type: integer + format: int32 + required: true + responses: + '204': + description: Deployment destroyed + '403': + description: Forbidden + '400': + description: '"Cannot destroy running deployment" or "Deployment currently + deployed to environment"' + tags: + - deployments + operationId: deleteApiV4ProjectsIdDeploymentsDeploymentId + "/api/v4/projects/{id}/deployments/{deployment_id}/merge_requests": + get: + summary: List of merge requests associated with a deployment + description: Retrieves the list of merge requests shipped with a given deployment. + This feature was introduced in GitLab 12.7. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: deployment_id + description: The ID of the deployment + type: integer + format: int32 + required: true + - in: query + name: author_id + description: Returns merge requests created by the given user `id`. Mutually + exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. + type: integer + format: int32 + required: false + - in: query + name: author_username + description: Returns merge requests created by the given `username`. Mutually + exclusive with `author_id`. + type: string + required: false + - in: query + name: assignee_id + description: Returns merge requests assigned to the given user `id`. `None` + returns unassigned merge requests. `Any` returns merge requests with an + assignee. + type: integer + format: int32 + required: false + - in: query + name: assignee_username + description: Returns merge requests created by the given `username`. Mutually + exclusive with `author_id`. + type: array + items: + type: string + required: false + - in: query + name: reviewer_username + description: Returns merge requests which have the user as a reviewer with + the given `username`. `None` returns merge requests with no reviewers. `Any` + returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. + Introduced in GitLab 13.8. + type: string + required: false + - in: query + name: labels + description: Returns merge requests matching a comma-separated list of labels. + `None` lists all merge requests with no labels. `Any` lists all merge requests + with at least one label. Predefined names are case-insensitive. + type: array + items: + type: string + required: false + - in: query + name: milestone + description: Returns merge requests for a specific milestone. `None` returns + merge requests with no milestone. `Any` returns merge requests that have + an assigned milestone. + type: string + required: false + - in: query + name: my_reaction_emoji + description: Returns merge requests reacted by the authenticated user by the + given `emoji`. `None` returns issues not given a reaction. `Any` returns + issues given at least one reaction. + type: string + required: false + - in: query + name: reviewer_id + description: Returns merge requests which have the user as a reviewer with + the given user `id`. `None` returns merge requests with no reviewers. `Any` + returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. + type: integer + format: int32 + required: false + - in: query + name: state + description: Returns `all` merge requests or just those that are `opened`, + `closed`, `locked`, or `merged`. + type: string + default: all + enum: + - opened + - closed + - locked + - merged + - all + required: false + - in: query + name: order_by + description: Returns merge requests ordered by `created_at`, `label_priority`, + `milestone_due`, `popularity`, `priority`, `title`, `updated_at` or `merged_at` + fields. Introduced in GitLab 14.8. + type: string + default: created_at + enum: + - created_at + - label_priority + - milestone_due + - popularity + - priority + - title + - updated_at + - merged_at + required: false + - in: query + name: sort + description: Returns merge requests sorted in `asc` or `desc` order. + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: with_labels_details + description: 'If `true`, response returns more details for each label in labels + field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`' + type: boolean + default: false + required: false + - in: query + name: with_merge_status_recheck + description: If `true`, this projection requests (but does not guarantee) + that the `merge_status` field be recalculated asynchronously. Introduced + in GitLab 13.0. + type: boolean + default: false + required: false + - in: query + name: created_after + description: Returns merge requests created on or after the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: created_before + description: Returns merge requests created on or before the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: updated_after + description: Returns merge requests updated on or after the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: updated_before + description: Returns merge requests updated on or before the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: view + description: If simple, returns the `iid`, URL, title, description, and basic + state of merge request + type: string + enum: + - simple + required: false + - in: query + name: scope + description: 'Returns merge requests for the given scope: `created_by_me`, + `assigned_to_me` or `all`' + type: string + enum: + - created-by-me + - assigned-to-me + - created_by_me + - assigned_to_me + - all + required: false + - in: query + name: source_branch + description: Returns merge requests with the given source branch + type: string + required: false + - in: query + name: source_project_id + description: Returns merge requests with the given source project id + type: integer + format: int32 + required: false + - in: query + name: target_branch + description: Returns merge requests with the given target branch + type: string + required: false + - in: query + name: search + description: Search merge requests against their `title` and `description`. + type: string + required: false + - in: query + name: in + description: Modify the scope of the search attribute. `title`, `description`, + or a string joining them with comma. + type: string + required: false + example: title,description + - in: query + name: wip + description: Filter merge requests against their `wip` status. `yes` to return + only draft merge requests, `no` to return non-draft merge requests. + type: string + enum: + - 'yes' + - 'no' + required: false + - in: query + name: not[author_id] + description: "`` Returns merge requests created by the given user + `id`. Mutually exclusive with `author_username`. Combine with `scope=all` + or `scope=assigned_to_me`." + type: integer + format: int32 + required: false + - in: query + name: not[author_username] + description: "`` Returns merge requests created by the given `username`. + Mutually exclusive with `author_id`." + type: string + required: false + - in: query + name: not[assignee_id] + description: "`` Returns merge requests assigned to the given user + `id`. `None` returns unassigned merge requests. `Any` returns merge requests + with an assignee." + type: integer + format: int32 + required: false + - in: query + name: not[assignee_username] + description: "`` Returns merge requests created by the given `username`. + Mutually exclusive with `author_id`." + type: array + items: + type: string + required: false + - in: query + name: not[reviewer_username] + description: "`` Returns merge requests which have the user as a + reviewer with the given `username`. `None` returns merge requests with no + reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive + with `reviewer_id`. Introduced in GitLab 13.8." + type: string + required: false + - in: query + name: not[labels] + description: "`` Returns merge requests matching a comma-separated + list of labels. `None` lists all merge requests with no labels. `Any` lists + all merge requests with at least one label. Predefined names are case-insensitive." + type: array + items: + type: string + required: false + - in: query + name: not[milestone] + description: "`` Returns merge requests for a specific milestone. + `None` returns merge requests with no milestone. `Any` returns merge requests + that have an assigned milestone." + type: string + required: false + - in: query + name: not[my_reaction_emoji] + description: "`` Returns merge requests reacted by the authenticated + user by the given `emoji`. `None` returns issues not given a reaction. `Any` + returns issues given at least one reaction." + type: string + required: false + - in: query + name: not[reviewer_id] + description: "`` Returns merge requests which have the user as a + reviewer with the given user `id`. `None` returns merge requests with no + reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive + with `reviewer_username`." + type: integer + format: int32 + required: false + - in: query + name: deployed_before + description: Returns merge requests deployed before the given date/time. Expected + in ISO 8601 format. + type: string + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: deployed_after + description: Returns merge requests deployed after the given date/time. Expected + in ISO 8601 format + type: string + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: environment + description: Returns merge requests deployed to the given environment + type: string + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: approved + description: Filters merge requests by their `approved` status. `yes` returns + only approved merge requests. `no` returns only non-approved merge requests. + type: string + enum: + - 'yes' + - 'no' + required: false + - in: query + name: merge_user_id + description: Returns merge requests which have been merged by the user with + the given user `id`. Mutually exclusive with `merge_user_username`. + type: integer + format: int32 + required: false + - in: query + name: merge_user_username + description: Returns merge requests which have been merged by the user with + the given `username`. Mutually exclusive with `merge_user_id`. + type: string + required: false + responses: + '200': + description: List of merge requests associated with a deployment + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_MergeRequestBasic" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - deployments + operationId: getApiV4ProjectsIdDeploymentsDeploymentIdMergeRequests + "/api/v4/projects/{id}/deployments/{deployment_id}/approval": + post: + summary: Approve or reject a blocked deployment + description: This feature was introduced in GitLab 14.8. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: deployment_id + description: The ID of the deployment + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdDeploymentsDeploymentIdApproval + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdDeploymentsDeploymentIdApproval" + responses: + '201': + description: Approve or reject a blocked deployment + schema: + "$ref": "#/definitions/API_Entities_Deployments_Approval" + tags: + - deployments + operationId: postApiV4ProjectsIdDeploymentsDeploymentIdApproval + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes": + get: + description: Get a list of merge request draft notes + produces: + - application/json + parameters: + - in: path + name: id + description: The ID of a project + type: string + required: true + - in: path + name: merge_request_iid + description: The ID of a merge request + type: integer + format: int32 + required: true + responses: + '200': + description: Get a list of merge request draft notes + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_DraftNote" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes + post: + description: Create a new draft note + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID of a project. + type: string + required: true + - in: path + name: merge_request_iid + description: The ID of a merge request. + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes" + responses: + '201': + description: Create a new draft note + schema: + "$ref": "#/definitions/API_Entities_DraftNote" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/{draft_note_id}": + get: + description: Get a single draft note + produces: + - application/json + parameters: + - in: path + name: id + description: The ID of a project + type: string + required: true + - in: path + name: merge_request_iid + description: The ID of a merge request + type: integer + format: int32 + required: true + - in: path + name: draft_note_id + description: The ID of a draft note + type: integer + format: int32 + required: true + responses: + '200': + description: Get a single draft note + schema: + "$ref": "#/definitions/API_Entities_DraftNote" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId + put: + description: Modify an existing draft note + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID of a project. + type: string + required: true + - in: path + name: merge_request_iid + description: The ID of a merge request. + type: integer + format: int32 + required: true + - in: path + name: draft_note_id + description: The ID of a draft note + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId" + responses: + '200': + description: Modify an existing draft note + schema: + "$ref": "#/definitions/API_Entities_DraftNote" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId + delete: + description: Delete a draft note + produces: + - application/json + parameters: + - in: path + name: id + description: The ID of a project + type: string + required: true + - in: path + name: merge_request_iid + description: The ID of a merge request + type: integer + format: int32 + required: true + - in: path + name: draft_note_id + description: The ID of a draft note + type: integer + format: int32 + required: true + responses: + '204': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/{draft_note_id}/publish": + put: + description: Publish a pending draft note + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID of a project + type: string + required: true + - in: path + name: merge_request_iid + description: The ID of a merge request + type: integer + format: int32 + required: true + - in: path + name: draft_note_id + description: The ID of a draft note + type: integer + format: int32 + required: true + responses: + '204': + description: Publish a pending draft note + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteIdPublish + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/bulk_publish": + post: + description: Bulk publish all pending draft notes + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID of a project + type: string + required: true + - in: path + name: merge_request_iid + description: The ID of a merge request + type: integer + format: int32 + required: true + responses: + '204': + description: Bulk publish all pending draft notes + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesBulkPublish + "/api/v4/projects/{id}/environments": + get: + summary: List environments + description: Get all environments for a given project. This feature was introduced + in GitLab 8.11. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: name + description: Return the environment with this name. Mutually exclusive with + search + type: string + required: false + - in: query + name: search + description: Return list of environments matching the search criteria. Mutually + exclusive with name. Must be at least 3 characters. + type: string + required: false + - in: query + name: states + description: 'List all environments that match a specific state. Accepted + values: `available`, `stopping`, or `stopped`. If no state value given, + returns all environments' + type: string + enum: + - stopped + - available + - stopping + required: false + responses: + '200': + description: List environments + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Environment" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - environments + operationId: getApiV4ProjectsIdEnvironments + post: + summary: Create a new environment + description: Creates a new environment with the given name and `external_url`. + It returns `201` if the environment was successfully created, `400` for wrong + parameters. This feature was introduced in GitLab 8.11. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: postApiV4ProjectsIdEnvironments + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdEnvironments" + responses: + '201': + description: Create a new environment + schema: + "$ref": "#/definitions/API_Entities_Environment" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - environments + operationId: postApiV4ProjectsIdEnvironments + "/api/v4/projects/{id}/environments/{environment_id}": + put: + summary: Update an existing environment + description: Updates an existing environment name and/or `external_url`. It + returns `200` if the environment was successfully updated. In case of an error, + a status code `400` is returned. This feature was introduced in GitLab 8.11. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: environment_id + description: The ID of the environment + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdEnvironmentsEnvironmentId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdEnvironmentsEnvironmentId" + responses: + '200': + description: Update an existing environment + schema: + "$ref": "#/definitions/API_Entities_Environment" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - environments + operationId: putApiV4ProjectsIdEnvironmentsEnvironmentId + delete: + summary: Delete an environment + description: It returns 204 if the environment was successfully deleted, and + 404 if the environment does not exist. This feature was introduced in GitLab + 8.11. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: environment_id + description: The ID of the environment + type: integer + format: int32 + required: true + responses: + '401': + description: Unauthorized + '204': + description: Delete an environment + schema: + "$ref": "#/definitions/API_Entities_Environment" + '404': + description: Not found + tags: + - environments + operationId: deleteApiV4ProjectsIdEnvironmentsEnvironmentId + get: + description: Get a specific environment + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: environment_id + description: The ID of the environment + type: integer + format: int32 + required: true + responses: + '200': + description: Get a specific environment + schema: + "$ref": "#/definitions/API_Entities_Environment" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - environments + operationId: getApiV4ProjectsIdEnvironmentsEnvironmentId + "/api/v4/projects/{id}/environments/review_apps": + delete: + summary: Delete multiple stopped review apps + description: It schedules for deletion multiple environments that have already + been stopped and are in the review app folder. The actual deletion is performed + after 1 week from the time of execution. By default, it only deletes environments + 30 days or older. You can change this default using the `before` parameter. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: query + name: before + description: The date before which environments can be deleted. Defaults to + 30 days ago. Expected in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`) + type: string + format: date-time + default: {} + required: false + - in: query + name: limit + description: Maximum number of environments to delete. Defaults to 100 + type: integer + format: int32 + default: 100 + minimum: 1 + maximum: 1000 + required: false + - in: query + name: dry_run + description: 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 + type: boolean + default: true + required: false + responses: + '400': + description: Bad request + '204': + description: Delete multiple stopped review apps + schema: + "$ref": "#/definitions/API_Entities_EnvironmentBasic" + '401': + description: Unauthorized + '404': + description: Not found + '409': + description: Conflict + tags: + - environments + operationId: deleteApiV4ProjectsIdEnvironmentsReviewApps + "/api/v4/projects/{id}/environments/{environment_id}/stop": + post: + summary: Stop an environment + description: It returns 200 if the environment was successfully stopped, and + 404 if the environment does not exist. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: environment_id + description: The ID of the environment + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdEnvironmentsEnvironmentIdStop + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdEnvironmentsEnvironmentIdStop" + responses: + '201': + description: Stop an environment + schema: + "$ref": "#/definitions/API_Entities_Environment" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - environments + operationId: postApiV4ProjectsIdEnvironmentsEnvironmentIdStop + "/api/v4/projects/{id}/environments/stop_stale": + post: + summary: Stop stale environments + description: It returns `200` if stale environment check was scheduled successfully + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: postApiV4ProjectsIdEnvironmentsStopStale + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdEnvironmentsStopStale" + responses: + '201': + description: Stop stale environments + '400': + description: Bad request + '401': + description: Unauthorized + tags: + - environments + operationId: postApiV4ProjectsIdEnvironmentsStopStale "/api/v4/projects/{id}/error_tracking/client_keys": get: summary: List project client keys @@ -27107,12 +13595,8 @@ paths: format: int32 required: true responses: - '400': - description: Bad request '204': - description: Delete a client key - schema: - "$ref": "#/definitions/API_Entities_ErrorTracking_ClientKey" + description: Bad request '401': description: Unauthorized '404': @@ -27120,6 +13604,98 @@ paths: tags: - error_tracking_client_keys operationId: deleteApiV4ProjectsIdErrorTrackingClientKeysKeyId + "/api/v4/projects/{id}/error_tracking/settings": + get: + summary: Get Error Tracking settings + description: Get error tracking settings for the project. This feature was introduced + in GitLab 12.7. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + responses: + '200': + description: Get Error Tracking settings + schema: + "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting" + tags: + - error_tracking_project_settings + operationId: getApiV4ProjectsIdErrorTrackingSettings + patch: + summary: Enable or disable the Error Tracking project settings + description: The API allows you to enable or disable the Error Tracking settings + for a project.Only for users with the Maintainer role for the project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: patchApiV4ProjectsIdErrorTrackingSettings + in: body + required: true + schema: + "$ref": "#/definitions/patchApiV4ProjectsIdErrorTrackingSettings" + responses: + '200': + description: Enable or disable the Error Tracking project settings + schema: + "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - error_tracking_project_settings + operationId: patchApiV4ProjectsIdErrorTrackingSettings + put: + summary: Update Error Tracking project settings. Available in GitLab 15.10 and + later. + description: Update Error Tracking settings for a project. Only for users with + Maintainer role for the project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: putApiV4ProjectsIdErrorTrackingSettings + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdErrorTrackingSettings" + responses: + '200': + description: Update Error Tracking project settings. Available in GitLab + 15.10 and later. + schema: + "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - error_tracking_project_settings + operationId: putApiV4ProjectsIdErrorTrackingSettings "/api/v4/projects/{id}/feature_flags": get: summary: List feature flags for a project @@ -27290,12 +13866,8 @@ paths: type: string required: true responses: - '401': - description: Unauthorized '204': - description: Delete a feature flag - schema: - "$ref": "#/definitions/API_Entities_FeatureFlag" + description: Unauthorized '403': description: Forbidden '404': @@ -27481,6 +14053,457 @@ paths: tags: - feature_flags_user_lists operationId: deleteApiV4ProjectsIdFeatureFlagsUserListsIid + "/api/v4/projects/{id}/repository/files/{file_path}/blame": + head: + description: Get blame file metadata from repository + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - in: query + name: ref + description: The name of branch, tag or commit + type: string + required: true + example: main + responses: + '200': + description: Get blame file metadata from repository + tags: + - projects + operationId: headApiV4ProjectsIdRepositoryFilesFilePathBlame + get: + description: Get blame file from the repository + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - in: query + name: ref + description: The name of branch, tag or commit + type: string + required: true + example: main + - in: query + name: range[start] + description: The first line of the range to blame + type: integer + format: int32 + required: true + - in: query + name: range[end] + description: The last line of the range to blame + type: integer + format: int32 + required: true + responses: + '200': + description: Get blame file from the repository + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryFilesFilePathBlame + "/api/v4/projects/{id}/repository/files/{file_path}/raw": + get: + description: Get raw file contents from the repository + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - in: query + name: ref + description: The name of branch, tag or commit + type: string + required: false + example: main + - in: query + name: lfs + description: Retrieve binary data for a file that is an lfs pointer + type: boolean + default: false + required: false + responses: + '200': + description: Get raw file contents from the repository + schema: + type: file + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryFilesFilePathRaw + "/api/v4/projects/{id}/repository/files/{file_path}": + head: + description: Get file metadata from repository + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - in: query + name: ref + description: The name of branch, tag or commit + type: string + required: true + example: main + responses: + '200': + description: Get file metadata from repository + tags: + - projects + operationId: headApiV4ProjectsIdRepositoryFilesFilePath + get: + description: Get a file from the repository + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - in: query + name: ref + description: The name of branch, tag or commit + type: string + required: true + example: main + responses: + '200': + description: Get a file from the repository + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryFilesFilePath + post: + description: Create new file in repository + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - name: postApiV4ProjectsIdRepositoryFilesFilePath + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdRepositoryFilesFilePath" + responses: + '201': + description: Create new file in repository + tags: + - projects + operationId: postApiV4ProjectsIdRepositoryFilesFilePath + put: + description: Update existing file in repository + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - name: putApiV4ProjectsIdRepositoryFilesFilePath + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdRepositoryFilesFilePath" + responses: + '200': + description: Update existing file in repository + tags: + - projects + operationId: putApiV4ProjectsIdRepositoryFilesFilePath + delete: + description: Delete an existing file in repository + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: file_path + description: The url encoded path to the file. + type: string + required: true + example: lib%2Fclass%2Erb + - in: query + name: branch + description: Name of the branch to commit into. To create a new branch, also + provide `start_branch`. + type: string + required: true + example: main + - in: query + name: commit_message + description: Commit message + type: string + required: true + example: Initial commit + - in: query + name: start_branch + description: Name of the branch to start the new commit from + type: string + required: false + example: main + - in: query + name: author_email + description: The email of the author + type: string + required: false + example: johndoe@example.com + - in: query + name: author_name + description: The name of the author + type: string + required: false + example: John Doe + responses: + '204': + description: Delete an existing file in repository + tags: + - projects + operationId: deleteApiV4ProjectsIdRepositoryFilesFilePath + "/api/v4/projects/{id}/freeze_periods": + get: + summary: List freeze periods + description: Paginated list of Freeze Periods, sorted by created_at in ascending + order. This feature was introduced in GitLab 13.0. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List freeze periods + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_FreezePeriod" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - freeze_periods + operationId: getApiV4ProjectsIdFreezePeriods + post: + summary: Create a freeze period + description: Creates a freeze period. This feature was introduced in GitLab + 13.0. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdFreezePeriods + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdFreezePeriods" + responses: + '201': + description: Create a freeze period + schema: + "$ref": "#/definitions/API_Entities_FreezePeriod" + '400': + description: Bad request + '401': + description: Unauthorized + tags: + - freeze_periods + operationId: postApiV4ProjectsIdFreezePeriods + "/api/v4/projects/{id}/freeze_periods/{freeze_period_id}": + get: + summary: Get a freeze period + description: Get a freeze period for the given `freeze_period_id`. This feature + was introduced in GitLab 13.0. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: freeze_period_id + description: The ID of the freeze period + type: integer + format: int32 + required: true + responses: + '200': + description: Get a freeze period + schema: + "$ref": "#/definitions/API_Entities_FreezePeriod" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - freeze_periods + operationId: getApiV4ProjectsIdFreezePeriodsFreezePeriodId + put: + summary: Update a freeze period + description: Updates a freeze period for the given `freeze_period_id`. This + feature was introduced in GitLab 13.0. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: freeze_period_id + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdFreezePeriodsFreezePeriodId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdFreezePeriodsFreezePeriodId" + responses: + '200': + description: Update a freeze period + schema: + "$ref": "#/definitions/API_Entities_FreezePeriod" + '400': + description: Bad request + '401': + description: Unauthorized + tags: + - freeze_periods + operationId: putApiV4ProjectsIdFreezePeriodsFreezePeriodId + delete: + summary: Delete a freeze period + description: Deletes a freeze period for the given `freeze_period_id`. This + feature was introduced in GitLab 13.0. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: freeze_period_id + description: The ID of the freeze period + type: integer + format: int32 + required: true + responses: + '401': + description: Unauthorized + '204': + description: Delete a freeze period + schema: + "$ref": "#/definitions/API_Entities_FreezePeriod" + tags: + - freeze_periods + operationId: deleteApiV4ProjectsIdFreezePeriodsFreezePeriodId "/api/v4/projects/{id}/packages/generic/{package_name}/*package_version/(*path/){file_name}/authorize": put: summary: Workhorse authorize generic package file @@ -27863,6 +14886,5118 @@ paths: tags: - helm_packages operationId: postApiV4ProjectsIdPackagesHelmApiChannelCharts + "/api/v4/projects/{id}/services": + get: + summary: List all active integrations + description: Get a list of all active project integrations. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: List all active integrations + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: getApiV4ProjectsIdServices + "/api/v4/projects/{id}/services/apple-app-store": + put: + summary: Create/Edit Apple App Store integration + description: Set Apple App Store integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesAppleAppStore + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesAppleAppStore" + responses: + '200': + description: Create/Edit Apple App Store integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesAppleAppStore + "/api/v4/projects/{id}/services/asana": + put: + summary: Create/Edit Asana integration + description: Set Asana integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesAsana + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesAsana" + responses: + '200': + description: Create/Edit Asana integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesAsana + "/api/v4/projects/{id}/services/assembla": + put: + summary: Create/Edit Assembla integration + description: Set Assembla integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesAssembla + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesAssembla" + responses: + '200': + description: Create/Edit Assembla integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesAssembla + "/api/v4/projects/{id}/services/bamboo": + put: + summary: Create/Edit Bamboo integration + description: Set Bamboo integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesBamboo + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesBamboo" + responses: + '200': + description: Create/Edit Bamboo integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesBamboo + "/api/v4/projects/{id}/services/bugzilla": + put: + summary: Create/Edit Bugzilla integration + description: Set Bugzilla integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesBugzilla + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesBugzilla" + responses: + '200': + description: Create/Edit Bugzilla integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesBugzilla + "/api/v4/projects/{id}/services/buildkite": + put: + summary: Create/Edit Buildkite integration + description: Set Buildkite integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesBuildkite + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesBuildkite" + responses: + '200': + description: Create/Edit Buildkite integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesBuildkite + "/api/v4/projects/{id}/services/campfire": + put: + summary: Create/Edit Campfire integration + description: Set Campfire integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesCampfire + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesCampfire" + responses: + '200': + description: Create/Edit Campfire integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesCampfire + "/api/v4/projects/{id}/services/confluence": + put: + summary: Create/Edit Confluence integration + description: Set Confluence integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesConfluence + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesConfluence" + responses: + '200': + description: Create/Edit Confluence integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesConfluence + "/api/v4/projects/{id}/services/custom-issue-tracker": + put: + summary: Create/Edit Custom Issue Tracker integration + description: Set Custom Issue Tracker integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesCustomIssueTracker + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesCustomIssueTracker" + responses: + '200': + description: Create/Edit Custom Issue Tracker integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesCustomIssueTracker + "/api/v4/projects/{id}/services/datadog": + put: + summary: Create/Edit Datadog integration + description: Set Datadog integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesDatadog + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesDatadog" + responses: + '200': + description: Create/Edit Datadog integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesDatadog + "/api/v4/projects/{id}/services/diffblue-cover": + put: + summary: Create/Edit Diffblue Cover integration + description: Set Diffblue Cover integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesDiffblueCover + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesDiffblueCover" + responses: + '200': + description: Create/Edit Diffblue Cover integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesDiffblueCover + "/api/v4/projects/{id}/services/discord": + put: + summary: Create/Edit Discord integration + description: Set Discord integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesDiscord + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesDiscord" + responses: + '200': + description: Create/Edit Discord integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesDiscord + "/api/v4/projects/{id}/services/drone-ci": + put: + summary: Create/Edit Drone Ci integration + description: Set Drone Ci integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesDroneCi + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesDroneCi" + responses: + '200': + description: Create/Edit Drone Ci integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesDroneCi + "/api/v4/projects/{id}/services/emails-on-push": + put: + summary: Create/Edit Emails On Push integration + description: Set Emails On Push integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesEmailsOnPush + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesEmailsOnPush" + responses: + '200': + description: Create/Edit Emails On Push integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesEmailsOnPush + "/api/v4/projects/{id}/services/external-wiki": + put: + summary: Create/Edit External Wiki integration + description: Set External Wiki integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesExternalWiki + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesExternalWiki" + responses: + '200': + description: Create/Edit External Wiki integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesExternalWiki + "/api/v4/projects/{id}/services/gitlab-slack-application": + put: + summary: Create/Edit Gitlab Slack Application integration + description: Set Gitlab Slack Application integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesGitlabSlackApplication + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesGitlabSlackApplication" + responses: + '200': + description: Create/Edit Gitlab Slack Application integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesGitlabSlackApplication + "/api/v4/projects/{id}/services/google-play": + put: + summary: Create/Edit Google Play integration + description: Set Google Play integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesGooglePlay + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesGooglePlay" + responses: + '200': + description: Create/Edit Google Play integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesGooglePlay + "/api/v4/projects/{id}/services/hangouts-chat": + put: + summary: Create/Edit Hangouts Chat integration + description: Set Hangouts Chat integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesHangoutsChat + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesHangoutsChat" + responses: + '200': + description: Create/Edit Hangouts Chat integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesHangoutsChat + "/api/v4/projects/{id}/services/harbor": + put: + summary: Create/Edit Harbor integration + description: Set Harbor integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesHarbor + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesHarbor" + responses: + '200': + description: Create/Edit Harbor integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesHarbor + "/api/v4/projects/{id}/services/irker": + put: + summary: Create/Edit Irker integration + description: Set Irker integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesIrker + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesIrker" + responses: + '200': + description: Create/Edit Irker integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesIrker + "/api/v4/projects/{id}/services/jenkins": + put: + summary: Create/Edit Jenkins integration + description: Set Jenkins integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesJenkins + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesJenkins" + responses: + '200': + description: Create/Edit Jenkins integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesJenkins + "/api/v4/projects/{id}/services/jira": + put: + summary: Create/Edit Jira integration + description: Set Jira integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesJira + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesJira" + responses: + '200': + description: Create/Edit Jira integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesJira + "/api/v4/projects/{id}/services/jira-cloud-app": + put: + summary: Create/Edit Jira Cloud App integration + description: Set Jira Cloud App integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesJiraCloudApp + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesJiraCloudApp" + responses: + '200': + description: Create/Edit Jira Cloud App integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesJiraCloudApp + "/api/v4/projects/{id}/services/matrix": + put: + summary: Create/Edit Matrix integration + description: Set Matrix integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesMatrix + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesMatrix" + responses: + '200': + description: Create/Edit Matrix integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesMatrix + "/api/v4/projects/{id}/services/mattermost-slash-commands": + put: + summary: Create/Edit Mattermost Slash Commands integration + description: Set Mattermost Slash Commands integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesMattermostSlashCommands + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesMattermostSlashCommands" + responses: + '200': + description: Create/Edit Mattermost Slash Commands integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesMattermostSlashCommands + "/api/v4/projects/{id}/services/slack-slash-commands": + put: + summary: Create/Edit Slack Slash Commands integration + description: Set Slack Slash Commands integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesSlackSlashCommands + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesSlackSlashCommands" + responses: + '200': + description: Create/Edit Slack Slash Commands integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesSlackSlashCommands + "/api/v4/projects/{id}/services/packagist": + put: + summary: Create/Edit Packagist integration + description: Set Packagist integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesPackagist + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesPackagist" + responses: + '200': + description: Create/Edit Packagist integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesPackagist + "/api/v4/projects/{id}/services/phorge": + put: + summary: Create/Edit Phorge integration + description: Set Phorge integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesPhorge + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesPhorge" + responses: + '200': + description: Create/Edit Phorge integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesPhorge + "/api/v4/projects/{id}/services/pipelines-email": + put: + summary: Create/Edit Pipelines Email integration + description: Set Pipelines Email integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesPipelinesEmail + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesPipelinesEmail" + responses: + '200': + description: Create/Edit Pipelines Email integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesPipelinesEmail + "/api/v4/projects/{id}/services/pivotaltracker": + put: + summary: Create/Edit Pivotaltracker integration + description: Set Pivotaltracker integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesPivotaltracker + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesPivotaltracker" + responses: + '200': + description: Create/Edit Pivotaltracker integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesPivotaltracker + "/api/v4/projects/{id}/services/prometheus": + put: + summary: Create/Edit Prometheus integration + description: Set Prometheus integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesPrometheus + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesPrometheus" + responses: + '200': + description: Create/Edit Prometheus integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesPrometheus + "/api/v4/projects/{id}/services/pumble": + put: + summary: Create/Edit Pumble integration + description: Set Pumble integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesPumble + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesPumble" + responses: + '200': + description: Create/Edit Pumble integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesPumble + "/api/v4/projects/{id}/services/pushover": + put: + summary: Create/Edit Pushover integration + description: Set Pushover integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesPushover + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesPushover" + responses: + '200': + description: Create/Edit Pushover integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesPushover + "/api/v4/projects/{id}/services/redmine": + put: + summary: Create/Edit Redmine integration + description: Set Redmine integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesRedmine + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesRedmine" + responses: + '200': + description: Create/Edit Redmine integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesRedmine + "/api/v4/projects/{id}/services/ewm": + put: + summary: Create/Edit Ewm integration + description: Set Ewm integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesEwm + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesEwm" + responses: + '200': + description: Create/Edit Ewm integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesEwm + "/api/v4/projects/{id}/services/youtrack": + put: + summary: Create/Edit Youtrack integration + description: Set Youtrack integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesYoutrack + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesYoutrack" + responses: + '200': + description: Create/Edit Youtrack integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesYoutrack + "/api/v4/projects/{id}/services/clickup": + put: + summary: Create/Edit Clickup integration + description: Set Clickup integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesClickup + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesClickup" + responses: + '200': + description: Create/Edit Clickup integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesClickup + "/api/v4/projects/{id}/services/slack": + put: + summary: Create/Edit Slack integration + description: Set Slack integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesSlack + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesSlack" + responses: + '200': + description: Create/Edit Slack integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesSlack + "/api/v4/projects/{id}/services/microsoft-teams": + put: + summary: Create/Edit Microsoft Teams integration + description: Set Microsoft Teams integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesMicrosoftTeams + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesMicrosoftTeams" + responses: + '200': + description: Create/Edit Microsoft Teams integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesMicrosoftTeams + "/api/v4/projects/{id}/services/mattermost": + put: + summary: Create/Edit Mattermost integration + description: Set Mattermost integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesMattermost + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesMattermost" + responses: + '200': + description: Create/Edit Mattermost integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesMattermost + "/api/v4/projects/{id}/services/teamcity": + put: + summary: Create/Edit Teamcity integration + description: Set Teamcity integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesTeamcity + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesTeamcity" + responses: + '200': + description: Create/Edit Teamcity integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesTeamcity + "/api/v4/projects/{id}/services/telegram": + put: + summary: Create/Edit Telegram integration + description: Set Telegram integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesTelegram + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesTelegram" + responses: + '200': + description: Create/Edit Telegram integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesTelegram + "/api/v4/projects/{id}/services/unify-circuit": + put: + summary: Create/Edit Unify Circuit integration + description: Set Unify Circuit integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesUnifyCircuit + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesUnifyCircuit" + responses: + '200': + description: Create/Edit Unify Circuit integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesUnifyCircuit + "/api/v4/projects/{id}/services/webex-teams": + put: + summary: Create/Edit Webex Teams integration + description: Set Webex Teams integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesWebexTeams + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesWebexTeams" + responses: + '200': + description: Create/Edit Webex Teams integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesWebexTeams + "/api/v4/projects/{id}/services/zentao": + put: + summary: Create/Edit Zentao integration + description: Set Zentao integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesZentao + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesZentao" + responses: + '200': + description: Create/Edit Zentao integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesZentao + "/api/v4/projects/{id}/services/squash-tm": + put: + summary: Create/Edit Squash Tm integration + description: Set Squash Tm integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesSquashTm + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesSquashTm" + responses: + '200': + description: Create/Edit Squash Tm integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesSquashTm + "/api/v4/projects/{id}/services/github": + put: + summary: Create/Edit Github integration + description: Set Github integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesGithub + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesGithub" + responses: + '200': + description: Create/Edit Github integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesGithub + "/api/v4/projects/{id}/services/git-guardian": + put: + summary: Create/Edit Git Guardian integration + description: Set Git Guardian integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesGitGuardian + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesGitGuardian" + responses: + '200': + description: Create/Edit Git Guardian integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesGitGuardian + "/api/v4/projects/{id}/services/google-cloud-platform-artifact-registry": + put: + summary: Create/Edit Google Cloud Platform Artifact Registry integration + description: Set Google Cloud Platform Artifact Registry integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry" + responses: + '200': + description: Create/Edit Google Cloud Platform Artifact Registry integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry + "/api/v4/projects/{id}/services/google-cloud-platform-workload-identity-federation": + put: + summary: Create/Edit Google Cloud Platform Workload Identity Federation integration + description: Set Google Cloud Platform Workload Identity Federation integration + for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation" + responses: + '200': + description: Create/Edit Google Cloud Platform Workload Identity Federation + integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation + "/api/v4/projects/{id}/services/mock-ci": + put: + summary: Create/Edit Mock Ci integration + description: Set Mock Ci integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesMockCi + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesMockCi" + responses: + '200': + description: Create/Edit Mock Ci integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesMockCi + "/api/v4/projects/{id}/services/mock-monitoring": + put: + summary: Create/Edit Mock Monitoring integration + description: Set Mock Monitoring integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdServicesMockMonitoring + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdServicesMockMonitoring" + responses: + '200': + description: Create/Edit Mock Monitoring integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdServicesMockMonitoring + "/api/v4/projects/{id}/services/{slug}": + delete: + summary: Disable an integration + description: Disable the integration for a project. Integration settings are + preserved. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: slug + description: The name of the integration + type: string + enum: + - apple-app-store + - asana + - assembla + - bamboo + - bugzilla + - buildkite + - campfire + - confluence + - custom-issue-tracker + - datadog + - diffblue-cover + - discord + - drone-ci + - emails-on-push + - external-wiki + - gitlab-slack-application + - google-play + - hangouts-chat + - harbor + - irker + - jenkins + - jira + - jira-cloud-app + - matrix + - mattermost-slash-commands + - slack-slash-commands + - packagist + - phorge + - pipelines-email + - pivotaltracker + - prometheus + - pumble + - pushover + - redmine + - ewm + - youtrack + - clickup + - slack + - microsoft-teams + - mattermost + - teamcity + - telegram + - unify-circuit + - webex-teams + - zentao + - squash-tm + - github + - git-guardian + - google-cloud-platform-artifact-registry + - google-cloud-platform-workload-identity-federation + - mock-ci + - mock-monitoring + required: true + responses: + '204': + description: Disable an integration + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: deleteApiV4ProjectsIdServicesSlug + get: + summary: Get an integration settings + description: Get the integration settings for a project. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: slug + description: The name of the integration + type: string + enum: + - apple-app-store + - asana + - assembla + - bamboo + - bugzilla + - buildkite + - campfire + - confluence + - custom-issue-tracker + - datadog + - diffblue-cover + - discord + - drone-ci + - emails-on-push + - external-wiki + - gitlab-slack-application + - google-play + - hangouts-chat + - harbor + - irker + - jenkins + - jira + - jira-cloud-app + - matrix + - mattermost-slash-commands + - slack-slash-commands + - packagist + - phorge + - pipelines-email + - pivotaltracker + - prometheus + - pumble + - pushover + - redmine + - ewm + - youtrack + - clickup + - slack + - microsoft-teams + - mattermost + - teamcity + - telegram + - unify-circuit + - webex-teams + - zentao + - squash-tm + - github + - git-guardian + - google-cloud-platform-artifact-registry + - google-cloud-platform-workload-identity-federation + - mock-ci + - mock-monitoring + required: true + responses: + '200': + description: Get an integration settings + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegration" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: getApiV4ProjectsIdServicesSlug + "/api/v4/projects/{id}/services/mattermost_slash_commands/trigger": + post: + summary: Trigger a slash command for mattermost-slash-commands + description: Added in GitLab 8.13 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger" + responses: + '201': + description: Trigger a slash command for mattermost-slash-commands + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger + "/api/v4/projects/{id}/services/slack_slash_commands/trigger": + post: + summary: Trigger a slash command for slack-slash-commands + description: Added in GitLab 8.13 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdServicesSlackSlashCommandsTrigger + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdServicesSlackSlashCommandsTrigger" + responses: + '201': + description: Trigger a slash command for slack-slash-commands + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: postApiV4ProjectsIdServicesSlackSlashCommandsTrigger + "/api/v4/projects/{id}/integrations": + get: + summary: List all active integrations + description: Get a list of all active project integrations. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: List all active integrations + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: getApiV4ProjectsIdIntegrations + "/api/v4/projects/{id}/integrations/apple-app-store": + put: + summary: Create/Edit Apple App Store integration + description: Set Apple App Store integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsAppleAppStore + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAppleAppStore" + responses: + '200': + description: Create/Edit Apple App Store integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsAppleAppStore + "/api/v4/projects/{id}/integrations/asana": + put: + summary: Create/Edit Asana integration + description: Set Asana integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsAsana + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAsana" + responses: + '200': + description: Create/Edit Asana integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsAsana + "/api/v4/projects/{id}/integrations/assembla": + put: + summary: Create/Edit Assembla integration + description: Set Assembla integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsAssembla + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAssembla" + responses: + '200': + description: Create/Edit Assembla integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsAssembla + "/api/v4/projects/{id}/integrations/bamboo": + put: + summary: Create/Edit Bamboo integration + description: Set Bamboo integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsBamboo + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBamboo" + responses: + '200': + description: Create/Edit Bamboo integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsBamboo + "/api/v4/projects/{id}/integrations/bugzilla": + put: + summary: Create/Edit Bugzilla integration + description: Set Bugzilla integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsBugzilla + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBugzilla" + responses: + '200': + description: Create/Edit Bugzilla integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsBugzilla + "/api/v4/projects/{id}/integrations/buildkite": + put: + summary: Create/Edit Buildkite integration + description: Set Buildkite integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsBuildkite + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBuildkite" + responses: + '200': + description: Create/Edit Buildkite integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsBuildkite + "/api/v4/projects/{id}/integrations/campfire": + put: + summary: Create/Edit Campfire integration + description: Set Campfire integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsCampfire + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsCampfire" + responses: + '200': + description: Create/Edit Campfire integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsCampfire + "/api/v4/projects/{id}/integrations/confluence": + put: + summary: Create/Edit Confluence integration + description: Set Confluence integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsConfluence + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsConfluence" + responses: + '200': + description: Create/Edit Confluence integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsConfluence + "/api/v4/projects/{id}/integrations/custom-issue-tracker": + put: + summary: Create/Edit Custom Issue Tracker integration + description: Set Custom Issue Tracker integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsCustomIssueTracker + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsCustomIssueTracker" + responses: + '200': + description: Create/Edit Custom Issue Tracker integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsCustomIssueTracker + "/api/v4/projects/{id}/integrations/datadog": + put: + summary: Create/Edit Datadog integration + description: Set Datadog integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsDatadog + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDatadog" + responses: + '200': + description: Create/Edit Datadog integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsDatadog + "/api/v4/projects/{id}/integrations/diffblue-cover": + put: + summary: Create/Edit Diffblue Cover integration + description: Set Diffblue Cover integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsDiffblueCover + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDiffblueCover" + responses: + '200': + description: Create/Edit Diffblue Cover integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsDiffblueCover + "/api/v4/projects/{id}/integrations/discord": + put: + summary: Create/Edit Discord integration + description: Set Discord integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsDiscord + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDiscord" + responses: + '200': + description: Create/Edit Discord integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsDiscord + "/api/v4/projects/{id}/integrations/drone-ci": + put: + summary: Create/Edit Drone Ci integration + description: Set Drone Ci integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsDroneCi + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDroneCi" + responses: + '200': + description: Create/Edit Drone Ci integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsDroneCi + "/api/v4/projects/{id}/integrations/emails-on-push": + put: + summary: Create/Edit Emails On Push integration + description: Set Emails On Push integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsEmailsOnPush + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsEmailsOnPush" + responses: + '200': + description: Create/Edit Emails On Push integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsEmailsOnPush + "/api/v4/projects/{id}/integrations/external-wiki": + put: + summary: Create/Edit External Wiki integration + description: Set External Wiki integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsExternalWiki + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsExternalWiki" + responses: + '200': + description: Create/Edit External Wiki integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsExternalWiki + "/api/v4/projects/{id}/integrations/gitlab-slack-application": + put: + summary: Create/Edit Gitlab Slack Application integration + description: Set Gitlab Slack Application integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsGitlabSlackApplication + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGitlabSlackApplication" + responses: + '200': + description: Create/Edit Gitlab Slack Application integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsGitlabSlackApplication + "/api/v4/projects/{id}/integrations/google-play": + put: + summary: Create/Edit Google Play integration + description: Set Google Play integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsGooglePlay + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGooglePlay" + responses: + '200': + description: Create/Edit Google Play integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsGooglePlay + "/api/v4/projects/{id}/integrations/hangouts-chat": + put: + summary: Create/Edit Hangouts Chat integration + description: Set Hangouts Chat integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsHangoutsChat + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsHangoutsChat" + responses: + '200': + description: Create/Edit Hangouts Chat integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsHangoutsChat + "/api/v4/projects/{id}/integrations/harbor": + put: + summary: Create/Edit Harbor integration + description: Set Harbor integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsHarbor + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsHarbor" + responses: + '200': + description: Create/Edit Harbor integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsHarbor + "/api/v4/projects/{id}/integrations/irker": + put: + summary: Create/Edit Irker integration + description: Set Irker integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsIrker + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsIrker" + responses: + '200': + description: Create/Edit Irker integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsIrker + "/api/v4/projects/{id}/integrations/jenkins": + put: + summary: Create/Edit Jenkins integration + description: Set Jenkins integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsJenkins + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsJenkins" + responses: + '200': + description: Create/Edit Jenkins integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsJenkins + "/api/v4/projects/{id}/integrations/jira": + put: + summary: Create/Edit Jira integration + description: Set Jira integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsJira + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsJira" + responses: + '200': + description: Create/Edit Jira integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsJira + "/api/v4/projects/{id}/integrations/jira-cloud-app": + put: + summary: Create/Edit Jira Cloud App integration + description: Set Jira Cloud App integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsJiraCloudApp + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsJiraCloudApp" + responses: + '200': + description: Create/Edit Jira Cloud App integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsJiraCloudApp + "/api/v4/projects/{id}/integrations/matrix": + put: + summary: Create/Edit Matrix integration + description: Set Matrix integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsMatrix + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMatrix" + responses: + '200': + description: Create/Edit Matrix integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsMatrix + "/api/v4/projects/{id}/integrations/mattermost-slash-commands": + put: + summary: Create/Edit Mattermost Slash Commands integration + description: Set Mattermost Slash Commands integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsMattermostSlashCommands + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMattermostSlashCommands" + responses: + '200': + description: Create/Edit Mattermost Slash Commands integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsMattermostSlashCommands + "/api/v4/projects/{id}/integrations/slack-slash-commands": + put: + summary: Create/Edit Slack Slash Commands integration + description: Set Slack Slash Commands integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsSlackSlashCommands + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSlackSlashCommands" + responses: + '200': + description: Create/Edit Slack Slash Commands integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsSlackSlashCommands + "/api/v4/projects/{id}/integrations/packagist": + put: + summary: Create/Edit Packagist integration + description: Set Packagist integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsPackagist + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPackagist" + responses: + '200': + description: Create/Edit Packagist integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsPackagist + "/api/v4/projects/{id}/integrations/phorge": + put: + summary: Create/Edit Phorge integration + description: Set Phorge integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsPhorge + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPhorge" + responses: + '200': + description: Create/Edit Phorge integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsPhorge + "/api/v4/projects/{id}/integrations/pipelines-email": + put: + summary: Create/Edit Pipelines Email integration + description: Set Pipelines Email integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsPipelinesEmail + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPipelinesEmail" + responses: + '200': + description: Create/Edit Pipelines Email integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsPipelinesEmail + "/api/v4/projects/{id}/integrations/pivotaltracker": + put: + summary: Create/Edit Pivotaltracker integration + description: Set Pivotaltracker integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsPivotaltracker + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPivotaltracker" + responses: + '200': + description: Create/Edit Pivotaltracker integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsPivotaltracker + "/api/v4/projects/{id}/integrations/prometheus": + put: + summary: Create/Edit Prometheus integration + description: Set Prometheus integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsPrometheus + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPrometheus" + responses: + '200': + description: Create/Edit Prometheus integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsPrometheus + "/api/v4/projects/{id}/integrations/pumble": + put: + summary: Create/Edit Pumble integration + description: Set Pumble integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsPumble + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPumble" + responses: + '200': + description: Create/Edit Pumble integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsPumble + "/api/v4/projects/{id}/integrations/pushover": + put: + summary: Create/Edit Pushover integration + description: Set Pushover integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsPushover + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPushover" + responses: + '200': + description: Create/Edit Pushover integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsPushover + "/api/v4/projects/{id}/integrations/redmine": + put: + summary: Create/Edit Redmine integration + description: Set Redmine integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsRedmine + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsRedmine" + responses: + '200': + description: Create/Edit Redmine integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsRedmine + "/api/v4/projects/{id}/integrations/ewm": + put: + summary: Create/Edit Ewm integration + description: Set Ewm integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsEwm + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsEwm" + responses: + '200': + description: Create/Edit Ewm integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsEwm + "/api/v4/projects/{id}/integrations/youtrack": + put: + summary: Create/Edit Youtrack integration + description: Set Youtrack integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsYoutrack + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsYoutrack" + responses: + '200': + description: Create/Edit Youtrack integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsYoutrack + "/api/v4/projects/{id}/integrations/clickup": + put: + summary: Create/Edit Clickup integration + description: Set Clickup integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsClickup + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsClickup" + responses: + '200': + description: Create/Edit Clickup integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsClickup + "/api/v4/projects/{id}/integrations/slack": + put: + summary: Create/Edit Slack integration + description: Set Slack integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsSlack + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSlack" + responses: + '200': + description: Create/Edit Slack integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsSlack + "/api/v4/projects/{id}/integrations/microsoft-teams": + put: + summary: Create/Edit Microsoft Teams integration + description: Set Microsoft Teams integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsMicrosoftTeams + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMicrosoftTeams" + responses: + '200': + description: Create/Edit Microsoft Teams integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsMicrosoftTeams + "/api/v4/projects/{id}/integrations/mattermost": + put: + summary: Create/Edit Mattermost integration + description: Set Mattermost integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsMattermost + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMattermost" + responses: + '200': + description: Create/Edit Mattermost integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsMattermost + "/api/v4/projects/{id}/integrations/teamcity": + put: + summary: Create/Edit Teamcity integration + description: Set Teamcity integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsTeamcity + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsTeamcity" + responses: + '200': + description: Create/Edit Teamcity integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsTeamcity + "/api/v4/projects/{id}/integrations/telegram": + put: + summary: Create/Edit Telegram integration + description: Set Telegram integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsTelegram + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsTelegram" + responses: + '200': + description: Create/Edit Telegram integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsTelegram + "/api/v4/projects/{id}/integrations/unify-circuit": + put: + summary: Create/Edit Unify Circuit integration + description: Set Unify Circuit integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsUnifyCircuit + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsUnifyCircuit" + responses: + '200': + description: Create/Edit Unify Circuit integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsUnifyCircuit + "/api/v4/projects/{id}/integrations/webex-teams": + put: + summary: Create/Edit Webex Teams integration + description: Set Webex Teams integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsWebexTeams + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsWebexTeams" + responses: + '200': + description: Create/Edit Webex Teams integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsWebexTeams + "/api/v4/projects/{id}/integrations/zentao": + put: + summary: Create/Edit Zentao integration + description: Set Zentao integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsZentao + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsZentao" + responses: + '200': + description: Create/Edit Zentao integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsZentao + "/api/v4/projects/{id}/integrations/squash-tm": + put: + summary: Create/Edit Squash Tm integration + description: Set Squash Tm integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsSquashTm + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSquashTm" + responses: + '200': + description: Create/Edit Squash Tm integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsSquashTm + "/api/v4/projects/{id}/integrations/github": + put: + summary: Create/Edit Github integration + description: Set Github integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsGithub + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGithub" + responses: + '200': + description: Create/Edit Github integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsGithub + "/api/v4/projects/{id}/integrations/git-guardian": + put: + summary: Create/Edit Git Guardian integration + description: Set Git Guardian integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsGitGuardian + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGitGuardian" + responses: + '200': + description: Create/Edit Git Guardian integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsGitGuardian + "/api/v4/projects/{id}/integrations/google-cloud-platform-artifact-registry": + put: + summary: Create/Edit Google Cloud Platform Artifact Registry integration + description: Set Google Cloud Platform Artifact Registry integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry" + responses: + '200': + description: Create/Edit Google Cloud Platform Artifact Registry integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry + "/api/v4/projects/{id}/integrations/google-cloud-platform-workload-identity-federation": + put: + summary: Create/Edit Google Cloud Platform Workload Identity Federation integration + description: Set Google Cloud Platform Workload Identity Federation integration + for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation" + responses: + '200': + description: Create/Edit Google Cloud Platform Workload Identity Federation + integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation + "/api/v4/projects/{id}/integrations/mock-ci": + put: + summary: Create/Edit Mock Ci integration + description: Set Mock Ci integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsMockCi + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMockCi" + responses: + '200': + description: Create/Edit Mock Ci integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsMockCi + "/api/v4/projects/{id}/integrations/mock-monitoring": + put: + summary: Create/Edit Mock Monitoring integration + description: Set Mock Monitoring integration for a project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdIntegrationsMockMonitoring + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMockMonitoring" + responses: + '200': + description: Create/Edit Mock Monitoring integration + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - integrations + operationId: putApiV4ProjectsIdIntegrationsMockMonitoring + "/api/v4/projects/{id}/integrations/{slug}": + delete: + summary: Disable an integration + description: Disable the integration for a project. Integration settings are + preserved. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: slug + description: The name of the integration + type: string + enum: + - apple-app-store + - asana + - assembla + - bamboo + - bugzilla + - buildkite + - campfire + - confluence + - custom-issue-tracker + - datadog + - diffblue-cover + - discord + - drone-ci + - emails-on-push + - external-wiki + - gitlab-slack-application + - google-play + - hangouts-chat + - harbor + - irker + - jenkins + - jira + - jira-cloud-app + - matrix + - mattermost-slash-commands + - slack-slash-commands + - packagist + - phorge + - pipelines-email + - pivotaltracker + - prometheus + - pumble + - pushover + - redmine + - ewm + - youtrack + - clickup + - slack + - microsoft-teams + - mattermost + - teamcity + - telegram + - unify-circuit + - webex-teams + - zentao + - squash-tm + - github + - git-guardian + - google-cloud-platform-artifact-registry + - google-cloud-platform-workload-identity-federation + - mock-ci + - mock-monitoring + required: true + responses: + '204': + description: Disable an integration + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: deleteApiV4ProjectsIdIntegrationsSlug + get: + summary: Get an integration settings + description: Get the integration settings for a project. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: slug + description: The name of the integration + type: string + enum: + - apple-app-store + - asana + - assembla + - bamboo + - bugzilla + - buildkite + - campfire + - confluence + - custom-issue-tracker + - datadog + - diffblue-cover + - discord + - drone-ci + - emails-on-push + - external-wiki + - gitlab-slack-application + - google-play + - hangouts-chat + - harbor + - irker + - jenkins + - jira + - jira-cloud-app + - matrix + - mattermost-slash-commands + - slack-slash-commands + - packagist + - phorge + - pipelines-email + - pivotaltracker + - prometheus + - pumble + - pushover + - redmine + - ewm + - youtrack + - clickup + - slack + - microsoft-teams + - mattermost + - teamcity + - telegram + - unify-circuit + - webex-teams + - zentao + - squash-tm + - github + - git-guardian + - google-cloud-platform-artifact-registry + - google-cloud-platform-workload-identity-federation + - mock-ci + - mock-monitoring + required: true + responses: + '200': + description: Get an integration settings + schema: + "$ref": "#/definitions/API_Entities_ProjectIntegration" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: getApiV4ProjectsIdIntegrationsSlug + "/api/v4/projects/{id}/integrations/mattermost_slash_commands/trigger": + post: + summary: Trigger a slash command for mattermost-slash-commands + description: Added in GitLab 8.13 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger" + responses: + '201': + description: Trigger a slash command for mattermost-slash-commands + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger + "/api/v4/projects/{id}/integrations/slack_slash_commands/trigger": + post: + summary: Trigger a slash command for slack-slash-commands + description: Added in GitLab 8.13 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger" + responses: + '201': + description: Trigger a slash command for slack-slash-commands + '401': + description: Unauthorized + '404': + description: Not found + tags: + - integrations + operationId: postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger + "/api/v4/projects/{id}/invitations": + post: + summary: Invite non-members by email address to a group or project. + description: This feature was introduced in GitLab 13.6 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - name: postApiV4ProjectsIdInvitations + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdInvitations" + responses: + '201': + description: Invite non-members by email address to a group or project. + schema: + "$ref": "#/definitions/API_Entities_Invitation" + tags: + - invitations + operationId: postApiV4ProjectsIdInvitations + get: + summary: Get a list of group or project invitations viewable by the authenticated + user + description: This feature was introduced in GitLab 13.6 + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: query + description: A query string to search for members + type: string + required: false + responses: + '200': + description: Get a list of group or project invitations viewable by the + authenticated user + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Invitation" + tags: + - invitations + operationId: getApiV4ProjectsIdInvitations + "/api/v4/projects/{id}/invitations/{email}": + put: + description: Updates a group or project invitation. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: email + description: The email address of the invitation + type: string + required: true + - name: putApiV4ProjectsIdInvitationsEmail + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdInvitationsEmail" + responses: + '200': + description: Updates a group or project invitation. + schema: + "$ref": "#/definitions/API_Entities_Invitation" + tags: + - invitations + operationId: putApiV4ProjectsIdInvitationsEmail + delete: + description: Removes an invitation from a group or project. + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: email + description: The email address of the invitation + type: string + required: true + responses: + '204': + description: Removes an invitation from a group or project. + '403': + description: Forbidden + '404': + description: Not found + '409': + description: Could not delete invitation + tags: + - invitations + operationId: deleteApiV4ProjectsIdInvitationsEmail + "/api/v4/projects/{id}/issues/{issue_iid}/links": + get: + summary: List issue relations + description: Get a list of a given issue’s linked issues, sorted by the relationship + creation datetime (ascending).Issues are filtered according to the user authorizations. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: issue_iid + description: The internal ID of a project’s issue + type: integer + format: int32 + required: true + responses: + '200': + description: List issue relations + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_RelatedIssue" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - issue_links + operationId: getApiV4ProjectsIdIssuesIssueIidLinks + post: + summary: Create an issue link + description: Creates a two-way relation between two issues.The user must be + allowed to update both issues to succeed. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: issue_iid + description: The internal ID of a project’s issue + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdIssuesIssueIidLinks + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdIssuesIssueIidLinks" + responses: + '201': + description: Create an issue link + schema: + "$ref": "#/definitions/API_Entities_IssueLink" + '400': + description: Bad Request + '401': + description: Unauthorized + tags: + - issue_links + operationId: postApiV4ProjectsIdIssuesIssueIidLinks + "/api/v4/projects/{id}/issues/{issue_iid}/links/{issue_link_id}": + get: + summary: Get an issue link + description: Gets details about an issue link. This feature was introduced in + GitLab 15.1. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: issue_iid + description: The internal ID of a project’s issue + type: integer + format: int32 + required: true + - in: path + name: issue_link_id + description: ID of an issue relationship + type: string + required: true + responses: + '200': + description: Get an issue link + schema: + "$ref": "#/definitions/API_Entities_IssueLink" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - issue_links + operationId: getApiV4ProjectsIdIssuesIssueIidLinksIssueLinkId + delete: + summary: Delete an issue link + description: Deletes an issue link, thus removes the two-way relationship. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: issue_iid + description: The internal ID of a project’s issue + type: integer + format: int32 + required: true + - in: path + name: issue_link_id + description: The ID of an issue relationship + type: string + required: true + responses: + '401': + description: Unauthorized + '204': + description: Delete an issue link + schema: + "$ref": "#/definitions/API_Entities_IssueLink" + '404': + description: Not found + tags: + - issue_links + operationId: deleteApiV4ProjectsIdIssuesIssueIidLinksIssueLinkId + "/api/v4/projects/{id}/ci/lint": + get: + summary: Validates a CI YAML configuration with a namespace + description: |- + Checks if a project’s .gitlab-ci.yml configuration in a given commit (by default HEAD of the + project’s default branch) is valid + produces: + - application/json + parameters: + - in: query + name: sha + description: 'Deprecated: Use content_ref instead' + type: string + required: false + - in: query + name: content_ref + description: The CI/CD configuration content is taken from this commit SHA, + branch or tag. Defaults to the HEAD of the project's default branch + type: string + required: false + - in: query + name: dry_run + description: Run pipeline creation simulation, or only do static check. This + is false by default + type: boolean + default: false + required: false + - in: query + name: include_jobs + description: |- + If the list of jobs that would exist in a static check or pipeline + simulation should be included in the response. This is false by default + type: boolean + required: false + - in: query + name: ref + description: 'Deprecated: Use dry_run_ref instead' + type: string + required: false + - in: query + name: dry_run_ref + description: Branch or tag used as context when executing a dry run. Defaults + to the default branch of the project. Only used when dry_run is true + type: string + required: false + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Validates a CI YAML configuration with a namespace + schema: + "$ref": "#/definitions/API_Entities_Ci_Lint_Result" + '404': + description: Not found + tags: + - ci_lint + operationId: getApiV4ProjectsIdCiLint + post: + summary: Validate a CI YAML configuration with a namespace + description: Checks if CI/CD YAML configuration is valid. This endpoint has + namespace specific context + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdCiLint + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdCiLint" + responses: + '200': + description: Validate a CI YAML configuration with a namespace + schema: + "$ref": "#/definitions/API_Entities_Ci_Lint_Result" + tags: + - ci_lint + operationId: postApiV4ProjectsIdCiLint + "/api/v4/projects/{id}/uploads/authorize": + post: + summary: Workhorse authorize the file upload + description: This feature was introduced in GitLab 13.11 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Workhorse authorize the file upload + '404': + description: Not found + tags: + - projects + operationId: postApiV4ProjectsIdUploadsAuthorize + "/api/v4/projects/{id}/uploads": + post: + description: Upload a file + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdUploads + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdUploads" + responses: + '201': + description: Upload a file + schema: + "$ref": "#/definitions/API_Entities_ProjectUpload" + '404': + description: Not found + tags: + - projects + operationId: postApiV4ProjectsIdUploads + get: + description: Get the list of uploads of a project + produces: + - application/json + parameters: + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get the list of uploads of a project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_MarkdownUploadAdmin" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdUploads + "/api/v4/projects/{id}/uploads/{upload_id}": + get: + description: Download a single project upload by ID + produces: + - application/json + parameters: + - in: path + name: upload_id + description: The ID of a project upload + type: integer + format: int32 + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Download a single project upload by ID + schema: + type: file + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdUploadsUploadId + delete: + description: Delete a single project upload by ID + produces: + - application/json + parameters: + - in: path + name: upload_id + description: The ID of a project upload + type: integer + format: int32 + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a single project upload by ID + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: deleteApiV4ProjectsIdUploadsUploadId + "/api/v4/projects/{id}/uploads/{secret}/{filename}": + get: + description: Download a single project upload by secret and filename + produces: + - application/json + parameters: + - in: path + name: secret + description: The 32-character secret of a project upload + type: string + required: true + - in: path + name: filename + description: The filename of a project upload + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Download a single project upload by secret and filename + schema: + type: file + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdUploadsSecretFilename + delete: + description: Delete a single project upload by secret and filename + produces: + - application/json + parameters: + - in: path + name: secret + description: The 32-character secret of a project upload + type: string + required: true + - in: path + name: filename + description: The filename of a project upload + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a single project upload by secret and filename + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: deleteApiV4ProjectsIdUploadsSecretFilename + "/api/v4/projects/{id}/packages/maven/*path/{file_name}": + get: + summary: Download the maven package file at a project level + description: This feature was introduced in GitLab 11.3 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: path + description: Package path + type: string + required: true + example: foo/bar/mypkg/1.0-SNAPSHOT + - in: path + name: file_name + description: Package file name + type: string + required: true + example: mypkg-1.0-SNAPSHOT.jar + responses: + '200': + description: Download the maven package file at a project level + '302': + description: Download the maven package file at a project level + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - maven_packages + operationId: getApiV4ProjectsIdPackagesMaven*pathFileName + put: + summary: Upload the maven package file + description: This feature was introduced in GitLab 11.3 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: file_name + description: Package file name + type: string + required: true + example: mypkg-1.0-SNAPSHOT.pom + - name: putApiV4ProjectsIdPackagesMaven*pathFileName + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdPackagesMaven*pathFileName" + responses: + '200': + description: Upload the maven package file + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + '422': + description: Unprocessable Entity + tags: + - maven_packages + operationId: putApiV4ProjectsIdPackagesMaven*pathFileName + "/api/v4/projects/{id}/packages/maven/*path/{file_name}/authorize": + put: + summary: Workhorse authorize the maven package file upload + description: This feature was introduced in GitLab 11.3 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: file_name + description: Package file name + type: string + required: true + example: mypkg-1.0-SNAPSHOT.pom + - name: putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize" + responses: + '200': + description: Workhorse authorize the maven package file upload + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - maven_packages + operationId: putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize + "/api/v4/projects/{id}/members": + get: + description: Gets a list of group or project members viewable by the authenticated + user. + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: query + name: query + description: A query string to search for members + type: string + required: false + - in: query + name: user_ids + description: Array of user ids to look up for membership + type: array + items: + type: integer + format: int32 + required: false + - in: query + name: skip_users + description: Array of user ids to be skipped for membership + type: array + items: + type: integer + format: int32 + required: false + - in: query + name: show_seat_info + description: Show seat information for members + type: boolean + required: false + - in: query + name: with_saml_identity + description: List only members with linked SAML identity + type: boolean + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Gets a list of group or project members viewable by the authenticated + user. + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Member" + tags: + - members + operationId: getApiV4ProjectsIdMembers + post: + description: Adds a member to a group or project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - name: postApiV4ProjectsIdMembers + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdMembers" + responses: + '201': + description: Adds a member to a group or project. + schema: + "$ref": "#/definitions/API_Entities_Member" + tags: + - members + operationId: postApiV4ProjectsIdMembers + "/api/v4/projects/{id}/members/all": + get: + description: Gets a list of group or project members viewable by the authenticated + user, including those who gained membership through ancestor group. + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: query + name: query + description: A query string to search for members + type: string + required: false + - in: query + name: user_ids + description: Array of user ids to look up for membership + type: array + items: + type: integer + format: int32 + required: false + - in: query + name: show_seat_info + description: Show seat information for members + type: boolean + required: false + - in: query + name: state + description: Filter results by member state + type: string + enum: + - awaiting + - active + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Gets a list of group or project members viewable by the authenticated + user, including those who gained membership through ancestor group. + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Member" + tags: + - members + operationId: getApiV4ProjectsIdMembersAll + "/api/v4/projects/{id}/members/{user_id}": + get: + description: Gets a member of a group or project. + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: user_id + description: The user ID of the member + type: integer + format: int32 + required: true + responses: + '200': + description: Gets a member of a group or project. + schema: + "$ref": "#/definitions/API_Entities_Member" + tags: + - members + operationId: getApiV4ProjectsIdMembersUserId + put: + description: Updates a member of a group or project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: user_id + description: The user ID of the new member + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdMembersUserId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdMembersUserId" + responses: + '200': + description: Updates a member of a group or project. + schema: + "$ref": "#/definitions/API_Entities_Member" + tags: + - members + operationId: putApiV4ProjectsIdMembersUserId + delete: + description: Removes a user from a group or project. + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: user_id + description: The user ID of the member + type: integer + format: int32 + required: true + - in: query + name: skip_subresources + description: Flag indicating if the deletion of direct memberships of the + removed member in subgroups and projects should be skipped + type: boolean + default: false + required: false + - in: query + name: unassign_issuables + description: Flag indicating if the removed member should be unassigned from + any issues or merge requests within given group or project + type: boolean + default: false + required: false + responses: + '204': + description: Removes a user from a group or project. + tags: + - members + operationId: deleteApiV4ProjectsIdMembersUserId + "/api/v4/projects/{id}/members/all/{user_id}": + get: + description: Gets a member of a group or project, including those who gained + membership through ancestor group + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: user_id + description: The user ID of the member + type: integer + format: int32 + required: true + responses: + '200': + description: Gets a member of a group or project, including those who gained + membership through ancestor group + schema: + "$ref": "#/definitions/API_Entities_Member" + tags: + - members + operationId: getApiV4ProjectsIdMembersAllUserId "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/approvals": get: description: List approvals for merge request @@ -28044,6 +20179,1383 @@ paths: tags: - projects operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidApprovalState + "/api/v4/projects/{id}/create_ci_config": + post: + description: Creates merge request for missing ci config in project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '201': + description: Creates merge request for missing ci config in project + tags: + - projects + operationId: postApiV4ProjectsIdCreateCiConfig + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_estimate": + post: + summary: Set a time estimate for a merge_request + description: Sets an estimated time of work for this merge_request. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge_request. + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate" + responses: + '201': + description: Set a time estimate for a merge_request + schema: + "$ref": "#/definitions/API_Entities_IssuableTimeStats" + '401': + description: Unauthorized + '400': + description: Bad request + '404': + description: Not found + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_time_estimate": + post: + summary: Reset the time estimate for a project merge_request + description: Resets the estimated time for this merge_request to 0 seconds. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge_request. + type: integer + format: int32 + required: true + responses: + '201': + description: Reset the time estimate for a project merge_request + schema: + "$ref": "#/definitions/API_Entities_IssuableTimeStats" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidResetTimeEstimate + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/add_spent_time": + post: + summary: Add spent time for a merge_request + description: Adds spent time for this merge_request. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge_request. + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime" + responses: + '201': + description: Add spent time for a merge_request + schema: + "$ref": "#/definitions/API_Entities_IssuableTimeStats" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_spent_time": + post: + summary: Reset spent time for a merge_request + description: Resets the total spent time for this merge_request to 0 seconds. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge_request + type: integer + format: int32 + required: true + responses: + '201': + description: Reset spent time for a merge_request + schema: + "$ref": "#/definitions/API_Entities_IssuableTimeStats" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidResetSpentTime + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_stats": + get: + summary: Get time tracking stats + description: Get time tracking stats + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge_request + type: integer + format: int32 + required: true + responses: + '200': + description: Get time tracking stats + schema: + "$ref": "#/definitions/API_Entities_IssuableTimeStats" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidTimeStats + "/api/v4/projects/{id}/merge_requests": + get: + summary: List project merge requests + description: Get all merge requests for this project. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: query + name: author_id + description: Returns merge requests created by the given user `id`. Mutually + exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. + type: integer + format: int32 + required: false + - in: query + name: author_username + description: Returns merge requests created by the given `username`. Mutually + exclusive with `author_id`. + type: string + required: false + - in: query + name: assignee_id + description: Returns merge requests assigned to the given user `id`. `None` + returns unassigned merge requests. `Any` returns merge requests with an + assignee. + type: integer + format: int32 + required: false + - in: query + name: assignee_username + description: Returns merge requests created by the given `username`. Mutually + exclusive with `author_id`. + type: array + items: + type: string + required: false + - in: query + name: reviewer_username + description: Returns merge requests which have the user as a reviewer with + the given `username`. `None` returns merge requests with no reviewers. `Any` + returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. + Introduced in GitLab 13.8. + type: string + required: false + - in: query + name: labels + description: Returns merge requests matching a comma-separated list of labels. + `None` lists all merge requests with no labels. `Any` lists all merge requests + with at least one label. Predefined names are case-insensitive. + type: array + items: + type: string + required: false + - in: query + name: milestone + description: Returns merge requests for a specific milestone. `None` returns + merge requests with no milestone. `Any` returns merge requests that have + an assigned milestone. + type: string + required: false + - in: query + name: my_reaction_emoji + description: Returns merge requests reacted by the authenticated user by the + given `emoji`. `None` returns issues not given a reaction. `Any` returns + issues given at least one reaction. + type: string + required: false + - in: query + name: reviewer_id + description: Returns merge requests which have the user as a reviewer with + the given user `id`. `None` returns merge requests with no reviewers. `Any` + returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. + type: integer + format: int32 + required: false + - in: query + name: state + description: Returns `all` merge requests or just those that are `opened`, + `closed`, `locked`, or `merged`. + type: string + default: all + enum: + - opened + - closed + - locked + - merged + - all + required: false + - in: query + name: order_by + description: Returns merge requests ordered by `created_at`, `label_priority`, + `milestone_due`, `popularity`, `priority`, `title`, `updated_at` or `merged_at` + fields. Introduced in GitLab 14.8. + type: string + default: created_at + enum: + - created_at + - label_priority + - milestone_due + - popularity + - priority + - title + - updated_at + - merged_at + required: false + - in: query + name: sort + description: Returns merge requests sorted in `asc` or `desc` order. + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: with_labels_details + description: 'If `true`, response returns more details for each label in labels + field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`' + type: boolean + default: false + required: false + - in: query + name: with_merge_status_recheck + description: If `true`, this projection requests (but does not guarantee) + that the `merge_status` field be recalculated asynchronously. Introduced + in GitLab 13.0. + type: boolean + default: false + required: false + - in: query + name: created_after + description: Returns merge requests created on or after the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: created_before + description: Returns merge requests created on or before the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: updated_after + description: Returns merge requests updated on or after the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: updated_before + description: Returns merge requests updated on or before the given time. Expected + in ISO 8601 format. + type: string + format: date-time + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: view + description: If simple, returns the `iid`, URL, title, description, and basic + state of merge request + type: string + enum: + - simple + required: false + - in: query + name: scope + description: 'Returns merge requests for the given scope: `created_by_me`, + `assigned_to_me` or `all`' + type: string + enum: + - created-by-me + - assigned-to-me + - created_by_me + - assigned_to_me + - all + required: false + - in: query + name: source_branch + description: Returns merge requests with the given source branch + type: string + required: false + - in: query + name: source_project_id + description: Returns merge requests with the given source project id + type: integer + format: int32 + required: false + - in: query + name: target_branch + description: Returns merge requests with the given target branch + type: string + required: false + - in: query + name: search + description: Search merge requests against their `title` and `description`. + type: string + required: false + - in: query + name: in + description: Modify the scope of the search attribute. `title`, `description`, + or a string joining them with comma. + type: string + required: false + example: title,description + - in: query + name: wip + description: Filter merge requests against their `wip` status. `yes` to return + only draft merge requests, `no` to return non-draft merge requests. + type: string + enum: + - 'yes' + - 'no' + required: false + - in: query + name: not[author_id] + description: "`` Returns merge requests created by the given user + `id`. Mutually exclusive with `author_username`. Combine with `scope=all` + or `scope=assigned_to_me`." + type: integer + format: int32 + required: false + - in: query + name: not[author_username] + description: "`` Returns merge requests created by the given `username`. + Mutually exclusive with `author_id`." + type: string + required: false + - in: query + name: not[assignee_id] + description: "`` Returns merge requests assigned to the given user + `id`. `None` returns unassigned merge requests. `Any` returns merge requests + with an assignee." + type: integer + format: int32 + required: false + - in: query + name: not[assignee_username] + description: "`` Returns merge requests created by the given `username`. + Mutually exclusive with `author_id`." + type: array + items: + type: string + required: false + - in: query + name: not[reviewer_username] + description: "`` Returns merge requests which have the user as a + reviewer with the given `username`. `None` returns merge requests with no + reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive + with `reviewer_id`. Introduced in GitLab 13.8." + type: string + required: false + - in: query + name: not[labels] + description: "`` Returns merge requests matching a comma-separated + list of labels. `None` lists all merge requests with no labels. `Any` lists + all merge requests with at least one label. Predefined names are case-insensitive." + type: array + items: + type: string + required: false + - in: query + name: not[milestone] + description: "`` Returns merge requests for a specific milestone. + `None` returns merge requests with no milestone. `Any` returns merge requests + that have an assigned milestone." + type: string + required: false + - in: query + name: not[my_reaction_emoji] + description: "`` Returns merge requests reacted by the authenticated + user by the given `emoji`. `None` returns issues not given a reaction. `Any` + returns issues given at least one reaction." + type: string + required: false + - in: query + name: not[reviewer_id] + description: "`` Returns merge requests which have the user as a + reviewer with the given user `id`. `None` returns merge requests with no + reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive + with `reviewer_username`." + type: integer + format: int32 + required: false + - in: query + name: deployed_before + description: Returns merge requests deployed before the given date/time. Expected + in ISO 8601 format. + type: string + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: deployed_after + description: Returns merge requests deployed after the given date/time. Expected + in ISO 8601 format + type: string + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: environment + description: Returns merge requests deployed to the given environment + type: string + required: false + example: '2019-03-15T08:00:00Z' + - in: query + name: approved + description: Filters merge requests by their `approved` status. `yes` returns + only approved merge requests. `no` returns only non-approved merge requests. + type: string + enum: + - 'yes' + - 'no' + required: false + - in: query + name: merge_user_id + description: Returns merge requests which have been merged by the user with + the given user `id`. Mutually exclusive with `merge_user_username`. + type: integer + format: int32 + required: false + - in: query + name: merge_user_username + description: Returns merge requests which have been merged by the user with + the given `username`. Mutually exclusive with `merge_user_id`. + type: string + required: false + - in: query + name: approver_ids + description: Return merge requests which have specified the users with the + given IDs as an individual approver + type: string + required: false + - in: query + name: approved_by_ids + description: Return merge requests which have been approved by the specified + users with the given IDs + type: string + required: false + - in: query + name: approved_by_usernames + description: |- + Return merge requests which have been approved by the specified users with the given + usernames + type: string + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: iids + description: Returns the request having the given `iid`. + type: array + items: + type: integer + format: int32 + required: false + responses: + '200': + description: List project merge requests + schema: + "$ref": "#/definitions/API_Entities_MergeRequestBasic" + '401': + description: Unauthorized + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequests + post: + summary: Create merge request + description: Create a new merge request. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - name: postApiV4ProjectsIdMergeRequests + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdMergeRequests" + responses: + '201': + description: Create merge request + schema: + "$ref": "#/definitions/API_Entities_MergeRequest" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '409': + description: Conflict + '422': + description: Unprocessable entity + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequests + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}": + delete: + summary: Delete a merge request + description: 'Only for administrators and project owners. Deletes the merge + request in question. ' + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge request. + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a merge request + '401': + description: Unauthorized + '404': + description: Not found + '412': + description: Precondition failed + tags: + - merge_requests + operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIid + get: + summary: Get single merge request + description: 'Shows information about a single merge request. Note: the `changes_count` + value in the response is a string, not an integer. This is because when an + merge request has too many changes to display and store, it is capped at 1,000. + In that case, the API returns the string `"1000+"` for the changes count.' + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge request. + type: integer + format: int32 + required: true + - in: query + name: render_html + description: If `true`, response includes rendered HTML for title and description. + type: boolean + required: false + - in: query + name: include_diverged_commits_count + description: If `true`, response includes the commits behind the target branch. + type: boolean + required: false + - in: query + name: include_rebase_in_progress + description: If `true`, response includes whether a rebase operation is in + progress. + type: boolean + required: false + responses: + '200': + description: Get single merge request + schema: + "$ref": "#/definitions/API_Entities_MergeRequest" + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIid + put: + summary: Update merge request + description: Updates an existing merge request. You can change the target branch, + title, or even close the merge request. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdMergeRequestsMergeRequestIid + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIid" + responses: + '200': + description: Update merge request + schema: + "$ref": "#/definitions/API_Entities_MergeRequest" + '400': + description: Bad request + '404': + description: Not found + '409': + description: Conflict + '422': + description: Unprocessable entity + tags: + - merge_requests + operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIid + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/participants": + get: + summary: Get single merge request participants + description: Get a list of merge request participants. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: Get single merge request participants + schema: + "$ref": "#/definitions/API_Entities_UserBasic" + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidParticipants + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reviewers": + get: + summary: Get single merge request reviewers + description: Get a list of merge request reviewers. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: Get single merge request reviewers + schema: + "$ref": "#/definitions/API_Entities_MergeRequestReviewer" + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidReviewers + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/commits": + get: + summary: Get single merge request commits + description: Get a list of merge request commits. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: Get single merge request commits + schema: + "$ref": "#/definitions/API_Entities_Commit" + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidCommits + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits": + get: + summary: List merge request context commits + description: Get a list of merge request context commits. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: List merge request context commits + schema: + "$ref": "#/definitions/API_Entities_Commit" + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits + post: + summary: Create merge request context commits + description: Create a list of merge request context commits. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits" + responses: + '201': + description: Create merge request context commits + schema: + "$ref": "#/definitions/API_Entities_Commit" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits + delete: + summary: Delete merge request context commits + description: Delete a list of merge request context commits. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: query + name: commits + description: The context commits’ SHA. + type: array + items: + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '204': + description: Delete merge request context commits + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - merge_requests + operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/changes": + get: + summary: Get single merge request changes + description: Shows information about the merge request including its files and + changes. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: query + name: unidiff + description: A diff in a Unified diff format + type: boolean + default: false + required: false + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: Get single merge request changes + schema: + "$ref": "#/definitions/API_Entities_MergeRequestChanges" + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidChanges + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/diffs": + get: + summary: Get the merge request diffs + description: Get a list of merge request diffs. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: unidiff + description: A diff in a Unified diff format + type: boolean + default: false + required: false + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: Get the merge request diffs + schema: + "$ref": "#/definitions/API_Entities_Diff" + '403': + description: Forbidden + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDiffs + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/pipelines": + get: + summary: Get single merge request pipelines + description: Get a list of merge request pipelines. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: Get single merge request pipelines + schema: + "$ref": "#/definitions/API_Entities_Ci_PipelineBasic" + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines + post: + summary: Create merge request pipeline + description: 'Create a new pipeline for a merge request. A pipeline created + via this endpoint doesn’t run a regular branch/tag pipeline. It requires `.gitlab-ci.yml` + to be configured with `only: [merge_requests]` to create jobs.' + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines" + responses: + '201': + description: Create merge request pipeline + schema: + "$ref": "#/definitions/API_Entities_Ci_Pipeline" + '400': + description: Bad request + '404': + description: Not found + '405': + description: Method not allowed + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge": + put: + summary: Merge a merge request + description: Accept and merge changes submitted with the merge request using + this API. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge" + responses: + '200': + description: Merge a merge request + schema: + "$ref": "#/definitions/API_Entities_MergeRequest" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + '405': + description: Method not allowed + '409': + description: Conflict + '422': + description: Unprocessable entity + tags: + - merge_requests + operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge_ref": + get: + summary: Returns the up to date merge-ref HEAD commit + description: Returns the up to date merge-ref HEAD commit + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: Returns the up to date merge-ref HEAD commit + '400': + description: Bad request + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidMergeRef + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/cancel_merge_when_pipeline_succeeds": + post: + summary: Cancel Merge When Pipeline Succeeds + description: Cancel merge if "Merge When Pipeline Succeeds" is enabled + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '201': + description: Cancel Merge When Pipeline Succeeds + schema: + "$ref": "#/definitions/API_Entities_MergeRequest" + '401': + description: Unauthorized + '404': + description: Not found + '405': + description: Method not allowed + '406': + description: Not acceptable + tags: + - merge_requests + operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidCancelMergeWhenPipelineSucceeds + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/rebase": + put: + summary: Rebase a merge request + description: Automatically rebase the `source_branch` of the merge request against + its `target_branch`. This feature was added in GitLab 11.6 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase" + responses: + '200': + description: Rebase a merge request + '403': + description: Forbidden + '404': + description: Not found + '409': + description: Conflict + tags: + - merge_requests + operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/closes_issues": + get: + summary: List issues that close on merge + description: Get all the issues that would be closed by merging the provided + merge request. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: List issues that close on merge + schema: + "$ref": "#/definitions/API_Entities_MRNote" + '403': + description: Forbidden + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidClosesIssues + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/related_issues": + get: + summary: List issues related to merge request + description: Get all the related issues from title, description, commits, comments + and discussions of the merge request. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project. + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: merge_request_iid + type: integer + format: int32 + required: true + responses: + '200': + description: List issues related to merge request + '403': + description: Forbidden + '404': + description: Not found + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidRelatedIssues + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions": + get: + summary: Get a list of merge request diff versions + description: This feature was introduced in GitLab 8.12. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge request + type: integer + format: int32 + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get a list of merge request diff versions + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_MergeRequestDiff" + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidVersions + "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions/{version_id}": + get: + summary: Get a single merge request diff version + description: This feature was introduced in GitLab 8.12. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: merge_request_iid + description: The internal ID of the merge request + type: integer + format: int32 + required: true + - in: path + name: version_id + description: The ID of the merge request diff version + type: integer + format: int32 + required: true + - in: query + name: unidiff + description: A diff in a Unified diff format + type: boolean + default: false + required: false + responses: + '200': + description: Get a single merge request diff version + schema: + "$ref": "#/definitions/API_Entities_MergeRequestDiffFull" + tags: + - merge_requests + operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidVersionsVersionId "/api/v4/projects/{id}/packages/ml_models/{model_version_id}/files/(*path/){file_name}/authorize": put: summary: Workhorse authorize model package file @@ -28058,17 +21570,16 @@ paths: description: The ID or URL-encoded path of the project type: string required: true - - in: path - name: model_version_id - description: Model version id - type: integer - format: int32 - required: true - in: path name: file_name description: File name type: string required: true + - in: path + name: model_version_id + description: Model version id + type: string + required: true - name: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize in: body required: true @@ -28100,17 +21611,16 @@ paths: description: The ID or URL-encoded path of the project type: string required: true - - in: path - name: model_version_id - description: Model version id - type: integer - format: int32 - required: true - in: path name: file_name description: File name type: string required: true + - in: path + name: model_version_id + description: Model version id + type: string + required: true - name: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName in: body required: true @@ -28139,12 +21649,6 @@ paths: description: The ID or URL-encoded path of the project type: string required: true - - in: path - name: model_version_id - description: Model version id - type: integer - format: int32 - required: true - in: path name: file_name description: File name @@ -28163,6 +21667,11 @@ paths: - default - hidden required: false + - in: path + name: model_version_id + description: Model version id + type: string + required: true responses: '200': description: Download an ml_model package file @@ -28175,169 +21684,6 @@ paths: tags: - ml_model_registry operationId: getApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName - "/api/v4/projects/{id}/packages/npm/*package_name/-/*file_name": - get: - summary: Download the NPM tarball - description: This feature was introduced in GitLab 11.8 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: package_name - description: Package name - type: string - required: true - - in: query - name: file_name - description: Package file name - type: string - required: true - responses: - '200': - description: Download the NPM tarball - '403': - description: Forbidden - '404': - description: Not Found - tags: - - npm_packages - operationId: getApiV4ProjectsIdPackagesNpm*packageName-*fileName - "/api/v4/projects/{id}/packages/npm/{package_name}": - put: - summary: Create or deprecate NPM package - description: Create was introduced in GitLab 11.8 & deprecate suppport was added - in 16.0 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: path - name: package_name - description: Package name - type: string - required: true - - name: putApiV4ProjectsIdPackagesNpmPackageName - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdPackagesNpmPackageName" - responses: - '200': - description: Create or deprecate NPM package - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - npm_packages - operationId: putApiV4ProjectsIdPackagesNpmPackageName - "/api/v4/projects/{id}/packages/npm/*package_name": - get: - summary: NPM registry metadata endpoint - description: This feature was introduced in GitLab 11.8 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: package_name - description: Package name - type: string - required: true - example: mypackage - responses: - '200': - description: Ok - schema: - "$ref": "#/definitions/API_Entities_NpmPackage" - '302': - description: Found (redirect) - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - npm_packages - operationId: getApiV4ProjectsIdPackagesNpm*packageName - "/api/v4/projects/{id}/packages/npm/-/npm/v1/security/advisories/bulk": - post: - summary: NPM registry bulk advisory endpoint - description: This feature was introduced in GitLab 15.6 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Ok - '307': - description: Temporary Redirect - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - npm_packages - operationId: postApiV4ProjectsIdPackagesNpmNpmV1SecurityAdvisoriesBulk - "/api/v4/projects/{id}/packages/npm/-/npm/v1/security/audits/quick": - post: - summary: NPM registry quick audit endpoint - description: This feature was introduced in GitLab 15.6 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: Ok - '307': - description: Temporary Redirect - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - npm_packages - operationId: postApiV4ProjectsIdPackagesNpmNpmV1SecurityAuditsQuick "/api/v4/projects/{id}/packages/npm/-/package/*package_name/dist-tags": get: summary: Get all tags for a given an NPM package @@ -28445,6 +21791,169 @@ paths: tags: - npm_packages operationId: deleteApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag + "/api/v4/projects/{id}/packages/npm/-/npm/v1/security/advisories/bulk": + post: + summary: NPM registry bulk advisory endpoint + description: This feature was introduced in GitLab 15.6 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Ok + '307': + description: Temporary Redirect + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - npm_packages + operationId: postApiV4ProjectsIdPackagesNpmNpmV1SecurityAdvisoriesBulk + "/api/v4/projects/{id}/packages/npm/-/npm/v1/security/audits/quick": + post: + summary: NPM registry quick audit endpoint + description: This feature was introduced in GitLab 15.6 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Ok + '307': + description: Temporary Redirect + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - npm_packages + operationId: postApiV4ProjectsIdPackagesNpmNpmV1SecurityAuditsQuick + "/api/v4/projects/{id}/packages/npm/*package_name/-/*file_name": + get: + summary: Download the NPM tarball + description: This feature was introduced in GitLab 11.8 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: package_name + description: Package name + type: string + required: true + - in: query + name: file_name + description: Package file name + type: string + required: true + responses: + '200': + description: Download the NPM tarball + '403': + description: Forbidden + '404': + description: Not Found + tags: + - npm_packages + operationId: getApiV4ProjectsIdPackagesNpm*packageName-*fileName + "/api/v4/projects/{id}/packages/npm/{package_name}": + put: + summary: Create or deprecate NPM package + description: Create was introduced in GitLab 11.8 & deprecate suppport was added + in 16.0 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: package_name + description: Package name + type: string + required: true + - name: putApiV4ProjectsIdPackagesNpmPackageName + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdPackagesNpmPackageName" + responses: + '200': + description: Create or deprecate NPM package + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - npm_packages + operationId: putApiV4ProjectsIdPackagesNpmPackageName + "/api/v4/projects/{id}/packages/npm/*package_name": + get: + summary: NPM registry metadata endpoint + description: This feature was introduced in GitLab 11.8 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: package_name + description: Package name + type: string + required: true + example: mypackage + responses: + '200': + description: Ok + schema: + "$ref": "#/definitions/API_Entities_NpmPackage" + '302': + description: Found (redirect) + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - npm_packages + operationId: getApiV4ProjectsIdPackagesNpm*packageName "/api/v4/projects/{id}/packages/nuget/index": get: summary: The NuGet V3 Feed Service Index @@ -28467,160 +21976,6 @@ paths: tags: - nuget_packages operationId: getApiV4ProjectsIdPackagesNugetIndex - "/api/v4/projects/{id}/packages/nuget": - put: - summary: The NuGet V3 Feed Package Publish endpoint - description: This feature was introduced in GitLab 12.6 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdPackagesNuget - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdPackagesNuget" - responses: - '201': - description: The NuGet V3 Feed Package Publish endpoint - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - nuget_packages - operationId: putApiV4ProjectsIdPackagesNuget - "/api/v4/projects/{id}/packages/nuget/authorize": - put: - summary: The NuGet Package Authorize endpoint - description: This feature was introduced in GitLab 14.1 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: The NuGet Package Authorize endpoint - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - nuget_packages - operationId: putApiV4ProjectsIdPackagesNugetAuthorize - "/api/v4/projects/{id}/packages/nuget/symbolpackage": - put: - summary: The NuGet Symbol Package Publish endpoint - description: This feature was introduced in GitLab 14.1 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - name: putApiV4ProjectsIdPackagesNugetSymbolpackage - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdPackagesNugetSymbolpackage" - responses: - '201': - description: The NuGet Symbol Package Publish endpoint - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - nuget_packages - operationId: putApiV4ProjectsIdPackagesNugetSymbolpackage - "/api/v4/projects/{id}/packages/nuget/symbolpackage/authorize": - put: - summary: The NuGet Symbol Package Authorize endpoint - description: This feature was introduced in GitLab 14.1 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: The NuGet Symbol Package Authorize endpoint - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - nuget_packages - operationId: putApiV4ProjectsIdPackagesNugetSymbolpackageAuthorize - "/api/v4/projects/{id}/packages/nuget/*package_name/*package_version": - delete: - summary: The NuGet Package Delete endpoint - description: This feature was introduced in GitLab 16.5 - produces: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - - in: query - name: package_name - description: The NuGet package name - type: string - required: true - example: mynugetpkg - - in: query - name: package_version - description: The NuGet package version - type: string - required: true - example: 1.0.1 - responses: - '204': - description: The NuGet Package Delete endpoint - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - nuget_packages - operationId: deleteApiV4ProjectsIdPackagesNuget*packageName*packageVersion "/api/v4/projects/{id}/packages/nuget/symbolfiles/*file_name/*signature/*same_file_name": get: summary: The NuGet Symbol File Download Endpoint @@ -28735,32 +22090,6 @@ paths: tags: - nuget_packages operationId: getApiV4ProjectsIdPackagesNugetV2$metadata - "/api/v4/projects/{id}/packages/nuget/v2/authorize": - put: - summary: The NuGet V2 Feed Package Authorize endpoint - description: This feature was introduced in GitLab 16.2 - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - description: The ID or URL-encoded path of the project - type: string - required: true - responses: - '200': - description: The NuGet V2 Feed Package Authorize endpoint - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - nuget_packages - operationId: putApiV4ProjectsIdPackagesNugetV2Authorize "/api/v4/projects/{id}/packages/nuget/metadata/*package_name/index": get: summary: The NuGet Metadata Service - Package name level @@ -28959,6 +22288,186 @@ paths: tags: - nuget_packages operationId: getApiV4ProjectsIdPackagesNugetDownload*packageName*packageVersion*packageFilename + "/api/v4/projects/{id}/packages/nuget": + put: + summary: The NuGet V3 Feed Package Publish endpoint + description: This feature was introduced in GitLab 12.6 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdPackagesNuget + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdPackagesNuget" + responses: + '201': + description: The NuGet V3 Feed Package Publish endpoint + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - nuget_packages + operationId: putApiV4ProjectsIdPackagesNuget + "/api/v4/projects/{id}/packages/nuget/authorize": + put: + summary: The NuGet Package Authorize endpoint + description: This feature was introduced in GitLab 14.1 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: The NuGet Package Authorize endpoint + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - nuget_packages + operationId: putApiV4ProjectsIdPackagesNugetAuthorize + "/api/v4/projects/{id}/packages/nuget/symbolpackage": + put: + summary: The NuGet Symbol Package Publish endpoint + description: This feature was introduced in GitLab 14.1 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdPackagesNugetSymbolpackage + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdPackagesNugetSymbolpackage" + responses: + '201': + description: The NuGet Symbol Package Publish endpoint + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - nuget_packages + operationId: putApiV4ProjectsIdPackagesNugetSymbolpackage + "/api/v4/projects/{id}/packages/nuget/symbolpackage/authorize": + put: + summary: The NuGet Symbol Package Authorize endpoint + description: This feature was introduced in GitLab 14.1 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: The NuGet Symbol Package Authorize endpoint + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - nuget_packages + operationId: putApiV4ProjectsIdPackagesNugetSymbolpackageAuthorize + "/api/v4/projects/{id}/packages/nuget/*package_name/*package_version": + delete: + summary: The NuGet Package Delete endpoint + description: This feature was introduced in GitLab 16.5 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: package_name + description: The NuGet package name + type: string + required: true + example: mynugetpkg + - in: query + name: package_version + description: The NuGet package version + type: string + required: true + example: 1.0.1 + responses: + '204': + description: The NuGet Package Delete endpoint + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - nuget_packages + operationId: deleteApiV4ProjectsIdPackagesNuget*packageName*packageVersion + "/api/v4/projects/{id}/packages/nuget/v2/authorize": + put: + summary: The NuGet V2 Feed Package Authorize endpoint + description: This feature was introduced in GitLab 16.2 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: The NuGet V2 Feed Package Authorize endpoint + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - nuget_packages + operationId: putApiV4ProjectsIdPackagesNugetV2Authorize "/api/v4/projects/{project_id}/packages/nuget/v2/FindPackagesById\\(\\)": get: summary: The NuGet V2 Feed Find Packages by ID endpoint @@ -29049,6 +22558,753 @@ paths: tags: - nuget_packages operationId: getApiV4ProjectsProjectIdPackagesNugetV2Packages\(id='*packageName',version='*packageVersion'\) + "/api/v4/projects/{id}/packages/{package_id}/package_files": + get: + summary: List package files + description: Get a list of package files of a single package + produces: + - application/json + parameters: + - in: path + name: id + description: ID or URL-encoded path of the project + type: string + required: true + - in: path + name: package_id + description: ID of a package + type: integer + format: int32 + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List package files + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_PackageFile" + tags: + - package_files + operationId: getApiV4ProjectsIdPackagesPackageIdPackageFiles + "/api/v4/projects/{id}/packages/{package_id}/package_files/{package_file_id}": + delete: + summary: Delete a package file + description: This feature was introduced in GitLab 13.12 + produces: + - application/json + parameters: + - in: path + name: id + description: ID or URL-encoded path of the project + type: string + required: true + - in: path + name: package_id + description: ID of a package + type: integer + format: int32 + required: true + - in: path + name: package_file_id + description: ID of a package file + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a package file + '403': + description: Forbidden + '404': + description: Not found + tags: + - package_files + operationId: deleteApiV4ProjectsIdPackagesPackageIdPackageFilesPackageFileId + "/api/v4/projects/{id}/pages": + delete: + summary: Unpublish pages + description: Remove pages. The user must have administrator access. This feature + was introduced in GitLab 12.6 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + responses: + '204': + description: Unpublish pages + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - pages + operationId: deleteApiV4ProjectsIdPages + patch: + summary: Update pages settings + description: Update page settings for a project. User must have administrative + access. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: patchApiV4ProjectsIdPages + in: body + required: true + schema: + "$ref": "#/definitions/patchApiV4ProjectsIdPages" + responses: + '200': + description: Update pages settings + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - pages + operationId: patchApiV4ProjectsIdPages + get: + summary: Get pages settings + description: Get pages URL and other settings. This feature was introduced in + Gitlab 16.8 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + responses: + '200': + description: Get pages settings + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - pages + operationId: getApiV4ProjectsIdPages + "/api/v4/projects/{id}/pages/domains": + get: + description: Get all pages domains + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get all pages domains + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_PagesDomain" + tags: + - pages_domains + operationId: getApiV4ProjectsIdPagesDomains + post: + description: Create a new pages domain + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - name: postApiV4ProjectsIdPagesDomains + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdPagesDomains" + responses: + '201': + description: Create a new pages domain + schema: + "$ref": "#/definitions/API_Entities_PagesDomain" + tags: + - projects + operationId: postApiV4ProjectsIdPagesDomains + "/api/v4/projects/{id}/pages/domains/{domain}": + get: + description: Get a single pages domain + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: domain + description: The domain + type: string + required: true + responses: + '200': + description: Get a single pages domain + schema: + "$ref": "#/definitions/API_Entities_PagesDomain" + tags: + - projects + operationId: getApiV4ProjectsIdPagesDomainsDomain + put: + description: Updates a pages domain + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: domain + description: The domain + type: string + required: true + - name: putApiV4ProjectsIdPagesDomainsDomain + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdPagesDomainsDomain" + responses: + '200': + description: Updates a pages domain + tags: + - projects + operationId: putApiV4ProjectsIdPagesDomainsDomain + delete: + description: Delete a pages domain + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project owned by the authenticated + user + type: string + required: true + - in: path + name: domain + description: The domain + type: string + required: true + responses: + '204': + description: Delete a pages domain + tags: + - projects + operationId: deleteApiV4ProjectsIdPagesDomainsDomain + "/api/v4/projects/{id}/avatar": + get: + summary: Download a project avatar + description: This feature was introduced in GitLab 16.9 + produces: + - application/json + parameters: + - in: path + name: id + description: ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Download a project avatar + tags: + - project_avatar + operationId: getApiV4ProjectsIdAvatar + "/api/v4/projects/{id}/clusters": + get: + summary: List project clusters + description: This feature was introduced in GitLab 11.7. Returns a list of project + clusters. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List project clusters + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Cluster" + '403': + description: Forbidden + tags: + - clusters + operationId: getApiV4ProjectsIdClusters + "/api/v4/projects/{id}/clusters/{cluster_id}": + get: + summary: Get a single project cluster + description: This feature was introduced in GitLab 11.7. Gets a single project + cluster. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: cluster_id + description: The cluster ID + type: integer + format: int32 + required: true + responses: + '200': + description: Get a single project cluster + schema: + "$ref": "#/definitions/API_Entities_ClusterProject" + '403': + description: Forbidden + '404': + description: Not found + tags: + - clusters + operationId: getApiV4ProjectsIdClustersClusterId + put: + summary: Edit project cluster + description: This feature was introduced in GitLab 11.7. Updates an existing + project cluster. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: cluster_id + description: The cluster ID + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdClustersClusterId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdClustersClusterId" + responses: + '200': + description: Edit project cluster + schema: + "$ref": "#/definitions/API_Entities_ClusterProject" + '400': + description: Validation error + '403': + description: Forbidden + '404': + description: Not found + tags: + - clusters + operationId: putApiV4ProjectsIdClustersClusterId + delete: + summary: Delete project cluster + description: This feature was introduced in GitLab 11.7. Deletes an existing + project cluster. Does not remove existing resources within the connected Kubernetes + cluster. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: cluster_id + description: The Cluster ID + type: integer + format: int32 + required: true + responses: + '403': + description: Forbidden + '204': + description: Delete project cluster + schema: + "$ref": "#/definitions/API_Entities_ClusterProject" + '404': + description: Not found + tags: + - clusters + operationId: deleteApiV4ProjectsIdClustersClusterId + "/api/v4/projects/{id}/clusters/user": + post: + summary: Add existing cluster to project + description: This feature was introduced in GitLab 11.7. Adds an existing Kubernetes + cluster to the project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdClustersUser + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdClustersUser" + responses: + '201': + description: Add existing cluster to project + schema: + "$ref": "#/definitions/API_Entities_ClusterProject" + '400': + description: Validation error + '403': + description: Forbidden + '404': + description: Not found + tags: + - clusters + operationId: postApiV4ProjectsIdClustersUser + "/api/v4/projects/{id}/registry/repositories": + get: + summary: List container repositories within a project + description: This feature was introduced in GitLab 11.8. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: tags + description: Determines if tags should be included + type: boolean + default: false + required: false + - in: query + name: tags_count + description: Determines if the tags count should be included + type: boolean + default: false + required: false + responses: + '200': + description: List container repositories within a project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ContainerRegistry_Repository" + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - container_registry + operationId: getApiV4ProjectsIdRegistryRepositories + "/api/v4/projects/{id}/registry/repositories/{repository_id}": + delete: + summary: Delete repository + description: This feature was introduced in GitLab 11.8. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: repository_id + description: The ID of the repository + type: integer + format: int32 + required: true + responses: + '204': + description: Success + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - container_registry + operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryId + "/api/v4/projects/{id}/registry/repositories/{repository_id}/tags": + get: + summary: List tags of a repository + description: This feature was introduced in GitLab 11.8. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: repository_id + description: The ID of the repository + type: integer + format: int32 + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List tags of a repository + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ContainerRegistry_Tag" + '401': + description: Unauthorized + '404': + description: Not Found + '405': + description: Method Not Allowed + tags: + - container_registry + operationId: getApiV4ProjectsIdRegistryRepositoriesRepositoryIdTags + delete: + summary: Delete repository tags (in bulk) + description: This feature was introduced in GitLab 11.8. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: repository_id + description: The ID of the repository + type: integer + format: int32 + required: true + - in: query + name: name_regex_delete + description: The tag name regexp to delete, specify .* to delete all + type: string + required: false + - in: query + name: name_regex + description: The tag name regexp to delete, specify .* to delete all + type: string + required: false + - in: query + name: name_regex_keep + description: The tag name regexp to retain + type: string + required: false + - in: query + name: keep_n + description: Keep n of latest tags with matching name + type: integer + format: int32 + required: false + - in: query + name: older_than + description: 'Delete older than: 1h, 1d, 1month' + type: string + required: false + responses: + '204': + description: Success + '400': + description: Bad Request + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - container_registry + operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryIdTags + "/api/v4/projects/{id}/registry/repositories/{repository_id}/tags/{tag_name}": + get: + summary: Get details about a repository tag + description: This feature was introduced in GitLab 11.8. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: repository_id + description: The ID of the repository + type: integer + format: int32 + required: true + - in: path + name: tag_name + description: The name of the tag + type: string + required: true + responses: + '200': + description: Get details about a repository tag + schema: + "$ref": "#/definitions/API_Entities_ContainerRegistry_TagDetails" + '400': + description: Bad Request + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - container_registry + operationId: getApiV4ProjectsIdRegistryRepositoriesRepositoryIdTagsTagName + delete: + summary: Delete repository tag + description: This feature was introduced in GitLab 11.8. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: repository_id + description: The ID of the repository + type: integer + format: int32 + required: true + - in: path + name: tag_name + description: The name of the tag + type: string + required: true + responses: + '204': + description: Success + '400': + description: Bad Request + '401': + description: Unauthorized + '404': + description: Not Found + tags: + - container_registry + operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryIdTagsTagName "/api/v4/projects/{id}/debian_distributions": post: summary: Create a Debian Distribution @@ -29374,6 +23630,695 @@ paths: tags: - debian_distribution operationId: getApiV4ProjectsIdDebianDistributionsCodenameKeyAsc + "/api/v4/projects/{id}/events": + get: + description: List a project's visible events + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: action + description: Event action to filter on + type: string + required: false + - in: query + name: target_type + description: Event target type to filter on + type: string + enum: + - issue + - milestone + - merge_request + - note + - project + - snippet + - user + - wiki + - design + required: false + - in: query + name: before + description: Include only events created before this date + type: string + format: date + required: false + - in: query + name: after + description: Include only events created after this date + type: string + format: date + required: false + - in: query + name: sort + description: Return events sorted in ascending and descending order + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List a project's visible events + schema: + "$ref": "#/definitions/API_Entities_Event" + tags: + - projects + operationId: getApiV4ProjectsIdEvents + "/api/v4/projects/{id}/export": + get: + summary: Get export status + description: This feature was introduced in GitLab 10.6. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Get export status + schema: + "$ref": "#/definitions/API_Entities_ProjectExportStatus" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_export + operationId: getApiV4ProjectsIdExport + post: + summary: Start export + description: This feature was introduced in GitLab 10.6. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdExport + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdExport" + responses: + '202': + description: Start export + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '429': + description: Too many requests + '503': + description: Service unavailable + tags: + - project_export + operationId: postApiV4ProjectsIdExport + "/api/v4/projects/{id}/export/download": + get: + summary: Download export + description: This feature was introduced in GitLab 10.6. + produces: + - application/octet-stream + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Download export + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_export + operationId: getApiV4ProjectsIdExportDownload + "/api/v4/projects/{id}/export_relations": + post: + summary: Start relations export + description: This feature was introduced in GitLab 14.4 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdExportRelations + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdExportRelations" + responses: + '202': + description: Start relations export + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_export + operationId: postApiV4ProjectsIdExportRelations + "/api/v4/projects/{id}/export_relations/download": + get: + summary: Download relations export + description: This feature was introduced in GitLab 14.4 + produces: + - application/octet-stream + - application/gzip + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: relation + description: Project relation name + type: string + required: true + - in: query + name: batched + description: Whether to download in batches + type: boolean + required: false + - in: query + name: batch_number + description: Batch number to download + type: integer + format: int32 + required: false + responses: + '200': + description: Download relations export + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '500': + description: Internal Server Error + '503': + description: Service unavailable + tags: + - project_export + operationId: getApiV4ProjectsIdExportRelationsDownload + "/api/v4/projects/{id}/export_relations/status": + get: + summary: Relations export status + description: This feature was introduced in GitLab 14.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: relation + description: Project relation name + type: string + required: false + responses: + '200': + description: Relations export status + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_BulkImports_ExportStatus" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_export + operationId: getApiV4ProjectsIdExportRelationsStatus + "/api/v4/projects/{id}/hooks/{hook_id}/url_variables/{key}": + put: + description: Set a url variable + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the variable + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdHooksHookIdUrlVariablesKey + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdHooksHookIdUrlVariablesKey" + responses: + '200': + description: Set a url variable + tags: + - projects + operationId: putApiV4ProjectsIdHooksHookIdUrlVariablesKey + delete: + description: Un-Set a url variable + produces: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the variable + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Un-Set a url variable + tags: + - projects + operationId: deleteApiV4ProjectsIdHooksHookIdUrlVariablesKey + "/api/v4/projects/{id}/hooks/{hook_id}/custom_headers/{key}": + put: + description: Set a custom header + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the custom header + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdHooksHookIdCustomHeadersKey + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdHooksHookIdCustomHeadersKey" + responses: + '200': + description: Set a custom header + tags: + - projects + operationId: putApiV4ProjectsIdHooksHookIdCustomHeadersKey + delete: + description: Un-Set a custom header + produces: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the custom header + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Un-Set a custom header + tags: + - projects + operationId: deleteApiV4ProjectsIdHooksHookIdCustomHeadersKey + "/api/v4/projects/{id}/hooks": + get: + summary: List project hooks + description: Get a list of project hooks + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List project hooks + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ProjectHook" + tags: + - project_hooks + operationId: getApiV4ProjectsIdHooks + post: + summary: Add project hook + description: Adds a hook to a specified project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdHooks + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdHooks" + responses: + '201': + description: Add project hook + schema: + "$ref": "#/definitions/API_Entities_ProjectHook" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - project_hooks + operationId: postApiV4ProjectsIdHooks + "/api/v4/projects/{id}/hooks/{hook_id}": + get: + summary: Get project hook + description: Get a specific hook for a project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: hook_id + description: The ID of a project hook + type: integer + format: int32 + required: true + responses: + '200': + description: Get project hook + schema: + "$ref": "#/definitions/API_Entities_ProjectHook" + '404': + description: Not found + tags: + - project_hooks + operationId: getApiV4ProjectsIdHooksHookId + put: + summary: Edit project hook + description: Edits a hook for a specified project. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: hook_id + description: The ID of the project hook + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdHooksHookId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdHooksHookId" + responses: + '200': + description: Edit project hook + schema: + "$ref": "#/definitions/API_Entities_ProjectHook" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - project_hooks + operationId: putApiV4ProjectsIdHooksHookId + delete: + summary: Delete a project hook + description: Removes a hook from a project. This is an idempotent method and + can be called multiple times. Either the hook is available or not. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: hook_id + description: The ID of the project hook + type: integer + format: int32 + required: true + responses: + '204': + description: Not found + tags: + - project_hooks + operationId: deleteApiV4ProjectsIdHooksHookId + "/api/v4/projects/{id}/hooks/{hook_id}/events": + get: + summary: Get events for a given hook id + description: List web hook logs by hook id + produces: + - application/json + parameters: + - in: query + name: status + type: array + items: + type: string + enum: + - '100' + - '101' + - '102' + - '103' + - '200' + - '201' + - '202' + - '203' + - '204' + - '205' + - '206' + - '207' + - '208' + - '226' + - '300' + - '301' + - '302' + - '303' + - '304' + - '305' + - '306' + - '307' + - '308' + - '400' + - '401' + - '402' + - '403' + - '404' + - '405' + - '406' + - '407' + - '408' + - '409' + - '410' + - '411' + - '412' + - '413' + - '414' + - '415' + - '416' + - '417' + - '421' + - '422' + - '423' + - '424' + - '425' + - '426' + - '428' + - '429' + - '431' + - '451' + - '500' + - '501' + - '502' + - '503' + - '504' + - '505' + - '506' + - '507' + - '508' + - '509' + - '510' + - '511' + - successful + - client_failure + - server_failure + required: false + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + minimum: 1 + maximum: 20 + required: false + example: 20 + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: path + name: id + type: integer + format: int32 + required: true + - in: path + name: hook_id + type: integer + format: int32 + required: true + responses: + '200': + description: Get events for a given hook id + '400': + description: Bad request + '404': + description: Not found + '403': + description: Forbidden + tags: + - projects + operationId: getApiV4ProjectsIdHooksHookIdEvents "/api/v4/projects/{id}/hooks/{hook_id}/test/{trigger}": post: summary: Triggers a hook test @@ -29394,21 +24339,21 @@ paths: description: The type of trigger hook type: string enum: - - push_events - - tag_push_events - - issues_events - confidential_issues_events - - note_events - confidential_note_events - - merge_requests_events - - job_events - - pipeline_events - - wiki_page_events - deployment_events - - feature_flag_events - - releases_events - emoji_events + - feature_flag_events + - issues_events + - job_events + - merge_requests_events + - note_events + - pipeline_events + - push_events + - releases_events - resource_access_token_events + - tag_push_events + - wiki_page_events required: true - in: path name: id @@ -29429,6 +24374,4635 @@ paths: tags: - projects operationId: postApiV4ProjectsIdHooksHookIdTestTrigger + "/api/v4/projects/{id}/hooks/{hook_id}/events/{hook_log_id}/resend": + post: + summary: Resend a webhook event + description: Resend a webhook event + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - in: path + name: hook_id + type: integer + format: int32 + required: true + - in: path + name: hook_log_id + type: integer + format: int32 + required: true + responses: + '201': + description: Resend a webhook event + '422': + description: Unprocessable entity + '404': + description: Not found + '429': + description: Too many requests + tags: + - projects + operationId: postApiV4ProjectsIdHooksHookIdEventsHookLogIdResend + "/api/v4/projects/import/authorize": + post: + summary: Workhorse authorize the project import upload + description: This feature was introduced in GitLab 12.9 + produces: + - application/json + consumes: + - application/json + responses: + '201': + description: Workhorse authorize the project import upload + tags: + - project_import + operationId: postApiV4ProjectsImportAuthorize + "/api/v4/projects/import": + post: + summary: Create a new project import + description: This feature was introduced in GitLab 10.6. + produces: + - application/json + consumes: + - multipart/form-data + parameters: + - in: formData + name: path + description: The new project path and name + type: string + required: true + - in: formData + name: file + description: The project export file to be imported + type: file + required: true + - in: formData + name: name + description: The name of the project to be imported. Defaults to the path + of the project if not provided. + type: string + required: false + - in: formData + name: namespace + description: The ID or name of the namespace that the project will be imported + into. Defaults to the current user's namespace. + type: string + required: false + - in: formData + name: overwrite + description: If there is a project in the same namespace and with the same + name overwrite it + type: boolean + default: false + required: false + - in: formData + name: override_params[description] + description: The description of the project + type: string + required: false + - in: formData + name: override_params[build_git_strategy] + description: The Git strategy. Defaults to `fetch` + type: string + enum: + - fetch + - clone + required: false + - in: formData + name: override_params[build_timeout] + description: Build timeout + type: integer + format: int32 + required: false + - in: formData + name: override_params[auto_cancel_pending_pipelines] + description: Auto-cancel pending pipelines + type: string + enum: + - disabled + - enabled + required: false + - in: formData + name: override_params[ci_config_path] + description: The path to CI config file. Defaults to `.gitlab-ci.yml` + type: string + required: false + - in: formData + name: override_params[service_desk_enabled] + description: Disable or enable the service desk + type: boolean + required: false + - in: formData + name: override_params[issues_enabled] + description: Flag indication if the issue tracker is enabled + type: boolean + required: false + - in: formData + name: override_params[merge_requests_enabled] + description: Flag indication if merge requests are enabled + type: boolean + required: false + - in: formData + name: override_params[wiki_enabled] + description: Flag indication if the wiki is enabled + type: boolean + required: false + - in: formData + name: override_params[jobs_enabled] + description: Flag indication if jobs are enabled + type: boolean + required: false + - in: formData + name: override_params[snippets_enabled] + description: Flag indication if snippets are enabled + type: boolean + required: false + - in: formData + name: override_params[issues_access_level] + description: Issues access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[repository_access_level] + description: Repository access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[merge_requests_access_level] + description: Merge requests access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[forking_access_level] + description: Forks access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[wiki_access_level] + description: Wiki access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[builds_access_level] + description: Builds access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[snippets_access_level] + description: Snippets access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[pages_access_level] + description: Pages access level. One of `disabled`, `private`, `enabled` or + `public` + type: string + enum: + - disabled + - private + - enabled + - public + required: false + - in: formData + name: override_params[analytics_access_level] + description: Analytics access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[container_registry_access_level] + description: Controls visibility of the container registry. One of `disabled`, + `private` or `enabled`. `private` will make the container registry accessible + only to project members (reporter role and above). `enabled` will make the + container registry accessible to everyone who has access to the project. + `disabled` will disable the container registry + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[security_and_compliance_access_level] + description: Security and compliance access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[releases_access_level] + description: Releases access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[environments_access_level] + description: Environments access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[feature_flags_access_level] + description: Feature flags access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[infrastructure_access_level] + description: Infrastructure access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[monitor_access_level] + description: Monitor access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[model_experiments_access_level] + description: Model experiments access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[model_registry_access_level] + description: Model registry access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[emails_disabled] + description: 'Deprecated: Use emails_enabled instead.' + type: boolean + required: false + - in: formData + name: override_params[emails_enabled] + description: Enable email notifications + type: boolean + required: false + - in: formData + name: override_params[show_default_award_emojis] + description: Show default award emojis + type: boolean + required: false + - in: formData + name: override_params[show_diff_preview_in_email] + description: Include the code diff preview in merge request notification emails + type: boolean + required: false + - in: formData + name: override_params[warn_about_potentially_unwanted_characters] + description: Warn about potentially unwanted characters + type: boolean + required: false + - in: formData + name: override_params[enforce_auth_checks_on_uploads] + description: Enforce auth check on uploads + type: boolean + required: false + - in: formData + name: override_params[shared_runners_enabled] + description: Flag indication if shared runners are enabled for that project + type: boolean + required: false + - in: formData + name: override_params[group_runners_enabled] + description: Flag indication if group runners are enabled for that project + type: boolean + required: false + - in: formData + name: override_params[resolve_outdated_diff_discussions] + description: Automatically resolve merge request diff threads on lines changed + with a push + type: boolean + required: false + - in: formData + name: override_params[remove_source_branch_after_merge] + description: Remove the source branch by default after merge + type: boolean + required: false + - in: formData + name: override_params[container_registry_enabled] + description: 'Deprecated: Use :container_registry_access_level instead. Flag + indication if the container registry is enabled for that project' + type: boolean + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][cadence] + description: Container expiration policy cadence for recurring job + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][keep_n] + description: Container expiration policy number of images to keep + type: integer + format: int32 + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][older_than] + description: Container expiration policy remove images older than value + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][name_regex] + description: Container expiration policy regex for image removal + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][name_regex_keep] + description: Container expiration policy regex for image retention + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][enabled] + description: Flag indication if container expiration policy is enabled + type: boolean + required: false + - in: formData + name: override_params[lfs_enabled] + description: Flag indication if Git LFS is enabled for that project + type: boolean + required: false + - in: formData + name: override_params[visibility] + description: The visibility of the project. + type: string + enum: + - private + - internal + - public + required: false + - in: formData + name: override_params[public_builds] + description: 'Deprecated: Use public_jobs instead.' + type: boolean + required: false + - in: formData + name: override_params[public_jobs] + description: Perform public builds + type: boolean + required: false + - in: formData + name: override_params[request_access_enabled] + description: Allow users to request member access + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_pipeline_succeeds] + description: Only allow to merge if builds succeed + type: boolean + required: false + - in: formData + name: override_params[allow_merge_on_skipped_pipeline] + description: Allow to merge if pipeline is skipped + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_all_discussions_are_resolved] + description: Only allow to merge if all threads are resolved + type: boolean + required: false + - in: formData + name: override_params[tag_list] + description: 'Deprecated: Use :topics instead' + type: array + items: + type: string + required: false + - in: formData + name: override_params[topics] + description: The list of topics for a project + type: array + items: + type: string + required: false + - in: formData + name: override_params[avatar] + description: Avatar image for project + type: file + required: false + - in: formData + name: override_params[printing_merge_request_link_enabled] + description: Show link to create/view merge request when pushing from the + command line + type: boolean + required: false + - in: formData + name: override_params[merge_method] + description: The merge method used when merging merge requests + type: string + enum: + - ff + - rebase_merge + - merge + required: false + - in: formData + name: override_params[suggestion_commit_message] + description: The commit message used to apply merge request suggestions + type: string + required: false + - in: formData + name: override_params[merge_commit_template] + description: Template used to create merge commit message + type: string + required: false + - in: formData + name: override_params[squash_commit_template] + description: Template used to create squash commit message + type: string + required: false + - in: formData + name: override_params[issue_branch_template] + description: Template used to create a branch from an issue + type: string + required: false + - in: formData + name: override_params[auto_devops_enabled] + description: Flag indication if Auto DevOps is enabled + type: boolean + required: false + - in: formData + name: override_params[auto_devops_deploy_strategy] + description: Auto Deploy strategy + type: string + enum: + - continuous + - manual + - timed_incremental + required: false + - in: formData + name: override_params[autoclose_referenced_issues] + description: Flag indication if referenced issues auto-closing is enabled + type: boolean + required: false + - in: formData + name: override_params[repository_storage] + description: Which storage shard the repository is on. Available only to admins + type: string + required: false + - in: formData + name: override_params[packages_enabled] + description: Enable project packages feature + type: boolean + required: false + - in: formData + name: override_params[squash_option] + description: Squash default for project. One of `never`, `always`, `default_on`, + or `default_off`. + type: string + enum: + - never + - always + - default_on + - default_off + required: false + - in: formData + name: override_params[mr_default_target_self] + description: Merge requests of this forked project targets itself by default + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_all_status_checks_passed] + description: Blocks merge requests from merging unless all status checks have + passed + type: boolean + required: false + - in: formData + name: override_params[approvals_before_merge] + description: How many approvers should approve merge request by default + type: integer + format: int32 + required: false + - in: formData + name: override_params[mirror] + description: "[Deprecated] Enables pull mirroring in a project" + type: boolean + required: false + - in: formData + name: override_params[mirror_trigger_builds] + description: "[Deprecated] Pull mirroring triggers builds" + type: boolean + required: false + - in: formData + name: override_params[external_authorization_classification_label] + description: The classification label for the project + type: string + required: false + - in: formData + name: override_params[requirements_access_level] + description: Requirements feature access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[prevent_merge_without_jira_issue] + description: Require an associated issue from Jira + type: boolean + required: false + - in: formData + name: file.path + description: Path to locally stored body (generated by Workhorse) + type: string + required: false + - in: formData + name: file.name + description: Real filename as send in Content-Disposition (generated by Workhorse) + type: string + required: false + - in: formData + name: file.type + description: Real content type as send in Content-Type (generated by Workhorse) + type: string + required: false + - in: formData + name: file.size + description: Real size of file (generated by Workhorse) + type: integer + format: int32 + required: false + - in: formData + name: file.md5 + description: MD5 checksum of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.sha1 + description: SHA1 checksum of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.sha256 + description: SHA256 checksum of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.etag + description: Etag of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.remote_id + description: Remote_id of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.remote_url + description: Remote_url of the file (generated by Workhorse) + type: string + required: false + responses: + '201': + description: Create a new project import + schema: + "$ref": "#/definitions/API_Entities_ProjectImportStatus" + '401': + description: Unauthorized + '403': + description: Forbidden + '400': + description: Bad request + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_import + operationId: postApiV4ProjectsImport + "/api/v4/projects/{id}/import": + get: + summary: Get a project import status + description: This feature was introduced in GitLab 10.6. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Get a project import status + schema: + "$ref": "#/definitions/API_Entities_ProjectImportStatus" + '401': + description: Unauthorized + '403': + description: Forbidden + '400': + description: Bad request + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_import + operationId: getApiV4ProjectsIdImport + "/api/v4/projects/remote-import": + post: + summary: Create a new project import using a remote object storage path + description: This feature was introduced in GitLab 13.2. + produces: + - application/json + consumes: + - multipart/form-data + parameters: + - in: formData + name: url + description: The URL for the file. + type: string + required: true + - in: formData + name: path + description: The new project path and name + type: string + required: true + - in: formData + name: name + description: The name of the project to be imported. Defaults to the path + of the project if not provided. + type: string + required: false + - in: formData + name: namespace + description: The ID or name of the namespace that the project will be imported + into. Defaults to the current user's namespace. + type: string + required: false + - in: formData + name: overwrite + description: If there is a project in the same namespace and with the same + name overwrite it + type: boolean + default: false + required: false + - in: formData + name: override_params[description] + description: The description of the project + type: string + required: false + - in: formData + name: override_params[build_git_strategy] + description: The Git strategy. Defaults to `fetch` + type: string + enum: + - fetch + - clone + required: false + - in: formData + name: override_params[build_timeout] + description: Build timeout + type: integer + format: int32 + required: false + - in: formData + name: override_params[auto_cancel_pending_pipelines] + description: Auto-cancel pending pipelines + type: string + enum: + - disabled + - enabled + required: false + - in: formData + name: override_params[ci_config_path] + description: The path to CI config file. Defaults to `.gitlab-ci.yml` + type: string + required: false + - in: formData + name: override_params[service_desk_enabled] + description: Disable or enable the service desk + type: boolean + required: false + - in: formData + name: override_params[issues_enabled] + description: Flag indication if the issue tracker is enabled + type: boolean + required: false + - in: formData + name: override_params[merge_requests_enabled] + description: Flag indication if merge requests are enabled + type: boolean + required: false + - in: formData + name: override_params[wiki_enabled] + description: Flag indication if the wiki is enabled + type: boolean + required: false + - in: formData + name: override_params[jobs_enabled] + description: Flag indication if jobs are enabled + type: boolean + required: false + - in: formData + name: override_params[snippets_enabled] + description: Flag indication if snippets are enabled + type: boolean + required: false + - in: formData + name: override_params[issues_access_level] + description: Issues access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[repository_access_level] + description: Repository access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[merge_requests_access_level] + description: Merge requests access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[forking_access_level] + description: Forks access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[wiki_access_level] + description: Wiki access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[builds_access_level] + description: Builds access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[snippets_access_level] + description: Snippets access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[pages_access_level] + description: Pages access level. One of `disabled`, `private`, `enabled` or + `public` + type: string + enum: + - disabled + - private + - enabled + - public + required: false + - in: formData + name: override_params[analytics_access_level] + description: Analytics access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[container_registry_access_level] + description: Controls visibility of the container registry. One of `disabled`, + `private` or `enabled`. `private` will make the container registry accessible + only to project members (reporter role and above). `enabled` will make the + container registry accessible to everyone who has access to the project. + `disabled` will disable the container registry + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[security_and_compliance_access_level] + description: Security and compliance access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[releases_access_level] + description: Releases access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[environments_access_level] + description: Environments access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[feature_flags_access_level] + description: Feature flags access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[infrastructure_access_level] + description: Infrastructure access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[monitor_access_level] + description: Monitor access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[model_experiments_access_level] + description: Model experiments access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[model_registry_access_level] + description: Model registry access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[emails_disabled] + description: 'Deprecated: Use emails_enabled instead.' + type: boolean + required: false + - in: formData + name: override_params[emails_enabled] + description: Enable email notifications + type: boolean + required: false + - in: formData + name: override_params[show_default_award_emojis] + description: Show default award emojis + type: boolean + required: false + - in: formData + name: override_params[show_diff_preview_in_email] + description: Include the code diff preview in merge request notification emails + type: boolean + required: false + - in: formData + name: override_params[warn_about_potentially_unwanted_characters] + description: Warn about potentially unwanted characters + type: boolean + required: false + - in: formData + name: override_params[enforce_auth_checks_on_uploads] + description: Enforce auth check on uploads + type: boolean + required: false + - in: formData + name: override_params[shared_runners_enabled] + description: Flag indication if shared runners are enabled for that project + type: boolean + required: false + - in: formData + name: override_params[group_runners_enabled] + description: Flag indication if group runners are enabled for that project + type: boolean + required: false + - in: formData + name: override_params[resolve_outdated_diff_discussions] + description: Automatically resolve merge request diff threads on lines changed + with a push + type: boolean + required: false + - in: formData + name: override_params[remove_source_branch_after_merge] + description: Remove the source branch by default after merge + type: boolean + required: false + - in: formData + name: override_params[container_registry_enabled] + description: 'Deprecated: Use :container_registry_access_level instead. Flag + indication if the container registry is enabled for that project' + type: boolean + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][cadence] + description: Container expiration policy cadence for recurring job + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][keep_n] + description: Container expiration policy number of images to keep + type: integer + format: int32 + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][older_than] + description: Container expiration policy remove images older than value + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][name_regex] + description: Container expiration policy regex for image removal + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][name_regex_keep] + description: Container expiration policy regex for image retention + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][enabled] + description: Flag indication if container expiration policy is enabled + type: boolean + required: false + - in: formData + name: override_params[lfs_enabled] + description: Flag indication if Git LFS is enabled for that project + type: boolean + required: false + - in: formData + name: override_params[visibility] + description: The visibility of the project. + type: string + enum: + - private + - internal + - public + required: false + - in: formData + name: override_params[public_builds] + description: 'Deprecated: Use public_jobs instead.' + type: boolean + required: false + - in: formData + name: override_params[public_jobs] + description: Perform public builds + type: boolean + required: false + - in: formData + name: override_params[request_access_enabled] + description: Allow users to request member access + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_pipeline_succeeds] + description: Only allow to merge if builds succeed + type: boolean + required: false + - in: formData + name: override_params[allow_merge_on_skipped_pipeline] + description: Allow to merge if pipeline is skipped + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_all_discussions_are_resolved] + description: Only allow to merge if all threads are resolved + type: boolean + required: false + - in: formData + name: override_params[tag_list] + description: 'Deprecated: Use :topics instead' + type: array + items: + type: string + required: false + - in: formData + name: override_params[topics] + description: The list of topics for a project + type: array + items: + type: string + required: false + - in: formData + name: override_params[avatar] + description: Avatar image for project + type: file + required: false + - in: formData + name: override_params[printing_merge_request_link_enabled] + description: Show link to create/view merge request when pushing from the + command line + type: boolean + required: false + - in: formData + name: override_params[merge_method] + description: The merge method used when merging merge requests + type: string + enum: + - ff + - rebase_merge + - merge + required: false + - in: formData + name: override_params[suggestion_commit_message] + description: The commit message used to apply merge request suggestions + type: string + required: false + - in: formData + name: override_params[merge_commit_template] + description: Template used to create merge commit message + type: string + required: false + - in: formData + name: override_params[squash_commit_template] + description: Template used to create squash commit message + type: string + required: false + - in: formData + name: override_params[issue_branch_template] + description: Template used to create a branch from an issue + type: string + required: false + - in: formData + name: override_params[auto_devops_enabled] + description: Flag indication if Auto DevOps is enabled + type: boolean + required: false + - in: formData + name: override_params[auto_devops_deploy_strategy] + description: Auto Deploy strategy + type: string + enum: + - continuous + - manual + - timed_incremental + required: false + - in: formData + name: override_params[autoclose_referenced_issues] + description: Flag indication if referenced issues auto-closing is enabled + type: boolean + required: false + - in: formData + name: override_params[repository_storage] + description: Which storage shard the repository is on. Available only to admins + type: string + required: false + - in: formData + name: override_params[packages_enabled] + description: Enable project packages feature + type: boolean + required: false + - in: formData + name: override_params[squash_option] + description: Squash default for project. One of `never`, `always`, `default_on`, + or `default_off`. + type: string + enum: + - never + - always + - default_on + - default_off + required: false + - in: formData + name: override_params[mr_default_target_self] + description: Merge requests of this forked project targets itself by default + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_all_status_checks_passed] + description: Blocks merge requests from merging unless all status checks have + passed + type: boolean + required: false + - in: formData + name: override_params[approvals_before_merge] + description: How many approvers should approve merge request by default + type: integer + format: int32 + required: false + - in: formData + name: override_params[mirror] + description: "[Deprecated] Enables pull mirroring in a project" + type: boolean + required: false + - in: formData + name: override_params[mirror_trigger_builds] + description: "[Deprecated] Pull mirroring triggers builds" + type: boolean + required: false + - in: formData + name: override_params[external_authorization_classification_label] + description: The classification label for the project + type: string + required: false + - in: formData + name: override_params[requirements_access_level] + description: Requirements feature access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[prevent_merge_without_jira_issue] + description: Require an associated issue from Jira + type: boolean + required: false + responses: + '201': + description: Create a new project import using a remote object storage path + schema: + "$ref": "#/definitions/API_Entities_ProjectImportStatus" + '401': + description: Unauthorized + '403': + description: Forbidden + '400': + description: Bad request + '404': + description: Not found + '429': + description: Too many requests + '503': + description: Service unavailable + tags: + - project_import + operationId: postApiV4ProjectsRemoteImport + "/api/v4/projects/import-relation/authorize": + post: + summary: Workhorse authorize the project relation import upload + description: This feature was introduced in GitLab 16.11 + produces: + - application/json + consumes: + - application/json + responses: + '201': + description: Workhorse authorize the project relation import upload + tags: + - project_import + operationId: postApiV4ProjectsImportRelationAuthorize + "/api/v4/projects/import-relation": + post: + summary: Re-import a relation into a project + description: This feature was introduced in GitLab 16.11. + produces: + - application/json + consumes: + - multipart/form-data + parameters: + - in: formData + name: path + description: The project path and name + type: string + required: true + - in: formData + name: file + description: The project export file from which to extract the relation. + type: file + required: true + - in: formData + name: relation + description: The relation to import. Must be one of issues, merge_requests, + ci_pipelines, or milestones. + type: string + required: true + - in: formData + name: file.path + description: Path to locally stored body (generated by Workhorse) + type: string + required: false + - in: formData + name: file.name + description: Real filename as sent in Content-Disposition (generated by Workhorse) + type: string + required: false + - in: formData + name: file.type + description: Real content type as send in Content-Type (generated by Workhorse) + type: string + required: false + - in: formData + name: file.size + description: Real size of file (generated by Workhorse) + type: integer + format: int32 + required: false + - in: formData + name: file.md5 + description: MD5 checksum of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.sha1 + description: SHA1 checksum of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.sha256 + description: SHA256 checksum of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.etag + description: Etag of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.remote_id + description: Remote_id of the file (generated by Workhorse) + type: string + required: false + - in: formData + name: file.remote_url + description: Remote_url of the file (generated by Workhorse) + type: string + required: false + responses: + '201': + description: Re-import a relation into a project + schema: + "$ref": "#/definitions/API_Entities_RelationImportTracker" + '401': + description: Unauthorized + '403': + description: Forbidden + '400': + description: Bad request + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_import + operationId: postApiV4ProjectsImportRelation + "/api/v4/projects/{id}/relation-imports": + get: + summary: Get the statuses of relation imports for specified project + description: This feature was introduced in GitLab 16.11. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Get the statuses of relation imports for specified project + schema: + "$ref": "#/definitions/API_Entities_ProjectImportStatus" + '401': + description: Unauthorized + '403': + description: Forbidden + '400': + description: Bad request + '404': + description: Not found + '503': + description: Service unavailable + tags: + - project_import + operationId: getApiV4ProjectsIdRelationImports + "/api/v4/projects/remote-import-s3": + post: + summary: Create a new project import using a file from AWS S3 + description: This feature was introduced in GitLab 14.9. + produces: + - application/json + consumes: + - multipart/form-data + parameters: + - in: formData + name: region + description: AWS region + type: string + required: true + - in: formData + name: bucket_name + description: Bucket name + type: string + required: true + - in: formData + name: file_key + description: File key + type: string + required: true + - in: formData + name: access_key_id + description: Access key id + type: string + required: true + - in: formData + name: secret_access_key + description: Secret access key + type: string + required: true + - in: formData + name: path + description: The new project path and name + type: string + required: true + - in: formData + name: name + description: The name of the project to be imported. Defaults to the path + of the project if not provided. + type: string + required: false + - in: formData + name: namespace + description: The ID or name of the namespace that the project will be imported + into. Defaults to the current user's namespace. + type: string + required: false + - in: formData + name: overwrite + description: If there is a project in the same namespace and with the same + name overwrite it + type: boolean + default: false + required: false + - in: formData + name: override_params[description] + description: The description of the project + type: string + required: false + - in: formData + name: override_params[build_git_strategy] + description: The Git strategy. Defaults to `fetch` + type: string + enum: + - fetch + - clone + required: false + - in: formData + name: override_params[build_timeout] + description: Build timeout + type: integer + format: int32 + required: false + - in: formData + name: override_params[auto_cancel_pending_pipelines] + description: Auto-cancel pending pipelines + type: string + enum: + - disabled + - enabled + required: false + - in: formData + name: override_params[ci_config_path] + description: The path to CI config file. Defaults to `.gitlab-ci.yml` + type: string + required: false + - in: formData + name: override_params[service_desk_enabled] + description: Disable or enable the service desk + type: boolean + required: false + - in: formData + name: override_params[issues_enabled] + description: Flag indication if the issue tracker is enabled + type: boolean + required: false + - in: formData + name: override_params[merge_requests_enabled] + description: Flag indication if merge requests are enabled + type: boolean + required: false + - in: formData + name: override_params[wiki_enabled] + description: Flag indication if the wiki is enabled + type: boolean + required: false + - in: formData + name: override_params[jobs_enabled] + description: Flag indication if jobs are enabled + type: boolean + required: false + - in: formData + name: override_params[snippets_enabled] + description: Flag indication if snippets are enabled + type: boolean + required: false + - in: formData + name: override_params[issues_access_level] + description: Issues access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[repository_access_level] + description: Repository access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[merge_requests_access_level] + description: Merge requests access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[forking_access_level] + description: Forks access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[wiki_access_level] + description: Wiki access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[builds_access_level] + description: Builds access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[snippets_access_level] + description: Snippets access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[pages_access_level] + description: Pages access level. One of `disabled`, `private`, `enabled` or + `public` + type: string + enum: + - disabled + - private + - enabled + - public + required: false + - in: formData + name: override_params[analytics_access_level] + description: Analytics access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[container_registry_access_level] + description: Controls visibility of the container registry. One of `disabled`, + `private` or `enabled`. `private` will make the container registry accessible + only to project members (reporter role and above). `enabled` will make the + container registry accessible to everyone who has access to the project. + `disabled` will disable the container registry + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[security_and_compliance_access_level] + description: Security and compliance access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[releases_access_level] + description: Releases access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[environments_access_level] + description: Environments access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[feature_flags_access_level] + description: Feature flags access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[infrastructure_access_level] + description: Infrastructure access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[monitor_access_level] + description: Monitor access level. One of `disabled`, `private` or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[model_experiments_access_level] + description: Model experiments access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[model_registry_access_level] + description: Model registry access level. One of `disabled`, `private` or + `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[emails_disabled] + description: 'Deprecated: Use emails_enabled instead.' + type: boolean + required: false + - in: formData + name: override_params[emails_enabled] + description: Enable email notifications + type: boolean + required: false + - in: formData + name: override_params[show_default_award_emojis] + description: Show default award emojis + type: boolean + required: false + - in: formData + name: override_params[show_diff_preview_in_email] + description: Include the code diff preview in merge request notification emails + type: boolean + required: false + - in: formData + name: override_params[warn_about_potentially_unwanted_characters] + description: Warn about potentially unwanted characters + type: boolean + required: false + - in: formData + name: override_params[enforce_auth_checks_on_uploads] + description: Enforce auth check on uploads + type: boolean + required: false + - in: formData + name: override_params[shared_runners_enabled] + description: Flag indication if shared runners are enabled for that project + type: boolean + required: false + - in: formData + name: override_params[group_runners_enabled] + description: Flag indication if group runners are enabled for that project + type: boolean + required: false + - in: formData + name: override_params[resolve_outdated_diff_discussions] + description: Automatically resolve merge request diff threads on lines changed + with a push + type: boolean + required: false + - in: formData + name: override_params[remove_source_branch_after_merge] + description: Remove the source branch by default after merge + type: boolean + required: false + - in: formData + name: override_params[container_registry_enabled] + description: 'Deprecated: Use :container_registry_access_level instead. Flag + indication if the container registry is enabled for that project' + type: boolean + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][cadence] + description: Container expiration policy cadence for recurring job + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][keep_n] + description: Container expiration policy number of images to keep + type: integer + format: int32 + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][older_than] + description: Container expiration policy remove images older than value + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][name_regex] + description: Container expiration policy regex for image removal + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][name_regex_keep] + description: Container expiration policy regex for image retention + type: string + required: false + - in: formData + name: override_params[container_expiration_policy_attributes][enabled] + description: Flag indication if container expiration policy is enabled + type: boolean + required: false + - in: formData + name: override_params[lfs_enabled] + description: Flag indication if Git LFS is enabled for that project + type: boolean + required: false + - in: formData + name: override_params[visibility] + description: The visibility of the project. + type: string + enum: + - private + - internal + - public + required: false + - in: formData + name: override_params[public_builds] + description: 'Deprecated: Use public_jobs instead.' + type: boolean + required: false + - in: formData + name: override_params[public_jobs] + description: Perform public builds + type: boolean + required: false + - in: formData + name: override_params[request_access_enabled] + description: Allow users to request member access + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_pipeline_succeeds] + description: Only allow to merge if builds succeed + type: boolean + required: false + - in: formData + name: override_params[allow_merge_on_skipped_pipeline] + description: Allow to merge if pipeline is skipped + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_all_discussions_are_resolved] + description: Only allow to merge if all threads are resolved + type: boolean + required: false + - in: formData + name: override_params[tag_list] + description: 'Deprecated: Use :topics instead' + type: array + items: + type: string + required: false + - in: formData + name: override_params[topics] + description: The list of topics for a project + type: array + items: + type: string + required: false + - in: formData + name: override_params[avatar] + description: Avatar image for project + type: file + required: false + - in: formData + name: override_params[printing_merge_request_link_enabled] + description: Show link to create/view merge request when pushing from the + command line + type: boolean + required: false + - in: formData + name: override_params[merge_method] + description: The merge method used when merging merge requests + type: string + enum: + - ff + - rebase_merge + - merge + required: false + - in: formData + name: override_params[suggestion_commit_message] + description: The commit message used to apply merge request suggestions + type: string + required: false + - in: formData + name: override_params[merge_commit_template] + description: Template used to create merge commit message + type: string + required: false + - in: formData + name: override_params[squash_commit_template] + description: Template used to create squash commit message + type: string + required: false + - in: formData + name: override_params[issue_branch_template] + description: Template used to create a branch from an issue + type: string + required: false + - in: formData + name: override_params[auto_devops_enabled] + description: Flag indication if Auto DevOps is enabled + type: boolean + required: false + - in: formData + name: override_params[auto_devops_deploy_strategy] + description: Auto Deploy strategy + type: string + enum: + - continuous + - manual + - timed_incremental + required: false + - in: formData + name: override_params[autoclose_referenced_issues] + description: Flag indication if referenced issues auto-closing is enabled + type: boolean + required: false + - in: formData + name: override_params[repository_storage] + description: Which storage shard the repository is on. Available only to admins + type: string + required: false + - in: formData + name: override_params[packages_enabled] + description: Enable project packages feature + type: boolean + required: false + - in: formData + name: override_params[squash_option] + description: Squash default for project. One of `never`, `always`, `default_on`, + or `default_off`. + type: string + enum: + - never + - always + - default_on + - default_off + required: false + - in: formData + name: override_params[mr_default_target_self] + description: Merge requests of this forked project targets itself by default + type: boolean + required: false + - in: formData + name: override_params[only_allow_merge_if_all_status_checks_passed] + description: Blocks merge requests from merging unless all status checks have + passed + type: boolean + required: false + - in: formData + name: override_params[approvals_before_merge] + description: How many approvers should approve merge request by default + type: integer + format: int32 + required: false + - in: formData + name: override_params[mirror] + description: "[Deprecated] Enables pull mirroring in a project" + type: boolean + required: false + - in: formData + name: override_params[mirror_trigger_builds] + description: "[Deprecated] Pull mirroring triggers builds" + type: boolean + required: false + - in: formData + name: override_params[external_authorization_classification_label] + description: The classification label for the project + type: string + required: false + - in: formData + name: override_params[requirements_access_level] + description: Requirements feature access level. One of `disabled`, `private` + or `enabled` + type: string + enum: + - disabled + - private + - enabled + required: false + - in: formData + name: override_params[prevent_merge_without_jira_issue] + description: Require an associated issue from Jira + type: boolean + required: false + responses: + '201': + description: Create a new project import using a file from AWS S3 + schema: + "$ref": "#/definitions/API_Entities_ProjectImportStatus" + '401': + description: Unauthorized + '403': + description: Forbidden + '400': + description: Bad request + '404': + description: Not found + '429': + description: Too many requests + '503': + description: Service unavailable + tags: + - project_import + operationId: postApiV4ProjectsRemoteImportS3 + "/api/v4/projects/{id}/job_token_scope": + get: + description: Fetch CI_JOB_TOKEN access settings. + produces: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Fetch CI_JOB_TOKEN access settings. + schema: + "$ref": "#/definitions/API_Entities_ProjectJobTokenScope" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - projects_job_token_scope + operationId: getApiV4ProjectsIdJobTokenScope + patch: + description: Patch CI_JOB_TOKEN access settings. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - name: patchApiV4ProjectsIdJobTokenScope + in: body + required: true + schema: + "$ref": "#/definitions/patchApiV4ProjectsIdJobTokenScope" + responses: + '204': + description: Patch CI_JOB_TOKEN access settings. + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - projects_job_token_scope + operationId: patchApiV4ProjectsIdJobTokenScope + "/api/v4/projects/{id}/job_token_scope/allowlist": + get: + description: Fetch project inbound allowlist for CI_JOB_TOKEN access settings. + produces: + - application/json + parameters: + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Fetch project inbound allowlist for CI_JOB_TOKEN access settings. + schema: + "$ref": "#/definitions/API_Entities_BasicProjectDetails" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - projects_job_token_scope + operationId: getApiV4ProjectsIdJobTokenScopeAllowlist + post: + description: Add target project to allowlist. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: ID of user project + type: integer + format: int32 + required: true + example: 1 + - name: postApiV4ProjectsIdJobTokenScopeAllowlist + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdJobTokenScopeAllowlist" + responses: + '201': + description: Add target project to allowlist. + schema: + "$ref": "#/definitions/API_Entities_BasicProjectDetails" + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - projects_job_token_scope + operationId: postApiV4ProjectsIdJobTokenScopeAllowlist + "/api/v4/projects/{id}/job_token_scope/groups_allowlist": + get: + description: Fetch project groups allowlist for CI_JOB_TOKEN access settings. + produces: + - application/json + parameters: + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Fetch project groups allowlist for CI_JOB_TOKEN access settings. + schema: + "$ref": "#/definitions/API_Entities_BasicProjectDetails" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - projects_job_token_scope + operationId: getApiV4ProjectsIdJobTokenScopeGroupsAllowlist + post: + description: Add target group to allowlist. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: ID of user project + type: integer + format: int32 + required: true + example: 1 + - name: postApiV4ProjectsIdJobTokenScopeGroupsAllowlist + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdJobTokenScopeGroupsAllowlist" + responses: + '201': + description: Add target group to allowlist. + schema: + "$ref": "#/definitions/API_Entities_BasicGroupDetails" + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - projects_job_token_scope + operationId: postApiV4ProjectsIdJobTokenScopeGroupsAllowlist + "/api/v4/projects/{id}/job_token_scope/groups_allowlist/{target_group_id}": + delete: + description: Delete target group from allowlist. + produces: + - application/json + parameters: + - in: path + name: id + description: ID of user project + type: integer + format: int32 + required: true + example: 1 + - in: path + name: target_group_id + description: ID of the group to be removed from the allowlist + type: integer + format: int32 + required: true + example: 2 + responses: + '204': + description: Delete target group from allowlist. + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - projects_job_token_scope + operationId: deleteApiV4ProjectsIdJobTokenScopeGroupsAllowlistTargetGroupId + "/api/v4/projects/{id}/job_token_scope/allowlist/{target_project_id}": + delete: + description: Delete project from allowlist. + produces: + - application/json + parameters: + - in: path + name: id + description: ID of user project + type: integer + format: int32 + required: true + example: 1 + - in: path + name: target_project_id + description: ID of the project to be removed from the allowlist + type: integer + format: int32 + required: true + example: 2 + responses: + '204': + description: Delete project from allowlist. + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - projects_job_token_scope + operationId: deleteApiV4ProjectsIdJobTokenScopeAllowlistTargetProjectId + "/api/v4/projects/{id}/packages": + get: + summary: Get a list of project packages + description: This feature was introduced in GitLab 11.8 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: order_by + description: Return packages ordered by `created_at`, `name`, `version` or + `type` fields. + type: string + default: created_at + enum: + - created_at + - name + - version + - type + required: false + - in: query + name: sort + description: Return packages sorted in `asc` or `desc` order. + type: string + default: asc + enum: + - asc + - desc + required: false + - in: query + name: package_type + description: Return packages of a certain type + type: string + enum: + - maven + - npm + - conan + - nuget + - pypi + - composer + - generic + - golang + - debian + - rubygems + - helm + - terraform_module + - rpm + - ml_model + required: false + - in: query + name: package_name + description: Return packages with this name + type: string + required: false + - in: query + name: package_version + description: Return packages with this version + type: string + required: false + - in: query + name: include_versionless + description: Returns packages without a version + type: boolean + required: false + - in: query + name: status + description: Return packages with specified status + type: string + enum: + - default + - hidden + - processing + - error + - pending_destruction + required: false + responses: + '200': + description: Get a list of project packages + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Package" + '403': + description: Forbidden + '404': + description: Project Not Found + tags: + - project_packages + operationId: getApiV4ProjectsIdPackages + "/api/v4/projects/{id}/packages/{package_id}": + get: + summary: Get a single project package + description: This feature was introduced in GitLab 11.9 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: package_id + description: The ID of a package + type: integer + format: int32 + required: true + responses: + '200': + description: Get a single project package + schema: + "$ref": "#/definitions/API_Entities_Package" + '403': + description: Forbidden + '404': + description: Not Found + tags: + - project_packages + operationId: getApiV4ProjectsIdPackagesPackageId + delete: + summary: Delete a project package + description: This feature was introduced in GitLab 11.9 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: package_id + description: The ID of a package + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a project package + '403': + description: Forbidden + '404': + description: Not Found + tags: + - project_packages + operationId: deleteApiV4ProjectsIdPackagesPackageId + "/api/v4/projects/{id}/packages/{package_id}/pipelines": + get: + summary: Get the pipelines for a single project package + description: This feature was introduced in GitLab 16.1 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + minimum: 1 + maximum: 20 + required: false + example: 20 + - in: path + name: package_id + description: The ID of a package + type: integer + format: int32 + required: true + - in: query + name: cursor + description: Cursor for obtaining the next set of records + type: string + required: false + responses: + '200': + description: Get the pipelines for a single project package + schema: + "$ref": "#/definitions/API_Entities_Package_Pipeline" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - project_packages + operationId: getApiV4ProjectsIdPackagesPackageIdPipelines + "/api/v4/projects/{id}/packages/protection/rules": + get: + description: Get list of package protection rules for a project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Get list of package protection rules for a project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Projects_Packages_Protection_Rule" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - projects + operationId: getApiV4ProjectsIdPackagesProtectionRules + post: + description: Create a package protection rule for a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdPackagesProtectionRules + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdPackagesProtectionRules" + responses: + '201': + description: Create a package protection rule for a project + schema: + "$ref": "#/definitions/API_Entities_Projects_Packages_Protection_Rule" + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + '422': + description: Unprocessable Entity + tags: + - projects + operationId: postApiV4ProjectsIdPackagesProtectionRules + "/api/v4/projects/{id}/packages/protection/rules/{package_protection_rule_id}": + patch: + description: Update a package protection rule for a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: package_protection_rule_id + description: The ID of the package protection rule + type: integer + format: int32 + required: true + - name: patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId + in: body + required: true + schema: + "$ref": "#/definitions/patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId" + responses: + '200': + description: Update a package protection rule for a project + schema: + "$ref": "#/definitions/API_Entities_Projects_Packages_Protection_Rule" + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + '422': + description: Unprocessable Entity + tags: + - projects + operationId: patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId + delete: + description: Delete package protection rule + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: package_protection_rule_id + description: The ID of the package protection rule + type: integer + format: int32 + required: true + responses: + '204': + description: 204 No Content + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - projects + operationId: deleteApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId + "/api/v4/projects/{id}/repository_storage_moves": + get: + summary: Get a list of all project repository storage moves + description: This feature was introduced in GitLab 13.1. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get a list of all project repository storage moves + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove" + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryStorageMoves + post: + summary: Schedule a project repository storage move + description: This feature was introduced in GitLab 13.1. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdRepositoryStorageMoves + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdRepositoryStorageMoves" + responses: + '201': + description: Schedule a project repository storage move + schema: + "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove" + tags: + - projects + operationId: postApiV4ProjectsIdRepositoryStorageMoves + "/api/v4/projects/{id}/repository_storage_moves/{repository_storage_move_id}": + get: + summary: Get a project repository storage move + description: This feature was introduced in GitLab 13.1. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: repository_storage_move_id + description: The ID of a project repository storage move + type: integer + format: int32 + required: true + responses: + '200': + description: Get a project repository storage move + schema: + "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove" + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryStorageMovesRepositoryStorageMoveId + "/api/v4/projects/{id}/snapshot": + get: + summary: Download a (possibly inconsistent) snapshot of a repository + description: This feature was introduced in GitLab 10.7 + produces: + - application/x-tar + parameters: + - in: query + name: wiki + description: Set to true to receive the wiki repository + type: boolean + required: false + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Download a (possibly inconsistent) snapshot of a repository + schema: + type: file + '401': + description: Unauthorized + tags: + - projects + operationId: getApiV4ProjectsIdSnapshot + "/api/v4/projects/{id}/snippets": + get: + description: Get all project snippets + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get all project snippets + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ProjectSnippet" + '404': + description: Not found + tags: + - project_snippets + operationId: getApiV4ProjectsIdSnippets + post: + description: Create a new project snippet + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdSnippets + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdSnippets" + responses: + '201': + description: Create a new project snippet + schema: + "$ref": "#/definitions/API_Entities_ProjectSnippet" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - project_snippets + operationId: postApiV4ProjectsIdSnippets + "/api/v4/projects/{id}/snippets/{snippet_id}": + get: + description: Get a single project snippet + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: snippet_id + description: The ID of a project snippet + type: integer + format: int32 + required: true + responses: + '200': + description: Get a single project snippet + schema: + "$ref": "#/definitions/API_Entities_ProjectSnippet" + '404': + description: Not found + tags: + - project_snippets + operationId: getApiV4ProjectsIdSnippetsSnippetId + put: + description: Update an existing project snippet + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: snippet_id + description: The ID of a project snippet + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdSnippetsSnippetId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdSnippetsSnippetId" + responses: + '200': + description: Update an existing project snippet + schema: + "$ref": "#/definitions/API_Entities_ProjectSnippet" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - project_snippets + operationId: putApiV4ProjectsIdSnippetsSnippetId + delete: + description: Delete a project snippet + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: snippet_id + description: The ID of a project snippet + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a project snippet + '400': + description: Validation error + '404': + description: Not found + tags: + - project_snippets + operationId: deleteApiV4ProjectsIdSnippetsSnippetId + "/api/v4/projects/{id}/snippets/{snippet_id}/raw": + get: + description: Get a raw project snippet + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: snippet_id + description: The ID of a project snippet + type: integer + format: int32 + required: true + responses: + '200': + description: Get a raw project snippet + schema: + "$ref": "#/definitions/API_Entities_ProjectSnippet" + '404': + description: Not found + tags: + - project_snippets + operationId: getApiV4ProjectsIdSnippetsSnippetIdRaw + "/api/v4/projects/{id}/snippets/{snippet_id}/files/{ref}/{file_path}/raw": + get: + description: Get raw project snippet file contents from the repository + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: file_path + description: The url encoded path to the file, e.g. lib%2Fclass%2Erb + type: string + required: true + - in: path + name: ref + description: The name of branch, tag or commit + type: string + required: true + - in: path + name: snippet_id + type: integer + format: int32 + required: true + responses: + '200': + description: Get raw project snippet file contents from the repository + schema: + "$ref": "#/definitions/API_Entities_ProjectSnippet" + '404': + description: Not found + tags: + - project_snippets + operationId: getApiV4ProjectsIdSnippetsSnippetIdFilesRefFilePathRaw + "/api/v4/projects/{id}/snippets/{snippet_id}/user_agent_detail": + get: + description: Get the user agent details for a project snippet + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: snippet_id + description: The ID of a project snippet + type: integer + format: int32 + required: true + responses: + '200': + description: Get the user agent details for a project snippet + schema: + "$ref": "#/definitions/API_Entities_UserAgentDetail" + '404': + description: Not found + tags: + - project_snippets + operationId: getApiV4ProjectsIdSnippetsSnippetIdUserAgentDetail + "/api/v4/projects/{id}/statistics": + get: + description: Get the list of project fetch statistics for the last 30 days + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Get the list of project fetch statistics for the last 30 days + schema: + "$ref": "#/definitions/API_Entities_ProjectDailyStatistics" + '404': + description: 404 Project Not Found + '401': + description: 401 Unauthorized + tags: + - projects + operationId: getApiV4ProjectsIdStatistics + "/api/v4/projects/{id}/templates/{type}": + get: + summary: Get a list of templates available to this project + description: This endpoint was introduced in GitLab 11.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: type + description: The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses|issues|merge_requests) + of the template + type: string + enum: + - dockerfiles + - gitignores + - gitlab_ci_ymls + - licenses + - issues + - merge_requests + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get a list of templates available to this project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_TemplatesList" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdTemplatesType + "/api/v4/projects/{id}/templates/{type}/{name}": + get: + summary: Download a template available to this project + description: This endpoint was introduced in GitLab 11.4 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: type + description: The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses|issues|merge_requests) + of the template + type: string + enum: + - dockerfiles + - gitignores + - gitlab_ci_ymls + - licenses + - issues + - merge_requests + required: true + - in: path + name: name + description: The key of the template, as obtained from the collection endpoint. + type: string + required: true + example: MIT + - in: query + name: source_template_project_id + description: The project id where a given template is being stored. This is + useful when multiple templates from different projects have the same name + type: integer + format: int32 + required: false + example: 1 + - in: query + name: project + description: The project name to use when expanding placeholders in the template. + Only affects licenses + type: string + required: false + example: GitLab + - in: query + name: fullname + description: The full name of the copyright holder to use when expanding placeholders + in the template. Only affects licenses + type: string + required: false + example: GitLab B.V. + responses: + '200': + description: Download a template available to this project + schema: + "$ref": "#/definitions/API_Entities_License" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdTemplatesTypeName + "/api/v4/projects/{id}/custom_attributes": + get: + description: Get all custom attributes on a project + produces: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get all custom attributes on a project + schema: + "$ref": "#/definitions/API_Entities_CustomAttribute" + tags: + - projects + operationId: getApiV4ProjectsIdCustomAttributes + "/api/v4/projects/{id}/custom_attributes/{key}": + get: + description: Get a custom attribute on a project + produces: + - application/json + parameters: + - in: path + name: key + description: The key of the custom attribute + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get a custom attribute on a project + schema: + "$ref": "#/definitions/API_Entities_CustomAttribute" + tags: + - projects + operationId: getApiV4ProjectsIdCustomAttributesKey + put: + description: Set a custom attribute on a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: key + description: The key of the custom attribute + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdCustomAttributesKey + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdCustomAttributesKey" + responses: + '200': + description: Set a custom attribute on a project + tags: + - projects + operationId: putApiV4ProjectsIdCustomAttributesKey + delete: + description: Delete a custom attribute on a project + produces: + - application/json + parameters: + - in: path + name: key + description: The key of the custom attribute + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '204': + description: Delete a custom attribute on a project + tags: + - projects + operationId: deleteApiV4ProjectsIdCustomAttributesKey + "/api/v4/projects": + get: + description: Get a list of visible projects for authenticated user + produces: + - application/json + parameters: + - in: query + name: order_by + description: Return projects ordered by field. storage_size, repository_size, + wiki_size, packages_size are only available to admins. Similarity is available + when searching and is limited to projects the user has access to. + type: string + default: created_at + enum: + - id + - name + - path + - created_at + - updated_at + - last_activity_at + - similarity + - star_count + - storage_size + - repository_size + - wiki_size + - packages_size + required: false + - in: query + name: sort + description: Return projects sorted in ascending and descending order + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: archived + description: Limit by archived status + type: boolean + required: false + - in: query + name: visibility + description: Limit by visibility + type: string + enum: + - private + - internal + - public + required: false + - in: query + name: search + description: Return list of projects matching the search criteria + type: string + required: false + - in: query + name: search_namespaces + description: Include ancestor namespaces when matching search criteria + type: boolean + required: false + - in: query + name: owned + description: Limit by owned by authenticated user + type: boolean + default: false + required: false + - in: query + name: starred + description: Limit by starred status + type: boolean + default: false + required: false + - in: query + name: imported + description: Limit by imported by authenticated user + type: boolean + default: false + required: false + - in: query + name: membership + description: Limit by projects that the current user is a member of + type: boolean + default: false + required: false + - in: query + name: with_issues_enabled + description: Limit by enabled issues feature + type: boolean + default: false + required: false + - in: query + name: with_merge_requests_enabled + description: Limit by enabled merge requests feature + type: boolean + default: false + required: false + - in: query + name: with_programming_language + description: Limit to repositories which use the given programming language + type: string + required: false + - in: query + name: min_access_level + description: Limit by minimum access level of authenticated user + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + required: false + - in: query + name: id_after + description: Limit results to projects with IDs greater than the specified + ID + type: integer + format: int32 + required: false + - in: query + name: id_before + description: Limit results to projects with IDs less than the specified ID + type: integer + format: int32 + required: false + - in: query + name: last_activity_after + description: 'Limit results to projects with last_activity after specified + time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: last_activity_before + description: 'Limit results to projects with last_activity before specified + time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: repository_storage + description: Which storage shard the repository is on. Available only to admins + type: string + required: false + - in: query + name: topic + description: Comma-separated list of topics. Limit results to projects having + all topics + type: array + items: + type: string + required: false + - in: query + name: topic_id + description: Limit results to projects with the assigned topic given by the + topic ID + type: integer + format: int32 + required: false + - in: query + name: updated_before + description: 'Return projects updated before the specified datetime. Format: + ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: updated_after + description: 'Return projects updated after the specified datetime. Format: + ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: include_pending_delete + description: Include projects in pending delete state. Can only be set by + admins + type: boolean + required: false + - in: query + name: wiki_checksum_failed + description: Limit by projects where wiki checksum is failed + type: boolean + default: false + required: false + - in: query + name: repository_checksum_failed + description: Limit by projects where repository checksum is failed + type: boolean + default: false + required: false + - in: query + name: include_hidden + description: Include hidden projects. Can only be set by admins + type: boolean + default: false + required: false + - in: query + name: marked_for_deletion_on + description: Date when the project was marked for deletion + type: string + format: date + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: simple + description: Return only the ID, URL, name, and path of each project + type: boolean + default: false + required: false + - in: query + name: statistics + description: Include project statistics + type: boolean + default: false + required: false + - in: query + name: with_custom_attributes + description: Include custom attributes in the response + type: boolean + default: false + required: false + responses: + '200': + description: Get a list of visible projects for authenticated user + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_BasicProjectDetails" + '400': + description: Bad request + tags: + - projects + operationId: getApiV4Projects + post: + description: Create new project + produces: + - application/json + consumes: + - application/json + parameters: + - name: postApiV4Projects + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4Projects" + responses: + '201': + description: Create new project + schema: + "$ref": "#/definitions/API_Entities_Project" + '403': + description: Unauthenticated + '404': + description: Not found + '400': + description: Bad request + tags: + - projects + operationId: postApiV4Projects + "/api/v4/projects/user/{user_id}": + post: + description: Create new project for a specified user. Only available to admin + users. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: user_id + description: The ID of a user + type: integer + format: int32 + required: true + example: 1 + - name: postApiV4ProjectsUserUserId + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsUserUserId" + responses: + '201': + description: Create new project for a specified user. Only available to + admin users. + schema: + "$ref": "#/definitions/API_Entities_Project" + '403': + description: Unauthenticated + '404': + description: Not found + '400': + description: Bad request + tags: + - projects + operationId: postApiV4ProjectsUserUserId + "/api/v4/projects/{id}/share_locations": + get: + description: Returns group that can be shared with the given project + produces: + - application/json + parameters: + - in: path + name: id + description: The id of the project + type: integer + format: int32 + required: true + - in: query + name: search + description: Return list of groups matching the search criteria + type: string + required: false + responses: + '200': + description: Returns group that can be shared with the given project + schema: + "$ref": "#/definitions/API_Entities_Group" + tags: + - projects + operationId: getApiV4ProjectsIdShareLocations + "/api/v4/projects/{id}": + get: + description: Get a single project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: statistics + description: Include project statistics + type: boolean + default: false + required: false + - in: query + name: with_custom_attributes + description: Include custom attributes in the response + type: boolean + default: false + required: false + - in: query + name: license + description: Include project license data + type: boolean + default: false + required: false + responses: + '200': + description: Get a single project + schema: + "$ref": "#/definitions/API_Entities_ProjectWithAccess" + tags: + - projects + operationId: getApiV4ProjectsId + put: + description: Update an existing project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsId" + responses: + '200': + description: Update an existing project + schema: + "$ref": "#/definitions/API_Entities_Project" + '400': + description: Bad request + '403': + description: Unauthenticated + tags: + - projects + operationId: putApiV4ProjectsId + delete: + description: Delete a project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '202': + description: Delete a project + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: deleteApiV4ProjectsId + "/api/v4/projects/{id}/fork": + post: + description: Fork new project for the current user or provided namespace. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdFork + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdFork" + responses: + '201': + description: Fork new project for the current user or provided namespace. + schema: + "$ref": "#/definitions/API_Entities_Project" + '403': + description: Unauthenticated + '404': + description: Not found + '409': + description: Conflict + tags: + - projects + operationId: postApiV4ProjectsIdFork + delete: + description: Remove a forked_from relationship + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '204': + description: Remove a forked_from relationship + '304': + description: Not modified + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: deleteApiV4ProjectsIdFork + "/api/v4/projects/{id}/forks": + get: + description: List forks of this project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: order_by + description: Return projects ordered by field. storage_size, repository_size, + wiki_size, packages_size are only available to admins. Similarity is available + when searching and is limited to projects the user has access to. + type: string + default: created_at + enum: + - id + - name + - path + - created_at + - updated_at + - last_activity_at + - similarity + - star_count + - storage_size + - repository_size + - wiki_size + - packages_size + required: false + - in: query + name: sort + description: Return projects sorted in ascending and descending order + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: archived + description: Limit by archived status + type: boolean + required: false + - in: query + name: visibility + description: Limit by visibility + type: string + enum: + - private + - internal + - public + required: false + - in: query + name: search + description: Return list of projects matching the search criteria + type: string + required: false + - in: query + name: search_namespaces + description: Include ancestor namespaces when matching search criteria + type: boolean + required: false + - in: query + name: owned + description: Limit by owned by authenticated user + type: boolean + default: false + required: false + - in: query + name: starred + description: Limit by starred status + type: boolean + default: false + required: false + - in: query + name: imported + description: Limit by imported by authenticated user + type: boolean + default: false + required: false + - in: query + name: membership + description: Limit by projects that the current user is a member of + type: boolean + default: false + required: false + - in: query + name: with_issues_enabled + description: Limit by enabled issues feature + type: boolean + default: false + required: false + - in: query + name: with_merge_requests_enabled + description: Limit by enabled merge requests feature + type: boolean + default: false + required: false + - in: query + name: with_programming_language + description: Limit to repositories which use the given programming language + type: string + required: false + - in: query + name: min_access_level + description: Limit by minimum access level of authenticated user + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + required: false + - in: query + name: id_after + description: Limit results to projects with IDs greater than the specified + ID + type: integer + format: int32 + required: false + - in: query + name: id_before + description: Limit results to projects with IDs less than the specified ID + type: integer + format: int32 + required: false + - in: query + name: last_activity_after + description: 'Limit results to projects with last_activity after specified + time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: last_activity_before + description: 'Limit results to projects with last_activity before specified + time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: repository_storage + description: Which storage shard the repository is on. Available only to admins + type: string + required: false + - in: query + name: topic + description: Comma-separated list of topics. Limit results to projects having + all topics + type: array + items: + type: string + required: false + - in: query + name: topic_id + description: Limit results to projects with the assigned topic given by the + topic ID + type: integer + format: int32 + required: false + - in: query + name: updated_before + description: 'Return projects updated before the specified datetime. Format: + ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: updated_after + description: 'Return projects updated after the specified datetime. Format: + ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: include_pending_delete + description: Include projects in pending delete state. Can only be set by + admins + type: boolean + required: false + - in: query + name: wiki_checksum_failed + description: Limit by projects where wiki checksum is failed + type: boolean + default: false + required: false + - in: query + name: repository_checksum_failed + description: Limit by projects where repository checksum is failed + type: boolean + default: false + required: false + - in: query + name: include_hidden + description: Include hidden projects. Can only be set by admins + type: boolean + default: false + required: false + - in: query + name: marked_for_deletion_on + description: Date when the project was marked for deletion + type: string + format: date + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: simple + description: Return only the ID, URL, name, and path of each project + type: boolean + default: false + required: false + - in: query + name: with_custom_attributes + description: Include custom attributes in the response + type: boolean + default: false + required: false + responses: + '200': + description: List forks of this project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Project" + tags: + - projects + operationId: getApiV4ProjectsIdForks + "/api/v4/projects/{id}/pages_access": + get: + description: Check pages access of this project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Check pages access of this project + '403': + description: Unauthenticated + tags: + - projects + operationId: getApiV4ProjectsIdPagesAccess + "/api/v4/projects/{id}/archive": + post: + description: Archive a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '201': + description: Archive a project + schema: + "$ref": "#/definitions/API_Entities_Project" + '403': + description: Unauthenticated + tags: + - projects + operationId: postApiV4ProjectsIdArchive + "/api/v4/projects/{id}/unarchive": + post: + description: Unarchive a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '201': + description: Unarchive a project + schema: + "$ref": "#/definitions/API_Entities_Project" + '403': + description: Unauthenticated + tags: + - projects + operationId: postApiV4ProjectsIdUnarchive + "/api/v4/projects/{id}/star": + post: + description: Star a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '201': + description: Star a project + schema: + "$ref": "#/definitions/API_Entities_Project" + '304': + description: Not modified + '403': + description: Unauthenticated + tags: + - projects + operationId: postApiV4ProjectsIdStar + "/api/v4/projects/{id}/unstar": + post: + description: Unstar a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '201': + description: Unstar a project + schema: + "$ref": "#/definitions/API_Entities_Project" + '304': + description: Not modified + '403': + description: Unauthenticated + tags: + - projects + operationId: postApiV4ProjectsIdUnstar + "/api/v4/projects/{id}/starrers": + get: + description: Get the users who starred a project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: search + description: Return list of users matching the search criteria + type: string + required: false + example: user + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get the users who starred a project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_UserBasic" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdStarrers + "/api/v4/projects/{id}/languages": + get: + description: Get languages in project repository + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '200': + description: Get languages in project repository + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdLanguages + "/api/v4/projects/{id}/fork/{forked_from_id}": + post: + description: Mark this project as forked from another + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: forked_from_id + description: The ID of the project it was forked from + type: string + required: true + example: gitlab + responses: + '201': + description: Mark this project as forked from another + schema: + "$ref": "#/definitions/API_Entities_Project" + '401': + description: Unauthorized + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: postApiV4ProjectsIdForkForkedFromId + "/api/v4/projects/{id}/share": + post: + description: Share the project with a group + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdShare + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdShare" + responses: + '201': + description: Share the project with a group + schema: + "$ref": "#/definitions/API_Entities_ProjectGroupLink" + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: postApiV4ProjectsIdShare + "/api/v4/projects/{id}/share/{group_id}": + delete: + description: Remove a group share + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: group_id + description: The ID of the group + type: integer + format: int32 + required: true + responses: + '204': + description: Remove a group share + '400': + description: Bad request + '404': + description: Not found + tags: + - projects + operationId: deleteApiV4ProjectsIdShareGroupId + "/api/v4/projects/{id}/import_project_members/{project_id}": + post: + summary: Import members from another project + description: This feature was introduced in GitLab 14.2 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: project_id + description: The ID of the source project to import the members from. + type: integer + format: int32 + required: true + responses: + '200': + description: Import members from another project + '403': + description: Unauthenticated + '404': + description: Project Not Found + '422': + description: Import failed + tags: + - projects + operationId: postApiV4ProjectsIdImportProjectMembersProjectId + "/api/v4/projects/{id}/users": + get: + description: Get the users list of a project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: search + description: Return list of users matching the search criteria + type: string + required: false + example: user + - in: query + name: skip_users + description: Filter out users with the specified IDs + type: array + items: + type: integer + format: int32 + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get the users list of a project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_UserBasic" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdUsers + "/api/v4/projects/{id}/groups": + get: + description: Get ancestor and shared groups for a project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: search + description: Return list of groups matching the search criteria + type: string + required: false + example: group + - in: query + name: skip_groups + description: Array of group ids to exclude from list + type: array + items: + type: integer + format: int32 + required: false + - in: query + name: with_shared + description: Include shared groups + type: boolean + default: false + required: false + - in: query + name: shared_visible_only + description: Limit to shared groups user has access to + type: boolean + default: false + required: false + - in: query + name: shared_min_access_level + description: Limit returned shared groups by minimum access level to the project + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get ancestor and shared groups for a project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_PublicGroupDetails" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: getApiV4ProjectsIdGroups + "/api/v4/projects/{id}/invited_groups": + get: + description: Get a list of invited groups in this project + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: relation + description: Filter by group relation + type: array + items: + type: string + enum: + - direct + - inherited + required: false + - in: query + name: search + description: Search for a specific group + type: string + required: false + - in: query + name: min_access_level + description: Limit by minimum access level of authenticated user + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: with_custom_attributes + description: Include custom attributes in the response + type: boolean + default: false + required: false + responses: + '200': + description: Get a list of invited groups in this project + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Group" + tags: + - projects + operationId: getApiV4ProjectsIdInvitedGroups + "/api/v4/projects/{id}/housekeeping": + post: + summary: Start the housekeeping task for a project + description: This feature was introduced in GitLab 9.0. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdHousekeeping + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdHousekeeping" + responses: + '201': + description: Start the housekeeping task for a project + '401': + description: Unauthorized + '403': + description: Unauthenticated + '409': + description: Conflict + tags: + - projects + operationId: postApiV4ProjectsIdHousekeeping + "/api/v4/projects/{id}/repository_size": + post: + summary: Start a task to recalculate repository size for a project + description: This feature was introduced in GitLab 15.0. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + responses: + '201': + description: Start a task to recalculate repository size for a project + '401': + description: Unauthorized + '403': + description: Unauthenticated + tags: + - projects + operationId: postApiV4ProjectsIdRepositorySize + "/api/v4/projects/{id}/transfer": + put: + description: Transfer a project to a new namespace + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: putApiV4ProjectsIdTransfer + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdTransfer" + responses: + '200': + description: Transfer a project to a new namespace + schema: + "$ref": "#/definitions/API_Entities_Project" + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - projects + operationId: putApiV4ProjectsIdTransfer + "/api/v4/projects/{id}/transfer_locations": + get: + description: Get the namespaces to where the project can be transferred + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: search + description: Return list of namespaces matching the search criteria + type: string + required: false + example: search + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get the namespaces to where the project can be transferred + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_PublicGroupDetails" + '403': + description: Unauthenticated + tags: + - projects + operationId: getApiV4ProjectsIdTransferLocations + "/api/v4/projects/{id}/storage": + get: + description: Show the storage information + produces: + - application/json + parameters: + - in: path + name: id + description: ID of a project + type: string + required: true + responses: + '200': + description: Show the storage information + schema: + "$ref": "#/definitions/API_Entities_ProjectRepositoryStorage" + '403': + description: Unauthenticated + tags: + - projects + operationId: getApiV4ProjectsIdStorage + "/api/v4/projects/{id}/restore": + post: + description: Restore a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '201': + description: Restore a project + schema: + "$ref": "#/definitions/API_Entities_Project" + tags: + - projects + operationId: postApiV4ProjectsIdRestore "/api/v4/projects/{id}/audit_events": get: description: Get a list of audit events in this project. @@ -29505,6 +29079,318 @@ paths: tags: - projects operationId: getApiV4ProjectsIdAuditEventsAuditEventId + "/api/v4/projects/{id}/protected_branches": + get: + description: Get a project's protected branches + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: gitlab-org/gitlab + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: search + description: Search for a protected branch by name + type: string + required: false + example: mai + responses: + '200': + description: Get a project's protected branches + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ProtectedBranch" + '404': + description: 404 Project Not Found + '401': + description: 401 Unauthorized + tags: + - projects + operationId: getApiV4ProjectsIdProtectedBranches + post: + description: Protect a single branch + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: gitlab-org/gitlab + - name: postApiV4ProjectsIdProtectedBranches + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdProtectedBranches" + responses: + '201': + description: Protect a single branch + schema: + "$ref": "#/definitions/API_Entities_ProtectedBranch" + '422': + description: name is missing + '409': + description: Protected branch 'main' already exists + '404': + description: 404 Project Not Found + '401': + description: 401 Unauthorized + tags: + - projects + operationId: postApiV4ProjectsIdProtectedBranches + "/api/v4/projects/{id}/protected_branches/{name}": + get: + description: Get a single protected branch + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: name + description: The name of the branch or wildcard + type: string + required: true + example: main + responses: + '200': + description: Get a single protected branch + schema: + "$ref": "#/definitions/API_Entities_ProtectedBranch" + '404': + description: 404 Project Not Found + '401': + description: 401 Unauthorized + tags: + - projects + operationId: getApiV4ProjectsIdProtectedBranchesName + patch: + description: Update a protected branch + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: name + description: The name of the branch + type: string + required: true + example: main + - name: patchApiV4ProjectsIdProtectedBranchesName + in: body + required: true + schema: + "$ref": "#/definitions/patchApiV4ProjectsIdProtectedBranchesName" + responses: + '200': + description: Update a protected branch + schema: + "$ref": "#/definitions/API_Entities_ProtectedBranch" + '422': + description: Push access levels access level has already been taken + '404': + description: 404 Project Not Found + '401': + description: 401 Unauthorized + '400': + description: 400 Bad request + tags: + - projects + operationId: patchApiV4ProjectsIdProtectedBranchesName + delete: + description: Unprotect a single branch + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: name + description: The name of the protected branch + type: string + required: true + example: main + responses: + '204': + description: Unprotect a single branch + '404': + description: 404 Project Not Found + '401': + description: 401 Unauthorized + tags: + - projects + operationId: deleteApiV4ProjectsIdProtectedBranchesName + "/api/v4/projects/{id}/protected_tags": + get: + summary: Get a project's protected tags + description: This feature was introduced in GitLab 11.3. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get a project's protected tags + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ProtectedTag" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - protected_tags + operationId: getApiV4ProjectsIdProtectedTags + post: + summary: Protect a single tag or wildcard + description: This feature was introduced in GitLab 11.3. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdProtectedTags + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdProtectedTags" + responses: + '201': + description: Protect a single tag or wildcard + schema: + "$ref": "#/definitions/API_Entities_ProtectedTag" + '403': + description: Unauthenticated + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - protected_tags + operationId: postApiV4ProjectsIdProtectedTags + "/api/v4/projects/{id}/protected_tags/{name}": + get: + summary: Get a single protected tag + description: This feature was introduced in GitLab 11.3. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: name + description: The name of the tag or wildcard + type: string + required: true + example: release* + responses: + '200': + description: Get a single protected tag + schema: + "$ref": "#/definitions/API_Entities_ProtectedTag" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - protected_tags + operationId: getApiV4ProjectsIdProtectedTagsName + delete: + summary: Unprotect a single tag + description: This feature was introduced in GitLab 11.3. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: name + description: The name of the protected tag + type: string + required: true + example: release-1-0 + responses: + '204': + description: Unprotect a single tag + '403': + description: Unauthenticated + '404': + description: Not found + '412': + description: Precondition Failed + tags: + - protected_tags + operationId: deleteApiV4ProjectsIdProtectedTagsName "/api/v4/projects/{id}/packages/pypi/files/{sha256}/*file_identifier": get: summary: The PyPi package download endpoint @@ -29656,6 +29542,326 @@ paths: tags: - pypi_packages operationId: postApiV4ProjectsIdPackagesPypiAuthorize + "/api/v4/projects/{id}/releases": + get: + summary: List Releases + description: Returns a paginated list of releases. This feature was introduced + in GitLab 11.7. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: order_by + description: The field to use as order. Either `released_at` (default) or + `created_at` + type: string + default: released_at + enum: + - released_at + - created_at + required: false + - in: query + name: sort + description: The direction of the order. Either `desc` (default) for descending + order or `asc` for ascending order + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: include_html_description + description: If `true`, a response includes HTML rendered markdown of the + release description + type: boolean + required: false + - in: query + name: updated_before + description: 'Return releases updated before the specified datetime. Format: + ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + - in: query + name: updated_after + description: 'Return releases updated after the specified datetime. Format: + ISO 8601 YYYY-MM-DDTHH:MM:SSZ' + type: string + format: date-time + required: false + responses: + '200': + description: List Releases + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Release" + tags: + - releases + operationId: getApiV4ProjectsIdReleases + post: + summary: Create a release + description: Creates a release. Developer level access to the project is required + to create a release. This feature was introduced in GitLab 11.7. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdReleases + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdReleases" + responses: + '201': + description: Create a release + schema: + "$ref": "#/definitions/API_Entities_Release" + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + '409': + description: Conflict + '422': + description: Unprocessable entity + tags: + - releases + operationId: postApiV4ProjectsIdReleases + "/api/v4/projects/{id}/releases/{tag_name}": + get: + summary: Get a release by a tag name + description: Gets a release for the given tag. This feature was introduced in + GitLab 11.7. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: tag_name + description: The Git tag the release is associated with + type: string + required: true + - in: query + name: include_html_description + description: If `true`, a response includes HTML rendered markdown of the + release description + type: boolean + required: false + responses: + '200': + description: Get a release by a tag name + schema: + "$ref": "#/definitions/API_Entities_Release" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - releases + operationId: getApiV4ProjectsIdReleasesTagName + put: + summary: Update a release + description: Updates a release. Developer level access to the project is required + to update a release. This feature was introduced in GitLab 11.7. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: tag_name + description: The Git tag the release is associated with + type: string + required: true + - name: putApiV4ProjectsIdReleasesTagName + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdReleasesTagName" + responses: + '200': + description: Update a release + schema: + "$ref": "#/definitions/API_Entities_Release" + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - releases + operationId: putApiV4ProjectsIdReleasesTagName + delete: + summary: Delete a release + description: Delete a release. Deleting a release doesn't delete the associated + tag. Maintainer level access to the project is required to delete a release. + This feature was introduced in GitLab 11.7. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: tag_name + description: The Git tag the release is associated with + type: string + required: true + responses: + '400': + description: Bad request + '204': + description: Delete a release + schema: + "$ref": "#/definitions/API_Entities_Release" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not found + tags: + - releases + operationId: deleteApiV4ProjectsIdReleasesTagName + "/api/v4/projects/{id}/releases/{tag_name}/downloads/*direct_asset_path": + get: + summary: Download a project release asset file + description: This feature was introduced in GitLab 15.4. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: tag_name + description: The Git tag the release is associated with + type: string + required: true + - in: query + name: direct_asset_path + description: The path to the file to download, as specified when creating + the release asset + type: string + required: true + responses: + '200': + description: Download a project release asset file + '401': + description: Unauthorized + '404': + description: Not found + tags: + - releases + operationId: getApiV4ProjectsIdReleasesTagNameDownloads*directAssetPath + "/api/v4/projects/{id}/releases/permalink/latest(/)(*suffix_path)": + get: + summary: Get the latest project release + description: This feature was introduced in GitLab 15.4. + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: suffix_path + description: The path to be suffixed to the latest release + type: string + required: true + responses: + '200': + description: Get the latest project release + '401': + description: Unauthorized + '404': + description: Not found + tags: + - releases + operationId: getApiV4ProjectsIdReleasesPermalinkLatest()(*suffixPath) + "/api/v4/projects/{id}/releases/{tag_name}/evidence": + post: + summary: Collect release evidence + description: Creates an evidence for an existing Release. This feature was introduced + in GitLab 12.10. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: tag_name + description: The Git tag the release is associated with + type: string + required: true + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '201': + description: Collect release evidence + schema: + "$ref": "#/definitions/API_Entities_Release" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - releases + operationId: postApiV4ProjectsIdReleasesTagNameEvidence "/api/v4/projects/{id}/releases/{tag_name}/assets/links": get: summary: List links of a release @@ -29842,17 +30048,889 @@ paths: format: int32 required: true responses: - '400': - description: Bad request '204': - description: Delete a release link - schema: - "$ref": "#/definitions/API_Entities_Releases_Link" + description: Bad request '401': description: Unauthorized tags: - release_links operationId: deleteApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId + "/api/v4/projects/{id}/remote_mirrors": + get: + description: List the project's remote mirrors + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List the project's remote mirrors + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_RemoteMirror" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - remote_mirrors + operationId: getApiV4ProjectsIdRemoteMirrors + post: + description: Create remote mirror for a project + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdRemoteMirrors + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdRemoteMirrors" + responses: + '201': + description: Create remote mirror for a project + schema: + "$ref": "#/definitions/API_Entities_RemoteMirror" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - remote_mirrors + operationId: postApiV4ProjectsIdRemoteMirrors + "/api/v4/projects/{id}/remote_mirrors/{mirror_id}": + get: + description: Get a single remote mirror + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: mirror_id + description: The ID of a remote mirror + type: string + required: true + responses: + '200': + description: Get a single remote mirror + schema: + "$ref": "#/definitions/API_Entities_RemoteMirror" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - remote_mirrors + operationId: getApiV4ProjectsIdRemoteMirrorsMirrorId + put: + description: Update the attributes of a single remote mirror + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: mirror_id + description: The ID of a remote mirror + type: string + required: true + - name: putApiV4ProjectsIdRemoteMirrorsMirrorId + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdRemoteMirrorsMirrorId" + responses: + '200': + description: Update the attributes of a single remote mirror + schema: + "$ref": "#/definitions/API_Entities_RemoteMirror" + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - remote_mirrors + operationId: putApiV4ProjectsIdRemoteMirrorsMirrorId + delete: + summary: Delete a single remote mirror + description: This feature was introduced in GitLab 14.10 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: mirror_id + description: The ID of a remote mirror + type: string + required: true + responses: + '204': + description: Delete a single remote mirror + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - remote_mirrors + operationId: deleteApiV4ProjectsIdRemoteMirrorsMirrorId + "/api/v4/projects/{id}/remote_mirrors/{mirror_id}/sync": + post: + description: Triggers a push mirror operation + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: mirror_id + description: The ID of a remote mirror + type: string + required: true + responses: + '204': + description: Triggers a push mirror operation + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found + tags: + - remote_mirrors + operationId: postApiV4ProjectsIdRemoteMirrorsMirrorIdSync + "/api/v4/projects/{id}/repository/tree": + get: + description: Get a project repository tree + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: query + name: ref + description: The name of a repository branch or tag, if not given the default + branch is used + type: string + required: false + example: main + - in: query + name: path + description: The path of the tree + type: string + required: false + example: files/html + - in: query + name: recursive + description: Used to get a recursive tree + type: boolean + default: false + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: pagination + description: Specify the pagination method ("none" is only valid if "recursive" + is true) + type: string + default: legacy + enum: + - legacy + - keyset + - none + required: false + - in: query + name: page_token + description: Record from which to start the keyset pagination + type: string + required: false + example: a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba + responses: + '200': + description: Get a project repository tree + schema: + "$ref": "#/definitions/API_Entities_TreeObject" + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryTree + "/api/v4/projects/{id}/repository/blobs/{sha}/raw": + get: + description: Get raw blob contents from the repository + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: path + name: sha + description: The commit hash + type: string + required: true + example: 7d70e02340bac451f281cecf0a980907974bd8be + responses: + '200': + description: Get raw blob contents from the repository + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryBlobsShaRaw + "/api/v4/projects/{id}/repository/blobs/{sha}": + get: + description: Get a blob from the repository + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: path + name: sha + description: The commit hash + type: string + required: true + example: 7d70e02340bac451f281cecf0a980907974bd8be + responses: + '200': + description: Get a blob from the repository + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryBlobsSha + "/api/v4/projects/{id}/repository/archive": + get: + description: Get an archive of the repository + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: query + name: sha + description: The commit sha of the archive to be downloaded + type: string + required: false + example: 7d70e02340bac451f281cecf0a980907974bd8be + - in: query + name: format + description: The archive format + type: string + required: false + example: tar.gz + - in: query + name: path + description: Subfolder of the repository to be downloaded + type: string + required: false + example: files/archives + responses: + '200': + description: Get an archive of the repository + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryArchive + "/api/v4/projects/{id}/repository/compare": + get: + description: Compare two branches, tags, or commits + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: query + name: from + description: The commit, branch name, or tag name to start comparison + type: string + required: true + example: main + - in: query + name: to + description: The commit, branch name, or tag name to stop comparison + type: string + required: true + example: feature + - in: query + name: from_project_id + description: The project to compare from + type: integer + format: int32 + required: false + example: 1 + - in: query + name: straight + description: Comparison method, `true` for direct comparison between `from` + and `to` (`from`..`to`), `false` to compare using merge base (`from`...`to`) + type: boolean + default: false + required: false + - in: query + name: unidiff + description: A diff in a Unified diff format + type: boolean + default: false + required: false + responses: + '200': + description: Compare two branches, tags, or commits + schema: + "$ref": "#/definitions/API_Entities_Compare" + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryCompare + "/api/v4/projects/{id}/repository/contributors": + get: + description: Get repository contributors + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + - in: query + name: ref + description: The name of a repository branch or tag, if not given the default + branch is used + type: string + required: false + example: main + - in: query + name: order_by + description: Return contributors ordered by `name` or `email` or `commits` + type: string + default: commits + enum: + - email + - name + - commits + required: false + - in: query + name: sort + description: Sort by asc (ascending) or desc (descending) + type: string + default: asc + enum: + - asc + - desc + required: false + responses: + '200': + description: Get repository contributors + schema: + "$ref": "#/definitions/API_Entities_Contributor" + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryContributors + "/api/v4/projects/{id}/repository/merge_base": + get: + description: Get the common ancestor between commits + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: query + name: refs + description: The refs to find the common ancestor of, multiple refs can be + passed + type: array + items: + type: string + required: true + example: main + responses: + '200': + description: Get the common ancestor between commits + schema: + "$ref": "#/definitions/API_Entities_Commit" + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryMergeBase + "/api/v4/projects/{id}/repository/changelog": + get: + summary: Generates a changelog section for a release and returns it + description: This feature was introduced in GitLab 14.6 + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - in: query + name: version + description: The version of the release, using the semantic versioning format + type: string + required: true + example: 1.0.0 + - in: query + name: from + description: The first commit in the range of commits to use for the changelog + type: string + required: false + example: ed899a2f4b50b4370feeea94676502b42383c746 + - in: query + name: to + description: The last commit in the range of commits to use for the changelog + type: string + required: false + example: 6104942438c14ec7bd21c6cd5bd995272b3faff6 + - in: query + name: date + description: The date and time of the release + type: string + format: date-time + required: false + example: '2021-09-20T11:50:22.001+00:00' + - in: query + name: trailer + description: The Git trailer to use for determining if commits are to be included + in the changelog + type: string + default: Changelog + required: false + example: Changelog + - in: query + name: config_file + description: The file path to the configuration file as stored in the project's + Git repository. Defaults to '.gitlab/changelog_config.yml' + type: string + required: false + example: ".gitlab/changelog_config.yml" + responses: + '200': + description: Generates a changelog section for a release and returns it + schema: + "$ref": "#/definitions/API_Entities_Changelog" + tags: + - projects + operationId: getApiV4ProjectsIdRepositoryChangelog + post: + summary: Generates a changelog section for a release and commits it in a changelog + file + description: This feature was introduced in GitLab 13.9 + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + example: 1 + - name: postApiV4ProjectsIdRepositoryChangelog + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdRepositoryChangelog" + responses: + '200': + description: Generates a changelog section for a release and commits it + in a changelog file + tags: + - projects + operationId: postApiV4ProjectsIdRepositoryChangelog + "/api/v4/projects/{id}/access_tokens": + get: + summary: Get list of all access tokens for the specified resource + description: This feature was introduced in GitLab 13.9. + produces: + - application/json + parameters: + - in: path + name: id + description: ID or URL-encoded path of the project + type: string + required: true + - in: query + name: state + description: Filter tokens which are either active or inactive + type: string + enum: + - active + - inactive + required: false + example: active + responses: + '200': + description: Get list of all access tokens for the specified resource + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ResourceAccessToken" + tags: + - project_access_tokens + operationId: getApiV4ProjectsIdAccessTokens + post: + summary: Create a resource access token + description: This feature was introduced in GitLab 13.9. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + example: 2 + - name: postApiV4ProjectsIdAccessTokens + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdAccessTokens" + responses: + '201': + description: Create a resource access token + schema: + "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" + tags: + - project_access_tokens + operationId: postApiV4ProjectsIdAccessTokens + "/api/v4/projects/{id}/access_tokens/{token_id}": + get: + summary: Get an access token for the specified resource by ID + description: This feature was introduced in GitLab 14.10. + produces: + - application/json + parameters: + - in: path + name: id + description: ID or URL-encoded path of the project + type: string + required: true + - in: path + name: token_id + description: The ID of the token + type: string + required: true + responses: + '200': + description: Get an access token for the specified resource by ID + schema: + "$ref": "#/definitions/API_Entities_ResourceAccessToken" + tags: + - project_access_tokens + operationId: getApiV4ProjectsIdAccessTokensTokenId + delete: + summary: Revoke a resource access token + description: This feature was introduced in GitLab 13.9. + produces: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: token_id + description: The ID of the token + type: string + required: true + responses: + '204': + description: Revoke a resource access token + '400': + description: Bad Request + '404': + description: Not found + tags: + - project_access_tokens + operationId: deleteApiV4ProjectsIdAccessTokensTokenId + "/api/v4/projects/{id}/access_tokens/{token_id}/rotate": + post: + summary: Rotate a resource access token + description: This feature was introduced in GitLab 16.0. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The project ID + type: string + required: true + - in: path + name: token_id + description: The ID of the token + type: string + required: true + - name: postApiV4ProjectsIdAccessTokensTokenIdRotate + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdAccessTokensTokenIdRotate" + responses: + '201': + description: Rotate a resource access token + schema: + "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken" + tags: + - project_access_tokens + operationId: postApiV4ProjectsIdAccessTokensTokenIdRotate + "/api/v4/projects/{id}/issues/{eventable_id}/resource_milestone_events": + get: + summary: List project Issue milestone events + description: Gets a list of all milestone events for a single Issue + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: eventable_id + description: The ID of the eventable + type: integer + format: int32 + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List project Issue milestone events + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" + tags: + - resource_milestone_events + operationId: getApiV4ProjectsIdIssuesEventableIdResourceMilestoneEvents + "/api/v4/projects/{id}/issues/{eventable_id}/resource_milestone_events/{event_id}": + get: + summary: Get single Issue milestone event + description: Returns a single milestone event for a specific project Issue + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: event_id + description: The ID of a resource milestone event + type: string + required: true + - in: path + name: eventable_id + description: The ID of the eventable + type: integer + format: int32 + required: true + responses: + '200': + description: Get single Issue milestone event + schema: + "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" + '404': + description: Not found + tags: + - resource_milestone_events + operationId: getApiV4ProjectsIdIssuesEventableIdResourceMilestoneEventsEventId + "/api/v4/projects/{id}/merge_requests/{eventable_id}/resource_milestone_events": + get: + summary: List project Merge request milestone events + description: Gets a list of all milestone events for a single Merge request + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: eventable_id + description: The ID of the eventable + type: integer + format: int32 + required: true + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: List project Merge request milestone events + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" + tags: + - resource_milestone_events + operationId: getApiV4ProjectsIdMergeRequestsEventableIdResourceMilestoneEvents + "/api/v4/projects/{id}/merge_requests/{eventable_id}/resource_milestone_events/{event_id}": + get: + summary: Get single Merge request milestone event + description: Returns a single milestone event for a specific project Merge request + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: event_id + description: The ID of a resource milestone event + type: string + required: true + - in: path + name: eventable_id + description: The ID of the eventable + type: integer + format: int32 + required: true + responses: + '200': + description: Get single Merge request milestone event + schema: + "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent" + '404': + description: Not found + tags: + - resource_milestone_events + operationId: getApiV4ProjectsIdMergeRequestsEventableIdResourceMilestoneEventsEventId "/api/v4/projects/{id}/packages/rpm/repodata/*file_name": get: summary: Download repository metadata files @@ -30146,6 +31224,233 @@ paths: tags: - rubygem_packages operationId: getApiV4ProjectsIdPackagesRubygemsApiV1Dependencies + "/api/v4/projects/{id}/repository/submodules/{submodule}": + put: + description: Update existing submodule reference in repository + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of a project + type: string + required: true + example: gitlab-org/gitlab + - in: path + name: submodule + description: Url encoded full path to submodule. + type: string + required: true + example: gitlab-org/gitlab-shell + - name: putApiV4ProjectsIdRepositorySubmodulesSubmodule + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdRepositorySubmodulesSubmodule" + responses: + '200': + description: Update existing submodule reference in repository + schema: + "$ref": "#/definitions/API_Entities_CommitDetail" + '404': + description: 404 Project Not Found + '401': + description: 401 Unauthorized + '400': + description: The repository is empty + tags: + - projects + operationId: putApiV4ProjectsIdRepositorySubmodulesSubmodule + "/api/v4/projects/{id}/repository/tags": + get: + description: Get a project repository tags + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: query + name: sort + description: Return tags sorted in updated by `asc` or `desc` order. + type: string + default: desc + enum: + - asc + - desc + required: false + - in: query + name: order_by + description: Return tags ordered by `name`, `updated`, `version` fields. + type: string + default: updated + enum: + - name + - updated + - version + required: false + - in: query + name: search + description: Return list of tags matching the search criteria + type: string + required: false + - in: query + name: page_token + description: Name of tag to start the paginaition from + type: string + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Get a project repository tags + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_Tag" + '403': + description: Unauthenticated + '404': + description: Not found + '422': + description: Unprocessable entity + '503': + description: Service unavailable + tags: + - tags + operationId: getApiV4ProjectsIdRepositoryTags + post: + description: Create a new repository tag + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - name: postApiV4ProjectsIdRepositoryTags + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdRepositoryTags" + responses: + '201': + description: Create a new repository tag + schema: + "$ref": "#/definitions/API_Entities_Tag" + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - tags + operationId: postApiV4ProjectsIdRepositoryTags + "/api/v4/projects/{id}/repository/tags/{tag_name}": + get: + description: Get a single repository tag + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: tag_name + description: The name of the tag + type: string + required: true + responses: + '200': + description: Get a single repository tag + schema: + "$ref": "#/definitions/API_Entities_Tag" + '403': + description: Unauthenticated + '404': + description: Not found + tags: + - tags + operationId: getApiV4ProjectsIdRepositoryTagsTagName + delete: + description: Delete a repository tag + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: tag_name + description: The name of the tag + type: string + required: true + responses: + '204': + description: Delete a repository tag + '400': + description: Bad request + '403': + description: Unauthenticated + '404': + description: Not found + '412': + description: Precondition failed + tags: + - tags + operationId: deleteApiV4ProjectsIdRepositoryTagsTagName + "/api/v4/projects/{id}/repository/tags/{tag_name}/signature": + get: + description: Get a tag's signature + produces: + - application/json + parameters: + - in: path + name: id + description: The ID or URL-encoded path of the project + type: string + required: true + - in: path + name: tag_name + description: The name of the tag + type: string + required: true + responses: + '200': + description: Get a tag's signature + schema: + "$ref": "#/definitions/API_Entities_TagSignature" + '404': + description: Not found + tags: + - tags + operationId: getApiV4ProjectsIdRepositoryTagsTagNameSignature "/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}": get: summary: Download the latest version of a module @@ -30561,55 +31866,147 @@ paths: tags: - terraform_state operationId: deleteApiV4ProjectsIdTerraformStateNameVersionsSerial - "/api/v4/projects/{id}/hooks/{hook_id}/url_variables/{key}": - put: - description: Set a url variable + "/api/v4/projects/{id}/wikis": + get: + description: Get a list of wiki pages + produces: + - application/json + parameters: + - in: query + name: with_content + description: Include pages' content + type: boolean + default: false + required: false + - in: path + name: id + type: integer + format: int32 + required: true + responses: + '200': + description: Get a list of wiki pages + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_WikiPageBasic" + '404': + description: Not found + tags: + - wikis + operationId: getApiV4ProjectsIdWikis + post: + description: Create a wiki page produces: - application/json consumes: - application/json parameters: - in: path - name: hook_id - description: The ID of the hook + name: id type: integer format: int32 required: true + - name: postApiV4ProjectsIdWikis + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdWikis" + responses: + '201': + description: Create a wiki page + schema: + "$ref": "#/definitions/API_Entities_WikiPage" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - wikis + operationId: postApiV4ProjectsIdWikis + "/api/v4/projects/{id}/wikis/{slug}": + get: + description: Get a wiki page + produces: + - application/json + parameters: - in: path - name: key - description: The key of the variable + name: slug + description: The slug of a wiki page type: string required: true + - in: query + name: version + description: The version hash of a wiki page + type: string + required: false + - in: query + name: render_html + description: Render content to HTML + type: boolean + default: false + required: false - in: path name: id type: integer format: int32 required: true - - name: putApiV4ProjectsIdHooksHookIdUrlVariablesKey - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4ProjectsIdHooksHookIdUrlVariablesKey" responses: '200': - description: Set a url variable + description: Get a wiki page + schema: + "$ref": "#/definitions/API_Entities_WikiPage" + '404': + description: Not found tags: - - projects - operationId: putApiV4ProjectsIdHooksHookIdUrlVariablesKey - delete: - description: Un-Set a url variable + - wikis + operationId: getApiV4ProjectsIdWikisSlug + put: + description: Update a wiki page produces: - application/json + consumes: + - application/json parameters: - in: path - name: hook_id - description: The ID of the hook + name: id type: integer format: int32 required: true - in: path - name: key - description: The key of the variable + name: slug + type: integer + format: int32 + required: true + - name: putApiV4ProjectsIdWikisSlug + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4ProjectsIdWikisSlug" + responses: + '200': + description: Update a wiki page + schema: + "$ref": "#/definitions/API_Entities_WikiPage" + '400': + description: Validation error + '404': + description: Not found + '422': + description: Unprocessable entity + tags: + - wikis + operationId: putApiV4ProjectsIdWikisSlug + delete: + description: Delete a wiki page + produces: + - application/json + parameters: + - in: path + name: slug + description: The slug of a wiki page type: string required: true - in: path @@ -30619,10 +32016,43 @@ paths: required: true responses: '204': - description: Un-Set a url variable + description: Delete a wiki page + '400': + description: Validation error + '404': + description: Not found tags: - - projects - operationId: deleteApiV4ProjectsIdHooksHookIdUrlVariablesKey + - wikis + operationId: deleteApiV4ProjectsIdWikisSlug + "/api/v4/projects/{id}/wikis/attachments": + post: + summary: Upload an attachment to the wiki repository + description: This feature was introduced in GitLab 11.3. + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: id + type: integer + format: int32 + required: true + - name: postApiV4ProjectsIdWikisAttachments + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4ProjectsIdWikisAttachments" + responses: + '201': + description: Upload an attachment to the wiki repository + schema: + "$ref": "#/definitions/API_Entities_WikiAttachment" + '404': + description: Not found + tags: + - wikis + operationId: postApiV4ProjectsIdWikisAttachments "/api/v4/admin/batched_background_migrations/{id}": get: description: Retrieve a batched background migration @@ -30637,7 +32067,7 @@ paths: enum: - main - ci - - main_clusterwide + - sec - embedding - geo required: false @@ -30661,38 +32091,6 @@ paths: tags: - batched_background_migrations operationId: getApiV4AdminBatchedBackgroundMigrationsId - "/api/v4/admin/batched_background_migrations": - get: - description: Get the list of batched background migrations - produces: - - application/json - parameters: - - in: query - name: database - description: The name of the database, the default `main` - type: string - default: main - enum: - - main - - ci - - main_clusterwide - - embedding - - geo - required: false - responses: - '200': - description: Get the list of batched background migrations - schema: - type: array - items: - "$ref": "#/definitions/API_Entities_BatchedBackgroundMigration" - '401': - description: 401 Unauthorized - '403': - description: 403 Forbidden - tags: - - batched_background_migrations - operationId: getApiV4AdminBatchedBackgroundMigrations "/api/v4/admin/batched_background_migrations/{id}/resume": put: description: Resume a batched background migration @@ -30763,6 +32161,38 @@ paths: tags: - batched_background_migrations operationId: putApiV4AdminBatchedBackgroundMigrationsIdPause + "/api/v4/admin/batched_background_migrations": + get: + description: Get the list of batched background migrations + produces: + - application/json + parameters: + - in: query + name: database + description: The name of the database, the default `main` + type: string + default: main + enum: + - main + - ci + - sec + - embedding + - geo + required: false + responses: + '200': + description: Get the list of batched background migrations + schema: + type: array + items: + "$ref": "#/definitions/API_Entities_BatchedBackgroundMigration" + '401': + description: 401 Unauthorized + '403': + description: 403 Forbidden + tags: + - batched_background_migrations + operationId: getApiV4AdminBatchedBackgroundMigrations "/api/v4/admin/ci/variables": get: description: List all instance-level variables @@ -30874,12 +32304,8 @@ paths: type: string required: true responses: - '404': - description: Instance Variable Not Found '204': - description: Delete an existing instance-level variable - schema: - "$ref": "#/definitions/API_Entities_Ci_Variable" + description: Instance Variable Not Found tags: - ci_variables operationId: deleteApiV4AdminCiVariablesKey @@ -31377,6 +32803,14 @@ paths: required: false items: type: boolean + - in: formData + name: entities[migrate_memberships] + description: The option to migrate memberships or not + type: array + default: true + required: false + items: + type: boolean responses: '200': description: Start a new GitLab Migration @@ -32138,6 +33572,28 @@ paths: tags: - runners operationId: deleteApiV4RunnersId + "/api/v4/runners/{id}/managers": + get: + description: Get a list of all runner's managers + produces: + - application/json + parameters: + - in: path + name: id + description: The ID of a runner + type: integer + format: int32 + required: true + responses: + '200': + description: Get a list of all runner's managers + schema: + "$ref": "#/definitions/API_Entities_Ci_RunnerManager" + '403': + description: Forbidden + tags: + - runners + operationId: getApiV4RunnersIdManagers "/api/v4/runners/{id}/jobs": get: summary: List runner's jobs @@ -33621,37 +35077,6 @@ paths: tags: - npm_packages operationId: deleteApiV4PackagesNpmPackage*packageNameDistTagsTag - "/api/v4/packages/npm/*package_name": - get: - summary: NPM registry metadata endpoint - description: This feature was introduced in GitLab 11.8 - produces: - - application/json - parameters: - - in: query - name: package_name - description: Package name - type: string - required: true - example: mypackage - responses: - '200': - description: Ok - schema: - "$ref": "#/definitions/API_Entities_NpmPackage" - '302': - description: Found (redirect) - '400': - description: Bad Request - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - npm_packages - operationId: getApiV4PackagesNpm*packageName "/api/v4/packages/npm/-/npm/v1/security/advisories/bulk": post: summary: NPM registry bulk advisory endpoint @@ -33696,6 +35121,37 @@ paths: tags: - npm_packages operationId: postApiV4PackagesNpmNpmV1SecurityAuditsQuick + "/api/v4/packages/npm/*package_name": + get: + summary: NPM registry metadata endpoint + description: This feature was introduced in GitLab 11.8 + produces: + - application/json + parameters: + - in: query + name: package_name + description: Package name + type: string + required: true + example: mypackage + responses: + '200': + description: Ok + schema: + "$ref": "#/definitions/API_Entities_NpmPackage" + '302': + description: Found (redirect) + '400': + description: Bad Request + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - npm_packages + operationId: getApiV4PackagesNpm*packageName "/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/versions": get: summary: List versions for a module @@ -34154,6 +35610,7 @@ paths: - updated_at - last_activity_at - similarity + - star_count - storage_size - repository_size - wiki_size @@ -34330,6 +35787,12 @@ paths: type: boolean default: false required: false + - in: query + name: marked_for_deletion_on + description: Date when the project was marked for deletion + type: string + format: date + required: false - in: query name: page description: Current page number @@ -34402,6 +35865,7 @@ paths: - updated_at - last_activity_at - similarity + - star_count - storage_size - repository_size - wiki_size @@ -34476,6 +35940,7 @@ paths: - updated_at - last_activity_at - similarity + - star_count - storage_size - repository_size - wiki_size @@ -34652,6 +36117,12 @@ paths: type: boolean default: false required: false + - in: query + name: marked_for_deletion_on + description: Date when the project was marked for deletion + type: string + format: date + required: false - in: query name: page description: Current page number @@ -34818,14 +36289,14 @@ paths: default: false required: false - in: query - name: external - description: Filters only external users + name: humans + description: Filters only human users type: boolean default: false required: false - in: query - name: exclude_external - description: Filters only non external users + name: external + description: Filters only external users type: boolean default: false required: false @@ -34853,12 +36324,6 @@ paths: type: boolean default: false required: false - - in: query - name: exclude_internal - description: Filters only non internal users - type: boolean - default: false - required: false - in: query name: without_project_bots description: Filters users without project bots @@ -34876,6 +36341,30 @@ paths: description: Filter users by Two-factor authentication. type: string required: false + - in: query + name: exclude_active + description: Filters only non active users + type: boolean + default: false + required: false + - in: query + name: exclude_external + description: Filters only non external users + type: boolean + default: false + required: false + - in: query + name: exclude_humans + description: Filters only non human users + type: boolean + default: false + required: false + - in: query + name: exclude_internal + description: Filters only non internal users + type: boolean + default: false + required: false - in: query name: order_by description: Return users ordered by a field @@ -36533,8 +38022,8 @@ paths: - in: query name: order_by description: Returns merge requests ordered by `created_at`, `label_priority`, - `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields. - Introduced in GitLab 14.8. + `milestone_due`, `popularity`, `priority`, `title`, `updated_at` or `merged_at` + fields. Introduced in GitLab 14.8. type: string default: created_at enum: @@ -36545,6 +38034,7 @@ paths: - priority - title - updated_at + - merged_at required: false - in: query name: sort @@ -36869,31 +38359,6 @@ paths: - namespaces operationId: getApiV4NamespacesId "/api/v4/namespaces/{id}/gitlab_subscription": - post: - description: Create a subscription for the namespace - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: postApiV4NamespacesIdGitlabSubscription - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4NamespacesIdGitlabSubscription" - responses: - '201': - description: Create a subscription for the namespace - schema: - "$ref": "#/definitions/API_Entities_GitlabSubscription" - tags: - - namespaces - operationId: postApiV4NamespacesIdGitlabSubscription get: description: Returns the subscription for the namespace produces: @@ -36912,31 +38377,6 @@ paths: tags: - namespaces operationId: getApiV4NamespacesIdGitlabSubscription - put: - description: Update the subscription for the namespace - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: id - type: integer - format: int32 - required: true - - name: putApiV4NamespacesIdGitlabSubscription - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4NamespacesIdGitlabSubscription" - responses: - '200': - description: Update the subscription for the namespace - schema: - "$ref": "#/definitions/API_Entities_GitlabSubscription" - tags: - - namespaces - operationId: putApiV4NamespacesIdGitlabSubscription "/api/v4/namespaces/{id}/storage/limit_exclusion": post: summary: Creates a storage limit exclusion for a Namespace @@ -37122,6 +38562,31 @@ paths: tags: - namespaces operationId: getApiV4NamespacesIdExists + "/api/v4/organizations": + post: + summary: Create an organization + description: |- + This feature was introduced in GitLab 17.5. \ + This feature is currently in an experimental state. \ + This feature is behind the `allow_organization_creation` feature flag. + produces: + - application/json + consumes: + - application/json + parameters: + - name: postApiV4Organizations + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4Organizations" + responses: + '201': + description: Create an organization + schema: + "$ref": "#/definitions/API_Entities_Organizations_Organization" + tags: + - organizations + operationId: postApiV4Organizations "/api/v4/pages/domains": get: description: Get all pages domains @@ -37184,6 +38649,54 @@ paths: tags: - personal_access_tokens operationId: deleteApiV4PersonalAccessTokensSelf + "/api/v4/personal_access_tokens/self/associations": + get: + summary: Return personal access token associations + description: Get groups and projects this personal access token can access by + passing it to the API in a header + produces: + - application/json + parameters: + - in: query + name: min_access_level + description: Limit by minimum access level of authenticated user + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + required: false + - in: query + name: page + description: Current page number + type: integer + format: int32 + default: 1 + required: false + example: 1 + - in: query + name: per_page + description: Number of items per page + type: integer + format: int32 + default: 20 + required: false + example: 20 + responses: + '200': + description: Return personal access token associations + schema: + "$ref": "#/definitions/API_Entities_PersonalAccessToken" + '401': + description: Unauthorized + '404': + description: Not found + tags: + - personal_access_tokens + operationId: getApiV4PersonalAccessTokensSelfAssociations "/api/v4/personal_access_tokens/self/rotate": post: summary: Rotate a personal access token @@ -37988,6 +39501,110 @@ paths: tags: - suggestions operationId: putApiV4SuggestionsBatchApply + "/api/v4/hooks/{hook_id}/url_variables/{key}": + put: + description: Set a url variable + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the variable + type: string + required: true + - name: putApiV4HooksHookIdUrlVariablesKey + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4HooksHookIdUrlVariablesKey" + responses: + '200': + description: Set a url variable + tags: + - hooks + operationId: putApiV4HooksHookIdUrlVariablesKey + delete: + description: Un-Set a url variable + produces: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the variable + type: string + required: true + responses: + '204': + description: Un-Set a url variable + tags: + - hooks + operationId: deleteApiV4HooksHookIdUrlVariablesKey + "/api/v4/hooks/{hook_id}/custom_headers/{key}": + put: + description: Set a custom header + produces: + - application/json + consumes: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the custom header + type: string + required: true + - name: putApiV4HooksHookIdCustomHeadersKey + in: body + required: true + schema: + "$ref": "#/definitions/putApiV4HooksHookIdCustomHeadersKey" + responses: + '200': + description: Set a custom header + tags: + - hooks + operationId: putApiV4HooksHookIdCustomHeadersKey + delete: + description: Un-Set a custom header + produces: + - application/json + parameters: + - in: path + name: hook_id + description: The ID of the hook + type: integer + format: int32 + required: true + - in: path + name: key + description: The key of the custom header + type: string + required: true + responses: + '204': + description: Un-Set a custom header + tags: + - hooks + operationId: deleteApiV4HooksHookIdCustomHeadersKey "/api/v4/hooks": get: summary: List system hooks @@ -38144,58 +39761,6 @@ paths: tags: - system_hooks operationId: deleteApiV4HooksHookId - "/api/v4/hooks/{hook_id}/url_variables/{key}": - put: - description: Set a url variable - produces: - - application/json - consumes: - - application/json - parameters: - - in: path - name: hook_id - description: The ID of the hook - type: integer - format: int32 - required: true - - in: path - name: key - description: The key of the variable - type: string - required: true - - name: putApiV4HooksHookIdUrlVariablesKey - in: body - required: true - schema: - "$ref": "#/definitions/putApiV4HooksHookIdUrlVariablesKey" - responses: - '200': - description: Set a url variable - tags: - - hooks - operationId: putApiV4HooksHookIdUrlVariablesKey - delete: - description: Un-Set a url variable - produces: - - application/json - parameters: - - in: path - name: hook_id - description: The ID of the hook - type: integer - format: int32 - required: true - - in: path - name: key - description: The key of the variable - type: string - required: true - responses: - '204': - description: Un-Set a url variable - tags: - - hooks - operationId: deleteApiV4HooksHookIdUrlVariablesKey "/api/v4/feature_flags/unleash/{project_id}": get: produces: @@ -38325,7 +39890,7 @@ paths: "/api/v4/usage_data/service_ping": get: summary: Get the latest ServicePing payload - description: Introduces in Gitlab 16.9. Requires Personal Access Token with + description: Introduces in Gitlab 16.9. Requires personal access token with read_service_ping scope. produces: - application/json @@ -38358,8 +39923,8 @@ paths: responses: '200': description: Track usage data event - '403': - description: Invalid CSRF token is provided + '401': + description: Unauthorized '404': description: Not found tags: @@ -38381,8 +39946,8 @@ paths: responses: '200': description: Track usage data event for the current user - '403': - description: Invalid CSRF token is provided + '401': + description: Unauthorized '404': description: Not found tags: @@ -38405,24 +39970,56 @@ paths: responses: '200': description: Track gitlab internal events - '403': - description: Invalid CSRF token is provided + '401': + description: Unauthorized '404': description: Not found tags: - usage_data operationId: postApiV4UsageDataTrackEvent + "/api/v4/usage_data/track_events": + post: + summary: Track multiple gitlab internal events + description: This feature was introduced in GitLab 17.3. + produces: + - application/json + consumes: + - application/json + parameters: + - name: postApiV4UsageDataTrackEvents + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4UsageDataTrackEvents" + responses: + '200': + description: Track multiple gitlab internal events + '400': + description: Validation error + '401': + description: Unauthorized + tags: + - usage_data + operationId: postApiV4UsageDataTrackEvents "/api/v4/usage_data/metric_definitions": get: summary: Get a list of all metric definitions description: This feature was introduced in GitLab 13.11. produces: - application/yaml + parameters: + - in: query + name: include_paths + description: Include file paths in the metric definitions + type: boolean + default: false + required: false + example: true responses: '200': description: Get a list of all metric definitions - '403': - description: Invalid CSRF token is provided + '401': + description: Unauthorized '404': description: Not found tags: @@ -38840,7 +40437,7 @@ paths: description: Date string in the format YEAR-MONTH-DAY type: string format: date-time - default: '2023-11-23T21:13:09.055Z' + default: '2024-05-22T14:26:34.528Z' required: false - in: query name: page @@ -38941,6 +40538,30 @@ paths: tags: - user operationId: putApiV4UserAvatar + "/api/v4/user/personal_access_tokens": + post: + summary: Create a personal access token with limited scopes for the currently + authenticated user + description: This feature was introduced in GitLab 16.5 + produces: + - application/json + consumes: + - application/json + parameters: + - name: postApiV4UserPersonalAccessTokens + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4UserPersonalAccessTokens" + responses: + '201': + description: Create a personal access token with limited scopes for the + currently authenticated user + schema: + "$ref": "#/definitions/API_Entities_PersonalAccessTokenWithToken" + tags: + - user + operationId: postApiV4UserPersonalAccessTokens "/api/v4/user/runners": post: summary: Create a runner owned by currently authenticated user @@ -38968,30 +40589,6 @@ paths: - user - runners operationId: postApiV4UserRunners - "/api/v4/user/personal_access_tokens": - post: - summary: Create a personal access token with limited scopes for the currently - authenticated user - description: This feature was introduced in GitLab 16.5 - produces: - - application/json - consumes: - - application/json - parameters: - - name: postApiV4UserPersonalAccessTokens - in: body - required: true - schema: - "$ref": "#/definitions/postApiV4UserPersonalAccessTokens" - responses: - '201': - description: Create a personal access token with limited scopes for the - currently authenticated user - schema: - "$ref": "#/definitions/API_Entities_PersonalAccessTokenWithToken" - tags: - - user - operationId: postApiV4UserPersonalAccessTokens "/api/v4/user_counts": get: summary: Return the user specific counts @@ -39241,6 +40838,34 @@ paths: tags: - deploy_keys operationId: getApiV4DeployKeys + post: + summary: Create a deploy key + description: Create a deploy key for the GitLab instance. This endpoint requires + administrator access. + produces: + - application/json + consumes: + - application/json + parameters: + - name: postApiV4DeployKeys + in: body + required: true + schema: + "$ref": "#/definitions/postApiV4DeployKeys" + responses: + '201': + description: Create a deploy key + schema: + "$ref": "#/definitions/API_Entities_DeployKey" + '400': + description: Bad request + '401': + description: Unauthorized + '403': + description: Forbidden + tags: + - deploy_keys + operationId: postApiV4DeployKeys "/api/v4/deploy_tokens": get: summary: List all deploy tokens @@ -39494,23 +41119,6 @@ paths: tags: - metadata operationId: getApiV4Version - "/api/v4/web_commits/public_key": - get: - summary: Get the GitLab public key for signing web commits. - description: This feature was introduced in GitLab 17.4. - tags: - - web_commits - produces: - - application/json - responses: - '200': - description: Get the GitLab public key for signing web commits. - schema: - "$ref": "#/definitions/API_Entities_Web_Commits" - '503': - description: Service unavailable - '404': - description: Not found "/api/v4/topics": get: summary: Get topics @@ -39529,6 +41137,13 @@ paths: description: Return list of topics without assigned projects type: boolean required: false + - in: query + name: organization_id + description: The organization id for the topics + type: integer + format: int32 + default: {} + required: false - in: query name: page description: Current page number @@ -39662,6 +41277,23 @@ paths: tags: - topics operationId: postApiV4TopicsMerge + "/api/v4/web_commits/public_key": + get: + summary: Get the public key for web commits + description: This feature was introduced in GitLab 17.4. + produces: + - application/json + responses: + '200': + description: Get the public key for web commits + '503': + description: The git server, Gitaly, is not available at this time. Please + contact your administrator. + '404': + description: Public key not found. + tags: + - web_commits + operationId: getApiV4WebCommitsPublicKey definitions: API_Entities_AccessRequester: type: object @@ -39870,6 +41502,8 @@ definitions: type: string uploads_size: type: string + root_storage_statistics: + "$ref": "#/definitions/API_Entities_Namespace_RootStorageStatistics" ldap_cn: type: string ldap_access: @@ -39891,6 +41525,57 @@ definitions: lock_duo_features_enabled: type: string description: API_Entities_Group model + API_Entities_Namespace_RootStorageStatistics: + type: object + properties: + build_artifacts_size: + type: integer + format: int32 + description: CI artifacts size in bytes. + container_registry_size: + type: integer + format: int32 + description: Container Registry size in bytes. + container_registry_size_is_estimated: + type: boolean + description: Indicates whether the deduplicated Container Registry size for + the namespace is an estimated value or not. + dependency_proxy_size: + type: integer + format: int32 + description: Dependency Proxy sizes in bytes. + lfs_objects_size: + type: integer + format: int32 + description: LFS objects size in bytes. + packages_size: + type: integer + format: int32 + description: Packages size in bytes. + pipeline_artifacts_size: + type: integer + format: int32 + description: CI pipeline artifacts size in bytes. + repository_size: + type: integer + format: int32 + description: Git repository size in bytes. + snippets_size: + type: integer + format: int32 + description: Snippets size in bytes. + storage_size: + type: integer + format: int32 + description: Total storage in bytes. + uploads_size: + type: integer + format: int32 + description: Uploads size in bytes. + wiki_size: + type: integer + format: int32 + description: Wiki size in bytes. EE_API_Entities_LdapGroupLink: type: object properties: @@ -39907,6 +41592,10 @@ definitions: filter: type: string example: id >= 500 + member_role_id: + type: integer + format: int32 + example: 12 EE_API_Entities_SamlGroupLink: type: object properties: @@ -39969,6 +41658,7 @@ definitions: - noone - maintainer - developer + - administrator auto_devops_enabled: type: boolean description: Default to Auto DevOps pipeline for all projects within this @@ -40028,6 +41718,8 @@ definitions: enum: - 30 - 40 + - 60 + - 0 required: - access_level allow_force_push: @@ -40046,6 +41738,8 @@ definitions: enum: - 30 - 40 + - 60 + - 0 required: - access_level code_owner_approval_required: @@ -40082,7 +41776,7 @@ definitions: shared_runners_minutes_limit: type: integer format: int32 - description: "(admin-only) Compute minutes quota for this group" + description: "(admin-only) compute minutes quota for this group" extra_shared_runners_minutes_limit: type: integer format: int32 @@ -40094,6 +41788,16 @@ definitions: - disabled - private - enabled + duo_availability: + type: string + description: Duo availability. One of `default_on`, `default_off` or `never_on` + enum: + - default_on + - default_off + - never_on + experiment_features_enabled: + type: boolean + description: Enable experiment features for this group required: - name - path @@ -40137,6 +41841,7 @@ definitions: - noone - maintainer - developer + - administrator auto_devops_enabled: type: boolean description: Default to Auto DevOps pipeline for all projects within this @@ -40196,6 +41901,8 @@ definitions: enum: - 30 - 40 + - 60 + - 0 required: - access_level allow_force_push: @@ -40214,6 +41921,8 @@ definitions: enum: - 30 - 40 + - 60 + - 0 required: - access_level code_owner_approval_required: @@ -40250,7 +41959,7 @@ definitions: shared_runners_minutes_limit: type: integer format: int32 - description: "(admin-only) Compute minutes quota for this group" + description: "(admin-only) compute minutes quota for this group" extra_shared_runners_minutes_limit: type: integer format: int32 @@ -40262,6 +41971,16 @@ definitions: - disabled - private - enabled + duo_availability: + type: string + description: Duo availability. One of `default_on`, `default_off` or `never_on` + enum: + - default_on + - default_off + - never_on + experiment_features_enabled: + type: boolean + description: Enable experiment features for this group prevent_sharing_groups_outside_hierarchy: type: boolean description: Prevent sharing groups within this namespace with any groups @@ -40309,6 +42028,9 @@ definitions: ip_restriction_ranges: type: string description: List of IP addresses which need to be restricted for group + allowed_email_domains_list: + type: string + description: List of allowed email domains for group service_access_tokens_expiration_enforced: type: boolean description: To enforce token expiration for Service accounts users for group @@ -40404,6 +42126,8 @@ definitions: type: string uploads_size: type: string + root_storage_statistics: + "$ref": "#/definitions/API_Entities_Namespace_RootStorageStatistics" ldap_cn: type: string ldap_access: @@ -40448,6 +42172,8 @@ definitions: type: string ip_restriction_ranges: type: string + allowed_email_domains_list: + type: string unique_project_download_limit: type: string unique_project_download_limit_interval_in_seconds: @@ -40492,12 +42218,12 @@ definitions: type: array items: type: string - example: tag + example: tag topics: type: array items: type: string - example: topic + example: topic ssh_url_to_repo: type: string example: git@gitlab.example.com:gitlab/gitlab.git @@ -40537,6 +42263,8 @@ definitions: repository_storage: type: string example: default + forked_from_project: + "$ref": "#/definitions/API_Entities_BasicProjectDetails" container_registry_image_prefix: type: string example: registry.gitlab.example.com/gitlab/gitlab-client @@ -40670,8 +42398,6 @@ definitions: type: integer format: int32 example: 1 - forked_from_project: - "$ref": "#/definitions/API_Entities_BasicProjectDetails" mr_default_target_self: type: boolean import_url: @@ -40710,6 +42436,10 @@ definitions: type: boolean ci_allow_fork_pipelines_to_run_in_parent_project: type: boolean + ci_id_token_sub_claim_components: + type: array + items: + type: string build_git_strategy: type: string example: fetch @@ -40740,6 +42470,8 @@ definitions: auto_devops_deploy_strategy: type: string example: continuous + ci_push_repository_for_job_token_allowed: + type: boolean ci_config_path: type: string example: '' @@ -40811,6 +42543,8 @@ definitions: type: string security_and_compliance_enabled: type: string + pre_receive_secret_detection_enabled: + type: boolean compliance_frameworks: type: string issues_template: @@ -40878,6 +42612,85 @@ definitions: web_url: type: string example: https://example.com/group/my_project + API_Entities_BasicProjectDetails: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + description: + type: string + example: desc + name: + type: string + example: project1 + name_with_namespace: + type: string + example: John Doe / project1 + path: + type: string + example: project1 + path_with_namespace: + type: string + example: namespace1/project1 + created_at: + type: string + format: date-time + example: '2020-05-07T04:27:17.016Z' + default_branch: + type: string + example: main + tag_list: + type: array + items: + type: string + example: tag + topics: + type: array + items: + type: string + example: topic + ssh_url_to_repo: + type: string + example: git@gitlab.example.com:gitlab/gitlab.git + http_url_to_repo: + type: string + example: https://gitlab.example.com/gitlab/gitlab.git + web_url: + type: string + example: https://gitlab.example.com/gitlab/gitlab + readme_url: + type: string + example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md + forks_count: + type: integer + format: int32 + example: 1 + license_url: + type: string + example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE + license: + "$ref": "#/definitions/API_Entities_LicenseBasic" + avatar_url: + type: string + example: http://example.com/uploads/project/avatar/3/uploads/avatar.png + star_count: + type: integer + format: int32 + example: 1 + last_activity_at: + type: string + format: date-time + example: '2013-09-30T13:46:02Z' + namespace: + "$ref": "#/definitions/API_Entities_NamespaceBasic" + custom_attributes: + "$ref": "#/definitions/API_Entities_CustomAttribute" + repository_storage: + type: string + example: default + description: API_Entities_BasicProjectDetails model API_Entities_UserBasic: type: object properties: @@ -40927,85 +42740,6 @@ definitions: type: string next_run_at: type: string - API_Entities_BasicProjectDetails: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - description: - type: string - example: desc - name: - type: string - example: project1 - name_with_namespace: - type: string - example: John Doe / project1 - path: - type: string - example: project1 - path_with_namespace: - type: string - example: namespace1/project1 - created_at: - type: string - format: date-time - example: '2020-05-07T04:27:17.016Z' - default_branch: - type: string - example: main - tag_list: - type: array - items: - type: string - example: tag - topics: - type: array - items: - type: string - example: topic - ssh_url_to_repo: - type: string - example: git@gitlab.example.com:gitlab/gitlab.git - http_url_to_repo: - type: string - example: https://gitlab.example.com/gitlab/gitlab.git - web_url: - type: string - example: https://gitlab.example.com/gitlab/gitlab - readme_url: - type: string - example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md - forks_count: - type: integer - format: int32 - example: 1 - license_url: - type: string - example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE - license: - "$ref": "#/definitions/API_Entities_LicenseBasic" - avatar_url: - type: string - example: http://example.com/uploads/project/avatar/3/uploads/avatar.png - star_count: - type: integer - format: int32 - example: 1 - last_activity_at: - type: string - format: date-time - example: '2013-09-30T13:46:02Z' - namespace: - "$ref": "#/definitions/API_Entities_NamespaceBasic" - custom_attributes: - "$ref": "#/definitions/API_Entities_CustomAttribute" - repository_storage: - type: string - example: default - description: API_Entities_BasicProjectDetails model API_Entities_ProjectStatistics: type: object properties: @@ -41038,9 +42772,9 @@ definitions: type: integer format: int32 description: The ID of the target group to which the group needs to be transferred - to.If not provided, the source group will be promoted to a root group. + to.If not provided, the source group will be promoted to a top-level group. description: Transfer a group to a new parent group or promote a subgroup to a - root group + top-level group postApiV4GroupsIdShare: type: object properties: @@ -41062,10 +42796,41 @@ definitions: type: string format: date description: Share expiration date + member_role_id: + type: integer + format: int32 + description: The ID of the Member Role to be assigned to the group required: - group_id - group_access description: Share a group with a group + postApiV4GroupsIdTokensRevoke: + type: object + properties: + token: + type: string + description: The token to revoke + required: + - token + description: Revoke a single token + EE_API_Entities_AuditEvent: + type: object + properties: + id: + type: string + author_id: + type: string + entity_id: + type: string + entity_type: + type: string + event_name: + type: string + details: + type: string + created_at: + type: string + description: EE_API_Entities_AuditEvent model API_Entities_UserPublic: type: object properties: @@ -41261,11 +43026,11 @@ definitions: example: true runner_type: type: string - example: instance_type enum: - instance_type - group_type - project_type + example: instance_type name: type: string example: test @@ -41328,6 +43093,7 @@ definitions: - write_registry - read_package_registry - write_package_registry + - read_virtual_registry expires_at: type: string format: date-time @@ -41668,6 +43434,136 @@ definitions: type: string example: registry.dev/namespace1/project1/test_image_1:latest description: API_Entities_ContainerRegistry_Tag model + postApiV4GroupsIdDebianDistributions: + type: object + properties: + codename: + type: string + description: The Debian Codename + example: sid + suite: + type: string + description: The Debian Suite + example: unstable + origin: + type: string + description: The Debian Origin + example: Grep + label: + type: string + description: The Debian Label + example: grep.be + version: + type: string + description: The Debian Version + example: '12' + description: + type: string + description: The Debian Description + example: My description + valid_time_duration_seconds: + type: integer + format: int32 + description: The duration before the Release file should be considered expired + by the client + example: 604800 + components: + type: array + description: The list of Components + example: main + items: + type: string + architectures: + type: array + description: The list of Architectures + example: amd64 + items: + type: string + required: + - codename + description: Create a Debian Distribution + API_Entities_Packages_Debian_Distribution: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + codename: + type: string + example: sid + suite: + type: string + example: unstable + origin: + type: string + example: Grep + label: + type: string + example: grep.be + version: + type: string + example: '12' + description: + type: string + example: My description + valid_time_duration_seconds: + type: integer + format: int32 + example: 604800 + components: + type: array + items: + type: string + example: main + architectures: + type: array + items: + type: string + example: amd64 + description: API_Entities_Packages_Debian_Distribution model + putApiV4GroupsIdDebianDistributionsCodename: + type: object + properties: + suite: + type: string + description: The Debian Suite + example: unstable + origin: + type: string + description: The Debian Origin + example: Grep + label: + type: string + description: The Debian Label + example: grep.be + version: + type: string + description: The Debian Version + example: '12' + description: + type: string + description: The Debian Description + example: My description + valid_time_duration_seconds: + type: integer + format: int32 + description: The duration before the Release file should be considered expired + by the client + example: 604800 + components: + type: array + description: The list of Components + example: main + items: + type: string + architectures: + type: array + description: The list of Architectures + example: amd64 + items: + type: string + description: Update a Debian Distribution postApiV4GroupsIdExportRelations: type: object properties: @@ -41683,11 +43579,11 @@ definitions: example: issues status: type: string - example: started enum: - started - finished - failed + example: started error: type: string example: Error message @@ -41714,11 +43610,11 @@ definitions: properties: status: type: string - example: started enum: - started - finished - failed + example: started batch_number: type: integer format: int32 @@ -41967,6 +43863,10 @@ definitions: type: string description: Source that triggered the member creation process default: invitations-api + member_role_id: + type: integer + format: int32 + description: The ID of a member role for the invited user required: - access_level description: Invite non-members by email address to a group or project. @@ -42005,7 +43905,38 @@ definitions: type: string format: date-time description: Date string in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`) + member_role_id: + type: integer + format: int32 + description: The ID of a member role for the invited user description: Updates a group or project invitation. + API_Entities_MarkdownUploadAdmin: + type: object + properties: + id: + type: string + size: + type: string + filename: + type: string + created_at: + type: string + uploaded_by: + "$ref": "#/definitions/API_Entities_UserSafe" + description: API_Entities_MarkdownUploadAdmin model + API_Entities_UserSafe: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + username: + type: string + example: admin + name: + type: string + example: Administrator API_Entities_Member: type: object properties: @@ -42078,7 +44009,6 @@ definitions: base_access_level: type: integer format: int32 - example: 40 enum: - 10 - 20 @@ -42086,16 +44016,23 @@ definitions: - 40 - 50 - 5 + example: 40 admin_cicd_variables: type: boolean admin_compliance_framework: type: boolean admin_group_member: type: boolean + admin_integrations: + type: boolean admin_merge_request: type: boolean + admin_protected_branch: + type: boolean admin_push_rules: type: boolean + admin_runners: + type: boolean admin_terraform_state: type: boolean admin_vulnerability: @@ -42114,10 +44051,16 @@ definitions: type: boolean manage_security_policy_link: type: boolean + read_admin_dashboard: + type: boolean read_code: type: boolean + read_crm_contact: + type: boolean read_dependency: type: boolean + read_runners: + type: boolean read_vulnerability: type: boolean remove_group: @@ -42292,6 +44235,8 @@ definitions: type: string detailed_merge_status: type: string + merge_after: + type: string sha: type: string merge_commit_sha: @@ -42390,624 +44335,6 @@ definitions: type: string example: 1h description: API_Entities_IssuableTimeStats model - API_Entities_Release: - type: object - properties: - name: - type: string - example: Release v1.0 - tag_name: - type: string - example: v1.0 - description: - type: string - example: Finally released v1.0 - created_at: - type: string - format: date-time - example: '2019-01-03T01:56:19.539Z' - released_at: - type: string - format: date-time - example: '2019-01-03T01:56:19.539Z' - upcoming_release: - type: boolean - description_html: - type: string - author: - "$ref": "#/definitions/API_Entities_UserBasic" - commit: - "$ref": "#/definitions/API_Entities_Commit" - milestones: - "$ref": "#/definitions/API_Entities_MilestoneWithStats" - commit_path: - type: string - example: "/root/app/commit/588440f66559714280628a4f9799f0c4eb880a4a" - tag_path: - type: string - example: "/root/app/-/tags/v1.0" - assets: - type: object - properties: - count: - type: integer - format: int32 - example: 2 - sources: - "$ref": "#/definitions/API_Entities_Releases_Source" - links: - "$ref": "#/definitions/API_Entities_Releases_Link" - evidences: - "$ref": "#/definitions/API_Entities_Releases_Evidence" - _links: - type: object - properties: - closed_issues_url: - type: string - closed_merge_requests_url: - type: string - edit_url: - type: string - merged_merge_requests_url: - type: string - opened_issues_url: - type: string - opened_merge_requests_url: - type: string - self: - type: string - description: API_Entities_Release model - API_Entities_Commit: - type: object - properties: - id: - type: string - example: 2695effb5807a22ff3d138d593fd856244e155e7 - short_id: - type: string - example: 2695effb - created_at: - type: string - format: date-time - example: '2017-07-26T11:08:53.000+02:00' - parent_ids: - type: array - items: - type: string - example: 2a4b78934375d7f53875269ffd4f45fd83a84ebe - title: - type: string - example: Initial commit - message: - type: string - example: Initial commit - author_name: - type: string - example: John Smith - author_email: - type: string - example: john@example.com - authored_date: - type: string - format: date-time - example: '2012-05-28T04:42:42-07:00' - committer_name: - type: string - example: Jack Smith - committer_email: - type: string - example: jack@example.com - committed_date: - type: string - format: date-time - example: '2012-05-28T04:42:42-07:00' - trailers: - type: object - example: '{ "Merged-By": "Jane Doe janedoe@gitlab.com" }' - extended_trailers: - type: object - example: '{ "Signed-off-by": ["John Doe ", "Jane Doe "] - }' - web_url: - type: string - example: https://gitlab.example.com/janedoe/gitlab-foss/-/commit/ed899a2f4b50b4370feeea94676502b42383c746 - description: API_Entities_Commit model - API_Entities_MilestoneWithStats: - type: object - properties: - id: - type: string - iid: - type: string - project_id: - type: string - group_id: - type: string - title: - type: string - description: - type: string - state: - type: string - created_at: - type: string - updated_at: - type: string - due_date: - type: string - start_date: - type: string - expired: - type: string - web_url: - type: string - issue_stats: - type: object - properties: - total: - type: string - closed: - type: string - API_Entities_Releases_Source: - type: object - properties: - format: - type: string - example: zip - url: - type: string - example: https://gitlab.example.com/root/app/-/archive/v1.0/app-v1.0.zip - API_Entities_Releases_Link: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - name: - type: string - example: app-v1.0.dmg - url: - type: string - example: https://gitlab.example.com/root/app/-/jobs/688/artifacts/raw/bin/app-v1.0.dmg - direct_asset_url: - type: string - example: https://gitlab.example.com/root/app/-/releases/v1.0/downloads/app-v1.0.dmg - link_type: - type: string - example: other - description: API_Entities_Releases_Link model - API_Entities_Releases_Evidence: - type: object - properties: - sha: - type: string - example: 760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d - filepath: - type: string - example: https://gitlab.example.com/root/app/-/releases/v1.0/evidence.json - collected_at: - type: string - format: date-time - example: '2019-01-03T01:56:19.539Z' - API_Entities_ResourceAccessToken: - type: object - properties: - id: - type: integer - format: int32 - example: 2 - name: - type: string - example: John Doe - revoked: - type: boolean - created_at: - type: string - format: date-time - scopes: - type: array - example: - - api - user_id: - type: integer - format: int32 - example: 3 - last_used_at: - type: string - format: date-time - example: '2020-08-31T15:53:00.073Z' - active: - type: boolean - expires_at: - type: string - format: date-time - example: '2020-08-31T15:53:00.073Z' - access_level: - type: integer - format: int32 - example: 40 - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - description: API_Entities_ResourceAccessToken model - postApiV4GroupsIdAccessTokens: - type: object - properties: - name: - type: string - description: Resource access token name - example: test - scopes: - type: array - description: The permissions of the token - example: - - api - - read_repository - items: - type: string - enum: - - api - - read_api - - create_runner - - k8s_proxy - - read_repository - - write_repository - - read_observability - - write_observability - - ai_features - expires_at: - type: string - format: date - description: The expiration date of the token - default: '2025-05-23T21:13:09.000Z' - example: "\"2021-01-31" - access_level: - type: integer - format: int32 - description: The access level of the token in the group - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - default: 40 - example: 40 - required: - - name - - scopes - - expires_at - description: Create a resource access token - API_Entities_ResourceAccessTokenWithToken: - type: object - properties: - id: - type: integer - format: int32 - example: 2 - name: - type: string - example: John Doe - revoked: - type: boolean - created_at: - type: string - format: date-time - scopes: - type: array - example: - - api - user_id: - type: integer - format: int32 - example: 3 - last_used_at: - type: string - format: date-time - example: '2020-08-31T15:53:00.073Z' - active: - type: boolean - expires_at: - type: string - format: date-time - example: '2020-08-31T15:53:00.073Z' - access_level: - type: integer - format: int32 - example: 40 - enum: - - 10 - - 20 - - 30 - - 40 - - 50 - token: - type: string - description: API_Entities_ResourceAccessTokenWithToken model - postApiV4GroupsIdAccessTokensTokenIdRotate: - type: object - properties: - expires_at: - type: string - format: date - description: The expiration date of the token - example: '2021-01-31' - description: Rotate a resource access token - API_Entities_WikiPageBasic: - type: object - properties: - format: - type: string - example: markdown - slug: - type: string - example: deploy - title: - type: string - example: deploy - description: API_Entities_WikiPageBasic model - API_Entities_WikiPage: - type: object - properties: - format: - type: string - example: markdown - slug: - type: string - example: deploy - title: - type: string - example: deploy - content: - type: string - example: Here is an instruction how to deploy this project. - encoding: - type: string - example: UTF-8 - front_matter: - type: object - example: - title: deploy - description: API_Entities_WikiPage model - postApiV4GroupsIdWikis: - type: object - properties: - title: - type: string - description: Title of a wiki page - front_matter: - type: object - properties: - title: - type: string - description: Front matter title of a wiki page - content: - type: string - description: Content of a wiki page - format: - type: string - description: Format of a wiki page. Available formats are markdown, rdoc, - asciidoc and org - enum: - - markdown - - rdoc - - asciidoc - - org - default: markdown - required: - - title - - content - description: Create a wiki page - putApiV4GroupsIdWikisSlug: - type: object - properties: - title: - type: string - description: Title of a wiki page - front_matter: - type: object - properties: - title: - type: string - description: Front matter title of a wiki page - content: - type: string - description: Content of a wiki page - format: - type: string - description: Format of a wiki page. Available formats are markdown, rdoc, - asciidoc and org - enum: - - markdown - - rdoc - - asciidoc - - org - default: markdown - description: Update a wiki page - postApiV4GroupsIdWikisAttachments: - type: object - properties: - file: - type: file - description: The attachment file to be uploaded - branch: - type: string - description: The name of the branch - required: - - file - description: Upload an attachment to the wiki repository - API_Entities_WikiAttachment: - type: object - properties: - file_name: - type: string - example: dk.png - file_path: - type: string - example: uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png - branch: - type: string - example: main - link: - type: object - properties: - url: - type: string - example: uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png - markdown: - type: string - example: "![dk](uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png)" - description: API_Entities_WikiAttachment model - EE_API_Entities_AuditEvent: - type: object - properties: - id: - type: string - author_id: - type: string - entity_id: - type: string - entity_type: - type: string - details: - type: string - created_at: - type: string - description: EE_API_Entities_AuditEvent model - postApiV4GroupsIdDebianDistributions: - type: object - properties: - codename: - type: string - description: The Debian Codename - example: sid - suite: - type: string - description: The Debian Suite - example: unstable - origin: - type: string - description: The Debian Origin - example: Grep - label: - type: string - description: The Debian Label - example: grep.be - version: - type: string - description: The Debian Version - example: '12' - description: - type: string - description: The Debian Description - example: My description - valid_time_duration_seconds: - type: integer - format: int32 - description: The duration before the Release file should be considered expired - by the client - example: 604800 - components: - type: array - description: The list of Components - example: main - items: - type: string - architectures: - type: array - description: The list of Architectures - example: amd64 - items: - type: string - required: - - codename - description: Create a Debian Distribution - API_Entities_Packages_Debian_Distribution: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - codename: - type: string - example: sid - suite: - type: string - example: unstable - origin: - type: string - example: Grep - label: - type: string - example: grep.be - version: - type: string - example: '12' - description: - type: string - example: My description - valid_time_duration_seconds: - type: integer - format: int32 - example: 604800 - components: - type: array - items: - type: string - example: main - architectures: - type: array - items: - type: string - example: amd64 - description: API_Entities_Packages_Debian_Distribution model - putApiV4GroupsIdDebianDistributionsCodename: - type: object - properties: - suite: - type: string - description: The Debian Suite - example: unstable - origin: - type: string - description: The Debian Origin - example: Grep - label: - type: string - description: The Debian Label - example: grep.be - version: - type: string - description: The Debian Version - example: '12' - description: - type: string - description: The Debian Description - example: My description - valid_time_duration_seconds: - type: integer - format: int32 - description: The duration before the Release file should be considered expired - by the client - example: 604800 - components: - type: array - description: The list of Components - example: main - items: - type: string - architectures: - type: array - description: The list of Architectures - example: amd64 - items: - type: string - description: Update a Debian Distribution API_Entities_NpmPackageTag: type: object properties: @@ -43054,9 +44381,9 @@ definitions: type: array items: type: object - example: '{ "@id": "https://gitlab.com/api/v4/projects/1/packages/nuget/query", - "@type": "SearchQueryService", "comment": "Filter and search for packages - by keyword."}' + example: '{ "@id": "https://gitlab.com/api/v4/projects/1/packages/nuget/query", + "@type": "SearchQueryService", "comment": "Filter and search for packages + by keyword."}' description: API_Entities_Nuget_ServiceIndex model API_Entities_Nuget_PackagesMetadata: type: object @@ -43245,6 +44572,479 @@ definitions: type: integer format: int32 example: 1 + API_Entities_Release: + type: object + properties: + name: + type: string + example: Release v1.0 + tag_name: + type: string + example: v1.0 + description: + type: string + example: Finally released v1.0 + created_at: + type: string + format: date-time + example: '2019-01-03T01:56:19.539Z' + released_at: + type: string + format: date-time + example: '2019-01-03T01:56:19.539Z' + upcoming_release: + type: boolean + description_html: + type: string + author: + "$ref": "#/definitions/API_Entities_UserBasic" + commit: + "$ref": "#/definitions/API_Entities_Commit" + milestones: + "$ref": "#/definitions/API_Entities_MilestoneWithStats" + commit_path: + type: string + example: "/root/app/commit/588440f66559714280628a4f9799f0c4eb880a4a" + tag_path: + type: string + example: "/root/app/-/tags/v1.0" + assets: + type: object + properties: + count: + type: integer + format: int32 + example: 2 + sources: + "$ref": "#/definitions/API_Entities_Releases_Source" + links: + "$ref": "#/definitions/API_Entities_Releases_Link" + evidences: + "$ref": "#/definitions/API_Entities_Releases_Evidence" + _links: + type: object + properties: + closed_issues_url: + type: string + closed_merge_requests_url: + type: string + edit_url: + type: string + merged_merge_requests_url: + type: string + opened_issues_url: + type: string + opened_merge_requests_url: + type: string + self: + type: string + description: API_Entities_Release model + API_Entities_Commit: + type: object + properties: + id: + type: string + example: 2695effb5807a22ff3d138d593fd856244e155e7 + short_id: + type: string + example: 2695effb + created_at: + type: string + format: date-time + example: '2017-07-26T11:08:53.000+02:00' + parent_ids: + type: array + items: + type: string + example: 2a4b78934375d7f53875269ffd4f45fd83a84ebe + title: + type: string + example: Initial commit + message: + type: string + example: Initial commit + author_name: + type: string + example: John Smith + author_email: + type: string + example: john@example.com + authored_date: + type: string + format: date-time + example: '2012-05-28T04:42:42-07:00' + committer_name: + type: string + example: Jack Smith + committer_email: + type: string + example: jack@example.com + committed_date: + type: string + format: date-time + example: '2012-05-28T04:42:42-07:00' + trailers: + type: object + example: '{ "Merged-By": "Jane Doe janedoe@gitlab.com" }' + extended_trailers: + type: object + example: '{ "Signed-off-by": ["John Doe ", "Jane Doe "] + }' + web_url: + type: string + example: https://gitlab.example.com/janedoe/gitlab-foss/-/commit/ed899a2f4b50b4370feeea94676502b42383c746 + description: API_Entities_Commit model + API_Entities_MilestoneWithStats: + type: object + properties: + id: + type: string + iid: + type: string + project_id: + type: string + group_id: + type: string + title: + type: string + description: + type: string + state: + type: string + created_at: + type: string + updated_at: + type: string + due_date: + type: string + start_date: + type: string + expired: + type: string + web_url: + type: string + issue_stats: + type: object + properties: + total: + type: string + closed: + type: string + API_Entities_Releases_Source: + type: object + properties: + format: + type: string + example: zip + url: + type: string + example: https://gitlab.example.com/root/app/-/archive/v1.0/app-v1.0.zip + API_Entities_Releases_Link: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + name: + type: string + example: app-v1.0.dmg + url: + type: string + example: https://gitlab.example.com/root/app/-/jobs/688/artifacts/raw/bin/app-v1.0.dmg + direct_asset_url: + type: string + example: https://gitlab.example.com/root/app/-/releases/v1.0/downloads/app-v1.0.dmg + link_type: + type: string + example: other + description: API_Entities_Releases_Link model + API_Entities_Releases_Evidence: + type: object + properties: + sha: + type: string + example: 760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d + filepath: + type: string + example: https://gitlab.example.com/root/app/-/releases/v1.0/evidence.json + collected_at: + type: string + format: date-time + example: '2019-01-03T01:56:19.539Z' + API_Entities_ResourceAccessToken: + type: object + properties: + id: + type: integer + format: int32 + example: 2 + name: + type: string + example: John Doe + revoked: + type: boolean + created_at: + type: string + format: date-time + scopes: + type: array + example: + - api + user_id: + type: integer + format: int32 + example: 3 + last_used_at: + type: string + format: date-time + example: '2020-08-31T15:53:00.073Z' + active: + type: boolean + expires_at: + type: string + format: date-time + example: '2020-08-31T15:53:00.073Z' + access_level: + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + example: 40 + description: API_Entities_ResourceAccessToken model + postApiV4GroupsIdAccessTokens: + type: object + properties: + name: + type: string + description: Resource access token name + example: test + scopes: + type: array + description: The permissions of the token + example: + - api + - read_repository + items: + type: string + enum: + - api + - read_api + - create_runner + - manage_runner + - k8s_proxy + - read_repository + - write_repository + - read_observability + - write_observability + - ai_features + expires_at: + type: string + format: date + description: The expiration date of the token + default: '2025-11-22T14:26:34.482Z' + example: "\"2021-01-31" + access_level: + type: integer + format: int32 + description: The access level of the token in the group + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + default: 40 + example: 40 + required: + - name + - scopes + - expires_at + description: Create a resource access token + API_Entities_ResourceAccessTokenWithToken: + type: object + properties: + id: + type: integer + format: int32 + example: 2 + name: + type: string + example: John Doe + revoked: + type: boolean + created_at: + type: string + format: date-time + scopes: + type: array + example: + - api + user_id: + type: integer + format: int32 + example: 3 + last_used_at: + type: string + format: date-time + example: '2020-08-31T15:53:00.073Z' + active: + type: boolean + expires_at: + type: string + format: date-time + example: '2020-08-31T15:53:00.073Z' + access_level: + type: integer + format: int32 + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + example: 40 + token: + type: string + description: API_Entities_ResourceAccessTokenWithToken model + postApiV4GroupsIdAccessTokensTokenIdRotate: + type: object + properties: + expires_at: + type: string + format: date + description: The expiration date of the token + example: '2021-01-31' + description: Rotate a resource access token + API_Entities_WikiPageBasic: + type: object + properties: + format: + type: string + example: markdown + slug: + type: string + example: deploy + title: + type: string + example: deploy + description: API_Entities_WikiPageBasic model + API_Entities_WikiPage: + type: object + properties: + format: + type: string + example: markdown + slug: + type: string + example: deploy + title: + type: string + example: deploy + content: + type: string + example: Here is an instruction how to deploy this project. + encoding: + type: string + example: UTF-8 + front_matter: + type: object + example: + title: deploy + description: API_Entities_WikiPage model + postApiV4GroupsIdWikis: + type: object + properties: + title: + type: string + description: Title of a wiki page + front_matter: + type: object + properties: + title: + type: string + description: Front matter title of a wiki page + content: + type: string + description: Content of a wiki page + format: + type: string + description: Format of a wiki page. Available formats are markdown, rdoc, + asciidoc and org + enum: + - markdown + - rdoc + - asciidoc + - org + default: markdown + required: + - title + - content + description: Create a wiki page + putApiV4GroupsIdWikisSlug: + type: object + properties: + title: + type: string + description: Title of a wiki page + front_matter: + type: object + properties: + title: + type: string + description: Front matter title of a wiki page + content: + type: string + description: Content of a wiki page + format: + type: string + description: Format of a wiki page. Available formats are markdown, rdoc, + asciidoc and org + enum: + - markdown + - rdoc + - asciidoc + - org + default: markdown + description: Update a wiki page + postApiV4GroupsIdWikisAttachments: + type: object + properties: + file: + type: file + description: The attachment file to be uploaded + branch: + type: string + description: The name of the branch + required: + - file + description: Upload an attachment to the wiki repository + API_Entities_WikiAttachment: + type: object + properties: + file_name: + type: string + example: dk.png + file_path: + type: string + example: uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png + branch: + type: string + example: main + link: + type: object + properties: + url: + type: string + example: uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png + markdown: + type: string + example: "![dk](uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png)" + description: API_Entities_WikiAttachment model putApiV4ProjectsIdAccessRequestsUserIdApprove: type: object properties: @@ -43254,6 +45054,30 @@ definitions: description: 'A valid access level (defaults: `30`, the Developer role)' default: 30 description: Approves an access request for the given user. + API_Entities_MetricImage: + type: object + properties: + id: + type: integer + format: int32 + example: 23 + created_at: + type: string + format: date-time + example: '2020-11-13T00:06:18.084Z' + filename: + type: string + example: file.png + file_path: + type: string + example: "/uploads/-/system/alert_metric_image/file/23/file.png" + url: + type: string + example: https://example.com/metric + url_text: + type: string + example: An example metric + description: API_Entities_MetricImage model postApiV4ProjectsIdBadges: type: object properties: @@ -43336,6 +45160,26 @@ definitions: - branch - ref description: Create branch + postApiV4ProjectsIdCatalogPublish: + type: object + properties: + version: + type: string + description: The version of the catalog resource / tag of the release to publish + metadata: + type: object + description: The metadata for the release + required: + - version + - metadata + description: Publish a new component project release as version to the CI/CD catalog + API_Entities_Ci_Catalog_Resources_Version: + type: object + properties: + catalog_url: + type: string + example: https://gitlab.example.com/explore/catalog/my-namespace/my-component-project + description: API_Entities_Ci_Catalog_Resources_Version model API_Entities_Ci_Job: type: object properties: @@ -43428,9 +45272,9 @@ definitions: type: array items: type: string - example: - - ubuntu18 - - docker runner + example: + - ubuntu18 + - docker runner description: API_Entities_Ci_Job model API_Entities_User: type: object @@ -43554,7 +45398,6 @@ definitions: properties: file_type: type: string - example: archive enum: - archive - metadata @@ -43587,6 +45430,8 @@ definitions: - requirements_v2 - annotations - repository_xray + - jacoco + example: archive size: type: integer format: int32 @@ -43596,11 +45441,11 @@ definitions: example: artifacts.zip file_format: type: string - example: zip enum: - raw - zip - gzip + example: zip API_Entities_Ci_RunnerManager: type: object properties: @@ -43635,6 +45480,7 @@ definitions: status: type: string example: online + description: API_Entities_Ci_RunnerManager model postApiV4ProjectsIdJobsJobIdPlay: type: object properties: @@ -44295,8 +46141,8 @@ definitions: items: type: integer format: int32 - example: - - 66004 + example: + - 66004 putApiV4ProjectsIdPipelinesPipelineIdMetadata: type: object properties: @@ -44610,6 +46456,78 @@ definitions: type: string description: The description of the variable description: Update an existing variable from a project + API_Entities_Clusters_AgentTokenBasic: + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + agent_id: + type: string + status: + type: string + created_at: + type: string + created_by_user_id: + type: string + description: API_Entities_Clusters_AgentTokenBasic model + API_Entities_Clusters_AgentToken: + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + agent_id: + type: string + status: + type: string + created_at: + type: string + created_by_user_id: + type: string + last_used_at: + type: string + description: API_Entities_Clusters_AgentToken model + postApiV4ProjectsIdClusterAgentsAgentIdTokens: + type: object + properties: + name: + type: string + description: The name for the token + description: + type: string + description: The description for the token + required: + - name + description: Create an agent token + API_Entities_Clusters_AgentTokenWithToken: + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + agent_id: + type: string + status: + type: string + created_at: + type: string + created_by_user_id: + type: string + last_used_at: + type: string + token: + type: string + description: API_Entities_Clusters_AgentTokenWithToken model API_Entities_Clusters_Agent: type: object properties: @@ -44623,6 +46541,8 @@ definitions: type: string created_by_user_id: type: string + is_receptive: + type: string description: API_Entities_Clusters_Agent model postApiV4ProjectsIdClusterAgents: type: object @@ -44746,7 +46666,7 @@ definitions: type: array items: type: string - example: 2a4b78934375d7f53875269ffd4f45fd83a84ebe + example: 2a4b78934375d7f53875269ffd4f45fd83a84ebe title: type: string example: Initial commit @@ -45012,6 +46932,7 @@ definitions: - success - failed - canceled + - skipped example: pending ref: type: string @@ -45049,6 +46970,101 @@ definitions: required: - state description: Post status to a commit + postApiV4ProjectsIdPackagesComposer: + type: object + properties: + branch: + type: string + description: The name of the branch + example: release + tag: + type: string + description: The name of the tag + example: v1.0.0 + description: Composer packages endpoint for registering packages + API_Entities_ConanPackage_ConanPackageSnapshot: + type: object + properties: + package_snapshot: + type: object + example: '{ "conan_package.tgz": "749b29bdf72587081ca03ec033ee59dc" }' + description: API_Entities_ConanPackage_ConanPackageSnapshot model + API_Entities_ConanPackage_ConanRecipeSnapshot: + type: object + properties: + recipe_snapshot: + type: object + example: '{ "conan_sources.tgz": "eadf19b33f4c3c7e113faabf26e76277" }' + description: API_Entities_ConanPackage_ConanRecipeSnapshot model + API_Entities_ConanPackage_ConanPackageManifest: + type: object + properties: + package_urls: + type: object + example: '{ "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz"' + description: API_Entities_ConanPackage_ConanPackageManifest model + API_Entities_ConanPackage_ConanRecipeManifest: + type: object + properties: + recipe_urls: + type: object + example: '{ "conan_sources.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conan_sources.tgz" + }' + description: API_Entities_ConanPackage_ConanRecipeManifest model + API_Entities_ConanPackage_ConanUploadUrls: + type: object + properties: + upload_urls: + type: object + example: '{ "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz" + }' + description: API_Entities_ConanPackage_ConanUploadUrls model + putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName: + type: object + properties: + file: + type: file + description: The package file to be published (generated by Multipart middleware) + required: + - file + description: Upload recipe package files + ? putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName + : type: object + properties: + file: + type: file + description: The package file to be published (generated by Multipart middleware) + required: + - file + description: Upload package files + putApiV4ProjectsIdPackagesDebianFileName: + type: object + properties: + file: + type: file + description: The package file to be published (generated by Multipart middleware) + distribution: + type: string + description: The Debian Codename or Suite + component: + type: string + description: The Debian Component + required: + - file + - component + description: Upload Debian package + putApiV4ProjectsIdPackagesDebianFileNameAuthorize: + type: object + properties: + distribution: + type: string + description: The Debian Codename or Suite + component: + type: string + description: The Debian Component + required: + - component + description: Authorize Debian package upload API_Entities_DeployKeysProject: type: object properties: @@ -45169,6 +47185,7 @@ definitions: - write_registry - read_package_registry - write_package_registry + - read_virtual_registry expires_at: type: string format: date-time @@ -45478,6 +47495,7 @@ definitions: enum: - text - image + - file new_path: type: string description: File path after change @@ -45574,6 +47592,7 @@ definitions: enum: - text - image + - file new_path: type: string description: File path after change @@ -45682,6 +47701,15 @@ definitions: type: string format: date-time example: '2019-05-25T18:55:13.252Z' + cluster_agent: + "$ref": "#/definitions/API_Entities_Clusters_Agent" + kubernetes_namespace: + type: string + flux_resource_path: + type: string + description: + type: string + example: description description: API_Entities_Environment model postApiV4ProjectsIdEnvironments: type: object @@ -45702,6 +47730,19 @@ definitions: - testing - development - other + cluster_agent_id: + type: integer + format: int32 + description: The ID of the Cluster Agent to associate with this environment + kubernetes_namespace: + type: string + description: The Kubernetes namespace to associate with this environment + flux_resource_path: + type: string + description: The Flux resource path to associate with this environment + description: + type: string + description: The description of the environment required: - name description: Create a new environment @@ -45721,6 +47762,19 @@ definitions: - testing - development - other + cluster_agent_id: + type: integer + format: int32 + description: The ID of the Cluster Agent to associate with this environment + kubernetes_namespace: + type: string + description: The Kubernetes namespace to associate with this environment + flux_resource_path: + type: string + description: The Flux resource path to associate with this environment + description: + type: string + description: The description of the environment description: Update an existing environment postApiV4ProjectsIdEnvironmentsEnvironmentIdStop: type: object @@ -45741,6 +47795,22 @@ definitions: required: - before description: Stop stale environments + API_Entities_ErrorTracking_ClientKey: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + active: + type: boolean + public_key: + type: string + example: glet_aa77551d849c083f76d0bc545ed053a3 + sentry_dsn: + type: string + example: https://glet_aa77551d849c083f76d0bc545ed053a3@example.com/errortracking/api/v1/projects/5 + description: API_Entities_ErrorTracking_ClientKey model API_Entities_ErrorTracking_ProjectSetting: type: object properties: @@ -45787,6 +47857,236 @@ definitions: - integrated description: Update Error Tracking project settings. Available in GitLab 15.10 and later. + API_Entities_FeatureFlag: + type: object + properties: + name: + type: string + example: merge_train + description: + type: string + example: merge train feature flag + active: + type: boolean + version: + type: string + example: new_version_flag + created_at: + type: string + format: date-time + example: '2019-11-04T08:13:51.423Z' + updated_at: + type: string + format: date-time + example: '2019-11-04T08:13:51.423Z' + scopes: + type: string + strategies: + "$ref": "#/definitions/API_Entities_FeatureFlag_Strategy" + description: API_Entities_FeatureFlag model + API_Entities_FeatureFlag_Strategy: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + name: + type: string + example: userWithId + parameters: + type: string + example: '{"userIds": "user1"}' + scopes: + "$ref": "#/definitions/API_Entities_FeatureFlag_Scope" + user_list: + "$ref": "#/definitions/API_Entities_FeatureFlag_BasicUserList" + API_Entities_FeatureFlag_Scope: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + environment_scope: + type: string + example: production + API_Entities_FeatureFlag_BasicUserList: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + iid: + type: integer + format: int32 + example: 1 + name: + type: string + example: user_list + user_xids: + type: string + example: user1,user2 + postApiV4ProjectsIdFeatureFlags: + type: object + properties: + name: + type: string + description: The name of the feature flag + description: + type: string + description: The description of the feature flag + active: + type: boolean + description: The active state of the flag. Defaults to `true`. Supported in + GitLab 13.3 and later + version: + type: string + description: The version of the feature flag. Must be `new_version_flag`. + Omit to create a Legacy feature flag. + strategies: + type: array + items: + type: object + properties: + name: + type: string + description: The strategy name. Can be `default`, `gradualRolloutUserId`, + `userWithId`, or `gitlabUserList`. In GitLab 13.5 and later, can be + `flexibleRollout` + parameters: + type: string + description: The strategy parameters as a JSON-formatted string e.g. + `{"userIds":"user1"}` + user_list_id: + type: integer + format: int32 + description: The ID of the feature flag user list. If strategy is `gitlabUserList`. + scopes: + type: array + items: + type: object + properties: + environment_scope: + type: string + description: The environment scope of the scope + required: + - environment_scope + required: + - name + required: + - name + description: Create a new feature flag + putApiV4ProjectsIdFeatureFlagsFeatureFlagName: + type: object + properties: + name: + type: string + description: The new name of the feature flag. Supported in GitLab 13.3 and + later + description: + type: string + description: The description of the feature flag + active: + type: boolean + description: The active state of the flag. Supported in GitLab 13.3 and later + strategies: + type: array + items: + type: object + properties: + id: + type: integer + format: int32 + description: The feature flag strategy ID + name: + type: string + description: The strategy name + parameters: + type: string + description: The strategy parameters as a JSON-formatted string e.g. + `{"userIds":"user1"}` + user_list_id: + type: integer + format: int32 + description: The ID of the feature flag user list + _destroy: + type: boolean + description: Delete the strategy when true + scopes: + type: array + items: + type: object + properties: + id: + type: integer + format: int32 + description: The scope id + environment_scope: + type: string + description: The environment scope of the scope + _destroy: + type: boolean + description: Delete the scope when true + description: Update a feature flag + API_Entities_FeatureFlag_UserList: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + iid: + type: integer + format: int32 + example: 1 + name: + type: string + example: user_list + user_xids: + type: string + example: user1,user2 + project_id: + type: integer + format: int32 + example: 2 + created_at: + type: string + format: date-time + example: '2020-02-04T08:13:10.507Z' + updated_at: + type: string + format: date-time + example: '2020-02-04T08:13:10.507Z' + path: + type: string + edit_path: + type: string + description: API_Entities_FeatureFlag_UserList model + postApiV4ProjectsIdFeatureFlagsUserLists: + type: object + properties: + name: + type: string + description: The name of the list + user_xids: + type: string + description: A comma separated list of external user ids + required: + - name + - user_xids + description: Create a feature flag user list + putApiV4ProjectsIdFeatureFlagsUserListsIid: + type: object + properties: + name: + type: string + description: The name of the list + user_xids: + type: string + description: A comma separated list of external user ids + description: Update a feature flag user list postApiV4ProjectsIdRepositoryFilesFilePath: type: object properties: @@ -45935,6 +48235,70 @@ definitions: type: string description: The time zone for the cron fields description: Update a freeze period + putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileNameAuthorize: + type: object + properties: + package_version: + type: string + description: Package version + status: + type: string + description: Package status + enum: + - default + - hidden + path: + type: integer + format: int32 + required: + - package_version + - path + description: Workhorse authorize generic package file + putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileName: + type: object + properties: + package_version: + type: string + description: Package version + path: + type: string + description: File directory path + status: + type: string + description: Package status + enum: + - default + - hidden + file: + type: file + description: The package file to be published (generated by Multipart middleware) + select: + type: string + enum: + - package_file + required: + - package_version + - file + description: Upload package file + API_Entities_GoModuleVersion: + type: object + properties: + Version: + type: string + example: v1.0.0 + Time: + type: string + example: 1617822312 -0600 + description: API_Entities_GoModuleVersion model + postApiV4ProjectsIdPackagesHelmApiChannelCharts: + type: object + properties: + chart: + type: file + description: The chart file to be published (generated by Multipart middleware) + required: + - chart + description: Upload a chart API_Entities_ProjectIntegrationBasic: type: object properties: @@ -45989,6 +48353,8 @@ definitions: type: boolean comment_on_event_enabled: type: boolean + inherited: + type: boolean vulnerability_events: type: boolean description: API_Entities_ProjectIntegrationBasic model @@ -46010,6 +48376,10 @@ definitions: app_store_protected_refs: type: boolean description: Set variables on protected branches and tags only. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - app_store_issuer_id - app_store_key_id @@ -46030,6 +48400,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_key description: Create/Edit Asana integration @@ -46045,6 +48419,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Assembla integration @@ -46069,6 +48447,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - bamboo_url - build_key @@ -46090,6 +48472,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -46098,16 +48484,17 @@ definitions: putApiV4ProjectsIdServicesBuildkite: type: object properties: - token: - type: string - description: Buildkite project GitLab token project_url: type: string - description: The Buildkite pipeline URL + description: Pipeline URL (for example, `https://buildkite.com/example/pipeline`). + token: + type: string + description: Token you get after you create a Buildkite pipeline with a GitLab + repository. enable_ssl_verification: type: boolean - description: 'DEPRECATED: This parameter has no effect since SSL verification - will always be enabled' + description: 'DEPRECATED: This parameter has no effect because SSL verification + is always enabled.' push_events: type: boolean description: Trigger event for pushes to the repository. @@ -46117,9 +48504,13 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - - token - project_url + - token description: Create/Edit Buildkite integration putApiV4ProjectsIdServicesCampfire: type: object @@ -46137,6 +48528,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Campfire integration @@ -46146,6 +48541,10 @@ definitions: confluence_url: type: string description: URL of the Confluence Workspace hosted on `atlassian.net`. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - confluence_url description: Create/Edit Confluence integration @@ -46164,6 +48563,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -46172,38 +48575,43 @@ definitions: putApiV4ProjectsIdServicesDatadog: type: object properties: - api_key: - type: string - description: API key used for authentication with Datadog datadog_site: type: string - description: The Datadog site to send data to. To send data to the EU site, - use datadoghq.eu + description: Datadog site to send data to. To send data to the EU site, use + datadoghq.eu. api_url: type: string - description: "(Advanced) The full URL for your Datadog site" + description: Full URL of your Datadog site. + api_key: + type: string + description: API + key used for authentication with Datadog. archive_trace_events: type: boolean description: When enabled, job logs are collected by Datadog and displayed along with pipeline execution traces. datadog_service: type: string - description: Tag all data from this GitLab instance in Datadog. Useful when - managing several self-managed deployments + description: GitLab instance to tag all data from in Datadog. Can be used + when managing several self-managed deployments. datadog_env: type: string - description: For self-managed deployments, set the env tag for all the data - sent to Datadog + description: For self-managed deployments, `env` tag for all the data sent + to Datadog. datadog_tags: type: string - description: 'Custom tags in Datadog. Specify one tag per line in the format: - "key:value\nkey2:value2"' + description: Custom tags in Datadog. Specify one tag per line in the format + `key:value\nkey2:value2`. pipeline_events: type: boolean description: Trigger event when a pipeline status changes. build_events: type: boolean description: Trigger event when a build is created. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_key description: Create/Edit Datadog integration @@ -46219,6 +48627,10 @@ definitions: diffblue_access_token_secret: type: string description: Access token secret used by Diffblue Cover in pipelines. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - diffblue_license_key - diffblue_access_token_name @@ -46309,21 +48721,25 @@ definitions: deployment_events: type: boolean description: Trigger event when a deployment starts or finishes. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Discord integration putApiV4ProjectsIdServicesDroneCi: type: object properties: - token: - type: string - description: Drone CI token - drone_url: - type: string - description: Drone CI URL enable_ssl_verification: type: boolean - description: Enable SSL verification + description: Enable SSL verification. Defaults to `true` (enabled). + drone_url: + type: string + description: Drone CI URL (for example, `http://drone.example.com`). + token: + type: string + description: Drone CI token. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -46333,31 +48749,41 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - - token - drone_url + - token description: Create/Edit Drone Ci integration putApiV4ProjectsIdServicesEmailsOnPush: type: object properties: - recipients: - type: string - description: Comma-separated list of recipient email addresses - disable_diffs: - type: boolean - description: Disable code diffs send_from_committer_email: type: boolean description: Send from committer + disable_diffs: + type: boolean + description: Disable code diffs branches_to_be_notified: type: string - description: Branches for which notifications are to be sent + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. + recipients: + type: string + description: Emails separated by whitespace. push_events: type: boolean description: Trigger event for pushes to the repository. tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - recipients description: Create/Edit Emails On Push integration @@ -46367,6 +48793,10 @@ definitions: external_wiki_url: type: string description: URL of the external wiki. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - external_wiki_url description: Create/Edit External Wiki integration @@ -46471,6 +48901,10 @@ definitions: alert_events: type: boolean description: Trigger event when a new, unique alert is recorded. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. description: Create/Edit Gitlab Slack Application integration putApiV4ProjectsIdServicesGooglePlay: type: object @@ -46487,6 +48921,10 @@ definitions: google_play_protected_refs: type: boolean description: Set variables on protected branches and tags only. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - package_name - service_account_key_file_name @@ -46497,10 +48935,15 @@ definitions: properties: webhook: type: string - description: The Hangouts Chat webhook. e.g. https://chat.googleapis.com/v1/spaces… + description: The Hangouts Chat webhook (for example, `https://chat.googleapis.com/v1/spaces...`). + notify_only_broken_pipelines: + type: boolean + description: Send notifications for broken pipelines. branches_to_be_notified: type: string - description: Branches for which notifications are to be sent + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -46529,6 +48972,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Hangouts Chat integration @@ -46549,6 +48996,10 @@ definitions: password: type: string description: The password of the user. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url - project_name @@ -46577,27 +49028,31 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - recipients description: Create/Edit Irker integration putApiV4ProjectsIdServicesJenkins: type: object properties: - jenkins_url: - type: string - description: Jenkins root URL like https://jenkins.example.com enable_ssl_verification: type: boolean - description: Enable SSL verification + description: Enable SSL verification. Defaults to `true` (enabled). + jenkins_url: + type: string + description: URL of the Jenkins server. project_name: type: string - description: 'The URL-friendly project name. Example: my_project_name' + description: Name of the Jenkins project. username: type: string - description: A user with access to the Jenkins server, if applicable + description: Username of the Jenkins server. password: type: string - description: The password of the user + description: Password of the Jenkins server. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -46607,6 +49062,10 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - jenkins_url - project_name @@ -46669,16 +49128,106 @@ definitions: merge_requests_events: type: boolean description: Trigger event when a merge request is created, updated, or merged. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url - password description: Create/Edit Jira integration + putApiV4ProjectsIdServicesJiraCloudApp: + type: object + properties: + jira_cloud_app_service_ids: + type: string + description: Copy and paste your JSM Service ID here. Use comma (,) to separate + multiple IDs. + jira_cloud_app_enable_deployment_gating: + type: boolean + description: Enable to approve or reject blocked GitLab deployments from Jira + Service Management. + jira_cloud_app_deployment_gating_environments: + type: string + description: Enter the environment (production,staging,testing,development) + where you want to enable deployment gating. Use comma (,) to separate multiple + environments. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. + description: Create/Edit Jira Cloud App integration + putApiV4ProjectsIdServicesMatrix: + type: object + properties: + hostname: + type: string + description: Custom hostname of the Matrix server. The default value is `https://matrix.org`. + token: + type: string + description: The Matrix access token (for example, `syt-zyx57W2v1u123ew11`). + room: + type: string + description: Unique identifier for the target room (in the format `!qPKKM111FFKKsfoCVy:matrix.org`). + notify_only_broken_pipelines: + type: boolean + description: Send notifications for broken pipelines. + branches_to_be_notified: + type: string + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. + push_events: + type: boolean + description: Trigger event for pushes to the repository. + issues_events: + type: boolean + description: Trigger event when an issue is created, updated, or closed. + confidential_issues_events: + type: boolean + description: Trigger event when a confidential issue is created, updated, + or closed. + merge_requests_events: + type: boolean + description: Trigger event when a merge request is created, updated, or merged. + note_events: + type: boolean + description: Trigger event for new comments. + confidential_note_events: + type: boolean + description: Trigger event for new comments on confidential issues. + tag_push_events: + type: boolean + description: Trigger event for new tags pushed to the repository. + pipeline_events: + type: boolean + description: Trigger event when a pipeline status changes. + wiki_page_events: + type: boolean + description: Trigger event when a wiki page is created or updated. + incident_events: + type: boolean + description: Trigger event when an incident is created. + vulnerability_events: + type: boolean + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. + required: + - token + - room + description: Create/Edit Matrix integration putApiV4ProjectsIdServicesMattermostSlashCommands: type: object properties: token: type: string description: The Mattermost token. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Mattermost Slash Commands integration @@ -46688,6 +49237,10 @@ definitions: token: type: string description: The Slack token + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Slack Slash Commands integration @@ -46712,6 +49265,10 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - username - token @@ -46728,6 +49285,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -46750,6 +49311,10 @@ definitions: pipeline_events: type: boolean description: Trigger event when a pipeline status changes. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - recipients description: Create/Edit Pipelines Email integration @@ -46766,6 +49331,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Pivotaltracker integration @@ -46786,6 +49355,10 @@ definitions: type: string description: 'Contents of the credentials.json file of your service account, like: { "type": "service_account", "project_id": ... }' + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_url - google_iap_audience_client_id @@ -46825,6 +49398,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Pumble integration @@ -46849,6 +49426,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_key - user_key @@ -46871,6 +49452,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -46891,6 +49476,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -46908,6 +49497,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -46924,6 +49517,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -47035,6 +49632,10 @@ definitions: alert_events: type: boolean description: Trigger event when a new, unique alert is recorded. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Slack integration @@ -47078,6 +49679,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Microsoft Teams integration @@ -47185,6 +49790,10 @@ definitions: description: Trigger event when an incident is created. vulnerability_events: type: boolean + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Mattermost integration @@ -47212,6 +49821,10 @@ definitions: merge_requests_events: type: boolean description: Trigger event when a merge request is created, updated, or merged. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - teamcity_url - build_type @@ -47226,22 +49839,23 @@ definitions: description: Custom hostname of the Telegram API. The default value is `https://api.telegram.org`. token: type: string - description: The Telegram chat token. For example, 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 + description: The Telegram bot token (for example, `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`). room: type: string - description: Unique identifier for the target chat or username of the target - channel (in the format @channelusername) + description: Unique identifier for the target chat or the username of the + target channel (in the format `@channelusername`). thread: - type: integer - format: int32 - description: Unique identifier for the target message thread (topic in a forum - supergroup) - branches_to_be_notified: type: string - description: Branches for which notifications are to be sent. + description: Unique identifier for the target message thread (topic in a forum + supergroup). notify_only_broken_pipelines: type: boolean - description: Send notifications for broken pipelines + description: Send notifications for broken pipelines. + branches_to_be_notified: + type: string + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -47275,6 +49889,10 @@ definitions: description: Trigger event when an incident is created. vulnerability_events: type: boolean + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token - room @@ -47284,7 +49902,15 @@ definitions: properties: webhook: type: string - description: The Unify Circuit webhook. e.g. https://circuit.com/rest/v2/webhooks/incoming/… + description: The Unify Circuit webhook (for example, `https://circuit.com/rest/v2/webhooks/incoming/...`). + notify_only_broken_pipelines: + type: boolean + description: Send notifications for broken pipelines. + branches_to_be_notified: + type: string + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -47313,6 +49939,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Unify Circuit integration @@ -47358,6 +49988,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Webex Teams integration @@ -47378,6 +50012,10 @@ definitions: zentao_product_xid: type: string description: The product ID of ZenTao project + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url - api_token @@ -47399,6 +50037,10 @@ definitions: type: boolean description: Trigger event when a confidential issue is created, updated, or closed. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url description: Create/Edit Squash Tm integration @@ -47418,6 +50060,10 @@ definitions: pipeline_events: type: boolean description: Trigger event when a pipeline status changes. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token - repository_url @@ -47427,6 +50073,12 @@ definitions: properties: token: type: string + description: Personal access token to authenticate calls to the GitGuardian + API. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Git Guardian integration @@ -47435,10 +50087,17 @@ definitions: properties: artifact_registry_project_id: type: string + description: ID of the Google Cloud project. artifact_registry_repositories: type: string + description: Repository of Artifact Registry. artifact_registry_location: type: string + description: Location of the Artifact Registry repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - artifact_registry_project_id - artifact_registry_repositories @@ -47459,6 +50118,10 @@ definitions: workload_identity_pool_provider_id: type: string description: ID of the Workload Identity Pool provider. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - workload_identity_federation_project_id - workload_identity_federation_project_number @@ -47477,9 +50140,21 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - mock_service_url description: Create/Edit Mock Ci integration + putApiV4ProjectsIdServicesMockMonitoring: + type: object + properties: + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. + description: Create/Edit Mock Monitoring integration API_Entities_ProjectIntegration: type: object properties: @@ -47534,6 +50209,8 @@ definitions: type: boolean comment_on_event_enabled: type: boolean + inherited: + type: boolean vulnerability_events: type: boolean properties: @@ -47577,6 +50254,10 @@ definitions: app_store_protected_refs: type: boolean description: Set variables on protected branches and tags only. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - app_store_issuer_id - app_store_key_id @@ -47597,6 +50278,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_key description: Create/Edit Asana integration @@ -47612,6 +50297,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Assembla integration @@ -47636,6 +50325,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - bamboo_url - build_key @@ -47657,6 +50350,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -47665,16 +50362,17 @@ definitions: putApiV4ProjectsIdIntegrationsBuildkite: type: object properties: - token: - type: string - description: Buildkite project GitLab token project_url: type: string - description: The Buildkite pipeline URL + description: Pipeline URL (for example, `https://buildkite.com/example/pipeline`). + token: + type: string + description: Token you get after you create a Buildkite pipeline with a GitLab + repository. enable_ssl_verification: type: boolean - description: 'DEPRECATED: This parameter has no effect since SSL verification - will always be enabled' + description: 'DEPRECATED: This parameter has no effect because SSL verification + is always enabled.' push_events: type: boolean description: Trigger event for pushes to the repository. @@ -47684,9 +50382,13 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - - token - project_url + - token description: Create/Edit Buildkite integration putApiV4ProjectsIdIntegrationsCampfire: type: object @@ -47704,6 +50406,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Campfire integration @@ -47713,6 +50419,10 @@ definitions: confluence_url: type: string description: URL of the Confluence Workspace hosted on `atlassian.net`. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - confluence_url description: Create/Edit Confluence integration @@ -47731,6 +50441,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -47739,38 +50453,43 @@ definitions: putApiV4ProjectsIdIntegrationsDatadog: type: object properties: - api_key: - type: string - description: API key used for authentication with Datadog datadog_site: type: string - description: The Datadog site to send data to. To send data to the EU site, - use datadoghq.eu + description: Datadog site to send data to. To send data to the EU site, use + datadoghq.eu. api_url: type: string - description: "(Advanced) The full URL for your Datadog site" + description: Full URL of your Datadog site. + api_key: + type: string + description: API + key used for authentication with Datadog. archive_trace_events: type: boolean description: When enabled, job logs are collected by Datadog and displayed along with pipeline execution traces. datadog_service: type: string - description: Tag all data from this GitLab instance in Datadog. Useful when - managing several self-managed deployments + description: GitLab instance to tag all data from in Datadog. Can be used + when managing several self-managed deployments. datadog_env: type: string - description: For self-managed deployments, set the env tag for all the data - sent to Datadog + description: For self-managed deployments, `env` tag for all the data sent + to Datadog. datadog_tags: type: string - description: 'Custom tags in Datadog. Specify one tag per line in the format: - "key:value\nkey2:value2"' + description: Custom tags in Datadog. Specify one tag per line in the format + `key:value\nkey2:value2`. pipeline_events: type: boolean description: Trigger event when a pipeline status changes. build_events: type: boolean description: Trigger event when a build is created. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_key description: Create/Edit Datadog integration @@ -47786,6 +50505,10 @@ definitions: diffblue_access_token_secret: type: string description: Access token secret used by Diffblue Cover in pipelines. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - diffblue_license_key - diffblue_access_token_name @@ -47876,21 +50599,25 @@ definitions: deployment_events: type: boolean description: Trigger event when a deployment starts or finishes. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Discord integration putApiV4ProjectsIdIntegrationsDroneCi: type: object properties: - token: - type: string - description: Drone CI token - drone_url: - type: string - description: Drone CI URL enable_ssl_verification: type: boolean - description: Enable SSL verification + description: Enable SSL verification. Defaults to `true` (enabled). + drone_url: + type: string + description: Drone CI URL (for example, `http://drone.example.com`). + token: + type: string + description: Drone CI token. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -47900,31 +50627,41 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - - token - drone_url + - token description: Create/Edit Drone Ci integration putApiV4ProjectsIdIntegrationsEmailsOnPush: type: object properties: - recipients: - type: string - description: Comma-separated list of recipient email addresses - disable_diffs: - type: boolean - description: Disable code diffs send_from_committer_email: type: boolean description: Send from committer + disable_diffs: + type: boolean + description: Disable code diffs branches_to_be_notified: type: string - description: Branches for which notifications are to be sent + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. + recipients: + type: string + description: Emails separated by whitespace. push_events: type: boolean description: Trigger event for pushes to the repository. tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - recipients description: Create/Edit Emails On Push integration @@ -47934,6 +50671,10 @@ definitions: external_wiki_url: type: string description: URL of the external wiki. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - external_wiki_url description: Create/Edit External Wiki integration @@ -48038,6 +50779,10 @@ definitions: alert_events: type: boolean description: Trigger event when a new, unique alert is recorded. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. description: Create/Edit Gitlab Slack Application integration putApiV4ProjectsIdIntegrationsGooglePlay: type: object @@ -48054,6 +50799,10 @@ definitions: google_play_protected_refs: type: boolean description: Set variables on protected branches and tags only. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - package_name - service_account_key_file_name @@ -48064,10 +50813,15 @@ definitions: properties: webhook: type: string - description: The Hangouts Chat webhook. e.g. https://chat.googleapis.com/v1/spaces… + description: The Hangouts Chat webhook (for example, `https://chat.googleapis.com/v1/spaces...`). + notify_only_broken_pipelines: + type: boolean + description: Send notifications for broken pipelines. branches_to_be_notified: type: string - description: Branches for which notifications are to be sent + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -48096,6 +50850,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Hangouts Chat integration @@ -48116,6 +50874,10 @@ definitions: password: type: string description: The password of the user. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url - project_name @@ -48144,27 +50906,31 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - recipients description: Create/Edit Irker integration putApiV4ProjectsIdIntegrationsJenkins: type: object properties: - jenkins_url: - type: string - description: Jenkins root URL like https://jenkins.example.com enable_ssl_verification: type: boolean - description: Enable SSL verification + description: Enable SSL verification. Defaults to `true` (enabled). + jenkins_url: + type: string + description: URL of the Jenkins server. project_name: type: string - description: 'The URL-friendly project name. Example: my_project_name' + description: Name of the Jenkins project. username: type: string - description: A user with access to the Jenkins server, if applicable + description: Username of the Jenkins server. password: type: string - description: The password of the user + description: Password of the Jenkins server. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -48174,6 +50940,10 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - jenkins_url - project_name @@ -48236,16 +51006,106 @@ definitions: merge_requests_events: type: boolean description: Trigger event when a merge request is created, updated, or merged. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url - password description: Create/Edit Jira integration + putApiV4ProjectsIdIntegrationsJiraCloudApp: + type: object + properties: + jira_cloud_app_service_ids: + type: string + description: Copy and paste your JSM Service ID here. Use comma (,) to separate + multiple IDs. + jira_cloud_app_enable_deployment_gating: + type: boolean + description: Enable to approve or reject blocked GitLab deployments from Jira + Service Management. + jira_cloud_app_deployment_gating_environments: + type: string + description: Enter the environment (production,staging,testing,development) + where you want to enable deployment gating. Use comma (,) to separate multiple + environments. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. + description: Create/Edit Jira Cloud App integration + putApiV4ProjectsIdIntegrationsMatrix: + type: object + properties: + hostname: + type: string + description: Custom hostname of the Matrix server. The default value is `https://matrix.org`. + token: + type: string + description: The Matrix access token (for example, `syt-zyx57W2v1u123ew11`). + room: + type: string + description: Unique identifier for the target room (in the format `!qPKKM111FFKKsfoCVy:matrix.org`). + notify_only_broken_pipelines: + type: boolean + description: Send notifications for broken pipelines. + branches_to_be_notified: + type: string + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. + push_events: + type: boolean + description: Trigger event for pushes to the repository. + issues_events: + type: boolean + description: Trigger event when an issue is created, updated, or closed. + confidential_issues_events: + type: boolean + description: Trigger event when a confidential issue is created, updated, + or closed. + merge_requests_events: + type: boolean + description: Trigger event when a merge request is created, updated, or merged. + note_events: + type: boolean + description: Trigger event for new comments. + confidential_note_events: + type: boolean + description: Trigger event for new comments on confidential issues. + tag_push_events: + type: boolean + description: Trigger event for new tags pushed to the repository. + pipeline_events: + type: boolean + description: Trigger event when a pipeline status changes. + wiki_page_events: + type: boolean + description: Trigger event when a wiki page is created or updated. + incident_events: + type: boolean + description: Trigger event when an incident is created. + vulnerability_events: + type: boolean + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. + required: + - token + - room + description: Create/Edit Matrix integration putApiV4ProjectsIdIntegrationsMattermostSlashCommands: type: object properties: token: type: string description: The Mattermost token. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Mattermost Slash Commands integration @@ -48255,6 +51115,10 @@ definitions: token: type: string description: The Slack token + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Slack Slash Commands integration @@ -48279,6 +51143,10 @@ definitions: tag_push_events: type: boolean description: Trigger event for new tags pushed to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - username - token @@ -48295,6 +51163,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -48317,6 +51189,10 @@ definitions: pipeline_events: type: boolean description: Trigger event when a pipeline status changes. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - recipients description: Create/Edit Pipelines Email integration @@ -48333,6 +51209,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Pivotaltracker integration @@ -48353,6 +51233,10 @@ definitions: type: string description: 'Contents of the credentials.json file of your service account, like: { "type": "service_account", "project_id": ... }' + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_url - google_iap_audience_client_id @@ -48392,6 +51276,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Pumble integration @@ -48416,6 +51304,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - api_key - user_key @@ -48438,6 +51330,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -48458,6 +51354,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -48475,6 +51375,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -48491,6 +51395,10 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - project_url - issues_url @@ -48602,6 +51510,10 @@ definitions: alert_events: type: boolean description: Trigger event when a new, unique alert is recorded. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Slack integration @@ -48645,6 +51557,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Microsoft Teams integration @@ -48752,6 +51668,10 @@ definitions: description: Trigger event when an incident is created. vulnerability_events: type: boolean + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Mattermost integration @@ -48779,6 +51699,10 @@ definitions: merge_requests_events: type: boolean description: Trigger event when a merge request is created, updated, or merged. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - teamcity_url - build_type @@ -48793,22 +51717,23 @@ definitions: description: Custom hostname of the Telegram API. The default value is `https://api.telegram.org`. token: type: string - description: The Telegram chat token. For example, 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 + description: The Telegram bot token (for example, `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`). room: type: string - description: Unique identifier for the target chat or username of the target - channel (in the format @channelusername) + description: Unique identifier for the target chat or the username of the + target channel (in the format `@channelusername`). thread: - type: integer - format: int32 - description: Unique identifier for the target message thread (topic in a forum - supergroup) - branches_to_be_notified: type: string - description: Branches for which notifications are to be sent. + description: Unique identifier for the target message thread (topic in a forum + supergroup). notify_only_broken_pipelines: type: boolean - description: Send notifications for broken pipelines + description: Send notifications for broken pipelines. + branches_to_be_notified: + type: string + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -48842,6 +51767,10 @@ definitions: description: Trigger event when an incident is created. vulnerability_events: type: boolean + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token - room @@ -48851,7 +51780,15 @@ definitions: properties: webhook: type: string - description: The Unify Circuit webhook. e.g. https://circuit.com/rest/v2/webhooks/incoming/… + description: The Unify Circuit webhook (for example, `https://circuit.com/rest/v2/webhooks/incoming/...`). + notify_only_broken_pipelines: + type: boolean + description: Send notifications for broken pipelines. + branches_to_be_notified: + type: string + description: Branches to send notifications for. Valid options are `all`, + `default`, `protected`, and `default_and_protected`. The default value is + `default`. push_events: type: boolean description: Trigger event for pushes to the repository. @@ -48880,6 +51817,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Unify Circuit integration @@ -48925,6 +51866,10 @@ definitions: wiki_page_events: type: boolean description: Trigger event when a wiki page is created or updated. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - webhook description: Create/Edit Webex Teams integration @@ -48945,6 +51890,10 @@ definitions: zentao_product_xid: type: string description: The product ID of ZenTao project + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url - api_token @@ -48966,6 +51915,10 @@ definitions: type: boolean description: Trigger event when a confidential issue is created, updated, or closed. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - url description: Create/Edit Squash Tm integration @@ -48985,6 +51938,10 @@ definitions: pipeline_events: type: boolean description: Trigger event when a pipeline status changes. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token - repository_url @@ -48994,6 +51951,12 @@ definitions: properties: token: type: string + description: Personal access token to authenticate calls to the GitGuardian + API. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - token description: Create/Edit Git Guardian integration @@ -49002,10 +51965,17 @@ definitions: properties: artifact_registry_project_id: type: string + description: ID of the Google Cloud project. artifact_registry_repositories: type: string + description: Repository of Artifact Registry. artifact_registry_location: type: string + description: Location of the Artifact Registry repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - artifact_registry_project_id - artifact_registry_repositories @@ -49026,6 +51996,10 @@ definitions: workload_identity_pool_provider_id: type: string description: ID of the Workload Identity Pool provider. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - workload_identity_federation_project_id - workload_identity_federation_project_number @@ -49044,9 +52018,21 @@ definitions: push_events: type: boolean description: Trigger event for pushes to the repository. + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. required: - mock_service_url description: Create/Edit Mock Ci integration + putApiV4ProjectsIdIntegrationsMockMonitoring: + type: object + properties: + use_inherited_settings: + type: boolean + description: Indicates whether to inherit the default settings. Defaults to + `false`. + description: Create/Edit Mock Monitoring integration postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger: type: object properties: @@ -49098,6 +52084,10 @@ definitions: type: string description: Source that triggered the member creation process default: invitations-api + member_role_id: + type: integer + format: int32 + description: The ID of a member role for the invited user required: - access_level description: Invite non-members by email address to a group or project. @@ -49118,6 +52108,10 @@ definitions: type: string format: date-time description: Date string in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`) + member_role_id: + type: integer + format: int32 + description: The ID of a member role for the invited user description: Updates a group or project invitation. API_Entities_RelatedIssue: type: object @@ -49161,7 +52155,7 @@ definitions: type: array items: type: string - example: bug + example: bug milestone: "$ref": "#/definitions/API_Entities_Milestone" assignees: @@ -49371,7 +52365,7 @@ definitions: type: array items: type: string - example: bug + example: bug milestone: "$ref": "#/definitions/API_Entities_Milestone" assignees: @@ -49423,12 +52417,12 @@ definitions: type: array items: type: string - example: variables config should be a hash of key value pairs + example: variables config should be a hash of key value pairs warnings: type: array items: type: string - example: jobs:job may allow multiple pipelines ... + example: jobs:job may allow multiple pipelines ... merged_yaml: type: string example: |- @@ -49437,14 +52431,39 @@ definitions: includes: type: array items: - type: object - example: '{ "blob": "https://gitlab.com/root/example-project/-/blob/...' + "$ref": "#/definitions/API_Entities_Ci_Lint_Result_Include" + example: '{ "blob": "https://gitlab.com/root/example-project/-/blob/...' jobs: type: array items: type: object - example: '{ "name": "test: .... }' + example: '{ "name": "test: .... }' description: API_Entities_Ci_Lint_Result model + API_Entities_Ci_Lint_Result_Include: + type: object + properties: + type: + type: string + example: local + location: + type: string + example: ".gitlab/ci/build-images.gitlab-ci.yml" + blob: + type: string + example: https://gitlab.com/gitlab-org/gitlab/-/blob/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml + raw: + type: string + example: https://gitlab.com/gitlab-org/gitlab/-/raw/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml + extra: + type: object + example: '{ "job_name": "test", "project": "gitlab-org/gitlab", "ref": "master" + }' + context_project: + type: string + example: gitlab-org/gitlab + context_sha: + type: string + example: e52d6d0246d7375291850e61f0abc101fbda9dc2 postApiV4ProjectsIdCiLint: type: object properties: @@ -49468,6 +52487,29 @@ definitions: required: - content description: Validate a CI YAML configuration with a namespace + postApiV4ProjectsIdUploads: + type: object + properties: + file: + type: file + description: The attachment file to be uploaded + required: + - file + description: Upload a file + API_Entities_ProjectUpload: + type: object + properties: + id: + type: string + alt: + type: string + url: + type: string + full_path: + type: string + markdown: + type: string + description: API_Entities_ProjectUpload model putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize: type: object properties: @@ -49536,6 +52578,204 @@ definitions: required: - access_level description: Updates a member of a group or project. + API_Entities_MergeRequestApprovals: + type: object + properties: + user_has_approved: + type: boolean + user_can_approve: + type: boolean + approved: + type: boolean + approved_by: + "$ref": "#/definitions/API_Entities_Approvals" + description: API_Entities_MergeRequestApprovals model + API_Entities_Approvals: + type: object + properties: + user: + "$ref": "#/definitions/API_Entities_UserBasic" + postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove: + type: object + properties: + sha: + type: string + description: When present, must have the HEAD SHA of the source branch + approval_password: + type: string + description: Current user's password if project is set to require explicit + auth on approval + example: secret + description: Approve a merge request + EE_API_Entities_MergeRequestApprovalState: + type: object + properties: + approval_rules_overwritten: + type: boolean + rules: + type: array + items: + "$ref": "#/definitions/EE_API_Entities_MergeRequestApprovalStateRule" + description: EE_API_Entities_MergeRequestApprovalState model + EE_API_Entities_MergeRequestApprovalStateRule: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + name: + type: string + example: QA + rule_type: + type: string + example: regular + eligible_approvers: + type: array + items: + "$ref": "#/definitions/API_Entities_UserBasic" + approvals_required: + type: integer + format: int32 + example: 2 + users: + type: array + items: + "$ref": "#/definitions/API_Entities_UserBasic" + groups: + type: array + items: + "$ref": "#/definitions/API_Entities_Group" + contains_hidden_groups: + type: boolean + report_type: + type: string + section: + type: string + example: Backend + source_rule: + "$ref": "#/definitions/EE_API_Entities_MergeRequestApprovalRule_SourceRule" + overridden: + type: boolean + code_owner: + type: boolean + approved_by: + type: array + items: + "$ref": "#/definitions/API_Entities_UserBasic" + approved: + type: boolean + EE_API_Entities_MergeRequestApprovalRule_SourceRule: + type: object + properties: + approvals_required: + type: integer + format: int32 + example: 2 + postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals: + type: object + properties: + approvals_required: + type: integer + format: int32 + description: The amount of approvals required. Must be higher than the project + approvals + example: 2 + required: + - approvals_required + description: 'Deprecated in 16.0: Use the merge request approvals API instead. + Change approval-related configuration' + EE_API_Entities_ApprovalState: + type: object + properties: + id: + type: integer + format: int32 + example: 84 + iid: + type: integer + format: int32 + example: 14 + project_id: + type: integer + format: int32 + example: 4 + title: + type: string + example: Impedit et ut et dolores vero provident ullam est + description: + type: string + example: Repellendus impedit et vel velit dignissimos. + state: + type: string + example: closed + created_at: + type: string + format: date-time + example: '2022-08-17T12:46:35.053Z' + updated_at: + type: string + format: date-time + example: '2022-11-14T17:22:01.470Z' + merge_status: + type: string + example: can_be_merged + approved: + type: boolean + approvals_required: + type: integer + format: int32 + example: 2 + approvals_left: + type: integer + format: int32 + example: 2 + require_password_to_approve: + type: boolean + approved_by: + type: array + items: + "$ref": "#/definitions/API_Entities_Approvals" + suggested_approvers: + type: array + items: + "$ref": "#/definitions/API_Entities_UserBasic" + approvers: + type: string + approver_groups: + type: string + user_has_approved: + type: boolean + user_can_approve: + type: boolean + approval_rules_left: + type: array + items: + "$ref": "#/definitions/EE_API_Entities_ApprovalRuleShort" + has_approval_rules: + type: boolean + merge_request_approvers_available: + type: boolean + multiple_approval_rules_available: + type: boolean + invalid_approvers_rules: + type: array + items: + "$ref": "#/definitions/EE_API_Entities_ApprovalRuleShort" + description: EE_API_Entities_ApprovalState model + EE_API_Entities_ApprovalRuleShort: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + name: + type: string + example: QA + rule_type: + type: string + example: regular postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate: type: object properties: @@ -49722,6 +52962,8 @@ definitions: type: string detailed_merge_status: type: string + merge_after: + type: string sha: type: string merge_commit_sha: @@ -49907,6 +53149,8 @@ definitions: type: string detailed_merge_status: type: string + merge_after: + type: string sha: type: string merge_commit_sha: @@ -49979,6 +53223,18 @@ definitions: overflow: type: string description: API_Entities_MergeRequestChanges model + postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines: + type: object + properties: + async: + type: boolean + description: Indicates if the merge request pipeline creation should be performed + asynchronously. If set to `true`, the pipeline will be created outside of + the API request and the endpoint will return an empty response with a `202` + status code. When the response is `202`, the creation can still fail outside + of this request. + default: false + description: Create merge request pipeline putApiV4ProjectsIdMergeRequestsMergeRequestIid: type: object properties: @@ -50148,6 +53404,91 @@ definitions: diffs: "$ref": "#/definitions/API_Entities_Diff" description: API_Entities_MergeRequestDiffFull model + putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize: + type: object + properties: + path: + type: string + description: File directory path + status: + type: string + description: Package status + enum: + - default + - hidden + description: Workhorse authorize model package file + putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName: + type: object + properties: + path: + type: string + description: File directory path + status: + type: string + description: Package status + enum: + - default + - hidden + file: + type: file + description: The package file to be published (generated by Multipart middleware) + required: + - file + description: Workhorse upload model package file + putApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag: + type: object + properties: + package_name: + type: string + description: Package name + required: + - package_name + description: Create or Update the given tag for the given NPM package and version + putApiV4ProjectsIdPackagesNpmPackageName: + type: object + properties: + versions: + type: object + description: Package version info + required: + - versions + description: Create or deprecate NPM package + API_Entities_Nuget_PackagesVersions: + type: object + properties: + versions: + type: array + items: + type: string + example: 1.3.0.17 + description: API_Entities_Nuget_PackagesVersions model + putApiV4ProjectsIdPackagesNuget: + type: object + properties: + package: + type: file + description: The package file to be published (generated by Multipart middleware) + required: + - package + description: The NuGet V3 Feed Package Publish endpoint + putApiV4ProjectsIdPackagesNugetSymbolpackage: + type: object + properties: + package: + type: file + description: The package file to be published (generated by Multipart middleware) + required: + - package + description: The NuGet Symbol Package Publish endpoint + putApiV4ProjectsIdPackagesNugetV2: + type: object + properties: + package: + type: file + description: The package file to be published (generated by Multipart middleware) + required: + - package + description: The NuGet V2 Feed Package Publish endpoint API_Entities_PackageFile: type: object properties: @@ -50432,6 +53773,96 @@ definitions: format: int32 example: 3 description: API_Entities_ContainerRegistry_TagDetails model + postApiV4ProjectsIdDebianDistributions: + type: object + properties: + codename: + type: string + description: The Debian Codename + example: sid + suite: + type: string + description: The Debian Suite + example: unstable + origin: + type: string + description: The Debian Origin + example: Grep + label: + type: string + description: The Debian Label + example: grep.be + version: + type: string + description: The Debian Version + example: '12' + description: + type: string + description: The Debian Description + example: My description + valid_time_duration_seconds: + type: integer + format: int32 + description: The duration before the Release file should be considered expired + by the client + example: 604800 + components: + type: array + description: The list of Components + example: main + items: + type: string + architectures: + type: array + description: The list of Architectures + example: amd64 + items: + type: string + required: + - codename + description: Create a Debian Distribution + putApiV4ProjectsIdDebianDistributionsCodename: + type: object + properties: + suite: + type: string + description: The Debian Suite + example: unstable + origin: + type: string + description: The Debian Origin + example: Grep + label: + type: string + description: The Debian Label + example: grep.be + version: + type: string + description: The Debian Version + example: '12' + description: + type: string + description: The Debian Description + example: My description + valid_time_duration_seconds: + type: integer + format: int32 + description: The duration before the Release file should be considered expired + by the client + example: 604800 + components: + type: array + description: The list of Components + example: main + items: + type: string + architectures: + type: array + description: The list of Architectures + example: amd64 + items: + type: string + description: Update a Debian Distribution API_Entities_Event: type: object properties: @@ -50592,12 +54023,12 @@ definitions: example: '2020-05-07T04:27:17.016Z' export_status: type: string - example: finished enum: - queued - started - finished - failed + example: finished _links: type: object properties: @@ -50635,6 +54066,24 @@ definitions: type: boolean description: Whether to export in batches description: Start relations export + putApiV4ProjectsIdHooksHookIdUrlVariablesKey: + type: object + properties: + value: + type: string + description: The value of the variable + required: + - value + description: Set a url variable + putApiV4ProjectsIdHooksHookIdCustomHeadersKey: + type: object + properties: + value: + type: string + description: The value of the custom header + required: + - value + description: Set a custom header API_Entities_ProjectHook: type: object properties: @@ -50675,11 +54124,23 @@ definitions: type: array items: type: object - example: - token: secr3t + example: + token: secr3t + push_events_branch_filter: + type: string + example: my-branch-* + branch_filter_strategy: + type: string + example: wildcard custom_webhook_template: type: string example: '{"event":"{{object_kind}}"}' + custom_headers: + type: array + items: + type: object + example: + X-Custom-Header: value project_id: type: string example: 1 @@ -50697,18 +54158,130 @@ definitions: type: boolean deployment_events: type: boolean + feature_flag_events: + type: boolean job_events: type: boolean releases_events: type: boolean - push_events_branch_filter: - type: string - example: my-branch-* emoji_events: type: boolean resource_access_token_events: type: boolean description: API_Entities_ProjectHook model + putApiV4ProjectsIdHooksHookId: + type: object + properties: + url: + type: string + description: The URL to send the request to + name: + type: string + description: Name of the hook + description: + type: string + description: Description of the hook + push_events: + type: boolean + description: Trigger hook on push events + issues_events: + type: boolean + description: Trigger hook on issues events + confidential_issues_events: + type: boolean + description: Trigger hook on confidential issues events + merge_requests_events: + type: boolean + description: Trigger hook on merge request events + tag_push_events: + type: boolean + description: Trigger hook on tag push events + note_events: + type: boolean + description: Trigger hook on note (comment) events + confidential_note_events: + type: boolean + description: Trigger hook on confidential note (comment) events + job_events: + type: boolean + description: Trigger hook on job events + pipeline_events: + type: boolean + description: Trigger hook on pipeline events + wiki_page_events: + type: boolean + description: Trigger hook on wiki events + deployment_events: + type: boolean + description: Trigger hook on deployment events + feature_flag_events: + type: boolean + description: Trigger hook on feature flag events + releases_events: + type: boolean + description: Trigger hook on release events + emoji_events: + type: boolean + description: Trigger hook on emoji events + resource_access_token_events: + type: boolean + description: Trigger hook on project access token expiry events + enable_ssl_verification: + type: boolean + description: Do SSL verification when triggering the hook + token: + type: string + description: Secret token to validate received payloads; this will not be + returned in the response + push_events_branch_filter: + type: string + description: Trigger hook on specified branch only + custom_webhook_template: + type: string + description: Custom template for the request payload + branch_filter_strategy: + type: string + description: Filter push events by branch. Possible values are `wildcard` + (default), `regex`, and `all_branches` + enum: + - wildcard + - regex + - all_branches + url_variables: + type: array + description: URL variables for interpolation + items: + type: object + properties: + key: + type: string + description: Name of the variable + example: token + value: + type: string + description: Value of the variable + example: '123' + required: + - key + - value + custom_headers: + type: array + description: Custom headers + items: + type: object + properties: + key: + type: string + description: Name of the header + example: X-Custom-Header + value: + type: string + description: Value of the header + example: value + required: + - key + - value + description: Edit project hook postApiV4ProjectsIdHooks: type: object properties: @@ -50755,6 +54328,9 @@ definitions: deployment_events: type: boolean description: Trigger hook on deployment events + feature_flag_events: + type: boolean + description: Trigger hook on feature flag events releases_events: type: boolean description: Trigger hook on release events @@ -50777,6 +54353,14 @@ definitions: custom_webhook_template: type: string description: Custom template for the request payload + branch_filter_strategy: + type: string + description: Filter push events by branch. Possible values are `wildcard` + (default), `regex`, and `all_branches` + enum: + - wildcard + - regex + - all_branches url_variables: type: array description: URL variables for interpolation @@ -50794,94 +54378,26 @@ definitions: required: - key - value + custom_headers: + type: array + description: Custom headers + items: + type: object + properties: + key: + type: string + description: Name of the header + example: X-Custom-Header + value: + type: string + description: Value of the header + example: value + required: + - key + - value required: - url description: Add project hook - putApiV4ProjectsIdHooksHookId: - type: object - properties: - url: - type: string - description: The URL to send the request to - name: - type: string - description: Name of the hook - description: - type: string - description: Description of the hook - push_events: - type: boolean - description: Trigger hook on push events - issues_events: - type: boolean - description: Trigger hook on issues events - confidential_issues_events: - type: boolean - description: Trigger hook on confidential issues events - merge_requests_events: - type: boolean - description: Trigger hook on merge request events - tag_push_events: - type: boolean - description: Trigger hook on tag push events - note_events: - type: boolean - description: Trigger hook on note (comment) events - confidential_note_events: - type: boolean - description: Trigger hook on confidential note (comment) events - job_events: - type: boolean - description: Trigger hook on job events - pipeline_events: - type: boolean - description: Trigger hook on pipeline events - wiki_page_events: - type: boolean - description: Trigger hook on wiki events - deployment_events: - type: boolean - description: Trigger hook on deployment events - releases_events: - type: boolean - description: Trigger hook on release events - emoji_events: - type: boolean - description: Trigger hook on emoji events - resource_access_token_events: - type: boolean - description: Trigger hook on project access token expiry events - enable_ssl_verification: - type: boolean - description: Do SSL verification when triggering the hook - token: - type: string - description: Secret token to validate received payloads; this will not be - returned in the response - push_events_branch_filter: - type: string - description: Trigger hook on specified branch only - custom_webhook_template: - type: string - description: Custom template for the request payload - url_variables: - type: array - description: URL variables for interpolation - items: - type: object - properties: - key: - type: string - description: Name of the variable - example: token - value: - type: string - description: Value of the variable - example: '123' - required: - - key - - value - description: Edit project hook API_Entities_ProjectImportStatus: type: object properties: @@ -51017,6 +54533,81 @@ definitions: required: - target_group_id description: Add target group to allowlist. + API_Entities_Projects_Packages_Protection_Rule: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + project_id: + type: integer + format: int32 + example: 1 + package_name_pattern: + type: string + example: flightjs/flight + package_type: + type: string + example: npm + minimum_access_level_for_push: + type: string + example: maintainer + description: API_Entities_Projects_Packages_Protection_Rule model + postApiV4ProjectsIdPackagesProtectionRules: + type: object + properties: + package_name_pattern: + type: string + description: |- + Package name protected by the rule. For example @my-scope/my-package-*. + Wildcard character * allowed. + package_type: + type: string + description: Package type protected by the rule. For example npm. + enum: + - conan + - npm + - pypi + minimum_access_level_for_push: + type: string + description: |- + Minimum GitLab access level able to push a package. Must be at least `maintainer`. + For example `maintainer`, `owner` or `admin`. + enum: + - maintainer + - owner + - admin + required: + - package_name_pattern + - package_type + - minimum_access_level_for_push + description: Create a package protection rule for a project + patchApiV4ProjectsIdPackagesProtectionRulesPackageProtectionRuleId: + type: object + properties: + package_name_pattern: + type: string + description: |- + Package name protected by the rule. For example @my-scope/my-package-*. + Wildcard character * allowed. + package_type: + type: string + description: Package type protected by the rule. For example npm. + enum: + - conan + - npm + - pypi + minimum_access_level_for_push: + type: string + description: |- + Minimum GitLab access level able to push a package. Must be at least `maintainer`. + For example `maintainer`, `owner` or `admin`. + enum: + - maintainer + - owner + - admin + description: Update a package protection rule for a project API_Entities_Projects_RepositoryStorageMove: type: object properties: @@ -51099,7 +54690,7 @@ definitions: type: array items: type: string - example: e0d123e5f316bef78bfdf5a008837577 + example: e0d123e5f316bef78bfdf5a008837577 imported: type: boolean example: false @@ -51275,17 +54866,17 @@ definitions: type: array items: type: string - example: include-copyright + example: include-copyright permissions: type: array items: type: string - example: commercial-use + example: commercial-use limitations: type: array items: type: string - example: liability + example: liability content: type: string example: GNU GENERAL PUBLIC LICENSE @@ -51612,9 +55203,6 @@ definitions: issue_branch_template: type: string description: Template used to create a branch from an issue - initialize_with_readme: - type: boolean - description: Initialize a project with a README.md auto_devops_enabled: type: boolean description: Flag indication if Auto DevOps is enabled @@ -51656,10 +55244,10 @@ definitions: description: How many approvers should approve merge request by default mirror: type: boolean - description: Enables pull mirroring in a project + description: "[Deprecated] Enables pull mirroring in a project" mirror_trigger_builds: type: boolean - description: Pull mirroring triggers builds + description: "[Deprecated] Pull mirroring triggers builds" external_authorization_classification_label: type: string description: The classification label for the project @@ -51680,6 +55268,9 @@ definitions: enum: - sha1 - sha256 + initialize_with_readme: + type: boolean + description: Initialize a project with a README.md use_custom_template: type: boolean description: Use custom template @@ -52015,9 +55606,6 @@ definitions: issue_branch_template: type: string description: Template used to create a branch from an issue - initialize_with_readme: - type: boolean - description: Initialize a project with a README.md auto_devops_enabled: type: boolean description: Flag indication if Auto DevOps is enabled @@ -52059,10 +55647,10 @@ definitions: description: How many approvers should approve merge request by default mirror: type: boolean - description: Enables pull mirroring in a project + description: "[Deprecated] Enables pull mirroring in a project" mirror_trigger_builds: type: boolean - description: Pull mirroring triggers builds + description: "[Deprecated] Pull mirroring triggers builds" external_authorization_classification_label: type: string description: The classification label for the project @@ -52083,6 +55671,9 @@ definitions: enum: - sha1 - sha256 + initialize_with_readme: + type: boolean + description: Initialize a project with a README.md use_custom_template: type: boolean description: Use custom template @@ -52141,12 +55732,12 @@ definitions: type: array items: type: string - example: tag + example: tag topics: type: array items: type: string - example: topic + example: topic ssh_url_to_repo: type: string example: git@gitlab.example.com:gitlab/gitlab.git @@ -52186,6 +55777,8 @@ definitions: repository_storage: type: string example: default + forked_from_project: + "$ref": "#/definitions/API_Entities_BasicProjectDetails" container_registry_image_prefix: type: string example: registry.gitlab.example.com/gitlab/gitlab-client @@ -52319,8 +55912,6 @@ definitions: type: integer format: int32 example: 1 - forked_from_project: - "$ref": "#/definitions/API_Entities_BasicProjectDetails" mr_default_target_self: type: boolean import_url: @@ -52359,6 +55950,10 @@ definitions: type: boolean ci_allow_fork_pipelines_to_run_in_parent_project: type: boolean + ci_id_token_sub_claim_components: + type: array + items: + type: string build_git_strategy: type: string example: fetch @@ -52389,6 +55984,8 @@ definitions: auto_devops_deploy_strategy: type: string example: continuous + ci_push_repository_for_job_token_allowed: + type: boolean ci_config_path: type: string example: '' @@ -52460,6 +56057,8 @@ definitions: type: string security_and_compliance_enabled: type: string + pre_receive_secret_detection_enabled: + type: boolean compliance_frameworks: type: string issues_template: @@ -52858,9 +56457,6 @@ definitions: issue_branch_template: type: string description: Template used to create a branch from an issue - initialize_with_readme: - type: boolean - description: Initialize a project with a README.md auto_devops_enabled: type: boolean description: Flag indication if Auto DevOps is enabled @@ -52902,10 +56498,10 @@ definitions: description: How many approvers should approve merge request by default mirror: type: boolean - description: Enables pull mirroring in a project + description: "[Deprecated] Enables pull mirroring in a project" mirror_trigger_builds: type: boolean - description: Pull mirroring triggers builds + description: "[Deprecated] Pull mirroring triggers builds" external_authorization_classification_label: type: string description: The classification label for the project @@ -52941,7 +56537,7 @@ definitions: description: Enable or disable separated caches based on branch protection. restrict_user_defined_variables: type: boolean - description: Restrict ability to override variables when triggering a pipeline + description: Restrict use of user-defined variables when triggering a pipeline ci_pipeline_variables_minimum_override_role: type: string description: Limit ability to override CI/CD variables when triggering a pipeline @@ -52951,23 +56547,36 @@ definitions: - developer - maintainer - owner + ci_push_repository_for_job_token_allowed: + type: boolean + description: Allow pushing to this project's repository by authenticating + with a CI/CD job token generated in this project. + ci_id_token_sub_claim_components: + type: array + description: Claims that will be used to build the sub claim in id tokens + items: + type: string + enum: + - project_path + - ref_type + - ref allow_pipeline_trigger_approve_deployment: type: boolean description: Allow pipeline triggerer to approve deployments mirror_user_id: type: integer format: int32 - description: User responsible for all the activity surrounding a pull mirror - event. Can only be set by admins + description: "[Deprecated] User responsible for all the activity surrounding + a pull mirror event. Can only be set by admins" only_mirror_protected_branches: type: boolean - description: Only mirror protected branches + description: "[Deprecated] Only mirror protected branches" mirror_branch_regex: type: string - description: Only mirror branches match regex + description: "[Deprecated] Only mirror branches match regex" mirror_overwrites_diverged_branches: type: boolean - description: Pull mirror overwrites diverged branches + description: "[Deprecated] Pull mirror overwrites diverged branches" import_url: type: string description: URL from which the project is imported @@ -53047,27 +56656,6 @@ definitions: format: date example: '2016-09-26' description: API_Entities_ProjectGroupLink model - postApiV4ProjectsIdUploads: - type: object - properties: - file: - type: file - description: The attachment file to be uploaded - required: - - file - description: Upload a file - API_Entities_ProjectUpload: - type: object - properties: - alt: - type: string - url: - type: string - full_path: - type: string - markdown: - type: string - description: API_Entities_ProjectUpload model API_Entities_PublicGroupDetails: type: object properties: @@ -53233,6 +56821,10 @@ definitions: - 40 - 60 - 0 + deploy_key_id: + type: integer + format: int32 + example: 1 user_id: type: integer format: int32 @@ -53341,6 +56933,10 @@ definitions: - 40 - 60 - 0 + deploy_key_id: + type: integer + format: int32 + example: 1 user_id: type: integer format: int32 @@ -53465,9 +57061,55 @@ definitions: group_id: type: integer format: int32 + deploy_key_id: + type: integer + format: int32 required: - name description: Protect a single tag or wildcard + postApiV4ProjectsIdPackagesPypi: + type: object + properties: + content: + type: file + description: The package file to be published (generated by Multipart middleware) + name: + type: string + example: my.pypi.package + version: + type: string + example: 1.3.7 + requires_python: + type: string + example: ">=3.7" + md5_digest: + type: string + example: 900150983cd24fb0d6963f7d28e17f72 + sha256_digest: + type: string + example: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad + metadata_version: + type: string + example: '2.3' + author_email: + type: string + example: cschultz@example.com, snoopy@peanuts.com + description: + type: string + description_content_type: + type: string + example: text/markdown; charset=UTF-8; variant=GFM + summary: + type: string + example: A module for collecting votes from beagles. + keywords: + type: string + example: dog,puppy,voting,election + required: + - content + - name + - version + description: The PyPi Package upload endpoint postApiV4ProjectsIdReleases: type: object properties: @@ -53574,6 +57216,61 @@ definitions: `milestones` parameter. To remove all milestones from the release, specify `[]` description: Update a release + postApiV4ProjectsIdReleasesTagNameAssetsLinks: + type: object + properties: + name: + type: string + description: The name of the link. Link names must be unique in the release + url: + type: string + description: The URL of the link. Link URLs must be unique in the release. + direct_asset_path: + type: string + description: Optional path for a direct asset link + filepath: + type: string + description: 'Deprecated: optional path for a direct asset link' + link_type: + type: string + description: 'The type of the link: `other`, `runbook`, `image`, or `package`. + Defaults to `other`' + enum: + - other + - runbook + - image + - package + default: other + required: + - name + - url + description: Create a release link + putApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId: + type: object + properties: + name: + type: string + description: The name of the link + url: + type: string + description: The URL of the link + direct_asset_path: + type: string + description: Optional path for a direct asset link + filepath: + type: string + description: 'Deprecated: optional path for a direct asset link' + link_type: + type: string + description: 'The type of the link: `other`, `runbook`, `image`, or `package`. + Defaults to `other`' + enum: + - other + - runbook + - image + - package + default: other + description: Update a release link API_Entities_RemoteMirror: type: object properties: @@ -53799,6 +57496,7 @@ definitions: - api - read_api - create_runner + - manage_runner - k8s_proxy - read_repository - write_repository @@ -53809,7 +57507,7 @@ definitions: type: string format: date description: The expiration date of the token - default: '2025-05-23T21:13:09.000Z' + default: '2025-11-22T14:26:34.481Z' example: "\"2021-01-31" access_level: type: integer @@ -53866,6 +57564,15 @@ definitions: type: string example: active description: API_Entities_ResourceMilestoneEvent model + postApiV4ProjectsIdPackagesRubygemsApiV1Gems: + type: object + properties: + file: + type: file + description: The package file to be published (generated by Multipart middleware) + required: + - file + description: Upload a gem putApiV4ProjectsIdRepositorySubmodulesSubmodule: type: object properties: @@ -53947,6 +57654,48 @@ definitions: signature: type: string description: API_Entities_TagSignature model + putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize: + type: object + properties: + module_version: + type: string + description: Module version + required: + - module_version + description: Workhorse authorize Terraform Module package file + postApiV4ProjectsIdTerraformStateNameLock: + type: object + properties: + ID: + type: string + description: Terraform state lock ID + Operation: + type: string + description: Terraform operation + Info: + type: string + description: Terraform info + Who: + type: string + description: Terraform state lock owner + Version: + type: string + description: Terraform version + Created: + type: string + description: Terraform state lock timestamp + Path: + type: string + description: Terraform path + required: + - ID + - Operation + - Info + - Who + - Version + - Created + - Path + description: Lock a Terraform state of a certain name postApiV4ProjectsIdWikis: type: object properties: @@ -54014,1036 +57763,6 @@ definitions: required: - file description: Upload an attachment to the wiki repository - API_Entities_MetricImage: - type: object - properties: - id: - type: integer - format: int32 - example: 23 - created_at: - type: string - format: date-time - example: '2020-11-13T00:06:18.084Z' - filename: - type: string - example: file.png - file_path: - type: string - example: "/uploads/-/system/alert_metric_image/file/23/file.png" - url: - type: string - example: https://example.com/metric - url_text: - type: string - example: An example metric - description: API_Entities_MetricImage model - API_Entities_Clusters_AgentTokenBasic: - type: object - properties: - id: - type: string - name: - type: string - description: - type: string - agent_id: - type: string - status: - type: string - created_at: - type: string - created_by_user_id: - type: string - description: API_Entities_Clusters_AgentTokenBasic model - API_Entities_Clusters_AgentToken: - type: object - properties: - id: - type: string - name: - type: string - description: - type: string - agent_id: - type: string - status: - type: string - created_at: - type: string - created_by_user_id: - type: string - last_used_at: - type: string - description: API_Entities_Clusters_AgentToken model - postApiV4ProjectsIdClusterAgentsAgentIdTokens: - type: object - properties: - name: - type: string - description: The name for the token - description: - type: string - description: The description for the token - required: - - name - description: Create an agent token - API_Entities_Clusters_AgentTokenWithToken: - type: object - properties: - id: - type: string - name: - type: string - description: - type: string - agent_id: - type: string - status: - type: string - created_at: - type: string - created_by_user_id: - type: string - last_used_at: - type: string - token: - type: string - description: API_Entities_Clusters_AgentTokenWithToken model - postApiV4ProjectsIdPackagesComposer: - type: object - properties: - branch: - type: string - description: The name of the branch - example: release - tag: - type: string - description: The name of the tag - example: v1.0.0 - description: Composer packages endpoint for registering packages - API_Entities_ConanPackage_ConanPackageSnapshot: - type: object - properties: - package_snapshot: - type: object - example: '{ "conan_package.tgz": "749b29bdf72587081ca03ec033ee59dc" }' - description: API_Entities_ConanPackage_ConanPackageSnapshot model - API_Entities_ConanPackage_ConanRecipeSnapshot: - type: object - properties: - recipe_snapshot: - type: object - example: '{ "conan_sources.tgz": "eadf19b33f4c3c7e113faabf26e76277" }' - description: API_Entities_ConanPackage_ConanRecipeSnapshot model - API_Entities_ConanPackage_ConanPackageManifest: - type: object - properties: - package_urls: - type: object - example: '{ "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz"' - description: API_Entities_ConanPackage_ConanPackageManifest model - API_Entities_ConanPackage_ConanRecipeManifest: - type: object - properties: - recipe_urls: - type: object - example: '{ "conan_sources.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conan_sources.tgz" - }' - description: API_Entities_ConanPackage_ConanRecipeManifest model - API_Entities_ConanPackage_ConanUploadUrls: - type: object - properties: - upload_urls: - type: object - example: '{ "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz" - }' - description: API_Entities_ConanPackage_ConanUploadUrls model - putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName: - type: object - properties: - file: - type: file - description: The package file to be published (generated by Multipart middleware) - required: - - file - description: Upload recipe package files - ? putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName - : type: object - properties: - file: - type: file - description: The package file to be published (generated by Multipart middleware) - required: - - file - description: Upload package files - putApiV4ProjectsIdPackagesDebianFileName: - type: object - properties: - file: - type: file - description: The package file to be published (generated by Multipart middleware) - distribution: - type: string - description: The Debian Codename or Suite - component: - type: string - description: The Debian Component - required: - - file - - component - description: Upload Debian package - putApiV4ProjectsIdPackagesDebianFileNameAuthorize: - type: object - properties: - distribution: - type: string - description: The Debian Codename or Suite - component: - type: string - description: The Debian Component - required: - - component - description: Authorize Debian package upload - API_Entities_ErrorTracking_ClientKey: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - active: - type: boolean - public_key: - type: string - example: glet_aa77551d849c083f76d0bc545ed053a3 - sentry_dsn: - type: string - example: https://glet_aa77551d849c083f76d0bc545ed053a3@example.com/errortracking/api/v1/projects/5 - description: API_Entities_ErrorTracking_ClientKey model - API_Entities_FeatureFlag: - type: object - properties: - name: - type: string - example: merge_train - description: - type: string - example: merge train feature flag - active: - type: boolean - version: - type: string - example: new_version_flag - created_at: - type: string - format: date-time - example: '2019-11-04T08:13:51.423Z' - updated_at: - type: string - format: date-time - example: '2019-11-04T08:13:51.423Z' - scopes: - type: string - strategies: - "$ref": "#/definitions/API_Entities_FeatureFlag_Strategy" - description: API_Entities_FeatureFlag model - API_Entities_FeatureFlag_Strategy: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - name: - type: string - example: userWithId - parameters: - type: string - example: '{"userIds": "user1"}' - scopes: - "$ref": "#/definitions/API_Entities_FeatureFlag_Scope" - user_list: - "$ref": "#/definitions/API_Entities_FeatureFlag_BasicUserList" - API_Entities_FeatureFlag_Scope: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - environment_scope: - type: string - example: production - API_Entities_FeatureFlag_BasicUserList: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - iid: - type: integer - format: int32 - example: 1 - name: - type: string - example: user_list - user_xids: - type: string - example: user1,user2 - postApiV4ProjectsIdFeatureFlags: - type: object - properties: - name: - type: string - description: The name of the feature flag - description: - type: string - description: The description of the feature flag - active: - type: boolean - description: The active state of the flag. Defaults to `true`. Supported in - GitLab 13.3 and later - version: - type: string - description: The version of the feature flag. Must be `new_version_flag`. - Omit to create a Legacy feature flag. - strategies: - type: array - items: - type: object - properties: - name: - type: string - description: The strategy name. Can be `default`, `gradualRolloutUserId`, - `userWithId`, or `gitlabUserList`. In GitLab 13.5 and later, can be - `flexibleRollout` - parameters: - type: string - description: The strategy parameters as a JSON-formatted string e.g. - `{"userIds":"user1"}` - user_list_id: - type: integer - format: int32 - description: The ID of the feature flag user list. If strategy is `gitlabUserList`. - scopes: - type: array - items: - type: object - properties: - environment_scope: - type: string - description: The environment scope of the scope - required: - - environment_scope - required: - - name - required: - - name - description: Create a new feature flag - putApiV4ProjectsIdFeatureFlagsFeatureFlagName: - type: object - properties: - name: - type: string - description: The new name of the feature flag. Supported in GitLab 13.3 and - later - description: - type: string - description: The description of the feature flag - active: - type: boolean - description: The active state of the flag. Supported in GitLab 13.3 and later - strategies: - type: array - items: - type: object - properties: - id: - type: integer - format: int32 - description: The feature flag strategy ID - name: - type: string - description: The strategy name - parameters: - type: string - description: The strategy parameters as a JSON-formatted string e.g. - `{"userIds":"user1"}` - user_list_id: - type: integer - format: int32 - description: The ID of the feature flag user list - _destroy: - type: boolean - description: Delete the strategy when true - scopes: - type: array - items: - type: object - properties: - id: - type: integer - format: int32 - description: The scope id - environment_scope: - type: string - description: The environment scope of the scope - _destroy: - type: boolean - description: Delete the scope when true - description: Update a feature flag - API_Entities_FeatureFlag_UserList: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - iid: - type: integer - format: int32 - example: 1 - name: - type: string - example: user_list - user_xids: - type: string - example: user1,user2 - project_id: - type: integer - format: int32 - example: 2 - created_at: - type: string - format: date-time - example: '2020-02-04T08:13:10.507Z' - updated_at: - type: string - format: date-time - example: '2020-02-04T08:13:10.507Z' - path: - type: string - edit_path: - type: string - description: API_Entities_FeatureFlag_UserList model - postApiV4ProjectsIdFeatureFlagsUserLists: - type: object - properties: - name: - type: string - description: The name of the list - user_xids: - type: string - description: A comma separated list of external user ids - required: - - name - - user_xids - description: Create a feature flag user list - putApiV4ProjectsIdFeatureFlagsUserListsIid: - type: object - properties: - name: - type: string - description: The name of the list - user_xids: - type: string - description: A comma separated list of external user ids - description: Update a feature flag user list - putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileNameAuthorize: - type: object - properties: - package_version: - type: string - description: Package version - status: - type: string - description: Package status - enum: - - default - - hidden - path: - type: integer - format: int32 - required: - - package_version - - path - description: Workhorse authorize generic package file - putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileName: - type: object - properties: - package_version: - type: string - description: Package version - path: - type: string - description: File directory path - status: - type: string - description: Package status - enum: - - default - - hidden - file: - type: file - description: The package file to be published (generated by Multipart middleware) - select: - type: string - enum: - - package_file - required: - - package_version - - file - description: Upload package file - API_Entities_GoModuleVersion: - type: object - properties: - Version: - type: string - example: v1.0.0 - Time: - type: string - example: 1617822312 -0600 - description: API_Entities_GoModuleVersion model - postApiV4ProjectsIdPackagesHelmApiChannelCharts: - type: object - properties: - chart: - type: file - description: The chart file to be published (generated by Multipart middleware) - required: - - chart - description: Upload a chart - API_Entities_MergeRequestApprovals: - type: object - properties: - user_has_approved: - type: boolean - user_can_approve: - type: boolean - approved: - type: boolean - approved_by: - "$ref": "#/definitions/API_Entities_Approvals" - description: API_Entities_MergeRequestApprovals model - API_Entities_Approvals: - type: object - properties: - user: - "$ref": "#/definitions/API_Entities_UserBasic" - postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove: - type: object - properties: - sha: - type: string - description: When present, must have the HEAD SHA of the source branch - approval_password: - type: string - description: Current user's password if project is set to require explicit - auth on approval - example: secret - description: Approve a merge request - EE_API_Entities_MergeRequestApprovalState: - type: object - properties: - approval_rules_overwritten: - type: boolean - rules: - type: array - items: - "$ref": "#/definitions/EE_API_Entities_MergeRequestApprovalStateRule" - description: EE_API_Entities_MergeRequestApprovalState model - EE_API_Entities_MergeRequestApprovalStateRule: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - name: - type: string - example: QA - rule_type: - type: string - example: regular - eligible_approvers: - type: array - items: - "$ref": "#/definitions/API_Entities_UserBasic" - approvals_required: - type: integer - format: int32 - example: 2 - users: - type: array - items: - "$ref": "#/definitions/API_Entities_UserBasic" - groups: - type: array - items: - "$ref": "#/definitions/API_Entities_Group" - contains_hidden_groups: - type: boolean - section: - type: string - example: Backend - source_rule: - "$ref": "#/definitions/EE_API_Entities_MergeRequestApprovalRule_SourceRule" - overridden: - type: boolean - code_owner: - type: boolean - approved_by: - type: array - items: - "$ref": "#/definitions/API_Entities_UserBasic" - approved: - type: boolean - EE_API_Entities_MergeRequestApprovalRule_SourceRule: - type: object - properties: - approvals_required: - type: integer - format: int32 - example: 2 - postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals: - type: object - properties: - approvals_required: - type: integer - format: int32 - description: The amount of approvals required. Must be higher than the project - approvals - example: 2 - required: - - approvals_required - description: 'Deprecated in 16.0: Use the merge request approvals API instead. - Change approval-related configuration' - EE_API_Entities_ApprovalState: - type: object - properties: - id: - type: integer - format: int32 - example: 84 - iid: - type: integer - format: int32 - example: 14 - project_id: - type: integer - format: int32 - example: 4 - title: - type: string - example: Impedit et ut et dolores vero provident ullam est - description: - type: string - example: Repellendus impedit et vel velit dignissimos. - state: - type: string - example: closed - created_at: - type: string - format: date-time - example: '2022-08-17T12:46:35.053Z' - updated_at: - type: string - format: date-time - example: '2022-11-14T17:22:01.470Z' - merge_status: - type: string - example: can_be_merged - approved: - type: boolean - approvals_required: - type: integer - format: int32 - example: 2 - approvals_left: - type: integer - format: int32 - example: 2 - require_password_to_approve: - type: boolean - approved_by: - type: array - items: - "$ref": "#/definitions/API_Entities_Approvals" - suggested_approvers: - type: array - items: - "$ref": "#/definitions/API_Entities_UserBasic" - approvers: - type: string - approver_groups: - type: string - user_has_approved: - type: boolean - user_can_approve: - type: boolean - approval_rules_left: - type: array - items: - "$ref": "#/definitions/EE_API_Entities_ApprovalRuleShort" - has_approval_rules: - type: boolean - merge_request_approvers_available: - type: boolean - multiple_approval_rules_available: - type: boolean - invalid_approvers_rules: - type: array - items: - "$ref": "#/definitions/EE_API_Entities_ApprovalRuleShort" - description: EE_API_Entities_ApprovalState model - EE_API_Entities_ApprovalRuleShort: - type: object - properties: - id: - type: integer - format: int32 - example: 1 - name: - type: string - example: QA - rule_type: - type: string - example: regular - putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize: - type: object - properties: - path: - type: string - description: File directory path - status: - type: string - description: Package status - enum: - - default - - hidden - description: Workhorse authorize model package file - putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName: - type: object - properties: - path: - type: string - description: File directory path - status: - type: string - description: Package status - enum: - - default - - hidden - file: - type: file - description: The package file to be published (generated by Multipart middleware) - required: - - file - description: Workhorse upload model package file - putApiV4ProjectsIdPackagesNpmPackageName: - type: object - properties: - versions: - type: object - description: Package version info - required: - - versions - description: Create or deprecate NPM package - putApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag: - type: object - properties: - package_name: - type: string - description: Package name - required: - - package_name - description: Create or Update the given tag for the given NPM package and version - putApiV4ProjectsIdPackagesNuget: - type: object - properties: - package: - type: file - description: The package file to be published (generated by Multipart middleware) - required: - - package - description: The NuGet V3 Feed Package Publish endpoint - putApiV4ProjectsIdPackagesNugetSymbolpackage: - type: object - properties: - package: - type: file - description: The package file to be published (generated by Multipart middleware) - required: - - package - description: The NuGet Symbol Package Publish endpoint - putApiV4ProjectsIdPackagesNugetV2: - type: object - properties: - package: - type: file - description: The package file to be published (generated by Multipart middleware) - required: - - package - description: The NuGet V2 Feed Package Publish endpoint - API_Entities_Nuget_PackagesVersions: - type: object - properties: - versions: - type: array - items: - type: string - example: 1.3.0.17 - description: API_Entities_Nuget_PackagesVersions model - postApiV4ProjectsIdDebianDistributions: - type: object - properties: - codename: - type: string - description: The Debian Codename - example: sid - suite: - type: string - description: The Debian Suite - example: unstable - origin: - type: string - description: The Debian Origin - example: Grep - label: - type: string - description: The Debian Label - example: grep.be - version: - type: string - description: The Debian Version - example: '12' - description: - type: string - description: The Debian Description - example: My description - valid_time_duration_seconds: - type: integer - format: int32 - description: The duration before the Release file should be considered expired - by the client - example: 604800 - components: - type: array - description: The list of Components - example: main - items: - type: string - architectures: - type: array - description: The list of Architectures - example: amd64 - items: - type: string - required: - - codename - description: Create a Debian Distribution - putApiV4ProjectsIdDebianDistributionsCodename: - type: object - properties: - suite: - type: string - description: The Debian Suite - example: unstable - origin: - type: string - description: The Debian Origin - example: Grep - label: - type: string - description: The Debian Label - example: grep.be - version: - type: string - description: The Debian Version - example: '12' - description: - type: string - description: The Debian Description - example: My description - valid_time_duration_seconds: - type: integer - format: int32 - description: The duration before the Release file should be considered expired - by the client - example: 604800 - components: - type: array - description: The list of Components - example: main - items: - type: string - architectures: - type: array - description: The list of Architectures - example: amd64 - items: - type: string - description: Update a Debian Distribution - postApiV4ProjectsIdPackagesPypi: - type: object - properties: - content: - type: file - description: The package file to be published (generated by Multipart middleware) - name: - type: string - example: my.pypi.package - version: - type: string - example: 1.3.7 - requires_python: - type: string - example: ">=3.7" - md5_digest: - type: string - example: 900150983cd24fb0d6963f7d28e17f72 - sha256_digest: - type: string - example: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad - metadata_version: - type: string - example: '2.3' - author_email: - type: string - example: cschultz@example.com, snoopy@peanuts.com - description: - type: string - description_content_type: - type: string - example: text/markdown; charset=UTF-8; variant=GFM - summary: - type: string - example: A module for collecting votes from beagles. - keywords: - type: string - example: dog,puppy,voting,election - required: - - content - - name - - version - description: The PyPi Package upload endpoint - postApiV4ProjectsIdReleasesTagNameAssetsLinks: - type: object - properties: - name: - type: string - description: The name of the link. Link names must be unique in the release - url: - type: string - description: The URL of the link. Link URLs must be unique in the release. - direct_asset_path: - type: string - description: Optional path for a direct asset link - filepath: - type: string - description: 'Deprecated: optional path for a direct asset link' - link_type: - type: string - description: 'The type of the link: `other`, `runbook`, `image`, or `package`. - Defaults to `other`' - enum: - - other - - runbook - - image - - package - default: other - required: - - name - - url - description: Create a release link - putApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId: - type: object - properties: - name: - type: string - description: The name of the link - url: - type: string - description: The URL of the link - direct_asset_path: - type: string - description: Optional path for a direct asset link - filepath: - type: string - description: 'Deprecated: optional path for a direct asset link' - link_type: - type: string - description: 'The type of the link: `other`, `runbook`, `image`, or `package`. - Defaults to `other`' - enum: - - other - - runbook - - image - - package - default: other - description: Update a release link - postApiV4ProjectsIdPackagesRubygemsApiV1Gems: - type: object - properties: - file: - type: file - description: The package file to be published (generated by Multipart middleware) - required: - - file - description: Upload a gem - putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize: - type: object - properties: - module_version: - type: string - description: Module version - required: - - module_version - description: Workhorse authorize Terraform Module package file - postApiV4ProjectsIdTerraformStateNameLock: - type: object - properties: - ID: - type: string - description: Terraform state lock ID - Operation: - type: string - description: Terraform operation - Info: - type: string - description: Terraform info - Who: - type: string - description: Terraform state lock owner - Version: - type: string - description: Terraform version - Created: - type: string - description: Terraform state lock timestamp - Path: - type: string - description: Terraform path - required: - - ID - - Operation - - Info - - Who - - Version - - Created - - Path - description: Lock a Terraform state of a certain name - putApiV4ProjectsIdHooksHookIdUrlVariablesKey: - type: object - properties: - value: - type: string - description: The value of the variable - required: - - value - description: Set a url variable API_Entities_BatchedBackgroundMigration: type: object properties: @@ -55080,7 +57799,7 @@ definitions: enum: - main - ci - - main_clusterwide + - sec - embedding - geo default: main @@ -55094,7 +57813,7 @@ definitions: enum: - main - ci - - main_clusterwide + - sec - embedding - geo default: main @@ -55167,7 +57886,7 @@ definitions: type: array items: type: string - example: database + example: database description: API_Entities_Dictionary_Table model postApiV4AdminClustersAdd: type: object @@ -55285,7 +58004,7 @@ definitions: enum: - main - ci - - main_clusterwide + - sec - embedding - geo default: main @@ -55313,6 +58032,8 @@ definitions: type: string dismissable: type: string + theme: + type: string active: type: string description: API_Entities_System_BroadcastMessage model @@ -55334,10 +58055,10 @@ definitions: default: {} color: type: string - description: Background color + description: Background color (Deprecated. Use "theme" instead.) font: type: string - description: Foreground color + description: Foreground color (Deprecated. Use "theme" instead.) target_access_levels: type: array description: Target user roles @@ -55363,6 +58084,20 @@ definitions: dismissable: type: boolean description: Is dismissable + theme: + type: string + description: The theme for the message + enum: + - indigo + - light-indigo + - blue + - light-blue + - green + - light-green + - red + - light-red + - dark + - light required: - message description: Create a broadcast message @@ -55382,10 +58117,10 @@ definitions: description: Ending time color: type: string - description: Background color + description: Background color (Deprecated. Use "theme" instead.) font: type: string - description: Foreground color + description: Foreground color (Deprecated. Use "theme" instead.) target_access_levels: type: array description: Target user roles @@ -55410,6 +58145,20 @@ definitions: dismissable: type: boolean description: Is dismissable + theme: + type: string + description: The theme for the message + enum: + - indigo + - light-indigo + - blue + - light-blue + - green + - light-green + - red + - light-red + - dark + - light description: Update a broadcast message postApiV4Applications: type: object @@ -55492,16 +58241,19 @@ definitions: example: 1 status: type: string - example: finished enum: - created - started - finished - timeout - failed + example: finished source_type: type: string example: gitlab + source_url: + type: string + example: https://source.gitlab.com/ created_at: type: string format: date-time @@ -55527,13 +58279,13 @@ definitions: example: 1 status: type: string - example: created enum: - created - started - finished - timeout - failed + example: created entity_type: type: string enum: @@ -55581,6 +58333,9 @@ definitions: migrate_projects: type: boolean example: true + migrate_memberships: + type: boolean + example: true has_failures: type: boolean example: false @@ -55730,11 +58485,11 @@ definitions: example: true runner_type: type: string - example: instance_type enum: - instance_type - group_type - project_type + example: instance_type name: type: string example: test @@ -56027,6 +58782,7 @@ definitions: - requirements_v2 - annotations - repository_xray + - jacoco default: archive description: Authorize uploading job artifact postApiV4JobsIdArtifacts: @@ -56076,6 +58832,7 @@ definitions: - requirements_v2 - annotations - repository_xray + - jacoco default: archive artifact_format: type: string @@ -56736,6 +59493,7 @@ definitions: - read_api - read_user - create_runner + - manage_runner - k8s_proxy - read_repository - write_repository @@ -56882,8 +59640,8 @@ definitions: type: array items: type: string - example: - - refs/pipelines/1 + example: + - refs/pipelines/1 description: EE_API_Entities_Geo_PipelineRefs model postApiV4GeoStatus: type: object @@ -57458,206 +60216,6 @@ definitions: type: string container_repositories_replication_enabled: type: string - lfs_objects_count: - type: string - lfs_objects_checksum_total_count: - type: string - lfs_objects_checksummed_count: - type: string - lfs_objects_checksum_failed_count: - type: string - lfs_objects_synced_count: - type: string - lfs_objects_failed_count: - type: string - lfs_objects_registry_count: - type: string - lfs_objects_verification_total_count: - type: string - lfs_objects_verified_count: - type: string - lfs_objects_verification_failed_count: - type: string - merge_request_diffs_count: - type: string - merge_request_diffs_checksum_total_count: - type: string - merge_request_diffs_checksummed_count: - type: string - merge_request_diffs_checksum_failed_count: - type: string - merge_request_diffs_synced_count: - type: string - merge_request_diffs_failed_count: - type: string - merge_request_diffs_registry_count: - type: string - merge_request_diffs_verification_total_count: - type: string - merge_request_diffs_verified_count: - type: string - merge_request_diffs_verification_failed_count: - type: string - package_files_count: - type: string - package_files_checksum_total_count: - type: string - package_files_checksummed_count: - type: string - package_files_checksum_failed_count: - type: string - package_files_synced_count: - type: string - package_files_failed_count: - type: string - package_files_registry_count: - type: string - package_files_verification_total_count: - type: string - package_files_verified_count: - type: string - package_files_verification_failed_count: - type: string - terraform_state_versions_count: - type: string - terraform_state_versions_checksum_total_count: - type: string - terraform_state_versions_checksummed_count: - type: string - terraform_state_versions_checksum_failed_count: - type: string - terraform_state_versions_synced_count: - type: string - terraform_state_versions_failed_count: - type: string - terraform_state_versions_registry_count: - type: string - terraform_state_versions_verification_total_count: - type: string - terraform_state_versions_verified_count: - type: string - terraform_state_versions_verification_failed_count: - type: string - snippet_repositories_count: - type: string - snippet_repositories_checksum_total_count: - type: string - snippet_repositories_checksummed_count: - type: string - snippet_repositories_checksum_failed_count: - type: string - snippet_repositories_synced_count: - type: string - snippet_repositories_failed_count: - type: string - snippet_repositories_registry_count: - type: string - snippet_repositories_verification_total_count: - type: string - snippet_repositories_verified_count: - type: string - snippet_repositories_verification_failed_count: - type: string - group_wiki_repositories_count: - type: string - group_wiki_repositories_checksum_total_count: - type: string - group_wiki_repositories_checksummed_count: - type: string - group_wiki_repositories_checksum_failed_count: - type: string - group_wiki_repositories_synced_count: - type: string - group_wiki_repositories_failed_count: - type: string - group_wiki_repositories_registry_count: - type: string - group_wiki_repositories_verification_total_count: - type: string - group_wiki_repositories_verified_count: - type: string - group_wiki_repositories_verification_failed_count: - type: string - pipeline_artifacts_count: - type: string - pipeline_artifacts_checksum_total_count: - type: string - pipeline_artifacts_checksummed_count: - type: string - pipeline_artifacts_checksum_failed_count: - type: string - pipeline_artifacts_synced_count: - type: string - pipeline_artifacts_failed_count: - type: string - pipeline_artifacts_registry_count: - type: string - pipeline_artifacts_verification_total_count: - type: string - pipeline_artifacts_verified_count: - type: string - pipeline_artifacts_verification_failed_count: - type: string - pages_deployments_count: - type: string - pages_deployments_checksum_total_count: - type: string - pages_deployments_checksummed_count: - type: string - pages_deployments_checksum_failed_count: - type: string - pages_deployments_synced_count: - type: string - pages_deployments_failed_count: - type: string - pages_deployments_registry_count: - type: string - pages_deployments_verification_total_count: - type: string - pages_deployments_verified_count: - type: string - pages_deployments_verification_failed_count: - type: string - uploads_count: - type: string - uploads_checksum_total_count: - type: string - uploads_checksummed_count: - type: string - uploads_checksum_failed_count: - type: string - uploads_synced_count: - type: string - uploads_failed_count: - type: string - uploads_registry_count: - type: string - uploads_verification_total_count: - type: string - uploads_verified_count: - type: string - uploads_verification_failed_count: - type: string - job_artifacts_count: - type: string - job_artifacts_checksum_total_count: - type: string - job_artifacts_checksummed_count: - type: string - job_artifacts_checksum_failed_count: - type: string - job_artifacts_synced_count: - type: string - job_artifacts_failed_count: - type: string - job_artifacts_registry_count: - type: string - job_artifacts_verification_total_count: - type: string - job_artifacts_verified_count: - type: string - job_artifacts_verification_failed_count: - type: string ci_secure_files_count: type: string ci_secure_files_checksum_total_count: @@ -57738,26 +60296,6 @@ definitions: type: string dependency_proxy_manifests_verification_failed_count: type: string - project_wiki_repositories_count: - type: string - project_wiki_repositories_checksum_total_count: - type: string - project_wiki_repositories_checksummed_count: - type: string - project_wiki_repositories_checksum_failed_count: - type: string - project_wiki_repositories_synced_count: - type: string - project_wiki_repositories_failed_count: - type: string - project_wiki_repositories_registry_count: - type: string - project_wiki_repositories_verification_total_count: - type: string - project_wiki_repositories_verified_count: - type: string - project_wiki_repositories_verification_failed_count: - type: string design_management_repositories_count: type: string design_management_repositories_checksum_total_count: @@ -57778,6 +60316,146 @@ definitions: type: string design_management_repositories_verification_failed_count: type: string + group_wiki_repositories_count: + type: string + group_wiki_repositories_checksum_total_count: + type: string + group_wiki_repositories_checksummed_count: + type: string + group_wiki_repositories_checksum_failed_count: + type: string + group_wiki_repositories_synced_count: + type: string + group_wiki_repositories_failed_count: + type: string + group_wiki_repositories_registry_count: + type: string + group_wiki_repositories_verification_total_count: + type: string + group_wiki_repositories_verified_count: + type: string + group_wiki_repositories_verification_failed_count: + type: string + job_artifacts_count: + type: string + job_artifacts_checksum_total_count: + type: string + job_artifacts_checksummed_count: + type: string + job_artifacts_checksum_failed_count: + type: string + job_artifacts_synced_count: + type: string + job_artifacts_failed_count: + type: string + job_artifacts_registry_count: + type: string + job_artifacts_verification_total_count: + type: string + job_artifacts_verified_count: + type: string + job_artifacts_verification_failed_count: + type: string + lfs_objects_count: + type: string + lfs_objects_checksum_total_count: + type: string + lfs_objects_checksummed_count: + type: string + lfs_objects_checksum_failed_count: + type: string + lfs_objects_synced_count: + type: string + lfs_objects_failed_count: + type: string + lfs_objects_registry_count: + type: string + lfs_objects_verification_total_count: + type: string + lfs_objects_verified_count: + type: string + lfs_objects_verification_failed_count: + type: string + merge_request_diffs_count: + type: string + merge_request_diffs_checksum_total_count: + type: string + merge_request_diffs_checksummed_count: + type: string + merge_request_diffs_checksum_failed_count: + type: string + merge_request_diffs_synced_count: + type: string + merge_request_diffs_failed_count: + type: string + merge_request_diffs_registry_count: + type: string + merge_request_diffs_verification_total_count: + type: string + merge_request_diffs_verified_count: + type: string + merge_request_diffs_verification_failed_count: + type: string + package_files_count: + type: string + package_files_checksum_total_count: + type: string + package_files_checksummed_count: + type: string + package_files_checksum_failed_count: + type: string + package_files_synced_count: + type: string + package_files_failed_count: + type: string + package_files_registry_count: + type: string + package_files_verification_total_count: + type: string + package_files_verified_count: + type: string + package_files_verification_failed_count: + type: string + pages_deployments_count: + type: string + pages_deployments_checksum_total_count: + type: string + pages_deployments_checksummed_count: + type: string + pages_deployments_checksum_failed_count: + type: string + pages_deployments_synced_count: + type: string + pages_deployments_failed_count: + type: string + pages_deployments_registry_count: + type: string + pages_deployments_verification_total_count: + type: string + pages_deployments_verified_count: + type: string + pages_deployments_verification_failed_count: + type: string + pipeline_artifacts_count: + type: string + pipeline_artifacts_checksum_total_count: + type: string + pipeline_artifacts_checksummed_count: + type: string + pipeline_artifacts_checksum_failed_count: + type: string + pipeline_artifacts_synced_count: + type: string + pipeline_artifacts_failed_count: + type: string + pipeline_artifacts_registry_count: + type: string + pipeline_artifacts_verification_total_count: + type: string + pipeline_artifacts_verified_count: + type: string + pipeline_artifacts_verification_failed_count: + type: string project_repositories_count: type: string project_repositories_checksum_total_count: @@ -57798,6 +60476,86 @@ definitions: type: string project_repositories_verification_failed_count: type: string + project_wiki_repositories_count: + type: string + project_wiki_repositories_checksum_total_count: + type: string + project_wiki_repositories_checksummed_count: + type: string + project_wiki_repositories_checksum_failed_count: + type: string + project_wiki_repositories_synced_count: + type: string + project_wiki_repositories_failed_count: + type: string + project_wiki_repositories_registry_count: + type: string + project_wiki_repositories_verification_total_count: + type: string + project_wiki_repositories_verified_count: + type: string + project_wiki_repositories_verification_failed_count: + type: string + snippet_repositories_count: + type: string + snippet_repositories_checksum_total_count: + type: string + snippet_repositories_checksummed_count: + type: string + snippet_repositories_checksum_failed_count: + type: string + snippet_repositories_synced_count: + type: string + snippet_repositories_failed_count: + type: string + snippet_repositories_registry_count: + type: string + snippet_repositories_verification_total_count: + type: string + snippet_repositories_verified_count: + type: string + snippet_repositories_verification_failed_count: + type: string + terraform_state_versions_count: + type: string + terraform_state_versions_checksum_total_count: + type: string + terraform_state_versions_checksummed_count: + type: string + terraform_state_versions_checksum_failed_count: + type: string + terraform_state_versions_synced_count: + type: string + terraform_state_versions_failed_count: + type: string + terraform_state_versions_registry_count: + type: string + terraform_state_versions_verification_total_count: + type: string + terraform_state_versions_verified_count: + type: string + terraform_state_versions_verification_failed_count: + type: string + uploads_count: + type: string + uploads_checksum_total_count: + type: string + uploads_checksummed_count: + type: string + uploads_checksum_failed_count: + type: string + uploads_synced_count: + type: string + uploads_failed_count: + type: string + uploads_registry_count: + type: string + uploads_verification_total_count: + type: string + uploads_verified_count: + type: string + uploads_verification_failed_count: + type: string git_fetch_event_count_weekly: type: string git_push_event_count_weekly: @@ -57810,46 +60568,6 @@ definitions: type: string replication_slots_used_in_percentage: type: string - lfs_objects_synced_in_percentage: - type: string - lfs_objects_verified_in_percentage: - type: string - merge_request_diffs_synced_in_percentage: - type: string - merge_request_diffs_verified_in_percentage: - type: string - package_files_synced_in_percentage: - type: string - package_files_verified_in_percentage: - type: string - terraform_state_versions_synced_in_percentage: - type: string - terraform_state_versions_verified_in_percentage: - type: string - snippet_repositories_synced_in_percentage: - type: string - snippet_repositories_verified_in_percentage: - type: string - group_wiki_repositories_synced_in_percentage: - type: string - group_wiki_repositories_verified_in_percentage: - type: string - pipeline_artifacts_synced_in_percentage: - type: string - pipeline_artifacts_verified_in_percentage: - type: string - pages_deployments_synced_in_percentage: - type: string - pages_deployments_verified_in_percentage: - type: string - uploads_synced_in_percentage: - type: string - uploads_verified_in_percentage: - type: string - job_artifacts_synced_in_percentage: - type: string - job_artifacts_verified_in_percentage: - type: string ci_secure_files_synced_in_percentage: type: string ci_secure_files_verified_in_percentage: @@ -57866,18 +60584,58 @@ definitions: type: string dependency_proxy_manifests_verified_in_percentage: type: string - project_wiki_repositories_synced_in_percentage: - type: string - project_wiki_repositories_verified_in_percentage: - type: string design_management_repositories_synced_in_percentage: type: string design_management_repositories_verified_in_percentage: type: string + group_wiki_repositories_synced_in_percentage: + type: string + group_wiki_repositories_verified_in_percentage: + type: string + job_artifacts_synced_in_percentage: + type: string + job_artifacts_verified_in_percentage: + type: string + lfs_objects_synced_in_percentage: + type: string + lfs_objects_verified_in_percentage: + type: string + merge_request_diffs_synced_in_percentage: + type: string + merge_request_diffs_verified_in_percentage: + type: string + package_files_synced_in_percentage: + type: string + package_files_verified_in_percentage: + type: string + pages_deployments_synced_in_percentage: + type: string + pages_deployments_verified_in_percentage: + type: string + pipeline_artifacts_synced_in_percentage: + type: string + pipeline_artifacts_verified_in_percentage: + type: string project_repositories_synced_in_percentage: type: string project_repositories_verified_in_percentage: type: string + project_wiki_repositories_synced_in_percentage: + type: string + project_wiki_repositories_verified_in_percentage: + type: string + snippet_repositories_synced_in_percentage: + type: string + snippet_repositories_verified_in_percentage: + type: string + terraform_state_versions_synced_in_percentage: + type: string + terraform_state_versions_verified_in_percentage: + type: string + uploads_synced_in_percentage: + type: string + uploads_verified_in_percentage: + type: string repositories_count: type: string replication_slots_count: @@ -58283,49 +61041,6 @@ definitions: trial: type: boolean description: API_Entities_Namespace model - postApiV4NamespacesIdGitlabSubscription: - type: object - properties: - start_date: - type: string - format: date - description: The date when subscription was started - seats: - type: integer - format: int32 - description: Number of seats in subscription - max_seats_used: - type: integer - format: int32 - description: Highest number of active users in the last month - plan_code: - type: string - description: Subscription tier code - end_date: - type: string - format: date - description: End date of subscription - auto_renew: - type: boolean - description: Whether subscription will auto renew on end date - trial: - type: boolean - description: Whether the subscription is a trial - trial_ends_on: - type: string - format: date - description: End date of trial - trial_starts_on: - type: string - format: date - description: Start date of trial - trial_extension_type: - type: integer - format: int32 - description: Whether subscription is an extended or reactivated trial - required: - - start_date - description: Create a subscription for the namespace API_Entities_GitlabSubscription: type: object properties: @@ -58365,47 +61080,6 @@ definitions: trial_ends_on: type: string description: API_Entities_GitlabSubscription model - putApiV4NamespacesIdGitlabSubscription: - type: object - properties: - start_date: - type: string - format: date - description: Start date of subscription - seats: - type: integer - format: int32 - description: Number of seats in subscription - max_seats_used: - type: integer - format: int32 - description: Highest number of active users in the last month - plan_code: - type: string - description: Subscription tier code - end_date: - type: string - format: date - description: End date of subscription - auto_renew: - type: boolean - description: Whether subscription will auto renew on end date - trial: - type: boolean - description: Whether the subscription is a trial - trial_ends_on: - type: string - format: date - description: End date of trial - trial_starts_on: - type: string - format: date - description: Start date of trial - trial_extension_type: - type: integer - format: int32 - description: Whether subscription is an extended or reactivated trial - description: Update the subscription for the namespace postApiV4NamespacesIdStorageLimitExclusion: type: object properties: @@ -58442,8 +61116,58 @@ definitions: type: array items: type: string - example: my-group1 + example: my-group1 description: API_Entities_NamespaceExistence model + postApiV4Organizations: + type: object + properties: + name: + type: string + description: The name of the organization + path: + type: string + description: The path of the organization + description: + type: string + description: The description of the organization + avatar: + type: file + description: The avatar image for the organization + required: + - name + - path + description: Create an organization + API_Entities_Organizations_Organization: + type: object + properties: + id: + type: integer + format: int32 + example: 1 + name: + type: string + example: GitLab + path: + type: string + example: gitlab + description: + type: string + example: My description + created_at: + type: string + format: date-time + example: '2022-02-24T20:22:30.097Z' + updated_at: + type: string + format: date-time + example: '2022-02-24T20:22:30.097Z' + web_url: + type: string + example: https://example.com/-/organizations/gitlab + avatar_url: + type: string + example: https://example.com/uploads/-/system/organizations/organization_detail/avatar/1/avatar.png + description: API_Entities_Organizations_Organization model API_Entities_PagesDomainBasic: type: object properties: @@ -58588,7 +61312,7 @@ definitions: type: array items: type: string - example: e0d123e5f316bef78bfdf5a008837577 + example: e0d123e5f316bef78bfdf5a008837577 imported: type: boolean example: false @@ -58647,7 +61371,7 @@ definitions: type: array items: type: string - example: e0d123e5f316bef78bfdf5a008837577 + example: e0d123e5f316bef78bfdf5a008837577 imported: type: boolean example: false @@ -58882,6 +61606,24 @@ definitions: - ids description: Apply multiple suggestion patches in the Merge Request where they were created + putApiV4HooksHookIdUrlVariablesKey: + type: object + properties: + value: + type: string + description: The value of the variable + required: + - value + description: Set a url variable + putApiV4HooksHookIdCustomHeadersKey: + type: object + properties: + value: + type: string + description: The value of the custom header + required: + - value + description: Set a custom header API_Entities_Hook: type: object properties: @@ -58922,11 +61664,23 @@ definitions: type: array items: type: object - example: - token: secr3t + example: + token: secr3t + push_events_branch_filter: + type: string + example: my-branch-* + branch_filter_strategy: + type: string + example: wildcard custom_webhook_template: type: string example: '{"event":"{{object_kind}}"}' + custom_headers: + type: array + items: + type: object + example: + X-Custom-Header: value description: API_Entities_Hook model postApiV4Hooks: type: object @@ -58960,6 +61714,17 @@ definitions: enable_ssl_verification: type: boolean description: Do SSL verification when triggering the hook + push_events_branch_filter: + type: string + description: Trigger hook on specified branch only + branch_filter_strategy: + type: string + description: Filter push events by branch. Possible values are `wildcard` + (default), `regex`, and `all_branches` + enum: + - wildcard + - regex + - all_branches url_variables: type: array description: URL variables for interpolation @@ -58977,6 +61742,23 @@ definitions: required: - key - value + custom_headers: + type: array + description: Custom headers + items: + type: object + properties: + key: + type: string + description: Name of the header + example: X-Custom-Header + value: + type: string + description: Value of the header + example: value + required: + - key + - value required: - url description: Add new system hook @@ -59011,6 +61793,17 @@ definitions: enable_ssl_verification: type: boolean description: Do SSL verification when triggering the hook + push_events_branch_filter: + type: string + description: Trigger hook on specified branch only + branch_filter_strategy: + type: string + description: Filter push events by branch. Possible values are `wildcard` + (default), `regex`, and `all_branches` + enum: + - wildcard + - regex + - all_branches url_variables: type: array description: URL variables for interpolation @@ -59028,16 +61821,24 @@ definitions: required: - key - value + custom_headers: + type: array + description: Custom headers + items: + type: object + properties: + key: + type: string + description: Name of the header + example: X-Custom-Header + value: + type: string + description: Value of the header + example: value + required: + - key + - value description: Edit system hook - putApiV4HooksHookIdUrlVariablesKey: - type: object - properties: - value: - type: string - description: The value of the variable - required: - - value - description: Set a url variable postApiV4FeatureFlagsUnleashProjectIdClientRegister: type: object properties: @@ -59093,9 +61894,59 @@ definitions: format: int32 description: Project ID example: 1234 + additional_properties: + type: object + description: Additional properties to be tracked + example: + label: login_button + value: 1 + send_to_snowplow: + type: boolean + description: Send the tracked event to Snowplow + default: false + example: true required: - event description: Track gitlab internal events + postApiV4UsageDataTrackEvents: + type: object + properties: + events: + type: array + description: An array of internal events. Maximum 50 events allowed. + items: + type: object + properties: + event: + type: string + description: The event name that should be tracked + example: i_quickactions_page + namespace_id: + type: integer + format: int32 + description: Namespace ID + example: 1234 + project_id: + type: integer + format: int32 + description: Project ID + example: 1234 + additional_properties: + type: object + description: Additional properties to be tracked + example: + label: login_button + value: 1 + send_to_snowplow: + type: boolean + description: Send the tracked event to Snowplow + default: false + example: true + required: + - event + required: + - events + description: Track multiple gitlab internal events postApiV4UserKeys: type: object properties: @@ -59157,6 +62008,15 @@ definitions: zuora_payment_method_xid: type: string description: The Zuora payment method ID + stripe_setup_intent_xid: + type: string + description: The Stripe setup intent ID + stripe_payment_method_xid: + type: string + description: The Stripe payment method ID + stripe_card_fingerprint: + type: string + description: The Stripe credit card fingerprint required: - credit_card_validated_at - credit_card_expiration_month @@ -59283,6 +62143,30 @@ definitions: required: - avatar description: Set the avatar of the current user + postApiV4UserPersonalAccessTokens: + type: object + properties: + name: + type: string + description: The name of the personal access token + scopes: + type: array + description: The array of scopes of the personal access token + items: + type: string + enum: + - k8s_proxy + expires_at: + type: string + format: date + description: The expiration date in the format YEAR-MONTH-DAY of the personal + access token + default: {} + required: + - name + - scopes + description: Create a personal access token with limited scopes for the currently + authenticated user postApiV4UserRunners: type: object properties: @@ -59341,30 +62225,6 @@ definitions: - group_id - project_id description: Create a runner owned by currently authenticated user - postApiV4UserPersonalAccessTokens: - type: object - properties: - name: - type: string - description: The name of the personal access token - scopes: - type: array - description: The array of scopes of the personal access token - items: - type: string - enum: - - k8s_proxy - expires_at: - type: string - format: date - description: The expiration date in the format YEAR-MONTH-DAY of the personal - access token - default: {} - required: - - name - - scopes - description: Create a personal access token with limited scopes for the currently - authenticated user API_Entities_UserCounts: type: object properties: @@ -59428,6 +62288,14 @@ definitions: type: integer format: int32 example: 3221225472 + dotenv_variables: + type: integer + format: int32 + example: 20 + dotenv_size: + type: integer + format: int32 + example: 5120 enforcement_limit: type: integer format: int32 @@ -59533,6 +62401,14 @@ definitions: type: integer format: int32 description: Maximum Conan package file size in bytes + dotenv_size: + type: integer + format: int32 + description: Maximum size of a dotenv artifact in bytes + dotenv_variables: + type: integer + format: int32 + description: Maximum number of variables in a dotenv artifact enforcement_limit: type: integer format: int32 @@ -59679,6 +62555,23 @@ definitions: example: 21 description: Number of active users description: API_Entities_ApplicationStatistics model + postApiV4DeployKeys: + type: object + properties: + key: + type: string + description: New deploy key + title: + type: string + description: New deploy key's title + expires_at: + type: string + format: date-time + description: The expiration date of the SSH key in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ) + required: + - key + - title + description: Create a deploy key postApiV4ImportBitbucket: type: object properties: @@ -59721,18 +62614,21 @@ definitions: example: GitLab Org / GitLab refs_url: type: string + forked: + type: boolean + example: true import_source: type: string example: source/source-repo import_status: type: string - example: scheduled enum: - scheduled - started - finished - failed - canceled + example: scheduled human_import_status_name: type: string example: canceled @@ -59801,6 +62697,9 @@ definitions: example: GitLab Org / GitLab refs_url: type: string + forked: + type: boolean + example: true description: ProjectEntity model postApiV4ImportGithub: type: object @@ -59820,7 +62719,8 @@ definitions: description: Namespace or group to import repository into github_hostname: type: string - description: Custom GitHub enterprise hostname + description: 'Custom GitHub enterprise hostname. For example: https://github.example.com. + From GitLab 16.5 to GitLab 17.1, you must include the path `/api/v3`.' optional_stages: type: object description: Optional stages of import to be performed @@ -59880,6 +62780,9 @@ definitions: externalUrl: type: string example: grpc://gitlab.example.com:8150 + externalK8sProxyUrl: + type: string + example: https://gitlab.example.com:8150/k8s-proxy version: type: string example: 15.0.0 @@ -59899,14 +62802,11 @@ definitions: type: string total_projects_count: type: string + organization_id: + type: string avatar_url: type: string description: API_Entities_Projects_Topic model - API_Entities_Web_Commits: - type: object - properties: - public_key: - type: string postApiV4Topics: type: object properties: @@ -59922,6 +62822,11 @@ definitions: avatar: type: file description: Avatar image for topic + organization_id: + type: integer + format: int32 + description: The organization id for the topic + default: {} required: - name - title diff --git a/doc/development/database/avoiding_downtime_in_migrations.md b/doc/development/database/avoiding_downtime_in_migrations.md index f4b11a188dd..b30e8cda014 100644 --- a/doc/development/database/avoiding_downtime_in_migrations.md +++ b/doc/development/database/avoiding_downtime_in_migrations.md @@ -306,7 +306,7 @@ Changing column defaults is difficult because of how Rails handles values that are equal to the default. NOTE: -Rails ignores sending the default values to PostgreSQL when writing records. It leaves this task to +Rails ignores sending the default values to PostgreSQL when inserting records, if the [partial_inserts](https://gitlab.com/gitlab-org/gitlab/-/blob/55ac06c9083434e6c18e0a2aaf8be5f189ef34eb/config/application.rb#L40) config has been enabled. It leaves this task to the database. When migrations change the default values of the columns, the running application is unaware of this change due to the schema cache. The application is then under the risk of accidentally writing wrong data to the database, especially when deploying the new version of the code diff --git a/doc/development/documentation/styleguide/word_list.md b/doc/development/documentation/styleguide/word_list.md index c9ddf615d1a..0ac2d630c0e 100644 --- a/doc/development/documentation/styleguide/word_list.md +++ b/doc/development/documentation/styleguide/word_list.md @@ -650,6 +650,7 @@ Use **default role** when referring to the following predefined roles that have no customized permissions added: - Guest +- Planner - Reporter - Developer - Maintainer @@ -693,13 +694,16 @@ See also: [ancestor](#ancestor), [child](#child), and [subgroup](#subgroup). When writing about the Developer role: - Use a capital **D**. -- Do not use bold. -- Do not use the phrase, **if you are a developer** to mean someone who is assigned the Developer - role. Instead, write it out. For example, **if you are assigned the Developer role**. -- To describe a situation where the Developer role is the minimum required: +- Write it out. + - Use: if you are assigned the Developer role + - Instead of: if you are a Developer + +- When the Developer role is the minimum required role: - Use: at least the Developer role - Instead of: the Developer role or higher +Do not use bold. + Do not use **Developer permissions**. A user who is assigned the Developer role has a set of associated permissions. ## DevSecOps platform @@ -1832,6 +1836,23 @@ Use sentence case for **personal access token**. Capitalize the first word when you refer to the UI. +## Planner + +When writing about the Planner role: + +- Use a capital **P**. +- Write it out. + - Use: if you are assigned the Planner role + - Instead of: if you are a Planner + +- When the Planner role is the minimum required role: + - Use: at least the Planner role + - Instead of: the Planner role or higher + +Do not use bold. + +Do not use **Planner permissions**. A user who is assigned the Planner role has a set of associated permissions. + ## please Do not use **please** in the product documentation. diff --git a/doc/user/enterprise_user/index.md b/doc/user/enterprise_user/index.md index 45939ede7f4..b8f0d4efbf0 100644 --- a/doc/user/enterprise_user/index.md +++ b/doc/user/enterprise_user/index.md @@ -248,6 +248,10 @@ Changing an enterprise user's primary email to an email from a non-verified doma A top-level group Owner can [disable password authentication for enterprise users](../group/saml_sso/index.md#disable-password-authentication-for-enterprise-users). +## Related topics + +- [Group enterprise users API](../../api/group_enterprise_users.md) + ## Troubleshooting ### Cannot disable two-factor authentication for an enterprise user diff --git a/doc/user/group/import/direct_transfer_migrations.md b/doc/user/group/import/direct_transfer_migrations.md index 88ee653a555..8b1afe92e37 100644 --- a/doc/user/group/import/direct_transfer_migrations.md +++ b/doc/user/group/import/direct_transfer_migrations.md @@ -70,7 +70,7 @@ GitLab 16.8. - For [a whole instance](../../../administration/settings/visibility_and_access_controls.md#define-which-roles-can-create-projects). - For [specific groups](../index.md#specify-who-can-add-projects-to-a-group). -## User contributions and membership mapping +## User contribution and membership mapping DETAILS: **Offering:** Self-managed, GitLab Dedicated @@ -80,11 +80,11 @@ DETAILS: > - Full support for mapping inherited membership [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/458834) in GitLab 17.1. > - Removed from GitLab.com direct transfer migrations in GitLab 17.5 in favor of [the alternative](../../project/import/index.md#user-contribution-and-membership-mapping). -This method of user contributions and membership mapping is available for +This method of user contribution and membership mapping is available for GitLab self-managed without enabled feature flags. For information on the other method available for GitLab self-managed with enabled feature flags and for GitLab.com, -see [User contribution and membership mapping](../../project/import/index.md#user-contribution-and-membership-mapping). +see [user contribution and membership mapping](../../project/import/index.md#user-contribution-and-membership-mapping). Users are never created during a migration. Instead, contributions and membership of users on the source instance are mapped to users on the destination instance. The type of mapping of a user's membership depends on the diff --git a/doc/user/group/import/migrated_items.md b/doc/user/group/import/migrated_items.md index 590ffabe38e..507d4a3bdb5 100644 --- a/doc/user/group/import/migrated_items.md +++ b/doc/user/group/import/migrated_items.md @@ -53,13 +53,13 @@ Group items that are migrated to the destination GitLab instance include: **Footnotes:** -1. Epic resource state events [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/291983) in GitLab 15.4, label - associations [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62074) in GitLab 13.12, state and - state ID [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28203) in GitLab 13.7, and system note - metadata [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63551) in GitLab 14.0. -1. Group Labels cannot retain any associated Label Priorities during import. These labels will need to be re-prioritized manually - once the relevant Project is migrated to the destination instance. -1. See [User contributions and membership mapping](direct_transfer_migrations.md#user-contributions-and-membership-mapping). +1. State and state ID [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28203) in GitLab 13.7. + Label associations [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62074) in GitLab 13.12. + System note metadata [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63551) in GitLab 14.0. + Epic resource state events [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/291983) in GitLab 15.4. +1. Group labels cannot retain any associated label priorities during import. + You must prioritize these labels again manually after you migrate the relevant project to the destination instance. +1. See [user contribution and membership mapping](direct_transfer_migrations.md#user-contribution-and-membership-mapping). @@ -143,9 +143,9 @@ Project items that are migrated to the destination GitLab instance include: **Footnotes:** -1. Imported branches respect the [default branch protection settings](../../project/repository/branches/protected.md) - of the destination group, which could cause an unprotected branch to be imported as protected. -1. See [User contributions and membership mapping](direct_transfer_migrations.md#user-contributions-and-membership-mapping). +1. Imported branches respect the [default branch protection settings](../../project/repository/branches/protected.md) of the destination group. + These settings might cause an unprotected branch to be imported as protected. +1. See [user contribution and membership mapping](direct_transfer_migrations.md#user-contribution-and-membership-mapping). ### Issue-related items diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 6f427c4ff70..c2b6a11de67 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -30,6 +30,8 @@ It's okay to list multiple related objects per line (for example, "View pipeline ## Roles +> - Planner role [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/482733) in GitLab 17.7. + You can assign users a default role or a [custom role](custom_roles.md). The available default roles are: diff --git a/doc/user/project/import/gitea.md b/doc/user/project/import/gitea.md index c3cf2aed44d..a26c77fc5f9 100644 --- a/doc/user/project/import/gitea.md +++ b/doc/user/project/import/gitea.md @@ -100,4 +100,4 @@ This method of user contribution mapping is available for GitLab self-managed wi For information on the other method available for GitLab self-managed with enabled feature flags and for GitLab.com, -see [User contribution and membership mapping](../../project/import/index.md#user-contribution-and-membership-mapping). +see [user contribution and membership mapping](../../project/import/index.md#user-contribution-and-membership-mapping). diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index 52c467eaffa..5a67aa5742f 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -97,14 +97,14 @@ For more information, see the history. NOTE: To leave feedback about this feature, add a comment to [issue 502565](https://gitlab.com/gitlab-org/gitlab/-/issues/502565). -This method of user contributions and membership mapping is available for +This method of user contribution and membership mapping is available for [direct transfer migrations](../../group/import/index.md) on: - GitLab.com - GitLab self-managed when two feature flags are enabled For information on the other method available for GitLab self-managed without enabled feature flags, -see [User contributions and membership mapping](../../group/import/direct_transfer_migrations.md#user-contributions-and-membership-mapping). +see [user contribution and membership mapping](../../group/import/direct_transfer_migrations.md#user-contribution-and-membership-mapping). With user contribution and membership mapping, you can assign imported contributions and memberships to users on the destination instance after import has completed. Unlike the previous method of user contribution and membership mapping, diff --git a/lib/api/groups.rb b/lib/api/groups.rb index 93e7e6418f3..c0c37d1d371 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -30,7 +30,7 @@ module API optional :order_by, type: String, values: %w[name path id similarity], default: 'name', desc: 'Order by name, path, id or similarity if searching' optional :sort, type: String, values: %w[asc desc], default: 'asc', desc: 'Sort by asc (ascending) or desc (descending)' optional :min_access_level, type: Integer, values: Gitlab::Access.all_values, desc: 'Minimum access level of authenticated user' - optional :top_level_only, type: Boolean, desc: 'Only include top level groups' + optional :top_level_only, type: Boolean, desc: 'Only include top-level groups' use :optional_group_list_params_ee use :pagination end @@ -539,14 +539,14 @@ module API present_groups params, groups, serializer: Entities::PublicGroupDetails end - desc 'Transfer a group to a new parent group or promote a subgroup to a root group' do + desc 'Transfer a group to a new parent group or promote a subgroup to a top-level group' do tags %w[groups] end params do optional :group_id, type: Integer, desc: 'The ID of the target group to which the group needs to be transferred to.'\ - 'If not provided, the source group will be promoted to a root group.' + 'If not provided, the source group will be promoted to a top-level group.' end post ':id/transfer', feature_category: :groups_and_projects do group = find_group!(params[:id]) diff --git a/lib/gitlab/background_migration/backfill_software_license_spdx_identifier_for_software_license_policies.rb b/lib/gitlab/background_migration/backfill_software_license_spdx_identifier_for_software_license_policies.rb new file mode 100644 index 00000000000..f2e306c1378 --- /dev/null +++ b/lib/gitlab/background_migration/backfill_software_license_spdx_identifier_for_software_license_policies.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Gitlab + module BackgroundMigration + class BackfillSoftwareLicenseSpdxIdentifierForSoftwareLicensePolicies < BatchedMigrationJob + feature_category :security_policy_management + + def perform; end + end + end +end + +Gitlab::BackgroundMigration::BackfillSoftwareLicenseSpdxIdentifierForSoftwareLicensePolicies.prepend_mod_with('Gitlab::BackgroundMigration::BackfillSoftwareLicenseSpdxIdentifierForSoftwareLicensePolicies') # rubocop:disable Layout/LineLength -- ignore diff --git a/lib/gitlab/database/alter_cell_sequences_range.rb b/lib/gitlab/database/alter_cell_sequences_range.rb index 08c4624dcbf..e2077126355 100644 --- a/lib/gitlab/database/alter_cell_sequences_range.rb +++ b/lib/gitlab/database/alter_cell_sequences_range.rb @@ -20,7 +20,7 @@ module Gitlab sequences.each do |sequence| with_lock_retries do connection.execute(alter_sequence_query(sequence.seq_name)) - logger.info("Altered cell sequence #{sequence}. Updated with (#{minval}, #{maxval})") + logger.info("Altered cell sequence #{sequence.seq_name}. Updated with (#{minval}, #{maxval})") end end end diff --git a/lib/tasks/gitlab/db/alter_cell_sequences_range.rake b/lib/tasks/gitlab/db/alter_cell_sequences_range.rake index 6dc6979470f..a187e0454ef 100644 --- a/lib/tasks/gitlab/db/alter_cell_sequences_range.rake +++ b/lib/tasks/gitlab/db/alter_cell_sequences_range.rake @@ -7,6 +7,9 @@ namespace :gitlab do task :alter_cell_sequences_range, [:minval, :maxval] => :environment do |_t, args| next unless Gitlab.com_except_jh? || Gitlab.dev_or_test_env? + # This is a safety check to ensure this rake does not alters the sequences for the Legacy Cell + next if Gitlab.config.skip_sequence_alteration? + Gitlab::Database::EachDatabase.each_connection do |connection, _database_name| Gitlab::Database::AlterCellSequencesRange.new(args.minval&.to_i, args.maxval&.to_i, connection).execute end diff --git a/package.json b/package.json index 8267f3c3af0..9c2fe62dcd1 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@gitlab/fonts": "^1.3.0", "@gitlab/query-language": "^0.0.5-a-20241112", "@gitlab/svgs": "3.121.0", - "@gitlab/ui": "103.1.0", + "@gitlab/ui": "103.5.0", "@gitlab/vue-router-vue3": "npm:vue-router@4.1.6", "@gitlab/vuex-vue3": "npm:vuex@4.0.0", "@gitlab/web-ide": "^0.0.1-dev-20240909013227", diff --git a/scripts/frontend/quarantined_vue3_specs.txt b/scripts/frontend/quarantined_vue3_specs.txt index 5e1169f7b20..18c05862a84 100644 --- a/scripts/frontend/quarantined_vue3_specs.txt +++ b/scripts/frontend/quarantined_vue3_specs.txt @@ -103,7 +103,6 @@ ee/spec/frontend/security_configuration/components/app_spec.js ee/spec/frontend/security_configuration/components/dynamic_fields_spec.js ee/spec/frontend/security_configuration/components/expandable_section_spec.js ee/spec/frontend/security_configuration/dast_profiles/components/dast_profiles_list_spec.js -ee/spec/frontend/security_configuration/dast_profiles/dast_scanner_profiles_form/components/dast_scanner_profiles_form_spec.js ee/spec/frontend/security_dashboard/components/project/security_scanner_alert_spec.js ee/spec/frontend/security_dashboard/components/shared/empty_states/dashboard_has_no_vulnerabilities_spec.js ee/spec/frontend/security_dashboard/components/shared/filters/querystring_sync_spec.js @@ -352,8 +351,6 @@ spec/frontend/super_sidebar/components/flyout_menu_spec.js spec/frontend/super_sidebar/components/global_search/components/frequent_items_spec.js spec/frontend/super_sidebar/components/nav_item_router_link_spec.js spec/frontend/super_sidebar/components/organization_switcher_spec.js -spec/frontend/super_sidebar/components/sidebar_hover_peek_behavior_spec.js -spec/frontend/super_sidebar/components/sidebar_peek_behavior_spec.js spec/frontend/super_sidebar/components/sidebar_portal_spec.js spec/frontend/super_sidebar/components/user_menu_spec.js spec/frontend/tags/components/delete_tag_modal_spec.js diff --git a/spec/features/work_items/work_item_children_spec.rb b/spec/features/work_items/work_item_children_spec.rb index 69a56cf26d5..36017b2f64c 100644 --- a/spec/features/work_items/work_item_children_spec.rb +++ b/spec/features/work_items/work_item_children_spec.rb @@ -3,12 +3,16 @@ require 'spec_helper' RSpec.describe 'Work item children', :js, feature_category: :team_planning do + include DragTo + let_it_be(:group) { create(:group) } let_it_be(:project) { create(:project, :public, namespace: group) } let_it_be(:user) { create(:user) } let_it_be(:issue) { create(:issue, project: project) } context 'for signed in user' do + let(:child_item) { create(:work_item, :task, project: project) } + before do project.add_developer(user) @@ -21,27 +25,7 @@ RSpec.describe 'Work item children', :js, feature_category: :team_planning do wait_for_requests end - it 'are not displayed when issue does not have work item children', :aggregate_failures do - within_testid('work-item-links') do - expect(find_by_testid('crud-body')).to have_content(_('No child items are currently assigned.')) - expect(page).not_to have_selector('[data-testid="add-links-form"]') - expect(page).not_to have_selector('[data-testid="links-child"]') - end - end - - it 'toggles widget body', :aggregate_failures do - within_testid('work-item-links') do - expect(page).to have_selector('[data-testid="crud-body"]') - - click_button 'Collapse' - - expect(page).not_to have_selector('[data-testid="crud-body"]') - - click_button 'Expand' - - expect(page).to have_selector('[data-testid="crud-body"]') - end - end + it_behaves_like 'work items hierarchy', 'work-item-links', :task it 'toggles form', :aggregate_failures do within_testid('work-item-links') do @@ -58,86 +42,7 @@ RSpec.describe 'Work item children', :js, feature_category: :team_planning do end end - it 'adds a new child task', :aggregate_failures, - quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/461666' do - allow(Gitlab::QueryLimiting::Transaction).to receive(:threshold).and_return(108) - - within_testid('work-item-links') do - click_button 'Add' - click_button 'New task' - - expect(page).to have_button('Create task', disabled: true) - fill_in 'Add a title', with: 'Task 1' - - expect(page).to have_button('Create task', disabled: false) - - click_button 'Create task' - - wait_for_all_requests - - expect(find_by_testid('links-child')).to have_content('Task 1') - end - end - - it 'removes a child task and undoing', :aggregate_failures do - allow(Gitlab::QueryLimiting::Transaction).to receive(:threshold).and_return(112) - within_testid('work-item-links') do - click_button 'Add' - click_button 'New task' - fill_in 'Add a title', with: 'Task 1' - click_button 'Create task' - wait_for_all_requests - - expect(find_by_testid('links-child')).to have_content('Task 1') - expect(find_by_testid('crud-count')).to have_content('1') - - find_by_testid('links-child').hover - find_by_testid('remove-work-item-link').click - - wait_for_all_requests - - expect(page).not_to have_content('Task 1') - expect(find_by_testid('crud-count')).to have_content('0') - end - - page.within('.gl-toast') do - expect(find('.toast-body')).to have_content(_('Child removed')) - find('.b-toaster a', text: 'Undo').click - end - - wait_for_all_requests - - within_testid('work-item-links') do - expect(find_by_testid('links-child')).to have_content('Task 1') - expect(find_by_testid('crud-count')).to have_content('1') - end - end - context 'with existing task' do - let_it_be(:task) { create(:work_item, :task, project: project) } - - it 'adds an existing child task', :aggregate_failures do - within_testid('work-item-links') do - click_button 'Add' - click_button 'Existing task' - - expect(page).to have_button('Add task', disabled: true) - find_by_testid('work-item-token-select-input').set(task.title) - wait_for_all_requests - click_button task.title - - expect(page).to have_button('Add task', disabled: false) - - send_keys :escape - - click_button('Add task') - - wait_for_all_requests - - expect(find_by_testid('links-child')).to have_content(task.title) - end - end - context 'with confidential issue' do let_it_be_with_reload(:issue) { create(:issue, :confidential, project: project) } let_it_be(:task) { create(:work_item, :confidential, :task, project: project) } diff --git a/spec/frontend/admin/application_settings/inactive_project_deletion/components/form_spec.js b/spec/frontend/admin/application_settings/inactive_project_deletion/components/form_spec.js index bda38db9595..f89ab6a4c0e 100644 --- a/spec/frontend/admin/application_settings/inactive_project_deletion/components/form_spec.js +++ b/spec/frontend/admin/application_settings/inactive_project_deletion/components/form_spec.js @@ -9,16 +9,16 @@ describe('Form component', () => { const findProjectDeletionSettings = () => wrapper.findByTestId('inactive-project-deletion-settings'); const findMinSizeGroup = () => wrapper.findByTestId('min-size-group'); - const findMinSizeInputGroup = () => wrapper.findByTestId('min-size-input-group'); + const findMinSizeInputGroupText = () => wrapper.findByTestId('min-size-input-group-text'); const findMinSizeInput = () => wrapper.findByTestId('min-size-input'); const findDeleteAfterMonthsGroup = () => wrapper.findByTestId('delete-after-months-group'); - const findDeleteAfterMonthsInputGroup = () => - wrapper.findByTestId('delete-after-months-input-group'); + const findDeleteAfterMonthsInputGroupText = () => + wrapper.findByTestId('delete-after-months-input-group-text'); const findDeleteAfterMonthsInput = () => wrapper.findByTestId('delete-after-months-input'); const findSendWarningEmailAfterMonthsGroup = () => wrapper.findByTestId('send-warning-email-after-months-group'); - const findSendWarningEmailAfterMonthsInputGroup = () => - wrapper.findByTestId('send-warning-email-after-months-input-group'); + const findSendWarningEmailAfterMonthsInputGroupText = () => + wrapper.findByTestId('send-warning-email-after-months-input-group-text'); const findSendWarningEmailAfterMonthsInput = () => wrapper.findByTestId('send-warning-email-after-months-input'); @@ -60,7 +60,7 @@ describe('Form component', () => { }); it('has the appended text on the field', () => { - expect(findMinSizeInputGroup().text()).toContain('MB'); + expect(findMinSizeInputGroupText().text()).toContain('MB'); }); it.each` @@ -89,7 +89,7 @@ describe('Form component', () => { }); it('has the appended text on the field', () => { - expect(findDeleteAfterMonthsInputGroup().text()).toContain('months'); + expect(findDeleteAfterMonthsInputGroupText().text()).toContain('months'); }); it.each` @@ -124,7 +124,7 @@ describe('Form component', () => { }); it('has the appended text on the field', () => { - expect(findSendWarningEmailAfterMonthsInputGroup().text()).toContain('months'); + expect(findSendWarningEmailAfterMonthsInputGroupText().text()).toContain('months'); }); it.each` diff --git a/spec/frontend/error_tracking_settings/components/app_spec.js b/spec/frontend/error_tracking_settings/components/app_spec.js index 2e50e3aa90a..40ca2da8dfa 100644 --- a/spec/frontend/error_tracking_settings/components/app_spec.js +++ b/spec/frontend/error_tracking_settings/components/app_spec.js @@ -33,6 +33,7 @@ describe('error tracking settings app', () => { function mountComponent({ glFeatures = { integratedErrorTracking: false }, props = defaultProps, + stubs = {}, } = {}) { wrapper = extendedWrapper( shallowMount(ErrorTrackingSettings, { @@ -43,6 +44,7 @@ describe('error tracking settings app', () => { }, stubs: { GlFormInputGroup, // we need this non-shallow to query for a component within a slot + ...stubs, }, }), ); @@ -165,14 +167,27 @@ describe('error tracking settings app', () => { expect(findDsnSettings().exists()).toBe(true); }); - it('contains copy-to-clipboard functionality for the GitLab DSN string', async () => { + it('renders GitLab DSN string in readonly input', async () => { + mountComponent({ + glFeatures: { integratedErrorTracking: true }, + stubs: { + GlFormInputGroup: true, + }, + }); + await enableGitLabErrorTracking(); const clipBoardInput = findDsnSettings().findComponent(GlFormInputGroup); - const clipBoardButton = findDsnSettings().findComponent(ClipboardButton); expect(clipBoardInput.props('value')).toBe(TEST_GITLAB_DSN); expect(clipBoardInput.attributes('readonly')).toBe(''); + }); + + it('contains copy-to-clipboard functionality for the GitLab DSN string', async () => { + await enableGitLabErrorTracking(); + + const clipBoardButton = findDsnSettings().findComponent(ClipboardButton); + expect(clipBoardButton.props('text')).toBe(TEST_GITLAB_DSN); }); }); diff --git a/spec/frontend/packages_and_registries/dependency_proxy/components/manifests_empty_state_spec.js b/spec/frontend/packages_and_registries/dependency_proxy/components/manifests_empty_state_spec.js index 00c1469994b..777051ce86e 100644 --- a/spec/frontend/packages_and_registries/dependency_proxy/components/manifests_empty_state_spec.js +++ b/spec/frontend/packages_and_registries/dependency_proxy/components/manifests_empty_state_spec.js @@ -56,6 +56,8 @@ describe('manifests empty state', () => { }); it('renders a form input group', () => { + createComponent({ stubs: { GlFormInputGroup: true } }); + expect(findFormInputGroup().exists()).toBe(true); expect(findFormInputGroup().attributes('id')).toBe('code-example'); expect(findFormInputGroup().props('value')).toBe(ManifestsEmptyState.codeExample); diff --git a/spec/frontend/projects/new/components/new_project_push_tip_popover_spec.js b/spec/frontend/projects/new/components/new_project_push_tip_popover_spec.js index ec617868a46..e4fe5678ebd 100644 --- a/spec/frontend/projects/new/components/new_project_push_tip_popover_spec.js +++ b/spec/frontend/projects/new/components/new_project_push_tip_popover_spec.js @@ -16,13 +16,14 @@ describe('New project push tip popover', () => { const findHelpLink = () => wrapper.find('a'); const findTarget = () => document.getElementById(targetId); - const buildWrapper = () => { + const buildWrapper = ({ stubs = {} } = {}) => { wrapper = shallowMount(NewProjectPushTipPopover, { propsData: { target: findTarget(), }, stubs: { GlFormInputGroup, + ...stubs, }, provide: { pushToCreateProjectCommand, @@ -52,6 +53,8 @@ describe('New project push tip popover', () => { }); it('renders a readonly form input with the push to create command', () => { + buildWrapper({ stubs: { GlFormInputGroup: true } }); + expect(findFormInput().props()).toMatchObject({ value: pushToCreateProjectCommand, selectOnClick: true, diff --git a/spec/frontend/super_sidebar/components/sidebar_hover_peek_behavior_spec.js b/spec/frontend/super_sidebar/components/sidebar_hover_peek_behavior_spec.js index 75b834ee7c9..9bf9dd9301c 100644 --- a/spec/frontend/super_sidebar/components/sidebar_hover_peek_behavior_spec.js +++ b/spec/frontend/super_sidebar/components/sidebar_hover_peek_behavior_spec.js @@ -36,6 +36,22 @@ describe('SidebarHoverPeek component', () => { const lastNChangeEvents = (n = 1) => wrapper.emitted('change').slice(-n).flat(); + /** + * Simulates destroying the component. This is unusual! It's needed for tests + * that verify the clean up behavior of the component. + * + * Normally `wrapper.destroy()` would be the correct way to do this, but: + * + * - VTU@2 removes emitted event history on unmount/destroy: + * https://github.com/vuejs/test-utils/blob/3207debb67591d63932f6a4228e2d21d7525450c/src/vueWrapper.ts#L271-L272 + * - Attaching listeners via a harness/dummy component isn't sufficient, as + * the listeners are removed anyway on destroy, so the tests would pass + * whether or not the clean up behavior actually happens. + * - Spying on `EventTarget#removeEventListener` is another possible + * approach, but that's brittle. Selectors/event names could change. + */ + const simulateDestroy = () => SidebarHoverPeek.beforeDestroy.call(wrapper.vm); + beforeEach(() => { toggle = document.createElement('button'); toggle.classList.add(JS_TOGGLE_EXPAND_CLASS); @@ -159,14 +175,14 @@ describe('SidebarHoverPeek component', () => { expect(lastNChangeEvents(1)).toEqual([STATE_OPEN]); - wrapper.destroy(); + simulateDestroy(); mouseLeave(toggle); expect(lastNChangeEvents(1)).toEqual([STATE_OPEN]); }); it('cleans up its timers before destroy', () => { - wrapper.destroy(); + simulateDestroy(); jest.runOnlyPendingTimers(); expect(lastNChangeEvents(1)).toEqual([STATE_WILL_OPEN]); @@ -175,7 +191,7 @@ describe('SidebarHoverPeek component', () => { it('cleans up document mouseleave listener before destroy', () => { mouseEnter(toggle); - wrapper.destroy(); + simulateDestroy(); moveMouseOutOfDocument(); @@ -205,7 +221,7 @@ describe('SidebarHoverPeek component', () => { expect(lastNChangeEvents(1)).toEqual([STATE_CLOSED]); - wrapper.destroy(); + simulateDestroy(); mouseEnter(toggle); expect(lastNChangeEvents(1)).toEqual([STATE_CLOSED]); diff --git a/spec/frontend/super_sidebar/components/sidebar_peek_behavior_spec.js b/spec/frontend/super_sidebar/components/sidebar_peek_behavior_spec.js index 90a950c5f35..299ab6a95d5 100644 --- a/spec/frontend/super_sidebar/components/sidebar_peek_behavior_spec.js +++ b/spec/frontend/super_sidebar/components/sidebar_peek_behavior_spec.js @@ -43,6 +43,22 @@ describe('SidebarPeek component', () => { const lastNChangeEvents = (n = 1) => wrapper.emitted('change').slice(-n).flat(); + /** + * Simulates destroying the component. This is unusual! It's needed for tests + * that verify the clean up behavior of the component. + * + * Normally `wrapper.destroy()` would be the correct way to do this, but: + * + * - VTU@2 removes emitted event history on unmount/destroy: + * https://github.com/vuejs/test-utils/blob/3207debb67591d63932f6a4228e2d21d7525450c/src/vueWrapper.ts#L271-L272 + * - Attaching listeners via a harness/dummy component isn't sufficient, as + * the listeners are removed anyway on destroy, so the tests would pass + * whether or not the clean up behavior actually happens. + * - Spying on `EventTarget#removeEventListener` is another possible + * approach, but that's brittle. Selectors/event names could change. + */ + const simulateDestroy = () => SidebarPeek.beforeDestroy.call(wrapper.vm); + beforeEach(() => { createComponent(); trackingSpy = mockTracking(undefined, undefined, jest.spyOn); @@ -177,7 +193,7 @@ describe('SidebarPeek component', () => { moveMouse(0); jest.runOnlyPendingTimers(); - wrapper.destroy(); + simulateDestroy(); moveMouse(X_AWAY_FROM_SIDEBAR); expect(lastNChangeEvents(1)).toEqual([STATE_OPEN]); @@ -186,7 +202,7 @@ describe('SidebarPeek component', () => { it('cleans up its timers before destroy', () => { moveMouse(0); - wrapper.destroy(); + simulateDestroy(); jest.runOnlyPendingTimers(); expect(lastNChangeEvents(1)).toEqual([STATE_WILL_OPEN]); @@ -210,7 +226,7 @@ describe('SidebarPeek component', () => { it('cleans up document mouseleave listener before destroy', () => { moveMouse(0); - wrapper.destroy(); + simulateDestroy(); moveMouseOutOfDocument(); diff --git a/spec/lib/gitlab/database/dictionary_spec.rb b/spec/lib/gitlab/database/dictionary_spec.rb index bfdbc837740..6580fabb126 100644 --- a/spec/lib/gitlab/database/dictionary_spec.rb +++ b/spec/lib/gitlab/database/dictionary_spec.rb @@ -223,7 +223,7 @@ RSpec.describe Gitlab::Database::Dictionary, feature_category: :database do describe '#allow_cross_to_schemas' do it 'returns the list of allowed schemas' do expect(database_dictionary.allow_cross_to_schemas(:foreign_keys)) - .to contain_exactly(:gitlab_main_clusterwide) + .to be_empty end end end diff --git a/spec/migrations/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies_spec.rb b/spec/migrations/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies_spec.rb new file mode 100644 index 00000000000..317a5dd1330 --- /dev/null +++ b/spec/migrations/20241115211552_queue_backfill_software_license_spdx_identifier_for_software_license_policies_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe QueueBackfillSoftwareLicenseSpdxIdentifierForSoftwareLicensePolicies, migration: :gitlab_main_cell, feature_category: :security_policy_management do + let!(:batched_migration) { described_class::MIGRATION } + + it 'schedules a new batched migration' do + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).to have_scheduled_batched_migration( + gitlab_schema: :gitlab_main, + table_name: :software_license_policies, + column_name: :id, + interval: described_class::DELAY_INTERVAL, + batch_size: described_class::BATCH_SIZE, + sub_batch_size: described_class::SUB_BATCH_SIZE + ) + } + end + end +end diff --git a/spec/support/shared_examples/features/work_items/work_items_shared_examples.rb b/spec/support/shared_examples/features/work_items/work_items_shared_examples.rb index 6c999ab9f04..ca221932c76 100644 --- a/spec/support/shared_examples/features/work_items/work_items_shared_examples.rb +++ b/spec/support/shared_examples/features/work_items/work_items_shared_examples.rb @@ -762,3 +762,107 @@ RSpec.shared_examples 'work items health status' do end end end + +RSpec.shared_examples 'work items color' do + it 'updates and clears color', :aggregate_failures do + within_testid 'work-item-color' do + click_button 'Edit' + click_link 'Purple' + + expect(page).to have_text 'Purple' + + click_button 'Edit' + send_keys(:backspace, :backspace, :backspace, :backspace, :backspace, :backspace, 112233, :escape) + + expect(page).to have_text 'Custom' + + click_button 'Edit' + click_button 'Reset' + + expect(page).to have_text('Blue') + end + end +end + +RSpec.shared_examples 'work items hierarchy' do |testid, type| + it 'shows no child items by default and toggles card', :aggregate_failures do + within_testid testid do + expect(page).to have_css('h2', text: 'Child items') + expect(page).to have_text('No child items are currently assigned.') + + click_button 'Collapse' + + expect(page).not_to have_text('No child items are currently assigned.') + + click_button 'Expand' + + expect(page).to have_text('No child items are currently assigned.') + end + end + + it 'creates, removes, and reverts removal of child item', :aggregate_failures do + # https://gitlab.com/gitlab-org/gitlab/-/issues/467207 + allow(Gitlab::QueryLimiting::Transaction).to receive(:threshold).and_return(300) + + within_testid testid do + create_child(type, 'Child 1') + + expect(page).to have_link 'Child 1' + + click_button 'Remove' + + expect(page).not_to have_link 'Child 1' + end + + within '.gl-toast' do + expect(page).to have_content(_('Child removed')) + + find('a', text: 'Undo').click # click_link doesn't work here for some reason + end + + within_testid testid do + expect(page).to have_link 'Child 1' + end + end + + it 'adds an existing child item', :aggregate_failures do + within_testid testid do + click_button 'Add' + click_button "Existing #{type}" + fill_in 'Search existing items', with: child_item.title + click_button child_item.title + send_keys :escape + click_button "Add #{type}" + + expect(page).to have_link child_item.title + end + end + + it 'creates and reorders child items', :aggregate_failures do + # https://gitlab.com/gitlab-org/gitlab/-/issues/467207 + allow(Gitlab::QueryLimiting::Transaction).to receive(:threshold).and_return(300) + + within_testid testid do + create_child(type, 'Child 1') + create_child(type, 'Child 2') + create_child(type, 'Child 3') + + expect(page).to have_css('.tree-item:nth-child(1) .item-title', text: 'Child 3') + expect(page).to have_css('.tree-item:nth-child(2) .item-title', text: 'Child 2') + expect(page).to have_css('.tree-item:nth-child(3) .item-title', text: 'Child 1') + + drag_to(selector: '.sortable-container', from_index: 0, to_index: 2) + + expect(page).to have_css('.tree-item:nth-child(1) .item-title', text: 'Child 2') + expect(page).to have_css('.tree-item:nth-child(2) .item-title', text: 'Child 1') + expect(page).to have_css('.tree-item:nth-child(3) .item-title', text: 'Child 3') + end + end + + def create_child(type, title) + click_button 'Add' + click_button "New #{type}" + fill_in 'Add a title', with: title + click_button "Create #{type}" + end +end diff --git a/spec/tasks/gitlab/db/alter_cell_sequences_range_rake_spec.rb b/spec/tasks/gitlab/db/alter_cell_sequences_range_rake_spec.rb index 750ab053d0c..26518795758 100644 --- a/spec/tasks/gitlab/db/alter_cell_sequences_range_rake_spec.rb +++ b/spec/tasks/gitlab/db/alter_cell_sequences_range_rake_spec.rb @@ -13,18 +13,6 @@ RSpec.describe 'gitlab:db:alter_cell_sequences_range', :silence_stdout, feature_ subject(:run_rake) { run_rake_task('gitlab:db:alter_cell_sequences_range', minval, maxval) } - context 'when run in non Gitlab.com/dev/test environment' do - before do - allow(Gitlab).to receive_messages(com_except_jh?: false, dev_or_test_env?: false) - end - - it 'does not attempt to alter sequence range' do - expect(Gitlab::Database::AlterCellSequencesRange).not_to receive(:new) - - run_rake - end - end - shared_examples 'alters cell sequences range' do it 'executes AlterCellSequencesRange' do Gitlab::Database::EachDatabase.each_connection do |connection, _database_name| @@ -38,9 +26,36 @@ RSpec.describe 'gitlab:db:alter_cell_sequences_range', :silence_stdout, feature_ end end + shared_examples 'does not alter cell sequences range' do + it 'does not executes AlterCellSequencesRange' do + expect(Gitlab::Database::AlterCellSequencesRange).not_to receive(:new) + + run_rake + end + end + + context 'when run in non Gitlab.com/dev/test environment' do + before do + allow(Gitlab).to receive_messages(com_except_jh?: false, dev_or_test_env?: false) + allow(Settings).to receive(:skip_sequence_alteration?).and_return(false) + end + + it_behaves_like 'does not alter cell sequences range' + end + + context 'when run for legacy cell' do + before do + allow(Gitlab).to receive_messages(com_except_jh?: true, dev_or_test_env?: true) + allow(Settings).to receive(:skip_sequence_alteration?).and_return(true) + end + + it_behaves_like 'does not alter cell sequences range' + end + context 'when run in Gitlab.com but not jh instance' do before do allow(Gitlab).to receive(:com_except_jh?).and_return(true) + allow(Settings).to receive(:skip_sequence_alteration?).and_return(false) end it_behaves_like 'alters cell sequences range' @@ -49,6 +64,7 @@ RSpec.describe 'gitlab:db:alter_cell_sequences_range', :silence_stdout, feature_ context 'when run in dev or test env' do before do allow(Gitlab).to receive(:dev_or_test_env?).and_return(true) + allow(Settings).to receive(:skip_sequence_alteration?).and_return(false) end it_behaves_like 'alters cell sequences range' diff --git a/yarn.lock b/yarn.lock index 32d93a9d9f4..200947768f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1429,10 +1429,10 @@ resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.121.0.tgz#57cacc895929aef4320632396373797a64b230ff" integrity sha512-ZekVjdMZrjrNEjdrOHsJYCu7A+ea3AkuNUxWIZ3FaNgJj4Oh21RlTP7bQKnRSXVhBbV1jg1PgzQ1ANEoCW8t4g== -"@gitlab/ui@103.1.0": - version "103.1.0" - resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-103.1.0.tgz#7b446e72873ed9608211482b1f80419a0def3d4c" - integrity sha512-KpmJHY1+armClHecG1FoLrERpYgDK4GesbB82HsYEF1EydSZeyQPrrQEYdY83rqF1POYXBHOEzugmteOA5nUvg== +"@gitlab/ui@103.5.0": + version "103.5.0" + resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-103.5.0.tgz#8d954104213417c5fcc07e224bffc99f3dcc19f8" + integrity sha512-cHohuHX4Kp8yEfbOitN8rxMzgKrljscwrogco2yNhhyPEUayNGWE2TQoN5cabcCeXRoWIGViso7YWca92GLqCg== dependencies: "@floating-ui/dom" "1.4.3" echarts "^5.3.2"