From 187d78c1722ea503342483280d5127f962238045 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 21 Feb 2025 03:09:48 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/CODEOWNERS | 137 +++++++++--------- app/models/application_setting.rb | 8 - app/models/ci/pipeline.rb | 10 ++ .../events/completed_pipeline_execution.yml | 20 +++ ..._secondary_stores_for_buffered_counter.yml | 9 ++ ..._store_as_default_for_buffered_counter.yml | 9 ++ ...canceled_completed_pipeline_executions.yml | 22 +++ ...unt_total_completed_pipeline_execution.yml | 20 +++ ...l_failed_completed_pipeline_executions.yml | 22 +++ ..._skipped_completed_pipeline_executions.yml | 22 +++ ...ccessful_completed_pipeline_executions.yml | 22 +++ config/redis.yml.example | 4 + doc/administration/external_users.md | 5 +- doc/administration/postgresql/upgrading_os.md | 5 +- .../settings/sign_up_restrictions.md | 9 +- doc/api/search.md | 55 +++++-- doc/ci/components/examples.md | 2 +- doc/ci/yaml/inputs.md | 2 +- .../ai_features/model_migration.md | 3 +- doc/development/architecture.md | 3 +- doc/development/code_review.md | 2 +- .../database/adding_database_indexes.md | 10 +- .../documentation/hugo_migration.md | 11 +- doc/development/fe_guide/style/javascript.md | 6 +- doc/development/import_export.md | 5 +- doc/development/redis/new_redis_instance.md | 6 +- .../best_practices/feature_flags.md | 6 +- .../testing_guide/frontend_testing.md | 10 +- .../eclipse/troubleshooting.md | 5 +- doc/integration/saml.md | 5 +- .../cloud_deployments/auto_devops_with_ecs.md | 5 +- .../upgrading_auto_deploy_dependencies.md | 5 +- ..._runner_fleet_config_and_best_practices.md | 5 +- .../api_security/api_discovery/_index.md | 5 +- .../security_dashboard/_index.md | 5 +- doc/user/markdown.md | 8 +- .../repository/signed_commits/_index.md | 5 +- lib/gitlab/redis/buffered_counter.rb | 6 +- lib/tasks/gitlab/tw/codeowners.rake | 4 +- locale/gitlab.pot | 9 ++ .../lib/gitlab/redis/buffered_counter_spec.rb | 6 + spec/models/ci/pipeline_spec.rb | 22 +++ 42 files changed, 409 insertions(+), 131 deletions(-) create mode 100644 config/events/completed_pipeline_execution.yml create mode 100644 config/feature_flags/gitlab_com_derisk/use_primary_and_secondary_stores_for_buffered_counter.yml create mode 100644 config/feature_flags/gitlab_com_derisk/use_primary_store_as_default_for_buffered_counter.yml create mode 100644 config/metrics/counts_all/count_total_canceled_completed_pipeline_executions.yml create mode 100644 config/metrics/counts_all/count_total_completed_pipeline_execution.yml create mode 100644 config/metrics/counts_all/count_total_failed_completed_pipeline_executions.yml create mode 100644 config/metrics/counts_all/count_total_skipped_completed_pipeline_executions.yml create mode 100644 config/metrics/counts_all/count_total_successful_completed_pipeline_executions.yml diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 2f0b96b4290..5e8fd72fab5 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -562,6 +562,7 @@ lib/gitlab/checks/** ^[Documentation Pages] # This block is managed by the rake script at lib/tasks/gitlab/tw/codeowners.rake, manual updates will be overwritten! # Begin rake-managed-docs-block +/doc/administration/_index.md @axil /doc/administration/analytics.md @lciutacu /doc/administration/analytics/ @lciutacu /doc/administration/application_settings_cache.md @jglassman1 @@ -574,7 +575,7 @@ lib/gitlab/checks/** /doc/administration/cells.md @emily.sahlani /doc/administration/cicd/ @lyspin /doc/administration/cicd/job_logs.md @rsarangadharan -/doc/administration/clusters/ @phillipwells +/doc/administration/clusters/ @z_painter /doc/administration/compliance.md @eread /doc/administration/configure.md @axil /doc/administration/consul.md @axil @@ -596,17 +597,17 @@ lib/gitlab/checks/** /doc/administration/get_started.md @kpaizee /doc/administration/git_protocol.md @brendan777 /doc/administration/gitaly/ @eread +/doc/administration/gitlab_duo_self_hosted/ @jglassman1 /doc/administration/guest_users.md @idurham /doc/administration/housekeeping.md @eread /doc/administration/inactive_project_deletion.md @emily.sahlani /doc/administration/incoming_email.md @msedlakjakubowski -/doc/administration/index.md @axil /doc/administration/instance_limits.md @axil /doc/administration/integration/diagrams_net.md @brendan777 /doc/administration/integration/kroki.md @msedlakjakubowski /doc/administration/integration/mailgun.md @msedlakjakubowski /doc/administration/integration/plantuml.md @brendan777 -/doc/administration/integration/terminal.md @phillipwells +/doc/administration/integration/terminal.md @z_painter /doc/administration/internal_users.md @eread /doc/administration/invalidate_markdown_cache.md @msedlakjakubowski /doc/administration/issue_closing_pattern.md @aqualls @@ -617,19 +618,19 @@ lib/gitlab/checks/** /doc/administration/license_file.md @lciutacu /doc/administration/load_balancer.md @axil /doc/administration/logs/ @axil -/doc/administration/logs/index.md @lciutacu +/doc/administration/logs/_index.md @lciutacu /doc/administration/maintenance_mode/ @axil /doc/administration/merge_request_diffs.md @brendan777 /doc/administration/merge_requests_approvals.md @brendan777 /doc/administration/moderate_users.md @lciutacu +/doc/administration/monitoring/_index.md @lciutacu /doc/administration/monitoring/github_imports.md @ashrafkhamis -/doc/administration/monitoring/index.md @lciutacu /doc/administration/monitoring/ip_allowlist.md @jglassman1 /doc/administration/monitoring/performance/ @jglassman1 /doc/administration/monitoring/performance/grafana_configuration.md @lciutacu +/doc/administration/monitoring/prometheus/_index.md @axil /doc/administration/monitoring/prometheus/gitlab_exporter.md @jglassman1 -/doc/administration/monitoring/prometheus/index.md @axil -/doc/administration/monitoring/prometheus/registry_exporter.md @phillipwells +/doc/administration/monitoring/prometheus/registry_exporter.md @z_painter /doc/administration/monitoring/prometheus/web_exporter.md @jglassman1 /doc/administration/nfs.md @axil /doc/administration/object_storage.md @axil @@ -639,7 +640,7 @@ lib/gitlab/checks/** /doc/administration/operations/moving_repositories.md @eread /doc/administration/package_information/ @axil /doc/administration/packages/ @lyspin -/doc/administration/packages/index.md @phillipwells +/doc/administration/packages/_index.md @z_painter /doc/administration/pages/ @msedlakjakubowski /doc/administration/polling.md @axil /doc/administration/postgresql/ @emily.sahlani @@ -676,7 +677,7 @@ lib/gitlab/checks/** /doc/administration/settings/instance_template_repository.md @brendan777 /doc/administration/settings/jira_cloud_app.md @ashrafkhamis /doc/administration/settings/jira_cloud_app_troubleshooting.md @ashrafkhamis -/doc/administration/settings/package_registry_rate_limits.md @phillipwells +/doc/administration/settings/package_registry_rate_limits.md @z_painter /doc/administration/settings/project_integration_management.md @ashrafkhamis /doc/administration/settings/push_event_activities_limit.md @brendan777 /doc/administration/settings/rate_limit_on_groups_api.md @emily.sahlani @@ -692,7 +693,7 @@ lib/gitlab/checks/** /doc/administration/settings/security_and_compliance.md @rdickenson /doc/administration/settings/security_contact_information.md @eread /doc/administration/settings/slack_app.md @ashrafkhamis -/doc/administration/settings/terraform_limits.md @phillipwells +/doc/administration/settings/terraform_limits.md @z_painter /doc/administration/settings/third_party_offers.md @emily.sahlani /doc/administration/settings/visibility_and_access_controls.md @brendan777 /doc/administration/sidekiq/ @axil @@ -702,12 +703,13 @@ lib/gitlab/checks/** /doc/administration/snippets/ @brendan777 /doc/administration/static_objects_external_storage.md @brendan777 /doc/administration/system_hooks.md @ashrafkhamis -/doc/administration/terraform_state.md @phillipwells +/doc/administration/terraform_state.md @z_painter /doc/administration/timezone.md @axil /doc/administration/troubleshooting/ @axil /doc/administration/uploads.md @axil /doc/administration/user_settings.md @idurham /doc/administration/wikis/ @msedlakjakubowski +/doc/api/_index.md @ashrafkhamis /doc/api/access_requests.md @idurham /doc/api/admin/ @idurham /doc/api/admin_sidekiq_queues.md @axil @@ -721,8 +723,8 @@ lib/gitlab/checks/** /doc/api/branches.md @brendan777 /doc/api/bulk_imports.md @ashrafkhamis /doc/api/chat.md @jglassman1 -/doc/api/cluster_agents.md @phillipwells -/doc/api/cluster_discovery.md @phillipwells +/doc/api/cluster_agents.md @z_painter +/doc/api/cluster_discovery.md @z_painter /doc/api/code_suggestions.md @jglassman1 /doc/api/commits.md @brendan777 /doc/api/container_registry.md @lyspin @@ -731,25 +733,26 @@ lib/gitlab/checks/** /doc/api/dependencies.md @rdickenson /doc/api/dependency_list_export.md @rlehmann1 /doc/api/dependency_proxy.md @lyspin -/doc/api/deploy_keys.md @phillipwells -/doc/api/deploy_tokens.md @phillipwells -/doc/api/deployments.md @phillipwells +/doc/api/deploy_keys.md @z_painter +/doc/api/deploy_tokens.md @z_painter +/doc/api/deployments.md @z_painter /doc/api/discussions.md @brendan777 /doc/api/dora/ @lciutacu /doc/api/draft_notes.md @aqualls /doc/api/emoji_reactions.md @msedlakjakubowski -/doc/api/environments.md @phillipwells +/doc/api/environments.md @z_painter /doc/api/epic_issues.md @msedlakjakubowski /doc/api/epic_links.md @msedlakjakubowski /doc/api/epics.md @msedlakjakubowski /doc/api/error_tracking.md @lciutacu -/doc/api/feature_flag_user_lists.md @phillipwells -/doc/api/feature_flags.md @phillipwells -/doc/api/features.md @phillipwells -/doc/api/freeze_periods.md @phillipwells +/doc/api/feature_flag_user_lists.md @z_painter +/doc/api/feature_flags.md @z_painter +/doc/api/features.md @z_painter +/doc/api/freeze_periods.md @z_painter /doc/api/geo_nodes.md @axil /doc/api/geo_sites.md @axil /doc/api/google_cloud_integration.md @idurham +/doc/api/graphql/_index.md @ashrafkhamis /doc/api/graphql/assign_gitlab_duo_seats.md @lciutacu /doc/api/graphql/audit_event_streaming_groups.md @eread /doc/api/graphql/audit_event_streaming_instances.md @eread @@ -759,7 +762,6 @@ lib/gitlab/checks/** /doc/api/graphql/epic_work_items_api_migration_guide.md @msedlakjakubowski /doc/api/graphql/examples.md @ashrafkhamis /doc/api/graphql/getting_started.md @ashrafkhamis -/doc/api/graphql/index.md @ashrafkhamis /doc/api/graphql/reference/ @ashrafkhamis /doc/api/graphql/removed_items.md @ashrafkhamis /doc/api/graphql/sample_issue_boards.md @msedlakjakubowski @@ -768,10 +770,11 @@ lib/gitlab/checks/** /doc/api/group_activity_analytics.md @lciutacu /doc/api/group_badges.md @emily.sahlani /doc/api/group_boards.md @msedlakjakubowski -/doc/api/group_clusters.md @phillipwells +/doc/api/group_clusters.md @z_painter /doc/api/group_enterprise_users.md @idurham /doc/api/group_epic_boards.md @msedlakjakubowski /doc/api/group_import_export.md @ashrafkhamis +/doc/api/group_integrations.md @ashrafkhamis /doc/api/group_iterations.md @msedlakjakubowski /doc/api/group_labels.md @msedlakjakubowski /doc/api/group_ldap_links.md @emily.sahlani @@ -779,20 +782,18 @@ lib/gitlab/checks/** /doc/api/group_markdown_uploads.md @msedlakjakubowski /doc/api/group_milestones.md @msedlakjakubowski /doc/api/group_protected_branches.md @brendan777 -/doc/api/group_protected_environments.md @phillipwells +/doc/api/group_protected_environments.md @z_painter /doc/api/group_push_rules.md @brendan777 /doc/api/group_relations_export.md @ashrafkhamis -/doc/api/group_releases.md @phillipwells +/doc/api/group_releases.md @z_painter /doc/api/group_repository_storage_moves.md @brendan777 -/doc/api/group_security_settings.md @phillipwells /doc/api/group_service_accounts.md @idurham /doc/api/group_ssh_certificates.md @brendan777 /doc/api/group_webhooks.md @ashrafkhamis /doc/api/group_wikis.md @msedlakjakubowski /doc/api/groups.md @emily.sahlani /doc/api/import.md @ashrafkhamis -/doc/api/index.md @ashrafkhamis -/doc/api/instance_clusters.md @phillipwells +/doc/api/instance_clusters.md @z_painter /doc/api/instance_level_ci_variables.md @marcel.amirault /doc/api/integrations.md @ashrafkhamis /doc/api/invitations.md @emily.sahlani @@ -815,7 +816,7 @@ lib/gitlab/checks/** /doc/api/merge_request_context_commits.md @aqualls /doc/api/merge_requests.md @aqualls /doc/api/merge_trains.md @lyspin -/doc/api/metadata.md @phillipwells +/doc/api/metadata.md @z_painter /doc/api/milestones.md @msedlakjakubowski /doc/api/namespaces.md @idurham /doc/api/notes.md @msedlakjakubowski @@ -823,8 +824,8 @@ lib/gitlab/checks/** /doc/api/oauth2.md @idurham /doc/api/openapi/ @ashrafkhamis /doc/api/organizations.md @emily.sahlani -/doc/api/packages.md @phillipwells -/doc/api/packages/ @phillipwells +/doc/api/packages.md @z_painter +/doc/api/packages/ @z_painter /doc/api/pages.md @msedlakjakubowski /doc/api/pages_domains.md @msedlakjakubowski /doc/api/personal_access_tokens.md @idurham @@ -836,13 +837,13 @@ lib/gitlab/checks/** /doc/api/project_access_tokens.md @idurham /doc/api/project_aliases.md @brendan777 /doc/api/project_badges.md @brendan777 -/doc/api/project_clusters.md @phillipwells +/doc/api/project_clusters.md @z_painter /doc/api/project_forks.md @emily.sahlani /doc/api/project_import_export.md @ashrafkhamis /doc/api/project_job_token_scopes.md @marcel.amirault /doc/api/project_level_variables.md @marcel.amirault /doc/api/project_markdown_uploads.md @msedlakjakubowski -/doc/api/project_packages_protection_rules.md @phillipwells +/doc/api/project_packages_protection_rules.md @z_painter /doc/api/project_pull_mirroring.md @brendan777 /doc/api/project_push_rules.md @brendan777 /doc/api/project_relations_export.md @ashrafkhamis @@ -856,14 +857,14 @@ lib/gitlab/checks/** /doc/api/project_webhooks.md @ashrafkhamis /doc/api/projects.md @emily.sahlani /doc/api/protected_branches.md @brendan777 -/doc/api/protected_environments.md @phillipwells +/doc/api/protected_environments.md @z_painter /doc/api/protected_tags.md @brendan777 -/doc/api/releases/ @phillipwells +/doc/api/releases/ @z_painter /doc/api/remote_mirrors.md @brendan777 /doc/api/repositories.md @brendan777 /doc/api/repository_files.md @brendan777 /doc/api/repository_submodules.md @brendan777 -/doc/api/resource_groups.md @phillipwells +/doc/api/resource_groups.md @z_painter /doc/api/resource_iteration_events.md @msedlakjakubowski /doc/api/resource_label_events.md @eread /doc/api/resource_milestone_events.md @msedlakjakubowski @@ -898,27 +899,27 @@ lib/gitlab/checks/** /doc/api/user_service_accounts.md @idurham /doc/api/user_tokens.md @idurham /doc/api/users.md @idurham -/doc/api/version.md @phillipwells +/doc/api/version.md @z_painter /doc/api/vulnerabilities.md @rlehmann1 /doc/api/vulnerability_exports.md @rlehmann1 /doc/api/vulnerability_findings.md @rlehmann1 /doc/api/web_commits.md @brendan777 /doc/api/wikis.md @msedlakjakubowski +/doc/ci/_index.md @lyspin /doc/ci/caching/ @marcel.amirault -/doc/ci/chatops/ @phillipwells +/doc/ci/chatops/ @z_painter /doc/ci/ci_cd_for_external_repos/ @lyspin -/doc/ci/cloud_deployment/ @phillipwells +/doc/ci/cloud_deployment/ @z_painter /doc/ci/cloud_services/ @marcel.amirault /doc/ci/components/ @marcel.amirault /doc/ci/debugging.md @marcel.amirault /doc/ci/docker/ @lyspin /doc/ci/docker/using_docker_images.md @rsarangadharan -/doc/ci/environments/ @phillipwells +/doc/ci/environments/ @z_painter /doc/ci/examples/ @lyspin -/doc/ci/examples/deployment/ @phillipwells -/doc/ci/examples/semantic-release.md @phillipwells +/doc/ci/examples/deployment/ @z_painter +/doc/ci/examples/semantic-release.md @z_painter /doc/ci/gitlab_google_cloud_integration/ @lyspin -/doc/ci/index.md @lyspin /doc/ci/interactive_web_terminal/ @rsarangadharan /doc/ci/jobs/ @marcel.amirault /doc/ci/jobs/job_artifacts.md @lyspin @@ -929,13 +930,13 @@ lib/gitlab/checks/** /doc/ci/migration/teamcity.md @lyspin /doc/ci/pipeline_editor/ @marcel.amirault /doc/ci/pipelines/ @lyspin +/doc/ci/pipelines/_index.md @marcel.amirault /doc/ci/pipelines/downstream_pipelines.md @marcel.amirault /doc/ci/pipelines/downstream_pipelines_troubleshooting.md @marcel.amirault -/doc/ci/pipelines/index.md @marcel.amirault /doc/ci/pipelines/pipeline_architectures.md @marcel.amirault /doc/ci/pipelines/pipeline_security.md @marcel.amirault /doc/ci/quick_start/ @marcel.amirault -/doc/ci/resource_groups/ @phillipwells +/doc/ci/resource_groups/ @z_painter /doc/ci/review_apps/ @lyspin /doc/ci/runners/ @rsarangadharan /doc/ci/runners/git_submodules.md @lyspin @@ -1002,6 +1003,7 @@ lib/gitlab/checks/** /doc/install/ @axil /doc/install/install_ai_gateway.md @sselhorn /doc/integration/ @idurham +/doc/integration/_index.md @ashrafkhamis /doc/integration/advanced_search/ @ashrafkhamis /doc/integration/datadog.md @rsarangadharan /doc/integration/diffblue_cover.md @lyspin @@ -1010,31 +1012,29 @@ lib/gitlab/checks/** /doc/integration/external-issue-tracker.md @ashrafkhamis /doc/integration/gitpod.md @brendan777 /doc/integration/gmail_action_buttons_for_gitlab.md @ashrafkhamis -/doc/integration/index.md @ashrafkhamis /doc/integration/jenkins.md @lyspin /doc/integration/jira/ @ashrafkhamis /doc/integration/mattermost/ @axil /doc/integration/snowflake.md @eread /doc/integration/sourcegraph.md @brendan777 /doc/integration/trello_power_up.md @ashrafkhamis -/doc/integration/vault.md @phillipwells +/doc/integration/vault.md @z_painter /doc/operations/ @lciutacu -/doc/operations/feature_flags.md @phillipwells +/doc/operations/feature_flags.md @z_painter /doc/policy/ @axil /doc/raketasks/ @axil /doc/raketasks/spdx.md @rdickenson /doc/raketasks/x509_signatures.md @brendan777 /doc/security/ @idurham /doc/security/hardening_nist_800_53.md @emily.sahlani -/doc/solutions/ @jfullam @Darwinjs @sbrightwell -/doc/solutions/integrations/index.md @jfullam @Darwinjs @sbrightwell +/doc/solutions/ @jfullam @brianwald @Darwinjs /doc/solutions/integrations/servicenow.md @ashrafkhamis /doc/subscriptions/ @lciutacu /doc/subscriptions/gitlab_com/ @lyspin /doc/subscriptions/gitlab_dedicated/ @emily.sahlani /doc/subscriptions/gitlab_dedicated_for_government/ @emily.sahlani /doc/topics/ @msedlakjakubowski -/doc/topics/autodevops/ @phillipwells +/doc/topics/autodevops/ @z_painter /doc/topics/git/ @brendan777 /doc/topics/git/project.md @emily.sahlani /doc/topics/offline/ @axil @@ -1056,6 +1056,7 @@ lib/gitlab/checks/** /doc/tutorials/issue_triage/ @msedlakjakubowski /doc/tutorials/kanban/ @msedlakjakubowski /doc/tutorials/left_sidebar/ @sselhorn +/doc/tutorials/merge_requests/ @aqualls /doc/tutorials/move_personal_project_to_group/ @emily.sahlani /doc/tutorials/observability/ @lciutacu /doc/tutorials/product_analytics_onboarding_website_project/ @lciutacu @@ -1070,7 +1071,7 @@ lib/gitlab/checks/** /doc/tutorials/website_project_with_analytics/ @lciutacu /doc/update/ @axil /doc/user/analytics/ @lciutacu -/doc/user/analytics/ci_cd_analytics.md @phillipwells +/doc/user/analytics/ci_cd_analytics.md @z_painter /doc/user/application_security/ @rdickenson /doc/user/application_security/api_fuzzing/ @phillipwells /doc/user/application_security/api_security/ @phillipwells @@ -1086,7 +1087,7 @@ lib/gitlab/checks/** /doc/user/application_security/vulnerabilities/risk_assessment_data.md @rdickenson /doc/user/application_security/vulnerability_report/ @rlehmann1 /doc/user/asciidoc.md @brendan777 -/doc/user/clusters/ @phillipwells +/doc/user/clusters/ @z_painter /doc/user/compliance/ @eread /doc/user/compliance/license_approval_policies.md @rlehmann1 /doc/user/compliance/license_scanning_of_cyclonedx_files/ @rdickenson @@ -1099,7 +1100,7 @@ lib/gitlab/checks/** /doc/user/emoji_reactions.md @msedlakjakubowski /doc/user/enterprise_user/ @idurham /doc/user/get_started/get_started_managing_code.md @brendan777 -/doc/user/get_started/get_started_managing_infrastructure.md @phillipwells +/doc/user/get_started/get_started_managing_infrastructure.md @z_painter /doc/user/get_started/get_started_monitoring.md @lciutacu /doc/user/get_started/get_started_planning_work.md @msedlakjakubowski /doc/user/get_started/get_started_projects.md @emily.sahlani @@ -1107,8 +1108,9 @@ lib/gitlab/checks/** /doc/user/gitlab_duo/ @sselhorn /doc/user/gitlab_duo_chat/ @jglassman1 /doc/user/glql/ @msedlakjakubowski +/doc/user/group/_index.md @emily.sahlani /doc/user/group/access_and_permissions.md @emily.sahlani -/doc/user/group/clusters/ @phillipwells +/doc/user/group/clusters/ @z_painter /doc/user/group/compliance_frameworks.md @eread /doc/user/group/compliance_pipelines.md @eread /doc/user/group/contribution_analytics/ @lciutacu @@ -1117,7 +1119,6 @@ lib/gitlab/checks/** /doc/user/group/devops_adoption/ @lciutacu /doc/user/group/epics/ @msedlakjakubowski /doc/user/group/import/ @ashrafkhamis -/doc/user/group/index.md @emily.sahlani /doc/user/group/issues_analytics/ @lciutacu /doc/user/group/iterations/ @msedlakjakubowski /doc/user/group/manage.md @emily.sahlani @@ -1132,44 +1133,44 @@ lib/gitlab/checks/** /doc/user/group/subgroups/ @emily.sahlani /doc/user/group/troubleshooting.md @emily.sahlani /doc/user/group/value_stream_analytics/ @lciutacu -/doc/user/infrastructure/ @phillipwells -/doc/user/infrastructure/clusters/manage/management_project_applications/ @phillipwells +/doc/user/infrastructure/ @z_painter +/doc/user/infrastructure/clusters/manage/management_project_applications/ @z_painter /doc/user/infrastructure/clusters/manage/management_project_applications/runner.md @rsarangadharan /doc/user/markdown.md @msedlakjakubowski /doc/user/namespace/ @emily.sahlani /doc/user/okrs.md @msedlakjakubowski -/doc/user/operations_dashboard/ @phillipwells +/doc/user/operations_dashboard/ @z_painter /doc/user/organization/ @emily.sahlani -/doc/user/packages/ @phillipwells +/doc/user/packages/ @z_painter /doc/user/packages/container_registry/ @lyspin /doc/user/packages/dependency_proxy/ @lyspin /doc/user/packages/harbor_container_registry/ @lyspin /doc/user/permissions.md @idurham +/doc/user/profile/_index.md @idurham /doc/user/profile/account/ @idurham /doc/user/profile/account/create_accounts.md @lciutacu /doc/user/profile/achievements.md @emily.sahlani /doc/user/profile/comment_templates.md @aqualls /doc/user/profile/contributions_calendar.md @emily.sahlani -/doc/user/profile/index.md @idurham /doc/user/profile/notifications.md @sselhorn /doc/user/profile/personal_access_tokens.md @idurham /doc/user/profile/service_accounts.md @idurham /doc/user/profile/user_passwords.md @idurham +/doc/user/project/_index.md @emily.sahlani /doc/user/project/autocomplete_characters.md @brendan777 /doc/user/project/badges.md @emily.sahlani /doc/user/project/changelogs.md @brendan777 -/doc/user/project/clusters/ @phillipwells +/doc/user/project/clusters/ @z_painter /doc/user/project/code_intelligence.md @aqualls /doc/user/project/codeowners/ @brendan777 -/doc/user/project/deploy_boards.md @phillipwells -/doc/user/project/deploy_keys/ @phillipwells -/doc/user/project/deploy_tokens/ @phillipwells +/doc/user/project/deploy_boards.md @z_painter +/doc/user/project/deploy_keys/ @z_painter +/doc/user/project/deploy_tokens/ @z_painter /doc/user/project/description_templates.md @msedlakjakubowski /doc/user/project/file_lock.md @brendan777 /doc/user/project/import/ @ashrafkhamis /doc/user/project/import/jira.md @msedlakjakubowski /doc/user/project/import/jira_migration_options.md @msedlakjakubowski -/doc/user/project/index.md @emily.sahlani /doc/user/project/insights/ @lciutacu /doc/user/project/integrations/ @ashrafkhamis /doc/user/project/integrations/bamboo.md @lyspin @@ -1198,7 +1199,7 @@ lib/gitlab/checks/** /doc/user/project/project_topics.md @emily.sahlani /doc/user/project/protected_tags.md @brendan777 /doc/user/project/quick_actions.md @msedlakjakubowski -/doc/user/project/releases/ @phillipwells +/doc/user/project/releases/ @z_painter /doc/user/project/releases/release_evidence.md @eread /doc/user/project/remote_development/ @brendan777 /doc/user/project/repository/ @brendan777 @@ -1207,9 +1208,9 @@ lib/gitlab/checks/** /doc/user/project/repository/monorepos/ @eread /doc/user/project/requirements/ @msedlakjakubowski /doc/user/project/service_desk/ @msedlakjakubowski +/doc/user/project/settings/_index.md @emily.sahlani /doc/user/project/settings/import_export.md @ashrafkhamis /doc/user/project/settings/import_export_troubleshooting.md @ashrafkhamis -/doc/user/project/settings/index.md @emily.sahlani /doc/user/project/settings/migrate_projects.md @emily.sahlani /doc/user/project/settings/project_access_tokens.md @idurham /doc/user/project/system_notes.md @brendan777 diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index 866400f7a18..3a14bb42831 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -9,14 +9,6 @@ class ApplicationSetting < ApplicationRecord ignore_columns %i[ cloud_connector_keys - encrypted_openai_api_key - encrypted_openai_api_key_iv - encrypted_anthropic_api_key - encrypted_anthropic_api_key_iv - encrypted_vertex_ai_credentials - encrypted_vertex_ai_credentials_iv - encrypted_vertex_ai_access_token - encrypted_vertex_ai_access_token_iv ], remove_with: '17.10', remove_after: '2025-02-15' ignore_column :pre_receive_secret_detection_enabled, remove_with: '17.9', remove_after: '2025-02-15' diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 70ea7e30ec7..35aaef9ff40 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -18,6 +18,7 @@ module Ci include UpdatedAtFilterable include EachBatch include FastDestroyAll::Helpers + include Gitlab::InternalEventsTracking self.table_name = :p_ci_pipelines self.primary_key = :id @@ -361,6 +362,15 @@ module Ci after_transition any => ::Ci::Pipeline.completed_statuses do |pipeline| pipeline.run_after_commit do ::Ci::JobArtifacts::TrackArtifactReportWorker.perform_async(pipeline.id) + + track_internal_event( + 'completed_pipeline_execution', + project: pipeline.project, + user: pipeline.user, + additional_properties: { + label: pipeline.status + } + ) end end diff --git a/config/events/completed_pipeline_execution.yml b/config/events/completed_pipeline_execution.yml new file mode 100644 index 00000000000..113a9749e4a --- /dev/null +++ b/config/events/completed_pipeline_execution.yml @@ -0,0 +1,20 @@ +--- +description: CI Pipeline execution completed +internal_events: true +action: completed_pipeline_execution +identifiers: +- project +- namespace +- user +additional_properties: + label: + description: Completion status (ie. success, failed, skipped, canceled) +product_group: pipeline_execution +product_categories: +- pipeline_reports +milestone: '17.9' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/178392 +tiers: +- free +- premium +- ultimate diff --git a/config/feature_flags/gitlab_com_derisk/use_primary_and_secondary_stores_for_buffered_counter.yml b/config/feature_flags/gitlab_com_derisk/use_primary_and_secondary_stores_for_buffered_counter.yml new file mode 100644 index 00000000000..f5e2e109c11 --- /dev/null +++ b/config/feature_flags/gitlab_com_derisk/use_primary_and_secondary_stores_for_buffered_counter.yml @@ -0,0 +1,9 @@ +--- +name: use_primary_and_secondary_stores_for_buffered_counter +feature_issue_url: https://gitlab.com/gitlab-com/gl-infra/data-access/durability/team/-/issues/71 +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/182086 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/520435 +milestone: '17.10' +group: group::durability +type: gitlab_com_derisk +default_enabled: false diff --git a/config/feature_flags/gitlab_com_derisk/use_primary_store_as_default_for_buffered_counter.yml b/config/feature_flags/gitlab_com_derisk/use_primary_store_as_default_for_buffered_counter.yml new file mode 100644 index 00000000000..2995b661cf3 --- /dev/null +++ b/config/feature_flags/gitlab_com_derisk/use_primary_store_as_default_for_buffered_counter.yml @@ -0,0 +1,9 @@ +--- +name: use_primary_store_as_default_for_buffered_counter +feature_issue_url: https://gitlab.com/gitlab-com/gl-infra/data-access/durability/team/-/issues/71 +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/182086 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/520436 +milestone: '17.10' +group: group::durability +type: gitlab_com_derisk +default_enabled: false diff --git a/config/metrics/counts_all/count_total_canceled_completed_pipeline_executions.yml b/config/metrics/counts_all/count_total_canceled_completed_pipeline_executions.yml new file mode 100644 index 00000000000..d1f58b88d42 --- /dev/null +++ b/config/metrics/counts_all/count_total_canceled_completed_pipeline_executions.yml @@ -0,0 +1,22 @@ +--- +key_path: counts.count_total_canceled_completed_pipeline_executions +description: Total count of completed pipeline executions with canceled status +product_group: pipeline_execution +product_categories: +- pipeline_reports +performance_indicator_type: [] +value_type: number +status: active +milestone: '17.9' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/178392 +time_frame: all +data_source: internal_events +data_category: optional +tiers: +- free +- premium +- ultimate +events: +- name: completed_pipeline_execution + filter: + label: canceled diff --git a/config/metrics/counts_all/count_total_completed_pipeline_execution.yml b/config/metrics/counts_all/count_total_completed_pipeline_execution.yml new file mode 100644 index 00000000000..2464b849fef --- /dev/null +++ b/config/metrics/counts_all/count_total_completed_pipeline_execution.yml @@ -0,0 +1,20 @@ +--- +key_path: counts.count_total_completed_pipeline_execution +description: Total count of completed pipeline executions +product_group: pipeline_execution +product_categories: +- pipeline_reports +performance_indicator_type: [] +value_type: number +status: active +milestone: '17.9' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/178392 +time_frame: all +data_source: internal_events +data_category: optional +tiers: +- free +- premium +- ultimate +events: +- name: completed_pipeline_execution diff --git a/config/metrics/counts_all/count_total_failed_completed_pipeline_executions.yml b/config/metrics/counts_all/count_total_failed_completed_pipeline_executions.yml new file mode 100644 index 00000000000..114e51f9651 --- /dev/null +++ b/config/metrics/counts_all/count_total_failed_completed_pipeline_executions.yml @@ -0,0 +1,22 @@ +--- +key_path: counts.count_total_failed_completed_pipeline_executions +description: Total count of completed pipeline executions with failed status +product_group: pipeline_execution +product_categories: +- pipeline_reports +performance_indicator_type: [] +value_type: number +status: active +milestone: '17.9' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/178392 +time_frame: all +data_source: internal_events +data_category: optional +tiers: +- free +- premium +- ultimate +events: +- name: completed_pipeline_execution + filter: + label: failed diff --git a/config/metrics/counts_all/count_total_skipped_completed_pipeline_executions.yml b/config/metrics/counts_all/count_total_skipped_completed_pipeline_executions.yml new file mode 100644 index 00000000000..9ff8fd89091 --- /dev/null +++ b/config/metrics/counts_all/count_total_skipped_completed_pipeline_executions.yml @@ -0,0 +1,22 @@ +--- +key_path: counts.count_total_skipped_completed_pipeline_executions +description: Total count of completed pipeline executions with skipped status +product_group: pipeline_execution +product_categories: +- pipeline_reports +performance_indicator_type: [] +value_type: number +status: active +milestone: '17.9' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/178392 +time_frame: all +data_source: internal_events +data_category: optional +tiers: +- free +- premium +- ultimate +events: +- name: completed_pipeline_execution + filter: + label: skipped diff --git a/config/metrics/counts_all/count_total_successful_completed_pipeline_executions.yml b/config/metrics/counts_all/count_total_successful_completed_pipeline_executions.yml new file mode 100644 index 00000000000..5d54e4854e7 --- /dev/null +++ b/config/metrics/counts_all/count_total_successful_completed_pipeline_executions.yml @@ -0,0 +1,22 @@ +--- +key_path: counts.count_total_successful_completed_pipeline_executions +description: Total count of completed pipelines with success status +product_group: pipeline_execution +product_categories: +- pipeline_reports +performance_indicator_type: [] +value_type: number +status: active +milestone: '17.9' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/178392 +time_frame: all +data_source: internal_events +data_category: optional +tiers: +- free +- premium +- ultimate +events: +- name: completed_pipeline_execution + filter: + label: success diff --git a/config/redis.yml.example b/config/redis.yml.example index e1123edbe22..3f93434b263 100644 --- a/config/redis.yml.example +++ b/config/redis.yml.example @@ -1,5 +1,7 @@ --- development: + buffered_counter: + url: redis://localhost:6379 chat: cluster: - redis://localhost:7001 @@ -30,6 +32,8 @@ development: url: redis://localhost:6379 test: + buffered_counter: + url: redis://localhost:6379 chat: cluster: - redis://localhost:7001 diff --git a/doc/administration/external_users.md b/doc/administration/external_users.md index dda8621c5c3..592daf53cb8 100644 --- a/doc/administration/external_users.md +++ b/doc/administration/external_users.md @@ -78,6 +78,9 @@ and the ignore case flag is set (`/regex pattern/i`). Here are some examples: - Use `^(?:(?!\.ext@domain\.com).)*$\r?` to mark users with email addresses not including `.ext@domain.com` as internal. -WARNING: +{{< alert type="warning" >}} + Be aware that this regex could lead to a [regular expression denial of service (ReDoS) attack](https://en.wikipedia.org/wiki/ReDoS). + +{{< /alert >}} diff --git a/doc/administration/postgresql/upgrading_os.md b/doc/administration/postgresql/upgrading_os.md index 1a78b6ef847..19936752fe5 100644 --- a/doc/administration/postgresql/upgrading_os.md +++ b/doc/administration/postgresql/upgrading_os.md @@ -355,8 +355,11 @@ To provide users with read-only access to GitLab during the OS upgrade (partial 1. Route users to the promoted site instead of the old primary site. 1. Set up the old primary site as a new secondary site. -WARNING: +{{< alert type="warning" >}} + Even though the secondary site already has a read-replica of the database, you cannot upgrade its operating system prior to promotion. If you were to attempt that, then the secondary site may miss replication of some Git repositories or files, due to the corrupted indexes. See [Streaming replication](#streaming-replication). + +{{< /alert >}} diff --git a/doc/administration/settings/sign_up_restrictions.md b/doc/administration/settings/sign_up_restrictions.md index 1a32f38e309..0450501673f 100644 --- a/doc/administration/settings/sign_up_restrictions.md +++ b/doc/administration/settings/sign_up_restrictions.md @@ -137,9 +137,12 @@ you will be charged overages for the five additional users. ## User cap -DETAILS: -**Tier:** Premium, Ultimate -**Offering:** GitLab Self-Managed +{{< details >}} + +- Tier: Premium, Ultimate +- Offering: GitLab Self-Managed + +{{< /details >}} The user cap is the maximum number of billable users who can sign up or be added to a subscription without administrator approval. After the user cap is reached, users who sign up or are diff --git a/doc/api/search.md b/doc/api/search.md index 781c22954cb..4019a12275e 100644 --- a/doc/api/search.md +++ b/doc/api/search.md @@ -423,12 +423,20 @@ Example response: ] ``` -NOTE: +{{< alert type="note" >}} + `filename` is deprecated in favor of `path`. Both return the full path of the file inside the repository, but in the future `filename` is intended to be only the filename and not the full path. For details, see [issue 34521](https://gitlab.com/gitlab-org/gitlab/-/issues/34521). +{{< /alert >}} + ### Scope: `notes` -DETAILS: +{{< details >}} + +- Tier: Premium, Ultimate + +{{< /details >}} + **Tier:** Premium, Ultimate This scope is available only when [advanced search is enabled](../user/search/advanced_search.md#enable-advanced-search). @@ -582,9 +590,12 @@ Example response: ] ``` -NOTE: +{{< alert type="note" >}} + `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +{{< /alert >}} + ### Scope: `merge_requests` ```shell @@ -712,8 +723,11 @@ Example response: ### Scope: `wiki_blobs` -DETAILS: -**Tier:** Premium, Ultimate +{{< details >}} + +- Tier: Premium, Ultimate + +{{< /details >}} This scope is available only when [advanced search is enabled](../user/search/advanced_search.md#enable-advanced-search). @@ -740,13 +754,19 @@ Example response: ] ``` -NOTE: +{{< alert type="note" >}} + `filename` is deprecated in favor of `path`. Both return the full path of the file inside the repository, but in the future `filename` is intended to be only the filename and not the full path. For details, see [issue 34521](https://gitlab.com/gitlab-org/gitlab/-/issues/34521). +{{< /alert >}} + ### Scope: `commits` -DETAILS: -**Tier:** Premium, Ultimate +{{< details >}} + +- Tier: Premium, Ultimate + +{{< /details >}} This scope is available only when [advanced search is enabled](../user/search/advanced_search.md#enable-advanced-search). @@ -781,8 +801,11 @@ Example response: ### Scope: `blobs` -DETAILS: -**Tier:** Premium, Ultimate +{{< details >}} + +- Tier: Premium, Ultimate + +{{< /details >}} This scope is available only when [advanced search is enabled](../user/search/advanced_search.md#enable-advanced-search). @@ -1225,13 +1248,19 @@ Example response: ] ``` -NOTE: +{{< alert type="note" >}} + `filename` is deprecated in favor of `path`. Both return the full path of the file inside the repository, but in the future `filename` is intended to be only the filename and not the full path. For details, see [issue 34521](https://gitlab.com/gitlab-org/gitlab/-/issues/34521). +{{< /alert >}} + ### Scope: `notes` -DETAILS: -**Tier:** Premium, Ultimate +{{< details >}} + +- Tier: Premium, Ultimate + +{{< /details >}} ```shell curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/6/search?scope=notes&search=maxime" diff --git a/doc/ci/components/examples.md b/doc/ci/components/examples.md index 243637b1b65..be733c4bcc3 100644 --- a/doc/ci/components/examples.md +++ b/doc/ci/components/examples.md @@ -395,7 +395,7 @@ The CI/CD template migration involves the following steps: ``` - Create a `main.go` file with a main function, printing `Hello, CI/CD component` for example. - Tip: Use code comments to generate Go code using [GitLab Duo Code Suggestions](../../user/project/repository/code_suggestions/_index.md). + You can use code comments to generate Go code using [GitLab Duo Code Suggestions](../../user/project/repository/code_suggestions/_index.md). ```go // Specify the package, import required packages diff --git a/doc/ci/yaml/inputs.md b/doc/ci/yaml/inputs.md index ff5040e4313..086cafab9c0 100644 --- a/doc/ci/yaml/inputs.md +++ b/doc/ci/yaml/inputs.md @@ -516,7 +516,7 @@ The format supported is the following: $[[ input.input-id | | | ... ]] ``` -Details: +With functions: - Only [predefined interpolation functions](#predefined-interpolation-functions) are permitted. - A maximum of 3 functions may be specified in a single interpolation block. diff --git a/doc/development/ai_features/model_migration.md b/doc/development/ai_features/model_migration.md index dfe9857e8c8..46ef7771a28 100644 --- a/doc/development/ai_features/model_migration.md +++ b/doc/development/ai_features/model_migration.md @@ -106,7 +106,8 @@ Documentation of model changes is crucial for tracking the impact of migrations - Add the new model to our [available models list](https://gitlab.com/gitlab-org/gitlab/-/blob/32fa9eaa3c8589ee7f448ae683710ec7bd82f36c/ee/lib/gitlab/llm/concerns/available_models.rb#L5-10). - Change the default model in our [AI-Gateway client](https://gitlab.com/gitlab-org/gitlab/-/blob/41361629b302f2c55e35701d2c0a73cff32f9013/ee/lib/gitlab/llm/chain/requests/ai_gateway.rb#L63-67). Please place the change around a feature flag. We may need to quickly rollback the change. - Update the model definitions in AI gateway following the [prompt definition guidelines](actions.md#2-create-a-prompt-definition-in-the-ai-gateway) -Note: While we're moving toward AI gateway holding the prompts, feature flag implementation still requires a GitLab release. + +While we're moving toward AI gateway holding the prompts, feature flag implementation still requires a GitLab release. ### Migration Tasks for Vertex Models diff --git a/doc/development/architecture.md b/doc/development/architecture.md index 8ffe96dc6c5..e33361783d4 100644 --- a/doc/development/architecture.md +++ b/doc/development/architecture.md @@ -11,7 +11,8 @@ There are two software distributions of GitLab: - The open source [Community Edition](https://gitlab.com/gitlab-org/gitlab-foss/) (CE). - The open core [Enterprise Edition](https://gitlab.com/gitlab-org/gitlab/) (EE). - **Note:** The EE repository has been archived. GitLab now operates [under a single codebase](https://about.gitlab.com/blog/2019/08/23/a-single-codebase-for-gitlab-community-and-enterprise-edition/). + +The EE repository has been archived. GitLab now operates [under a single codebase](https://about.gitlab.com/blog/2019/08/23/a-single-codebase-for-gitlab-community-and-enterprise-edition/). GitLab is available under [different subscriptions](https://about.gitlab.com/pricing/). diff --git a/doc/development/code_review.md b/doc/development/code_review.md index 7091a2a1225..95401e30563 100644 --- a/doc/development/code_review.md +++ b/doc/development/code_review.md @@ -484,7 +484,7 @@ Here is a summary, which is also reflected in other sections. - Authors [request a review](../user/project/merge_requests/reviews/_index.md#request-a-review) by assigning users as Reviewers. - Authors [re-request a review](../user/project/merge_requests/reviews/_index.md#re-request-a-review) when they have made changes and wish a reviewer to re-review. - Reviewers use the [reviews feature](../user/project/merge_requests/reviews/_index.md#start-a-review) to submit feedback. - Tip: Select **Start review** or **Start a review** rather than **Add comment now** in any comment context on the MR. + You can select **Start review** or **Start a review** rather than **Add comment now** in any comment context on the MR. ## Best practices diff --git a/doc/development/database/adding_database_indexes.md b/doc/development/database/adding_database_indexes.md index e766f6fb807..412d880fb38 100644 --- a/doc/development/database/adding_database_indexes.md +++ b/doc/development/database/adding_database_indexes.md @@ -568,11 +568,14 @@ migration as expected for other installations. The below block demonstrates how to create the second migration for the previous asynchronous example. -**WARNING:** +{{< alert type="warning" >}} + Verify that the index exists in production before merging a second migration with `add_concurrent_index`. If the second migration is deployed before the index has been created, the index is created synchronously when the second migration executes. +{{< /alert >}} + ```ruby # in db/post_migrate/ @@ -696,11 +699,14 @@ The synchronous migration results in a no-op on GitLab.com, but you should still migration as expected for other installations. For example, to create the second migration for the previous asynchronous example: -**WARNING:** +{{< alert type="warning" >}} + Verify that the index no longer exists in production before merging a second migration with `remove_concurrent_index_by_name`. If the second migration is deployed before the index has been destroyed, the index is destroyed synchronously when the second migration executes. +{{< /alert >}} + ```ruby # in db/post_migrate/ diff --git a/doc/development/documentation/hugo_migration.md b/doc/development/documentation/hugo_migration.md index 28c274e2e8e..b243b50d562 100644 --- a/doc/development/documentation/hugo_migration.md +++ b/doc/development/documentation/hugo_migration.md @@ -67,19 +67,12 @@ Our custom elements are: - GitLab SVG icons - Tabs -For example, before: - -```markdown -WARNING: -Don't delete your gitlabs! -``` - -And after: +For example: ```markdown {{}} -Don't delete your gitlabs! +Don't delete your docs! {{}} ``` diff --git a/doc/development/fe_guide/style/javascript.md b/doc/development/fe_guide/style/javascript.md index 35a0aa249b5..8b9bb66971a 100644 --- a/doc/development/fe_guide/style/javascript.md +++ b/doc/development/fe_guide/style/javascript.md @@ -103,7 +103,11 @@ class a { When converting strings to integers, `Number` is semantic and can be more readable. Both are allowable, but `Number` has a slight maintainability advantage. -**WARNING:** `parseInt` **must** include the [radix argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt). +{{< alert type="warning" >}} + +`parseInt` **must** include the [radix argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt). + +{{< /alert >}} ```javascript // bad (missing radix argument) diff --git a/doc/development/import_export.md b/doc/development/import_export.md index 9af35e24029..de908fbddd0 100644 --- a/doc/development/import_export.md +++ b/doc/development/import_export.md @@ -359,5 +359,8 @@ tree └── 4352.json ``` -WARNING: +{{< alert type="warning" >}} + When updating these fixtures, ensure you update both `json` files and `tree` folder, as the tests apply to both. + +{{< /alert >}} diff --git a/doc/development/redis/new_redis_instance.md b/doc/development/redis/new_redis_instance.md index 35ca9704a7f..910fce09430 100644 --- a/doc/development/redis/new_redis_instance.md +++ b/doc/development/redis/new_redis_instance.md @@ -197,9 +197,13 @@ Write commands are defined in the [`Gitlab::Redis::MultiStore::WRITE_COMMANDS` c ##### `pipelined` commands -**NOTE:** The Ruby block passed to these commands will be executed twice, once per each store. +{{< alert type="note" >}} + +The Ruby block passed to these commands will be executed twice, once per each store. Thus, excluding the Redis operations performed, the block should be idempotent. +{{< /alert >}} + - `pipelined` - `multi` diff --git a/doc/development/testing_guide/end_to_end/best_practices/feature_flags.md b/doc/development/testing_guide/end_to_end/best_practices/feature_flags.md index 16d4f72f69b..ee6a2c7082e 100644 --- a/doc/development/testing_guide/end_to_end/best_practices/feature_flags.md +++ b/doc/development/testing_guide/end_to_end/best_practices/feature_flags.md @@ -34,9 +34,13 @@ Be sure to include the `feature_flag` tag so that the test can be skipped on the - When `scope` is set to any other value (such as `:project`, `:group` or `:user`), or if no `scope` is specified, the test will only be **skipped on canary, production, and pre-production**. This is due to the fact that administrator access is not available there. -**WARNING:** You are strongly advised to first try and [enable feature flags only for a group, project, user](../../../feature_flags/_index.md#feature-actors), +{{< alert type="warning" >}} + +You are strongly advised to first try and [enable feature flags only for a group, project, user](../../../feature_flags/_index.md#feature-actors), or [feature group](../../../feature_flags/_index.md#feature-groups). +{{< /alert >}} + - If a global feature flag must be used, it is strongly recommended to apply `scope: :global` to the `feature_flag` metadata. This is, however, left up to the SET's discretion to determine the level of risk. - For example, a test uses a global feature flag that only affects a small area of the application and is also needed to check for critical issues on live environments. In such a scenario, it would be riskier to skip running the test. For cases like this, `scope` can be left out of the metadata so that it can still run in live environments diff --git a/doc/development/testing_guide/frontend_testing.md b/doc/development/testing_guide/frontend_testing.md index 739f8392ec6..17b6bb9790e 100644 --- a/doc/development/testing_guide/frontend_testing.md +++ b/doc/development/testing_guide/frontend_testing.md @@ -909,9 +909,13 @@ The more challenging part are mocks, which can be used for functions or even dep Manual mocks are used to mock modules across the entire Jest environment. This is a very powerful testing tool that helps simplify unit testing by mocking out modules that cannot be easily consumed in our test environment. -> **WARNING:** Do not use manual mocks if a mock should not be consistently applied in every spec (that is, it's only needed by a few specs). -> Instead, consider using [`jest.mock(..)`](https://jestjs.io/docs/jest-object#jestmockmodulename-factory-options) -> (or a similar mocking function) in the relevant spec file. +{{< alert type="warning" >}} + +Do not use manual mocks if a mock should not be consistently applied in every spec (that is, it's only needed by a few specs). +Instead, consider using [`jest.mock(..)`](https://jestjs.io/docs/jest-object#jestmockmodulename-factory-options) +(or a similar mocking function) in the relevant spec file. + +{{< /alert >}} #### Where should you put manual mocks? diff --git a/doc/editor_extensions/eclipse/troubleshooting.md b/doc/editor_extensions/eclipse/troubleshooting.md index 106ccf36c19..e48a407361f 100644 --- a/doc/editor_extensions/eclipse/troubleshooting.md +++ b/doc/editor_extensions/eclipse/troubleshooting.md @@ -47,8 +47,11 @@ The debug logs are available in the `language_server.log` file. To view this fil ## Certificate errors -WARNING: +{{< alert type="warning" >}} + You may experience errors connecting to GitLab if you connect to GitLab through a proxy or using custom certificates. [Support for HTTP proxies](https://gitlab.com/gitlab-org/editor-extensions/gitlab-eclipse-plugin/-/issues/35) and [support for custom certificates](https://gitlab.com/gitlab-org/editor-extensions/gitlab-eclipse-plugin/-/issues/36) are proposed for a future release. + +{{< /alert >}} diff --git a/doc/integration/saml.md b/doc/integration/saml.md index 3d934903594..769ab6480cc 100644 --- a/doc/integration/saml.md +++ b/doc/integration/saml.md @@ -1087,10 +1087,13 @@ SAML can automatically identify a user as an [external user](../administration/external_users.md), based on the `external_groups` setting. -**NOTE**: +{{< alert type="note" >}} + If the attribute specified in `groups_attribute` is incorrect or missing then the user will access as a standard user. +{{< /alert >}} + Example configuration: {{< tabs >}} diff --git a/doc/topics/autodevops/cloud_deployments/auto_devops_with_ecs.md b/doc/topics/autodevops/cloud_deployments/auto_devops_with_ecs.md index a2b0e0022b4..fb01ec61172 100644 --- a/doc/topics/autodevops/cloud_deployments/auto_devops_with_ecs.md +++ b/doc/topics/autodevops/cloud_deployments/auto_devops_with_ecs.md @@ -25,7 +25,8 @@ your application is deployed to AWS ECS. If you have both a valid `AUTO_DEVOPS_PLATFORM_TARGET` variable and a Kubernetes cluster tied to your project, only the deployment to Kubernetes runs. -WARNING: +{{< alert type="warning" >}} + Setting the `AUTO_DEVOPS_PLATFORM_TARGET` variable to `ECS` triggers jobs defined in the [`Jobs/Deploy/ECS.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/Deploy/ECS.gitlab-ci.yml). However, it's not recommended to [include](../../../ci/yaml/_index.md#includetemplate) @@ -33,3 +34,5 @@ it on its own. This template is designed to be used with Auto DevOps only. It ma unexpectedly causing your pipeline to fail if included on its own. Also, the job names within this template may also change. Do not override these jobs' names in your own pipeline, as the override stops working when the name changes. + +{{< /alert >}} diff --git a/doc/topics/autodevops/upgrading_auto_deploy_dependencies.md b/doc/topics/autodevops/upgrading_auto_deploy_dependencies.md index 4152b160481..23b1d5c6c03 100644 --- a/doc/topics/autodevops/upgrading_auto_deploy_dependencies.md +++ b/doc/topics/autodevops/upgrading_auto_deploy_dependencies.md @@ -110,11 +110,14 @@ If your Auto DevOps project has an active environment that was deployed with the If you accidentally delete the Helm v2 releases before you are ready, you can restore this backup from a Kubernetes manifest file by using `kubectl apply -f $backup`. - **WARNING:** + {{< alert type="warning" >}} + *Do not use this if you have public pipelines*. This artifact can contain secrets and is visible to any user who can see your job. + {{< /alert >}} + 1. Run a pipeline and trigger the `:helm-2to3:migrate` job. 1. Deploy your environment as usual. This deployment uses Helm v3. 1. If the deployment succeeds, you can safely run `:helm-2to3:cleanup`. diff --git a/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md b/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md index 7337e0e5475..b58c2bc16d8 100644 --- a/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md +++ b/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md @@ -116,9 +116,12 @@ Complete the following steps to identify the compute and RAM resources needed: This script runs a detached container with the image built. The container ID is then used to collect its `CPU` and `Memory` usage until the container exits upon successful completion. The metrics collected are saved in a file called `metrics.log`. - NOTE: + {{< alert type="note" >}} + In the example, the CI/CD job is short-lived, so the sleep between each container poll is set to one second. Adjust this value to better suit your needs. + {{< /alert >}} + 1. Analyze the `metrics.log` file to identify the peak usage of the test container. In the example, the maximum CPU usage is `107.50%` and the maximum memory usage is `303.1Mi`. diff --git a/doc/user/application_security/api_security/api_discovery/_index.md b/doc/user/application_security/api_security/api_discovery/_index.md index c7ca3cfcec9..ac2a78a2c8c 100644 --- a/doc/user/application_security/api_security/api_discovery/_index.md +++ b/doc/user/application_security/api_security/api_discovery/_index.md @@ -186,5 +186,8 @@ When experiencing a behavior not working as expected, consider providing context - Language runtime with version (for example OpenJDK v17.0.1). -WARNING: +{{< alert type="warning" >}} + **Sanitize data attached to a support issue**. Remove sensitive information, including: credentials, passwords, tokens, keys, and secrets. + +{{< /alert >}} diff --git a/doc/user/application_security/security_dashboard/_index.md b/doc/user/application_security/security_dashboard/_index.md index e9f35154709..dd863a238ee 100644 --- a/doc/user/application_security/security_dashboard/_index.md +++ b/doc/user/application_security/security_dashboard/_index.md @@ -45,10 +45,13 @@ To view the Security Dashboards, the following is required: - A successful security scan performed on the [default branch](../../project/repository/branches/default.md) of your project. - At least 1 detected vulnerability in the project. -**Note**: +{{< alert type="note" >}} + The Security Dashboards show results of scans from the most recent completed pipeline on the [default branch](../../project/repository/branches/default.md). Dashboards are updated with the result of completed pipelines run on the default branch; they do not include vulnerabilities discovered in pipelines from other un-merged branches. +{{< /alert >}} + ## Viewing the Security Dashboard The Security Dashboard can be seen at the project, group, and the Security Center levels. diff --git a/doc/user/markdown.md b/doc/user/markdown.md index e94ed87659f..054328b0949 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -1609,12 +1609,14 @@ or - Merge requests. - Epics. -NOTE: +{{< alert type="note" >}} + A table of contents renders also when you use the TOC code in single square brackets, regardless of -being on its own line or not. -This behavior is unintended. +being on its own line or not. This behavior is unintended. For more information, see [issue 359077](https://gitlab.com/gitlab-org/gitlab/-/issues/359077). +{{< /alert >}} + ```markdown This sentence introduces my wiki page. diff --git a/doc/user/project/repository/signed_commits/_index.md b/doc/user/project/repository/signed_commits/_index.md index 71fd09ad492..4afe6274393 100644 --- a/doc/user/project/repository/signed_commits/_index.md +++ b/doc/user/project/repository/signed_commits/_index.md @@ -24,10 +24,13 @@ You can then configure [push rules](../push_rules.md) for your project to: - Reject individual unsigned commits. - Reject all commits from unverified users. -NOTE: +{{< alert type="note" >}} + The committer and author fields are distinct in Git. The author writes the commit, and the committer applies it. Commit signing verifies only the committer's identity. +{{< /alert >}} + Sign commits with your: - [SSH key](ssh.md). diff --git a/lib/gitlab/redis/buffered_counter.rb b/lib/gitlab/redis/buffered_counter.rb index 21fc4ba8034..5bc6aebf550 100644 --- a/lib/gitlab/redis/buffered_counter.rb +++ b/lib/gitlab/redis/buffered_counter.rb @@ -2,11 +2,15 @@ module Gitlab module Redis - class BufferedCounter < ::Gitlab::Redis::Wrapper + class BufferedCounter < ::Gitlab::Redis::MultiStoreWrapper class << self def config_fallback SharedState end + + def multistore + MultiStore.create_using_pool(SharedState.pool, pool, store_name) + end end end end diff --git a/lib/tasks/gitlab/tw/codeowners.rake b/lib/tasks/gitlab/tw/codeowners.rake index cd7a5b4e018..4869288a612 100644 --- a/lib/tasks/gitlab/tw/codeowners.rake +++ b/lib/tasks/gitlab/tw/codeowners.rake @@ -48,7 +48,7 @@ namespace :tw do CodeOwnerRule.new('Dynamic Analysis', '@phillipwells'), CodeOwnerRule.new('Editor Extensions', '@aqualls'), CodeOwnerRule.new('Environment Automation', '@emily.sahlani'), - CodeOwnerRule.new('Environments', '@phillipwells'), + CodeOwnerRule.new('Environments', '@z_painter'), # CodeOwnerRule.new('Fulfillment Platform', ''), CodeOwnerRule.new('Fuzz Testing', '@rdickenson'), CodeOwnerRule.new('Geo', '@axil'), @@ -62,7 +62,7 @@ namespace :tw do CodeOwnerRule.new('Optimize', '@lciutacu'), CodeOwnerRule.new('Organizations', '@emily.sahlani'), CodeOwnerRule.new('Organization', '@lciutacu'), - CodeOwnerRule.new('Package Registry', '@phillipwells'), + CodeOwnerRule.new('Package Registry', '@z_painter'), CodeOwnerRule.new('Personal Productivity', '@sselhorn'), CodeOwnerRule.new('Pipeline Authoring', '@marcel.amirault'), CodeOwnerRule.new('Pipeline Execution', '@lyspin'), diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 15734043012..d302833a9de 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -2942,6 +2942,9 @@ msgstr "" msgid "AccessTokens|Copy static object token" msgstr "" +msgid "AccessTokens|Copy token" +msgstr "" + msgid "AccessTokens|Create %{type}" msgstr "" @@ -3013,6 +3016,9 @@ msgstr "" msgid "AccessTokens|Lifetime" msgstr "" +msgid "AccessTokens|Make sure you save it - you won't be able to access it again." +msgstr "" + msgid "AccessTokens|Name" msgstr "" @@ -3118,6 +3124,9 @@ msgstr "" msgid "AccessTokens|Your static object token authenticates you when repository static objects (such as archives or blobs) are served from an external storage." msgstr "" +msgid "AccessTokens|Your token" +msgstr "" + msgid "Accessibility" msgstr "" diff --git a/spec/lib/gitlab/redis/buffered_counter_spec.rb b/spec/lib/gitlab/redis/buffered_counter_spec.rb index ef17b90d406..47534f2044e 100644 --- a/spec/lib/gitlab/redis/buffered_counter_spec.rb +++ b/spec/lib/gitlab/redis/buffered_counter_spec.rb @@ -4,4 +4,10 @@ require 'spec_helper' RSpec.describe Gitlab::Redis::BufferedCounter, feature_category: :redis do include_examples "redis_new_instance_shared_examples", 'buffered_counter', Gitlab::Redis::SharedState + include_examples "multi_store_wrapper_shared_examples" + + it 'migrates from self to SharedState' do + expect(described_class.multistore.secondary_pool).to eq(described_class.pool) + expect(described_class.multistore.primary_pool).to eq(Gitlab::Redis::SharedState.pool) + end end diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index baf1d2ff98f..4dc6393cf92 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -207,6 +207,28 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep, feature_category: pipeline.succeed! end end + + describe 'to completed' do + # need pre-created object to avoid another InternalEvent being triggers in the models create hook + let!(:pipeline) { create(:ci_empty_pipeline, user: user, project: project) } + + { + succeed!: 'success', + drop!: 'failed', + skip!: 'skipped', + cancel!: 'canceled' + }.each do |pipeline_event, status| + context "when transitioning to #{status}" do + it_behaves_like 'internal event tracking' do + let(:event) { 'completed_pipeline_execution' } + let(:additional_properties) { { label: status } } + let(:category) { described_class.name } + + subject(:completed_pipeline) { pipeline.public_send(pipeline_event) } + end + end + end + end end describe 'callbacks' do