Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2025-02-04 03:18:21 +00:00
parent 1b859cccfe
commit d69838f199
755 changed files with 21861 additions and 1468 deletions

View File

@ -266,7 +266,7 @@ gem 'asciidoctor', '~> 2.0.18', feature_category: :markdown
gem 'asciidoctor-include-ext', '~> 0.4.0', require: false, feature_category: :markdown
gem 'asciidoctor-plantuml', '~> 0.0.16', feature_category: :markdown
gem 'asciidoctor-kroki', '~> 0.10.0', require: false, feature_category: :markdown
gem 'rouge', '~> 4.4.0', feature_category: :shared
gem 'rouge', '~> 4.5.0', feature_category: :shared
gem 'truncato', '~> 0.7.12', feature_category: :team_planning
gem 'nokogiri', '~> 1.18', feature_category: :shared
gem 'gitlab-glfm-markdown', '~> 0.0.21', feature_category: :markdown
@ -362,7 +362,7 @@ gem 'sanitize', '~> 6.0.2', feature_category: :shared
gem 'babosa', '~> 2.0', feature_category: :shared
# Sanitizes SVG input
gem 'loofah', '~> 2.22.0', feature_category: :shared
gem 'loofah', '~> 2.24.0', feature_category: :shared
# Used to provide license templates
gem 'licensee', '~> 9.16', feature_category: :shared

View File

@ -380,7 +380,7 @@
{"name":"lockbox","version":"1.3.0","platform":"ruby","checksum":"ca8e5806e4e0c56d1d762ac5cf401940ff53fc37554ef623d3313c7a6331a3ea"},
{"name":"logger","version":"1.5.3","platform":"ruby","checksum":"ed443128c2c9254db1a3573c53708b00319c01022b40dcce60a873911831d67b"},
{"name":"lograge","version":"0.11.2","platform":"ruby","checksum":"4cbd1554b86f545d795eff15a0c24fd25057d2ac4e1caa5fc186168b3da932ef"},
{"name":"loofah","version":"2.22.0","platform":"ruby","checksum":"10d76e070c86b12fec74b6a9515fd1940f4459198b991342d0a7897d86c372fe"},
{"name":"loofah","version":"2.24.0","platform":"ruby","checksum":"61e6a710883abb8210887f3dc868cf3ed66594c509d9ff6987621efa6651ee1e"},
{"name":"lookbook","version":"2.3.4","platform":"ruby","checksum":"16484c9eb514ac0c23c4b59cfd5a52697141d35056e3a9c2a22b314c1b887605"},
{"name":"lru_redux","version":"1.1.0","platform":"ruby","checksum":"ee71d0ccab164c51de146c27b480a68b3631d5b4297b8ffe8eda1c72de87affb"},
{"name":"lumberjack","version":"1.2.7","platform":"ruby","checksum":"a5c6aae6b4234f1420dbcd80b23e3bca0817bd239440dde097ebe3fa63c63b1f"},
@ -609,7 +609,7 @@
{"name":"rexml","version":"3.4.0","platform":"ruby","checksum":"efbea1efba7fa151158e0ee1e643525834da2d8eb4cf744aa68f6480bc9804b2"},
{"name":"rinku","version":"2.0.0","platform":"ruby","checksum":"3e695aaf9f24baba3af45823b5c427b58a624582132f18482320e2737f9f8a85"},
{"name":"rotp","version":"6.3.0","platform":"ruby","checksum":"75d40087e65ed0d8022c33055a6306c1c400d1c12261932533b5d6cbcd868854"},
{"name":"rouge","version":"4.4.0","platform":"ruby","checksum":"7a6d6d951e3202e4ce3926838625fa6edeb35680e6d1e3817f53c14212220b64"},
{"name":"rouge","version":"4.5.1","platform":"ruby","checksum":"2ac81c6dee7019bbc6600d4c2d641d730d65c165941400ebd924259067e690dd"},
{"name":"rqrcode","version":"2.2.0","platform":"ruby","checksum":"23eea88bb44c7ee6d6cab9354d08c287f7ebcdc6112e1fe7bcc2d010d1ffefc1"},
{"name":"rqrcode_core","version":"1.2.0","platform":"ruby","checksum":"cf4989dc82d24e2877984738c4ee569308625fed2a810960f1b02d68d0308d1a"},
{"name":"rspec","version":"3.13.0","platform":"ruby","checksum":"d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993"},

View File

@ -1124,7 +1124,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.22.0)
loofah (2.24.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
lookbook (2.3.4)
@ -1598,7 +1598,7 @@ GEM
rexml (3.4.0)
rinku (2.0.0)
rotp (6.3.0)
rouge (4.4.0)
rouge (4.5.1)
rqrcode (2.2.0)
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
@ -2176,7 +2176,7 @@ DEPENDENCIES
lockbox (~> 1.3.0)
logger (~> 1.5.3)
lograge (~> 0.5)
loofah (~> 2.22.0)
loofah (~> 2.24.0)
lookbook (~> 2.3)
lru_redux
mail (= 2.8.1)
@ -2277,7 +2277,7 @@ DEPENDENCIES
responders (~> 3.0)
retriable (~> 3.1.2)
rexml (~> 3.4.0)
rouge (~> 4.4.0)
rouge (~> 4.5.0)
rqrcode (~> 2.2)
rspec-benchmark (~> 0.6.0)
rspec-parameterized (~> 1.0, >= 1.0.2)

View File

@ -383,7 +383,7 @@
{"name":"lockbox","version":"1.3.0","platform":"ruby","checksum":"ca8e5806e4e0c56d1d762ac5cf401940ff53fc37554ef623d3313c7a6331a3ea"},
{"name":"logger","version":"1.5.3","platform":"ruby","checksum":"ed443128c2c9254db1a3573c53708b00319c01022b40dcce60a873911831d67b"},
{"name":"lograge","version":"0.11.2","platform":"ruby","checksum":"4cbd1554b86f545d795eff15a0c24fd25057d2ac4e1caa5fc186168b3da932ef"},
{"name":"loofah","version":"2.22.0","platform":"ruby","checksum":"10d76e070c86b12fec74b6a9515fd1940f4459198b991342d0a7897d86c372fe"},
{"name":"loofah","version":"2.24.0","platform":"ruby","checksum":"61e6a710883abb8210887f3dc868cf3ed66594c509d9ff6987621efa6651ee1e"},
{"name":"lookbook","version":"2.3.4","platform":"ruby","checksum":"16484c9eb514ac0c23c4b59cfd5a52697141d35056e3a9c2a22b314c1b887605"},
{"name":"lru_redux","version":"1.1.0","platform":"ruby","checksum":"ee71d0ccab164c51de146c27b480a68b3631d5b4297b8ffe8eda1c72de87affb"},
{"name":"lumberjack","version":"1.2.7","platform":"ruby","checksum":"a5c6aae6b4234f1420dbcd80b23e3bca0817bd239440dde097ebe3fa63c63b1f"},
@ -619,7 +619,7 @@
{"name":"rexml","version":"3.4.0","platform":"ruby","checksum":"efbea1efba7fa151158e0ee1e643525834da2d8eb4cf744aa68f6480bc9804b2"},
{"name":"rinku","version":"2.0.0","platform":"ruby","checksum":"3e695aaf9f24baba3af45823b5c427b58a624582132f18482320e2737f9f8a85"},
{"name":"rotp","version":"6.3.0","platform":"ruby","checksum":"75d40087e65ed0d8022c33055a6306c1c400d1c12261932533b5d6cbcd868854"},
{"name":"rouge","version":"4.4.0","platform":"ruby","checksum":"7a6d6d951e3202e4ce3926838625fa6edeb35680e6d1e3817f53c14212220b64"},
{"name":"rouge","version":"4.5.1","platform":"ruby","checksum":"2ac81c6dee7019bbc6600d4c2d641d730d65c165941400ebd924259067e690dd"},
{"name":"rqrcode","version":"2.2.0","platform":"ruby","checksum":"23eea88bb44c7ee6d6cab9354d08c287f7ebcdc6112e1fe7bcc2d010d1ffefc1"},
{"name":"rqrcode_core","version":"1.2.0","platform":"ruby","checksum":"cf4989dc82d24e2877984738c4ee569308625fed2a810960f1b02d68d0308d1a"},
{"name":"rspec","version":"3.13.0","platform":"ruby","checksum":"d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993"},

View File

@ -1141,7 +1141,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.22.0)
loofah (2.24.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
lookbook (2.3.4)
@ -1630,7 +1630,7 @@ GEM
rexml (3.4.0)
rinku (2.0.0)
rotp (6.3.0)
rouge (4.4.0)
rouge (4.5.1)
rqrcode (2.2.0)
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
@ -2211,7 +2211,7 @@ DEPENDENCIES
lockbox (~> 1.3.0)
logger (~> 1.5.3)
lograge (~> 0.5)
loofah (~> 2.22.0)
loofah (~> 2.24.0)
lookbook (~> 2.3)
lru_redux
mail (= 2.8.1)
@ -2312,7 +2312,7 @@ DEPENDENCIES
responders (~> 3.0)
retriable (~> 3.1.2)
rexml (~> 3.4.0)
rouge (~> 4.4.0)
rouge (~> 4.5.0)
rqrcode (~> 2.2)
rspec-benchmark (~> 0.6.0)
rspec-parameterized (~> 1.0, >= 1.0.2)

View File

@ -20,7 +20,7 @@ export default {
default: '',
},
},
docsLink: helpPagePath('development/internal_analytics/service_ping/index'),
docsLink: helpPagePath('development/internal_analytics/service_ping/_index'),
};
</script>
<template>

View File

@ -1,7 +1,13 @@
<script>
import { GlAlert } from '@gitlab/ui';
import { getGlobalAlerts, setGlobalAlerts, removeGlobalAlertById } from '~/lib/utils/global_alerts';
import {
GLOBAL_ALERTS_DISMISS_EVENT,
eventHub,
getGlobalAlerts,
setGlobalAlerts,
removeGlobalAlertById,
} from '~/lib/utils/global_alerts';
export default {
name: 'GlobalAlerts',
@ -11,6 +17,12 @@ export default {
alerts: [],
};
},
created() {
eventHub.$on(GLOBAL_ALERTS_DISMISS_EVENT, this.onDismissById);
},
beforeDestroy() {
eventHub.$off(GLOBAL_ALERTS_DISMISS_EVENT, this.onDismissById);
},
mounted() {
const { page } = document.body.dataset;
const alerts = getGlobalAlerts();
@ -31,6 +43,10 @@ export default {
this.alerts.splice(index, 1);
removeGlobalAlertById(alert.id);
},
onDismissById(id) {
this.alerts = this.alerts.filter((alert) => alert.id !== id);
removeGlobalAlertById(id);
},
},
};
</script>

View File

@ -1,4 +1,9 @@
import createEventHub from '~/helpers/event_hub_factory';
export const GLOBAL_ALERTS_SESSION_STORAGE_KEY = 'vueGlobalAlerts';
export const GLOBAL_ALERTS_DISMISS_EVENT = 'vueGlobalAlertsDismiss';
export const eventHub = createEventHub();
/**
* Get global alerts from session storage
@ -35,3 +40,11 @@ export const removeGlobalAlertById = (id) => {
JSON.stringify(existingAlerts.filter((alert) => alert.id !== id)),
);
};
/**
* Programmatically dismiss global alert by id
* @param {String} id
*/
export const dismissGlobalAlertById = (id) => {
eventHub.$emit(GLOBAL_ALERTS_DISMISS_EVENT, id);
};

View File

@ -5,7 +5,7 @@
testid: 'snowplow-settings-content',
expanded: expanded) do |c|
- c.with_description do
- help_link = link_to('', help_page_path('development/internal_analytics/internal_event_instrumentation/index.md'), target: '_blank', rel: 'noopener noreferrer')
- help_link = link_to('', help_page_path('development/internal_analytics/internal_event_instrumentation/_index.md'), target: '_blank', rel: 'noopener noreferrer')
- snowplow_link = link_to('', 'https://snowplow.io/', target: '_blank', rel: 'noopener noreferrer')
= safe_format(_('Configure %{snowplow_link_start}Snowplow%{snowplow_link_end} to track events. %{help_link_start}Learn more.%{help_link_end}'), tag_pair(snowplow_link, :snowplow_link_start, :snowplow_link_end), tag_pair(help_link, :help_link_start, :help_link_end))
- c.with_body do

View File

@ -12,7 +12,7 @@
help_text: _("GitLab informs you if a new version is available. %{link_start}What information does GitLab Inc. collect?%{link_end}").html_safe % { link_start: help_link_start, link_end: link_end }
.form-group
- can_be_configured = @application_setting.usage_ping_can_be_configured?
- service_ping_link_start = link_start % { url: help_page_path('development/internal_analytics/service_ping/index.md') }
- service_ping_link_start = link_start % { url: help_page_path('development/internal_analytics/service_ping/_index.md') }
- deactivating_service_ping_link_start = link_start % { url: help_page_path('administration/settings/usage_statistics.md', anchor: 'through-the-configuration-file') }
- usage_ping_help_text = s_('AdminSettings|To help improve GitLab and its user experience, GitLab periodically collects usage information. %{link_start}What information is shared with GitLab Inc.?%{link_end}').html_safe % { link_start: service_ping_link_start, link_end: link_end }
- disabled_help_text = s_('AdminSettings|Service ping is disabled in your configuration file, and cannot be enabled through this form. For more information, see the documentation on %{link_start}deactivating service ping%{link_end}.').html_safe % { link_start: deactivating_service_ping_link_start, link_end: link_end }

View File

@ -1,6 +1,6 @@
- service_ping_enabled = Gitlab::CurrentSettings.usage_ping_enabled
- if !service_ping_enabled
#js-devops-service-ping-disabled{ data: { is_admin: current_user&.admin.to_s, empty_state_svg_path: image_path('illustrations/empty-state/empty-devops-md.svg'), enable_service_ping_path: metrics_and_profiling_admin_application_settings_path(anchor: 'js-usage-settings'), docs_link: help_page_path('development/internal_analytics/service_ping/index.md') } }
#js-devops-service-ping-disabled{ data: { is_admin: current_user&.admin.to_s, empty_state_svg_path: image_path('illustrations/empty-state/empty-devops-md.svg'), enable_service_ping_path: metrics_and_profiling_admin_application_settings_path(anchor: 'js-usage-settings'), docs_link: help_page_path('development/internal_analytics/service_ping/_index.md') } }
- else
#js-devops-score{ data: { devops_score_metrics: devops_score_metrics(@metric).to_json, no_data_image_path: image_path('illustrations/empty-state/empty-devops-md.svg'), devops_score_intro_image_path: image_path('illustrations/chart-bar-sm.svg') } }

View File

@ -1,6 +1,6 @@
- title: "GraphQL deprecation of `dependencyProxyTotalSizeInBytes` field" # (required) Actionable title. e.g., The `confidential` field for a `Note` is deprecated. Use `internal` instead.
announcement_milestone: "16.1" # (required) The milestone when this feature was first announced as deprecated.
removal_milestone: "17.0" # (required) The milestone when this feature is planned to be removed
removal_milestone: "18.0" # (required) The milestone when this feature is planned to be removed
breaking_change: true # (required) If this deprecation is a breaking change, set this value to true
reporter: trizzi # (required) GitLab username of the person reporting the deprecation
stage: Package # (required) String value of the stage that the feature was created in. e.g., Growth

View File

@ -8,5 +8,6 @@ description: TODO
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74290
milestone: '14.6'
gitlab_schema: gitlab_main_cell
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/464719
table_size: small
sharding_key:
target_project_id: projects

View File

@ -0,0 +1,22 @@
# frozen_string_literal: true
class AddForeignKeyToMergeRequestsComplianceViolationsTargetProject < Gitlab::Database::Migration[2.2]
milestone '17.9'
disable_ddl_transaction!
def up
add_concurrent_foreign_key :merge_requests_compliance_violations,
:projects,
column: :target_project_id,
on_delete: :cascade,
reverse_lock_order: true,
validate: false
end
def down
with_lock_retries do
remove_foreign_key_if_exists :merge_requests_compliance_violations, column: :target_project_id,
reverse_lock_order: true
end
end
end

View File

@ -0,0 +1 @@
cc93bdce9e2c65061cf37ae48b2013998947053eaa8fd442b70672d9bb94a460

View File

@ -38320,6 +38320,9 @@ ALTER TABLE ONLY audit_events_google_cloud_logging_configurations
ALTER TABLE ONLY releases
ADD CONSTRAINT fk_47fe2a0596 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
ALTER TABLE ONLY merge_requests_compliance_violations
ADD CONSTRAINT fk_492a40969e FOREIGN KEY (target_project_id) REFERENCES projects(id) ON DELETE CASCADE NOT VALID;
ALTER TABLE ONLY workspace_variables
ADD CONSTRAINT fk_494e093520 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;

View File

@ -272,7 +272,7 @@ The configuration is applied during the next maintenance window.
### Enable SCIM provisioning for your IP allowlist
You can use SCIM with external identity providers to automatically provision and manage users. To use SCIM, your identity provider must be able to access the [instance SCIM API](../../../development/internal_api/index.md#instance-scim-api) endpoints. By default, IP allowlisting blocks communication to these endpoints.
You can use SCIM with external identity providers to automatically provision and manage users. To use SCIM, your identity provider must be able to access the [instance SCIM API](../../../development/internal_api/_index.md#instance-scim-api) endpoints. By default, IP allowlisting blocks communication to these endpoints.
To enable SCIM while maintaining your IP allowlist:

View File

@ -11,7 +11,7 @@ DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab Self-Managed
GitLab adopted [feature flags strategies](../development/feature_flags/index.md)
GitLab adopted [feature flags strategies](../development/feature_flags/_index.md)
to deploy features in an early stage of development so that they can be
incrementally rolled out.

View File

@ -173,7 +173,7 @@ Confirm the following are all true:
successfully creates the project but doesn't create the README.
- When [tailing the logs](https://docs.gitlab.com/omnibus/settings/logs.html#tail-logs-in-a-console-on-the-server)
on a Gitaly client and reproducing the error, you get `401` errors
when reaching the [`/api/v4/internal/allowed`](../../development/internal_api/index.md) endpoint:
when reaching the [`/api/v4/internal/allowed`](../../development/internal_api/_index.md) endpoint:
```shell
# api_json.log

View File

@ -947,7 +947,7 @@ An upper and lower limit applies to each of these:
The lower limits result in additional diffs being collapsed. The higher limits
prevent any more changes from rendering. For more information about these limits,
[read the development documentation](../development/merge_request_concepts/diffs/index.md#diff-limits).
[read the development documentation](../development/merge_request_concepts/diffs/_index.md#diff-limits).
### Merge request reports size limit

View File

@ -713,7 +713,7 @@ This file is located at:
- `/var/log/gitlab/gitlab-rails/features_json.log` on Linux package installations.
- `/home/git/gitlab/log/features_json.log` on self-compiled installations.
The modification events from [Feature flags in development of GitLab](../../development/feature_flags/index.md)
The modification events from [Feature flags in development of GitLab](../../development/feature_flags/_index.md)
are recorded in this file. For example:
```json

View File

@ -108,7 +108,7 @@ For most JSON requests, `POST`, `PUT`, `PATCH`, and `DELETE` are blocked, and th
| `POST` | `/admin/session`, `/admin/session/destroy` | To allow [Admin Mode for GitLab administrators](https://gitlab.com/groups/gitlab-org/-/epics/2158) |
| `POST` | Paths ending with `/compare`| Git revision routes. |
| `POST` | `.git/git-upload-pack` | To allow Git pull/clone. |
| `POST` | `/api/v4/internal` | [internal API routes](../../development/internal_api/index.md) |
| `POST` | `/api/v4/internal` | [internal API routes](../../development/internal_api/_index.md) |
| `POST` | `/admin/sidekiq` | To allow management of background jobs in the **Admin** area |
| `POST` | `/admin/geo` | To allow updating Geo Nodes in the administrator UI |
| `POST` | `/api/v4/geo_replication`| To allow certain Geo-specific administrator UI actions on secondary sites |
@ -178,7 +178,7 @@ To monitor queues and disable jobs:
### Feature flags
- [Development feature flags](../../development/feature_flags/index.md) cannot be turned on or off through the API, but can be toggled through the Rails console.
- [Development feature flags](../../development/feature_flags/_index.md) cannot be turned on or off through the API, but can be toggled through the Rails console.
- [The feature flag service](../../operations/feature_flags.md) responds to feature flag checks but feature flags cannot be toggled
### Geo secondaries

View File

@ -64,7 +64,7 @@ Configuring the object storage using the consolidated form has a number of advan
- It [uploads files to S3 with proper `Content-MD5` headers](https://gitlab.com/gitlab-org/gitlab-workhorse/-/issues/222).
When the consolidated form is used,
[direct upload](../development/uploads/index.md#direct-upload) is enabled
[direct upload](../development/uploads/_index.md#direct-upload) is enabled
automatically. Thus, only the following providers can be used:
- [Amazon S3-compatible providers](#amazon-s3)

View File

@ -169,7 +169,7 @@ file for the environment, as it isn't generated dynamically.
### Additional documentation
Additional technical documentation for `gitlab-sshd` may be found in the
[GitLab Shell documentation](../../development/gitlab_shell/index.md).
[GitLab Shell documentation](../../development/gitlab_shell/_index.md).
## Troubleshooting

View File

@ -399,7 +399,7 @@ separate Rails process to debug the issue:
### GitLab: API is not accessible
This often occurs when GitLab Shell attempts to request authorization via the
[internal API](../../development/internal_api/index.md) (for example, `http://localhost:8080/api/v4/internal/allowed`), and
[internal API](../../development/internal_api/_index.md) (for example, `http://localhost:8080/api/v4/internal/allowed`), and
something in the check fails. There are many reasons why this may happen:
1. Timeout connecting to a database (for example, PostgreSQL or Redis)
@ -416,7 +416,7 @@ strace -ttTfyyy -s 1024 -p <PID of puma worker> -o /tmp/puma.txt
If you cannot isolate which Puma worker is the issue, try to run `strace`
on all the Puma workers to see where the
[`/internal/allowed`](../../development/internal_api/index.md) endpoint gets stuck:
[`/internal/allowed`](../../development/internal_api/_index.md) endpoint gets stuck:
```shell
ps auwx | grep puma | awk '{ print " -p " $2}' | xargs strace -ttTfyyy -s 1024 -o /tmp/puma.txt

View File

@ -30,7 +30,7 @@ application is more complex and has multiple components. If these components are
not present or are incorrectly configured, GitLab does not work or it works
unpredictably.
The [GitLab Architecture Overview](../../development/architecture.md#gitlab-architecture-overview) shows some of these components and how they
The [GitLab Architecture Overview](../../development/architecture.md) shows some of these components and how they
interact. Each of these components needs to be configured and kept up to date.
Most of the components also have external dependencies. For example, the Rails

View File

@ -32,7 +32,7 @@ The package registry supports the following formats:
## Accepting contributions
The below table lists formats that are not supported, but are accepting Community contributions for. Consider contributing to GitLab. This [development documentation](../../development/packages/index.md)
The below table lists formats that are not supported, but are accepting Community contributions for. Consider contributing to GitLab. This [development documentation](../../development/packages/_index.md)
guides you through the process.
<!-- vale gitlab_base.Spelling = NO -->

View File

@ -58,6 +58,6 @@ Read how to [set up PostgreSQL replication and failover](replication_and_failove
- [Database load balancing](database_load_balancing.md)
- [Moving GitLab databases to a different PostgreSQL instance](moving.md)
- [Multiple databases](multiple_databases.md)
- [Database guides for GitLab development](../../development/database/index.md)
- [Database guides for GitLab development](../../development/database/_index.md)
- [Upgrade external database](external_upgrade.md)
- [Upgrading operating systems for PostgreSQL](upgrading_os.md)

View File

@ -91,7 +91,7 @@ The GitLab.com AI gateway is the default Enterprise offering and is not self-hos
you connect your instance to the GitLab-hosted AI gateway, which
integrates with external vendor LLM providers (such as Google Vertex or Anthropic).
These LLMs communicate through the [GitLab Cloud Connector](../../development/cloud_connector/index.md),
These LLMs communicate through the [GitLab Cloud Connector](../../development/cloud_connector/_index.md),
offering a ready-to-use AI solution without the need for on-premise infrastructure.
For licensing, you must have a GitLab Ultimate subscription, and either [GitLab Duo Pro](https://about.gitlab.com/solutions/gitlab-duo-pro/sales/?type=free-trial) or [GitLab Duo Enterprise](https://about.gitlab.com/solutions/gitlab-duo-pro/sales/?type=free-trial). To get access to your purchased subscription, request a license through the [Customers Portal](../../subscriptions/customers_portal.md)

View File

@ -18,7 +18,7 @@ You can use the open standard System for Cross-domain Identity Management (SCIM)
- Block users.
- Re-add users (reactivate SCIM identity).
The [internal GitLab SCIM API](../../development/internal_api/index.md#instance-scim-api) implements part of [the RFC7644 protocol](https://www.rfc-editor.org/rfc/rfc7644).
The [internal GitLab SCIM API](../../development/internal_api/_index.md#instance-scim-api) implements part of [the RFC7644 protocol](https://www.rfc-editor.org/rfc/rfc7644).
If you are a GitLab.com user, see [configuring SCIM for GitLab.com groups](../../user/group/saml_sso/scim_setup.md).
@ -203,7 +203,7 @@ attributes and modify them accordingly. The source attribute that you map to the
target attribute must match the attribute used for the SAML `NameID`.
If a mapping is not listed in the table, use the Microsoft Entra ID defaults. For a list of required attributes,
refer to the [internal instance SCIM API](../../development/internal_api/index.md#instance-scim-api) documentation.
refer to the [internal instance SCIM API](../../development/internal_api/_index.md#instance-scim-api) documentation.
#### Configure settings
@ -225,7 +225,7 @@ Removing or deactivating a user on the identity provider blocks the user on
the GitLab instance, while the SCIM identity remains linked to the GitLab user.
To update the user SCIM identity, use the
[internal GitLab SCIM API](../../development/internal_api/index.md#update-a-single-scim-provisioned-user-1).
[internal GitLab SCIM API](../../development/internal_api/_index.md#update-a-single-scim-provisioned-user-1).
### Reactivate access

View File

@ -19,7 +19,7 @@ For information about other tiers, see [Customer Product Usage Information](http
## Service Ping
Service Ping is a process that collects and sends a weekly payload to GitLab Inc.
For more information, see the [Service Ping guide](../../development/internal_analytics/service_ping/index.md). When Service Ping is enabled, GitLab gathers data from other instances and enables certain [instance-level analytics features](../../user/analytics/index.md)
For more information, see the [Service Ping guide](../../development/internal_analytics/service_ping/_index.md). When Service Ping is enabled, GitLab gathers data from other instances and enables certain [instance-level analytics features](../../user/analytics/index.md)
that are dependent on Service Ping.
### Why enable Service Ping?
@ -249,7 +249,7 @@ To enable or disable optional data in Service Ping:
## Access the Service Ping payload
You can access the exact JSON payload sent to GitLab Inc. in the **Admin** area or through the API.
See an [example Service Ping payload](../../development/internal_analytics/service_ping/index.md#example-service-ping-payload).
See an [example Service Ping payload](../../development/internal_analytics/service_ping/_index.md#example-service-ping-payload).
### In the UI
@ -265,7 +265,7 @@ See [service ping API documentation](../../api/usage_data.md).
## Manually upload Service Ping payload
You can upload the Service Ping payload to GitLab even if your instance doesn't have internet access,
or if the Service Ping [cron job](../../development/internal_analytics/service_ping/index.md#how-service-ping-works) is not enabled.
or if the Service Ping [cron job](../../development/internal_analytics/service_ping/_index.md#how-service-ping-works) is not enabled.
To upload the payload manually:

View File

@ -147,7 +147,7 @@ Instead of a queue, a queue namespace can also be provided, to have the process
automatically listen on all queues in that namespace without needing to
explicitly list all the queue names. For more information about queue namespaces,
see the relevant section in the
[Sidekiq development documentation](../../development/sidekiq/index.md#queue-namespaces).
[Sidekiq development documentation](../../development/sidekiq/_index.md#queue-namespaces).
### Monitor the `sidekiq-cluster` command

View File

@ -108,7 +108,7 @@ employed by routing rules. A query includes two components:
### Available attributes
Queue matching query works upon the worker attributes, described in
[Sidekiq style guide](../../development/sidekiq/index.md). We support querying
[Sidekiq style guide](../../development/sidekiq/_index.md). We support querying
based on a subset of worker attributes:
- `feature_category` - the

View File

@ -10,7 +10,7 @@ DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com
This API is for listing A/B experiments [defined in GitLab](../development/experiment_guide/index.md).
This API is for listing A/B experiments [defined in GitLab](../development/experiment_guide/_index.md).
The user must be a [GitLab team member](https://gitlab.com/groups/gitlab-com/-/group_members) to access the API.

View File

@ -10,7 +10,7 @@ DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab Self-Managed
This API is for managing Flipper-based [feature flags used in development of GitLab](../development/feature_flags/index.md).
This API is for managing Flipper-based [feature flags used in development of GitLab](../development/feature_flags/_index.md).
All methods require administrator authorization.
@ -123,7 +123,7 @@ POST /features/:name
| `name` | string | yes | Name of the feature to create or update |
| `value` | integer/string | yes | `true` or `false` to enable/disable, or an integer for percentage of time |
| `key` | string | no | `percentage_of_actors` or `percentage_of_time` (default) |
| `feature_group` | string | no | A [Feature group](../development/feature_flags/index.md#feature-groups) name |
| `feature_group` | string | no | A [Feature group](../development/feature_flags/_index.md#feature-groups) name |
| `user` | string | no | A GitLab username or comma-separated multiple usernames |
| `group` | string | no | A GitLab group's path, for example `gitlab-org`, or comma-separated multiple group paths |
| `namespace` | string | no | A GitLab group or user namespace's path, for example `john-doe`, or comma-separated multiple namespace paths. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/353117) in GitLab 15.0. |

View File

@ -209,7 +209,7 @@ To avoid having a breaking change affect your integrations, you should:
- Familiarize yourself with the [deprecation and removal process](#deprecation-and-removal-process).
- Frequently [verify your API calls against the future breaking-change schema](#verify-against-the-future-breaking-change-schema).
For more information, see [Deprecating GitLab features](../../development/deprecation_guidelines/index.md).
For more information, see [Deprecating GitLab features](../../development/deprecation_guidelines/_index.md).
For GitLab Self-Managed, [downgrading](../../downgrade_ee_to_ce/index.md) from an EE instance to CE causes breaking changes.

View File

@ -1763,7 +1763,7 @@ returned by the API or viewed through the UI. When these limits impact the resul
field contains a value of `true`. Retrieve the diff data without these limits by
adding the `access_raw_diffs` parameter, which accesses diffs not from the database, but from Gitaly directly.
This approach is generally slower and more resource-intensive, but isn't subject to size limits
placed on database-backed diffs. [Limits inherent to Gitaly](../development/merge_request_concepts/diffs/index.md#diff-limits)
placed on database-backed diffs. [Limits inherent to Gitaly](../development/merge_request_concepts/diffs/_index.md#diff-limits)
still apply.
Example response:

View File

@ -173,7 +173,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" \
This endpoint can be accessed without authentication if the repository is
publicly accessible. Diffs can have an empty diff string if
[diff limits](../development/merge_request_concepts/diffs/index.md#diff-limits) are reached.
[diff limits](../development/merge_request_concepts/diffs/_index.md#diff-limits) are reached.
```plaintext
GET /projects/:id/repository/compare

View File

@ -18,7 +18,7 @@ Prerequisites:
- You must enable [Group SSO](../user/group/saml_sso/index.md).
- You must enable [SCIM for Group SSO](../user/group/saml_sso/scim_setup.md).
This API differs from the [internal group SCIM API](../development/internal_api/index.md#group-scim-api) and the [instance SCIM API](../development/internal_api/index.md#instance-scim-api):
This API differs from the [internal group SCIM API](../development/internal_api/_index.md#group-scim-api) and the [instance SCIM API](../development/internal_api/_index.md#instance-scim-api):
- This API:
- Does not implement the [RFC7644 protocol](https://www.rfc-editor.org/rfc/rfc7644).

View File

@ -10,7 +10,7 @@ DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab Self-Managed, GitLab Dedicated
The Service Ping API is associated with [Service Ping](../development/internal_analytics/service_ping/index.md).
The Service Ping API is associated with [Service Ping](../development/internal_analytics/service_ping/_index.md).
## Export Service Ping data

View File

@ -148,4 +148,4 @@ Jobs that run on generally available images are covered by the defined service-l
A maximum of two generally available images are supported at a time. After a new generally available image is released,
the oldest generally available image becomes deprecated. A deprecated image is no longer updated and is deleted after 3 months
in accordance with the [deprecation guidelines](../../../development/deprecation_guidelines/index.md).
in accordance with the [deprecation guidelines](../../../development/deprecation_guidelines/_index.md).

View File

@ -165,7 +165,7 @@ There are several ways you can contribute to Cloud Seed:
- Use Cloud Seed and [share feedback](https://gitlab.com/gitlab-org/incubation-engineering/five-minute-production/feedback/-/issues/new?template=general_feedback).
- If you are familiar with Ruby on Rails or Vue.js,
consider [contributing to GitLab](../development/contributing/index.md) as a developer.
consider [contributing to GitLab](../development/contributing/_index.md) as a developer.
- Much of Cloud Seed is an internal module in the GitLab codebase.
- If you are familiar with GitLab pipelines, consider contributing to
the [Cloud Seed Library](https://gitlab.com/gitlab-org/incubation-engineering/five-minute-production/library) project.

View File

@ -3,17 +3,16 @@ stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
description: "Development Guidelines: learn how to contribute to GitLab."
title: Contribute to development
---
# Contribute to development
Learn how to contribute to the development of the GitLab product.
This content is intended for both GitLab team members and members of the wider community.
- [Contribute to GitLab development](contributing/index.md)
- [Contribute to GitLab development](contributing/_index.md)
- [Contribute to GitLab Runner development](https://docs.gitlab.com/runner/development/)
- [Contribute to GitLab Pages development](pages/index.md)
- [Contribute to GitLab distribution development](distribution/index.md)
- [Contribute to GitLab Pages development](pages/_index.md)
- [Contribute to GitLab distribution development](distribution/_index.md)
- [Contribute to the GitLab Design System](https://design.gitlab.com/get-started/contributing/)
- [Contribute to the GitLab documentation](documentation/index.md)
- [Contribute to the GitLab documentation](documentation/_index.md)

View File

@ -2,10 +2,9 @@
stage: Create
group: Source Code
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"
title: ActivityPub
---
# ActivityPub
DETAILS:
**Status:** Experiment
@ -38,4 +37,4 @@ Most of the implementation is being discussed in
[an architecture design document](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/activity_pub/),
see this document for more information.
For now, see [how to implement an ActivityPub actor](actors/index.md).
For now, see [how to implement an ActivityPub actor](actors/_index.md).

View File

@ -2,10 +2,9 @@
stage: Create
group: Source Code
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"
title: Implement an ActivityPub actor
---
# Implement an ActivityPub actor
DETAILS:
**Status:** Experiment

View File

@ -2,10 +2,9 @@
stage: Create
group: Source Code
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"
title: Activities for following releases actor
---
# Activities for following releases actor
DETAILS:
**Status:** Experiment

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Adding a new Service Component to GitLab
---
# Adding a new Service Component to GitLab
The GitLab product is made up of several service components that run as independent system processes in communication with each other. These services can be run on the same instance, or spread across different instances. A list of the existing components can be found in the [GitLab architecture overview](architecture.md).
## Integration phases
@ -19,7 +18,7 @@ The following outline re-uses the [maturity metric](https://handbook.gitlab.com/
- [Handling service dependencies](#handling-service-dependencies)
- Viable
- [Bundled with GitLab installations](#bundling-a-service-with-gitlab)
- [End-to-end testing in GitLab QA](testing_guide/end_to_end/beginners_guide/index.md)
- [End-to-end testing in GitLab QA](testing_guide/end_to_end/beginners_guide/_index.md)
- [Release management](#release-management)
- [Enabled on GitLab.com](feature_flags/controls.md#enabling-a-feature-for-gitlabcom)
- Complete
@ -52,7 +51,7 @@ The first iteration should be to add the ability to connect and use the service
**For services that depend on the existing GitLab codebase:**
The first iteration should be opt-in, either through the `gitlab.yml` configuration or through [feature flags](feature_flags/index.md). For these types of services it is often necessary to [bundle the service and its dependencies with GitLab](#bundling-a-service-with-gitlab) as part of the initial integration.
The first iteration should be opt-in, either through the `gitlab.yml` configuration or through [feature flags](feature_flags/_index.md). For these types of services it is often necessary to [bundle the service and its dependencies with GitLab](#bundling-a-service-with-gitlab) as part of the initial integration.
NOTE:
[ActionCable](https://docs.gitlab.com/omnibus/settings/actioncable.html) is an example of a service that has been added this way.

View File

@ -2,10 +2,9 @@
stage: Foundations
group: Global Search
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Advanced search development guidelines
---
# Advanced search development guidelines
This page includes information about developing and working with Elasticsearch.
Information on how to enable Elasticsearch and perform the initial indexing is in

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: AI Architecture
---
# AI Architecture
This document describes architecture shared by the GitLab Duo AI features. For historical motivation and goals of this architecture, see the [AI gateway Architecture design document](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/ai_gateway/).
## Introduction
@ -45,7 +44,7 @@ AIGW -down-> Models : prompts
@enduml
```
- **AI Abstraction layer** - Every GitLab instance (Self-Managed, GitLab.com, ..) contains an [AI Abstraction layer](ai_features/index.md) which provides a framework for implementing new AI features in the monolith. This layer adds contextual information to the request and does request pre/post processing.
- **AI Abstraction layer** - Every GitLab instance (Self-Managed, GitLab.com, ..) contains an [AI Abstraction layer](ai_features/_index.md) which provides a framework for implementing new AI features in the monolith. This layer adds contextual information to the request and does request pre/post processing.
### Systems
@ -78,7 +77,7 @@ There are two primary reasons for this: the best AI models are cloud-based as th
The AI gateway (formerly the [model gateway](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist)) is a standalone-service that will give access to AI features to all users of GitLab, no matter which instance they are using: self-managed, dedicated or GitLab.com. The SaaS-based AI abstraction layer will transition to connecting to this gateway, rather than accessing cloud-based providers directly.
Calls to the AI-gateway from GitLab-rails can be made using the
[Abstraction Layer](ai_features/index.md#feature-development-abstraction-layer).
[Abstraction Layer](ai_features/_index.md#feature-development-abstraction-layer).
By default, these actions are performed asynchronously via a Sidekiq
job to prevent long-running requests in Puma. It should be used for
non-latency sensitive actions due to the added latency by Sidekiq.

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: AI features based on 3rd-party integrations
---
# AI features based on 3rd-party integrations
## Instructions for setting up GitLab Duo features in the local development environment
### Required: Install AI gateway
@ -156,7 +155,7 @@ correctly reach to AI gateway:
```
NOTE:
See [this doc](../cloud_connector/index.md) for registering unit primitives in Cloud Connector.
See [this doc](../cloud_connector/_index.md) for registering unit primitives in Cloud Connector.
### Optional: Enable authentication and authorization in AI gateway
@ -237,13 +236,13 @@ Apply the following feature flags to any AI feature work:
- A general flag (`ai_duo_chat_switch`) that applies to all GitLab Duo Chat features. It's enabled by default.
- A general flag (`ai_global_switch`) that applies to all other AI features. It's enabled by default.
- A flag specific to that feature. The feature flag name [must be different](../feature_flags/index.md#feature-flags-for-licensed-features) than the licensed feature name.
- A flag specific to that feature. The feature flag name [must be different](../feature_flags/_index.md#feature-flags-for-licensed-features) than the licensed feature name.
See the [feature flag tracker epic](https://gitlab.com/groups/gitlab-org/-/epics/10524) for the list of all feature flags and how to use them.
### Push feature flags to AI gateway
You can push [feature flags](../feature_flags/index.md) to AI gateway. This is helpful to gradually rollout user-facing changes even if the feature resides in AI gateway.
You can push [feature flags](../feature_flags/_index.md) to AI gateway. This is helpful to gradually rollout user-facing changes even if the feature resides in AI gateway.
See the following example:
```ruby
@ -280,7 +279,7 @@ If you clean up the flag in GitLab-Rails repository at first, the feature flag i
Frontend clients must regenerate UJWT upon expiration. Backend changes such as feature flag updates through [ChatOps](../feature_flags/controls.md) render the header values to become stale. These header values are refreshed at the next UJWT generation.
Similarly, we also have [`push_frontend_feature_flag`](../feature_flags/index.md) to push feature flags to frontend.
Similarly, we also have [`push_frontend_feature_flag`](../feature_flags/_index.md) to push feature flags to frontend.
### GraphQL API

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: AI actions
---
# AI actions
This page includes how to implement actions and migrate them to the AI Gateway.
## How to implement a new action
@ -17,7 +16,7 @@ a given prompt.
### 1. Add your action to the Cloud Connector feature list
The Cloud Connector configuration stores the permissions needed to access your service, as well as additional metadata.
If there's no entry for your feature, [add the feature as a Cloud Connector unit primitive](../cloud_connector/index.md#register-new-feature-for-self-managed-dedicated-and-gitlabcom-customers):
If there's no entry for your feature, [add the feature as a Cloud Connector unit primitive](../cloud_connector/_index.md#register-new-feature-for-self-managed-dedicated-and-gitlabcom-customers):
For more information, see [Cloud Connector: Configuration](../cloud_connector/configuration.md).

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: AI feature development playbook
---
# AI feature development playbook
This playbook outlines the key aspects of working with Large Language Models (LLMs),
prompts, data, evaluation, and system architecture.
It serves as a playbook for AI feature development and operational considerations.

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Composite Identity
---
# Composite Identity
GitLab Duo with Amazon Q uses a [composite identity](../../user/gitlab_duo/security.md)
to authenticate requests.

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: Duo Chat
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: GitLab Duo Chat
---
# GitLab Duo Chat
GitLab Duo Chat aims to assist users with AI in ideation and creation tasks as
well as in learning tasks across the entire Software Development Lifecycle
(SDLC) to make them faster and more efficient.
@ -56,7 +55,7 @@ That said, it does not mean that Chat can't write commit messages, nor that it w
## Set up GitLab Duo Chat
To set up Duo Chat locally, go through the
[general setup instructions for AI features](index.md).
[general setup instructions for AI features](_index.md).
## Working with GitLab Duo Chat
@ -79,7 +78,7 @@ you find a solution.
| Problem | Solution |
|-----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| There is no Chat button in the GitLab UI. | Make sure your user is a part of a group with Premium or Ultimate license and enabled Chat. |
| Chat replies with "Forbidden by auth provider" error. | Backend can't access LLMs. Make sure your [AI gateway](index.md#required-install-ai-gateway) is set up correctly. |
| Chat replies with "Forbidden by auth provider" error. | Backend can't access LLMs. Make sure your [AI gateway](_index.md#required-install-ai-gateway) is set up correctly. |
| Requests take too long to appear in UI | Consider restarting Sidekiq by running `gdk restart rails-background-jobs`. If that doesn't work, try `gdk kill` and then `gdk start`. Alternatively, you can bypass Sidekiq entirely. To do that temporary alter `Llm::CompletionWorker.perform_async` statements with `Llm::CompletionWorker.perform_inline` |
| There is no Chat button in GitLab UI when GDK is running on non-SaaS mode | You do not have cloud connector access token record or seat assigned. To create cloud connector access record, in rails console put following code: `CloudConnector::Access.new(data: { available_services: [{ name: "duo_chat", serviceStartTime: ":date_in_the_future" }] }).save`. |
@ -89,7 +88,7 @@ that Chat sends to assist troubleshooting.
## Contributing to GitLab Duo Chat
From the code perspective, Chat is implemented in the similar fashion as other
AI features. Read more about GitLab [AI Abstraction layer](index.md#feature-development-abstraction-layer).
AI features. Read more about GitLab [AI Abstraction layer](_index.md#feature-development-abstraction-layer).
The Chat feature uses a [zero-shot agent](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/lib/gitlab/llm/chain/agents/zero_shot/executor.rb)
that includes a system prompt explaining how the large language model should

View File

@ -2,10 +2,9 @@
stage: Foundations
group: Global Search
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Embeddings
---
# Embeddings
Embeddings are a way of representing data in a vectorised format, making it easy and efficient to find similar documents.
Currently embeddings are only generated for issues which allows for features such as
@ -88,7 +87,7 @@ The following process outlines the steps to get embeddings generated and stored
Elastic::MigrationWorker.new.perform
```
1. Make sure you can run [GitLab Duo features on your local environment](../ai_features/index.md#instructions-for-setting-up-gitlab-duo-features-in-the-local-development-environment).
1. Make sure you can run [GitLab Duo features on your local environment](../ai_features/_index.md#instructions-for-setting-up-gitlab-duo-features-in-the-local-development-environment).
1. Ensure running the following in a rails console outputs an embedding (a vector of 768 dimensions). If not, there is a problem with the AI setup.
```ruby

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
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
title: GitLab Duo Glossary
---
# GitLab Duo Glossary
This is a list of terms that may have a general meaning but also may have a
specific meaning at GitLab. If you encounter a piece of technical jargon related
to AI that you think could benefit from being in this list, add it!

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: Custom Models
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
title: Serve Large Language Models APIs Locally
---
# Serve Large Language Models APIs Locally
There are several ways to serve large language models (LLMs) for local or self-deployment purposes.
[MistralAI](https://docs.mistral.ai/deployment/self-deployment/overview/) recommends two different serving frameworks for their models:

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
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
title: Logged events
---
# Logged events
In addition to standard logging in the GitLab Rails Monolith instance, specialized logging is available for features based on large language models (LLMs).
## Events logged

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: LLM logging
---
# LLM logging
In addition to standard logging in the GitLab Rails Monolith instance, specialized logging is available for features based on large language models (LLMs).
## Logged events

View File

@ -2,10 +2,9 @@
stage: AI-powered
group: AI Framework
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Model Migration Process
---
# Model Migration Process
## Introduction
LLM models are constantly evolving, and GitLab needs to regularly update our AI features to support newer models. This guide provides a structured approach for migrating AI features to new models while maintaining stability and reliability.
@ -111,7 +110,7 @@ Note: While we're moving toward AI gateway holding the prompts, feature flag imp
### Implementation Steps
For implementing feature flags, refer to our [Feature Flags Development Guidelines](../feature_flags/index.md).
For implementing feature flags, refer to our [Feature Flags Development Guidelines](../feature_flags/_index.md).
NOTE:
Feature flag implementations will affect self-hosted cloud-connected customers. These customers won't receive the model upgrade until the feature flag is removed from the AI gateway codebase, as they won't have access to the new GitLab release.

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Backend GraphQL API guide
---
# Backend GraphQL API guide
This document contains style and technical guidance for engineers implementing the backend of the [GitLab GraphQL API](../api/graphql/index.md).
## Relation to REST API
@ -645,7 +644,7 @@ end
## Feature flags
You can implement [feature flags](../development/feature_flags/index.md) in GraphQL to toggle:
You can implement [feature flags](../development/feature_flags/_index.md) in GraphQL to toggle:
- The return value of a field.
- The behavior of an argument or mutation.

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: API style guide
---
# API style guide
This style guide recommends best practices for API development.
## GraphQL and REST APIs
@ -21,7 +20,7 @@ For example, they could share the same [services](reusing_abstractions.md#servic
## Frontend
See the [frontend guide](fe_guide/index.md#introduction)
See the [frontend guide](fe_guide/_index.md#introduction)
on details on which API to use when developing in the frontend.
## Instance variables
@ -138,7 +137,7 @@ and can be changed or removed at any time without prior notice.
While in the [experiment status](../policy/development_stages_support.md#experiment):
- Use a feature flag that is [off by default](feature_flags/index.md#beta-type).
- Use a feature flag that is [off by default](feature_flags/_index.md#beta-type).
- When the flag is off:
- Any added endpoints must return `404 Not Found`.
- Any added arguments must be ignored.
@ -148,7 +147,7 @@ While in the [experiment status](../policy/development_stages_support.md#experim
While in the [beta status](../policy/development_stages_support.md#beta):
- Use a feature flag that is [on by default](feature_flags/index.md#beta-type).
- Use a feature flag that is [on by default](feature_flags/_index.md#beta-type).
- The [API documentation](../api/api_resources.md) must [document the beta status](documentation/experiment_beta.md) and the feature flag [must be documented](documentation/feature_flags.md).
- The [OpenAPI documentation](../api/openapi/openapi_interactive.md) must not describe the changes.
@ -369,7 +368,7 @@ it's own file in the [`validators`](https://gitlab.com/gitlab-org/gitlab/-/tree/
## Internal API
The [internal API](internal_api/index.md) is documented for internal use. Keep it up to date so we know what endpoints
The [internal API](internal_api/_index.md) is documented for internal use. Keep it up to date so we know what endpoints
different components are making use of.
## Avoiding N+1 problems

View File

@ -2,10 +2,9 @@
stage: Systems
group: Distribution
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Application limits development
---
# Application limits development
This document provides a development guide for contributors to add application
limits to GitLab.

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Application secrets
---
# Application secrets
This page is a development guide for application secrets.
## Secret entries

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Application settings development
---
# Application settings development
This document provides a development guide for contributors to add application
settings to GitLab.

View File

@ -2,10 +2,9 @@
stage: Platforms
group: Scalability
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: GitLab Application Service Level Indicators (SLIs)
---
# GitLab Application Service Level Indicators (SLIs)
It is possible to define [Service Level Indicators(SLIs)](https://en.wikipedia.org/wiki/Service_level_indicator)
directly in the Ruby codebase. This keeps the definition of operations
and their success close to the implementation and allows the people
@ -130,7 +129,7 @@ After that, add the following information:
metrics. For example: `["email_type"]`. If the significant labels
for the SLI include `feature_category`, the metrics will also
feed into the
[error budgets for stage groups](../stage_group_observability/index.md#error-budget).
[error budgets for stage groups](../stage_group_observability/_index.md#error-budget).
- `featureCategory`: if the SLI applies to a single feature category,
you can specify it statically through this field to feed the SLI
into the error budgets for stage groups.

View File

@ -2,15 +2,14 @@
stage: Platforms
group: Scalability
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Rails request SLIs (service level indicators)
---
# Rails request SLIs (service level indicators)
NOTE:
This SLI is used for service monitoring. But not for [error budgets for stage groups](../stage_group_observability/index.md#error-budget)
This SLI is used for service monitoring. But not for [error budgets for stage groups](../stage_group_observability/_index.md#error-budget)
by default.
The request Apdex SLI and the error rate SLI are [SLIs defined in the application](index.md).
The request Apdex SLI and the error rate SLI are [SLIs defined in the application](_index.md).
The request Apdex measures the duration of successful requests as an indicator for
application performance. This includes the REST and GraphQL API, and the
@ -93,7 +92,7 @@ a case-by-case basis. Take the following into account:
1. The workload for some endpoints can sometimes differ greatly
depending on the parameters specified by the caller. The urgency
needs to accommodate those differences. In some cases, you could
define a separate [application SLI](index.md#defining-a-new-sli)
define a separate [application SLI](_index.md#defining-a-new-sli)
for what the endpoint is doing.
When the endpoints in certain cases turn into no-ops, making them
@ -176,7 +175,7 @@ the merge request.
## How to adjust the urgency
You can specify urgency similar to how endpoints
[get a feature category](../feature_categorization/index.md). Endpoints without a
[get a feature category](../feature_categorization/_index.md). Endpoints without a
specific target use the default urgency: 1s duration. These configurations
are available:
@ -261,12 +260,12 @@ We can't specify the urgency at the namespace level. The directive is ignored wh
### Error budget attribution and ownership
This SLI is used for service level monitoring. It feeds into the
[error budget for stage groups](../stage_group_observability/index.md#error-budget).
[error budget for stage groups](../stage_group_observability/_index.md#error-budget).
For more information, read the epic for
[defining custom SLIs and incorporating them into error budgets](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/525)).
The endpoints for the SLI feed into a group's error budget based on the
[feature category declared on it](../feature_categorization/index.md).
[feature category declared on it](../feature_categorization/_index.md).
To know which endpoints are included for your group, you can see the
request rates on the
@ -275,6 +274,6 @@ In the **Budget Attribution** row, the **Puma Apdex** log link shows you
how many requests are not meeting a 1s or 5s target.
For more information about the content of the dashboard, see
[Dashboards for stage groups](../stage_group_observability/index.md). For more information
[Dashboards for stage groups](../stage_group_observability/_index.md). For more information
about our exploration of the error budget itself, see
[issue 1365](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/1365).

View File

@ -2,14 +2,13 @@
stage: Platforms
group: Scalability
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Sidekiq execution SLIs (service level indicators)
---
# Sidekiq execution SLIs (service level indicators)
> - [Introduced](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/700) in GitLab 16.0. This version of Sidekiq execution SLIs replaces the old version of the SLI where you can now drill down by workers in the [Application SLI Violations dashboard](https://dashboards.gitlab.net/d/general-application-sli-violations/general-application-sli-violations?orgId=1&var-PROMETHEUS_DS=Global&var-environment=gprd&var-stage=main&var-product_stage=All&var-stage_group=All&var-component=sidekiq_execution) for stage groups.
NOTE:
This SLI is used for service monitoring. But not for [error budgets for stage groups](../stage_group_observability/index.md#error-budget)
This SLI is used for service monitoring. But not for [error budgets for stage groups](../stage_group_observability/_index.md#error-budget)
by default.
The Sidekiq execution Apdex measures the duration of successful jobs completion as an indicator for
@ -57,10 +56,10 @@ For more information on the execution latency requirement and how to set a job's
### Error budget attribution and ownership
This SLI is used for service level monitoring. It feeds into the
[error budget for stage groups](../stage_group_observability/index.md#error-budget).
[error budget for stage groups](../stage_group_observability/_index.md#error-budget).
The workers for the SLI feed into a group's error budget based on the
[feature category declared on it](../feature_categorization/index.md).
[feature category declared on it](../feature_categorization/_index.md).
To know which workers are included for your group, see the
Sidekiq Completion Rate panel on the

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: GitLab architecture overview
---
# GitLab architecture overview
## Software delivery
There are two software distributions of GitLab:
@ -583,7 +582,7 @@ GitLab CI/CD is the open-source continuous integration service included with Git
#### GitLab Shell
- [Project page](https://gitlab.com/gitlab-org/gitlab-shell/)
- [Documentation](gitlab_shell/index.md)
- [Documentation](gitlab_shell/_index.md)
- Configuration:
- [Omnibus](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template)
- [Charts](https://docs.gitlab.com/charts/charts/gitlab/gitlab-shell/)
@ -591,7 +590,7 @@ GitLab CI/CD is the open-source continuous integration service included with Git
- [GDK](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/gitlab.yml.example)
- Layer: Core Service (Processor)
[GitLab Shell](gitlab_shell/index.md) is a program designed at GitLab to handle SSH-based `git` sessions, and modifies the list of authorized keys. GitLab Shell is not a Unix shell nor a replacement for Bash or Zsh.
[GitLab Shell](gitlab_shell/_index.md) is a program designed at GitLab to handle SSH-based `git` sessions, and modifies the list of authorized keys. GitLab Shell is not a Unix shell nor a replacement for Bash or Zsh.
#### GitLab Workhorse
@ -1011,12 +1010,12 @@ in Rails, scheduled to run whenever an SSH key is modified by a user.
instead of keys. In this case, `AuthorizedKeysCommand` is replaced with an
`AuthorizedPrincipalsCommand`. This extracts a username from the certificate
without using the Rails internal API, which is used instead of `key_id` in the
[`/api/internal/allowed`](internal_api/index.md) call later.
[`/api/internal/allowed`](internal_api/_index.md) call later.
GitLab Shell also has a few operations that do not involve Gitaly, such as
resetting two-factor authentication codes. These are handled in the same way,
except there is no round-trip into Gitaly - Rails performs the action as part
of the [internal API](internal_api/index.md) call, and GitLab Shell streams the
of the [internal API](internal_api/_index.md) call, and GitLab Shell streams the
response back to the user directly.
## System layout

View File

@ -2,10 +2,9 @@
stage: Software Supply Chain Security
group: Compliance
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Audit event development guidelines
---
# Audit event development guidelines
This guide provides an overview of how audit events work, and how to instrument
new audit events.

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Auto DevOps development guidelines
---
# Auto DevOps development guidelines
This document provides a development guide for contributors to
[Auto DevOps](../topics/autodevops/index.md).

View File

@ -2,10 +2,9 @@
stage: Systems
group: Distribution
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Avoiding required stops
---
# Avoiding required stops
Required stops are any changes to GitLab [components](architecture.md) or
dependencies that result in the need to upgrade to and stop at a specific
`major.minor` version when [upgrading GitLab](../update/index.md).

View File

@ -2,10 +2,9 @@
stage: Create
group: Source Code
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Source Code Management
---
# Source Code Management
The Source Code Management team is responsible for all backend aspects of the product categories
that fall under the [Source Code group](https://handbook.gitlab.com/handbook/product/categories/#source-code-group)
of the [Create stage](https://handbook.gitlab.com/handbook/product/categories/#create-stage)
@ -23,7 +22,7 @@ Features owned by the Source Code Management group are listed on the
Source Code Management shares ownership of Code Owners with the Code Review group.
- [Feature homepage](../../../user/project/codeowners/index.md)
- [Developer Reference](../../code_owners/index.md)
- [Developer Reference](../../code_owners/_index.md)
### Approval Rules
@ -31,19 +30,19 @@ Source Code Management shares ownership of Code Owners with the Code Review grou
### Push rules
- [Push rules development guidelines](../../push_rules/index.md)
- [Push rules development guidelines](../../push_rules/_index.md)
### Protected Branches
Details about Protected Branches models can be found in the [Code Owners](../../code_owners/index.md#related-models) technical reference page.
Details about Protected Branches models can be found in the [Code Owners](../../code_owners/_index.md#related-models) technical reference page.
### Repositories
- [Project Repository Storage Moves](../../repository_storage_moves/index.md)
- [Project Repository Storage Moves](../../repository_storage_moves/_index.md)
### Project Templates
- [Custom group-level project templates development guidelines](../../project_templates/index.md)
- [Custom group-level project templates development guidelines](../../project_templates/_index.md)
### Git LFS
@ -75,7 +74,7 @@ with the [Error Budgets dashboards](https://dashboards.gitlab.net/d/stage-groups
## GitLab Workhorse
[GitLab Workhorse](../../workhorse/index.md) is a smart reverse proxy for GitLab. It handles "large" HTTP
[GitLab Workhorse](../../workhorse/_index.md) is a smart reverse proxy for GitLab. It handles "large" HTTP
requests such as file downloads, file uploads, `git push`, `git pull` and `git` archive downloads.
Workhorse itself is not a feature, but there are several features in GitLab
@ -84,7 +83,7 @@ that would not work efficiently without Workhorse.
## GitLab Shell
GitLab Shell handles Git SSH sessions for GitLab and modifies the list of authorized keys.
For more information, refer to the [GitLab Shell documentation](../../gitlab_shell/index.md).
For more information, refer to the [GitLab Shell documentation](../../gitlab_shell/_index.md).
To learn about the reasoning behind our creation of `gitlab-sshd`, read the blog post
[Why we implemented our own SSHD solution](https://about.gitlab.com/blog/2022/08/17/why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass/).

View File

@ -2,10 +2,9 @@
stage: Create
group: Source Code
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Source Code - Gitaly Touch Points
---
# Source Code - Gitaly Touch Points
## RPCs
Gitaly is a wrapper around the `git` binary, running in a [Gitaly Cluster](../../../administration/gitaly/index.md). It provides managed access to the file system housing the `git` repositories, using Go Remote Procedure Calls (RPCs). Other functions are access optimization, caching, and a form of pagination against the file system.

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Ruby style guide
---
# Ruby style guide
This is a GitLab-specific style guide for Ruby code. Everything documented in this page can be [reopened for discussion](https://handbook.gitlab.com/handbook/values/#disagree-commit-and-disagree).
We use [RuboCop](../rubocop_development_guide.md) to enforce Ruby style guide rules.
@ -23,7 +22,7 @@ Some styles we have decided [no one should not have a strong opinion on](#styles
See also:
- [Guidelines for reusing abstractions](../reusing_abstractions.md).
- [Test-specific style guides and best practices](../testing_guide/index.md).
- [Test-specific style guides and best practices](../testing_guide/_index.md).
## Styles we have no rule for

View File

@ -2,10 +2,9 @@
stage: Systems
group: Geo
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
title: How GitLab backups work?
---
# How GitLab backups work?
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab Self-Managed

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Bitbucket Cloud importer developer documentation
---
# Bitbucket Cloud importer developer documentation
## Prerequisites
You must be authenticated with Bitbucket:

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Bitbucket Server importer developer documentation
---
# Bitbucket Server importer developer documentation
## Prerequisites
To test imports, you need a Bitbucket Server instance running locally. For information on running a local instance, see

View File

@ -2,10 +2,9 @@
stage: Systems
group: Distribution
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Building a package for testing
---
# Building a package for testing
While developing a new feature or modifying an existing one, it is helpful if an
installable package (or a Docker image) containing those changes is available
for testing. For this purpose, a manual job is provided in the GitLab CI/CD

View File

@ -2,10 +2,9 @@
stage: Foundations
group: Import and Integrate
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Group migration by direct transfer
---
# Group migration by direct transfer
NOTE:
To use direct transfer, ensure your GitLab installation is accessible from
[GitLab IP addresses](../user/gitlab_com/index.md#ip-range) and has a public DNS entry.

View File

@ -2,10 +2,9 @@
stage: Foundations
group: Import and Integrate
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Add new relations to the direct transfer importer
---
# Add new relations to the direct transfer importer
At a high level, to add a new relation to the direct transfer importer, you must:
1. Add a new relation to the list of exported data.

View File

@ -2,10 +2,9 @@
stage: Systems
group: Cloud Connector
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Cached queries guidelines
---
# Cached queries guidelines
Rails provides an [SQL query cache](https://guides.rubyonrails.org/caching_with_rails.html#sql-caching)
which is used to cache the results of database queries for the duration of a request.
When Rails encounters the same query again within the same request, it uses the cached

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Caching guidelines
---
# Caching guidelines
This document describes the various caching strategies in use at GitLab, how to implement
them effectively, and various gotchas. This material was extracted from the excellent
[Caching Workshop](https://gitlab.com/gitlab-org/create-stage/-/issues/12820).
@ -210,7 +209,7 @@ Use conditional GET caching when the entire response is cacheable:
- No privacy risk when you aren't using public caches. You're only caching what
the user sees, for that user, in their browser.
- Particularly useful on [endpoints that get polled](polling.md#polling-with-etag-caching).
- Particularly useful on [endpoints that get polled](polling.md).
- Good examples:
- A list of discussions that we poll for updates. Use the last created entry's `updated_at` value for the `etag`.
- API endpoints.

View File

@ -2,10 +2,9 @@
stage: Foundations
group: Personal Productivity
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Cascading Settings
---
# Cascading Settings
Have you ever wanted to add a setting on a GitLab project and/or group that had a default value that was inherited from a parent in the hierarchy?
If so: we have the framework you have been seeking!

View File

@ -2,10 +2,9 @@
stage: Tenant Scale
group: Cells Infrastructure
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: GitLab Cells Development Guidelines
---
# GitLab Cells Development Guidelines
For background of GitLab Cells, refer to the [design document](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/).
## Choose either the `gitlab_main_cell` or `gitlab_main_clusterwide` schema

View File

@ -2,8 +2,8 @@
stage: Tenant Scale
group: Cells Infrastructure
info: Analysis of Application Settings for Cells 1.0.
title: Application Settings analysis
---
# Application Settings analysis
## Statistics

View File

@ -2,10 +2,9 @@
stage: Tenant Scale
group: Cells Infrastructure
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Configuration
---
# Configuration
Find the existing cells configuration documentation, under [Cells configuration](../../administration/cells.md).
Add cells-related configuration to `config/gitlab.yml` under the `cell` key.

View File

@ -2,10 +2,9 @@
stage: Tenant Scale
group: Cells Infrastructure
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Topology Service
---
# Topology Service
## Updating the Topology Service Gem
The Topology Service is developed in its [own repository](https://gitlab.com/gitlab-org/cells/topology-service)

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Changelog entries
---
# Changelog entries
This guide contains instructions for when and how to generate a changelog entry
file, as well as information and history about our changelog process.
@ -104,11 +103,11 @@ EE: true
database records created during Cycle Analytics model spec."
- _Any_ contribution from a community member, no matter how small, **may** have
a changelog entry regardless of these guidelines if the contributor wants one.
- Any [experiment](experiment_guide/index.md) changes **should not** have a changelog entry.
- Any [experiment](experiment_guide/_index.md) changes **should not** have a changelog entry.
- An MR that includes only documentation changes **should not** have a changelog entry.
For more information, see
[how to handle changelog entries with feature flags](feature_flags/index.md#changelog).
[how to handle changelog entries with feature flags](feature_flags/_index.md#changelog).
## Writing good changelog entries
@ -206,4 +205,4 @@ For more information about interactive rebases, take a look at
---
[Return to Development documentation](index.md)
[Return to Development documentation](_index.md)

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Generating chaos in a test GitLab instance
---
# Generating chaos in a test GitLab instance
<!-- vale gitlab_base.Spelling = NO -->
As [Werner Vogels](https://twitter.com/Werner), the CTO at Amazon Web Services, famously put it, **Everything fails, all the time**.

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: ChatOps on GitLab.com
---
# ChatOps on GitLab.com
ChatOps on GitLab.com allows GitLab team members to run various automation tasks on GitLab.com using Slack.
## Requesting access
@ -61,4 +60,4 @@ To request access to ChatOps on GitLab.com:
- [ChatOps Usage](../ci/chatops/index.md)
- [Feature Flag Controls](feature_flags/controls.md)
- [Understanding EXPLAIN plans](database/understanding_explain_plans.md)
- [Feature Groups](feature_flags/index.md#feature-groups)
- [Feature Groups](feature_flags/_index.md#feature-groups)

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: CI/CD development guidelines
---
# CI/CD development guidelines
CI/CD pipelines are a fundamental part of GitLab development and deployment processes, automating tasks like building,
testing, and deploying code changes.
When developing features that interact with or trigger pipelines, it's essential to consider the broader implications

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Documenting the `.gitlab-ci.yml` keywords
---
# Documenting the `.gitlab-ci.yml` keywords
The [CI/CD YAML syntax reference](../../ci/yaml/index.md) uses a standard style to make it easier to use and update.
The reference information should be kept as simple as possible, and expanded details

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Add new tables to the CI database
---
# Add new tables to the CI database
The [pipeline data partitioning](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/ci_data_decay/pipeline_partitioning/)
design document describes how to partition existing tables in the CI domain. However,
you still need to add tables for new features. Sometimes these tables hold

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Development guide for GitLab official CI/CD components
---
# Development guide for GitLab official CI/CD components
This document explains how to develop [CI/CD components](../../ci/components/index.md) that are maintained by GitLab, either the official public ones or those for internal use.
The location for all official GitLab component projects is the [`gitlab.com/components`](https://gitlab.com/components) group.

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Contribute to the CI/CD configuration
---
# Contribute to the CI/CD configuration
## Glossary
- **CI/CD configuration**: The YAML file that defines the CI/CD configuration for a project.
@ -82,7 +81,7 @@ end
## Feature Flag Usage
When adding new CI/CD configuration keywords, it is important to use feature flags to control the rollout of the change.
This allows us to test the change in production without affecting all users. For more information, see the [feature flags documentation](../feature_flags/index.md).
This allows us to test the change in production without affecting all users. For more information, see the [feature flags documentation](../feature_flags/_index.md).
A common place to check for a feature flag is in the `Gitlab::Config::Entry::Node#value` method. For example:
@ -104,7 +103,7 @@ end
### Feature Flag Actor
In entry classes, we have no access to the current project or user. However, it's discouraged to use feature flags without [an actor](../feature_flags/index.md#feature-actors).
In entry classes, we have no access to the current project or user. However, it's discouraged to use feature flags without [an actor](../feature_flags/_index.md#feature-actors).
To solve this problem, we have three options;
1. Use `Feature.enabled?(:feature_flag, Feature.current_request)`.

View File

@ -2,10 +2,9 @@
stage: none
group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Pipeline Wizard
---
# Pipeline Wizard
The Pipeline Wizard is a Vue frontend component that helps users create a
pipeline by using input fields. The type of input fields and the form of the final
pipeline is configured by a YAML template.

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Contribute to the CI/CD Schema
---
# Contribute to the CI/CD Schema
The [pipeline editor](../../ci/pipeline_editor/index.md) uses a CI/CD schema to enhance
the authoring experience of our CI/CD configuration files. With the CI/CD schema, the editor can:

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Development guide for GitLab CI/CD templates (Deprecated)
---
# Development guide for GitLab CI/CD templates (Deprecated)
NOTE:
With the introduction of the [CI/CD Catalog](../../ci/components/index.md#cicd-catalog),
GitLab is no longer accepting contributions of new CI/CD templates to the codebase. Instead,
@ -117,7 +116,7 @@ with a consistent format.
The `before_script`, `script`, and `after_script` keywords of every job are linted
using [ShellCheck](https://www.shellcheck.net/) and should follow the
[Shell scripting standards and style guidelines](../shell_scripting_guide/index.md)
[Shell scripting standards and style guidelines](../shell_scripting_guide/_index.md)
as much as possible.
ShellCheck assumes that the script is designed to run using [Bash](https://www.gnu.org/software/bash/).

View File

@ -2,10 +2,9 @@
stage: Systems
group: Cloud Connector
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
title: Cloud Connector
---
# Cloud Connector
[GitLab Cloud Connector](https://about.gitlab.com/direction/cloud-connector/) is a way to access services common to
multiple GitLab deployments, instances, and cells. As of now, Cloud Connector is not a
dedicated service itself, but rather a collection of APIs and code that standardizes the approach to authentication and
@ -390,4 +389,4 @@ and assign it to the Cloud Connector group.
## Testing
An example for how to set up an end-to-end integration with the AI gateway as the backend service can be found [here](../ai_features/index.md#required-install-ai-gateway).
An example for how to set up an end-to-end integration with the AI gateway as the backend service can be found [here](../ai_features/_index.md#required-install-ai-gateway).

Some files were not shown because too many files have changed in this diff Show More