Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
1b859cccfe
commit
d69838f199
4
Gemfile
4
Gemfile
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"},
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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"},
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
|
|
|
|||
|
|
@ -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') } }
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
cc93bdce9e2c65061cf37ae48b2013998947053eaa8fd442b70672d9bb94a460
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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. |
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -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).
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
@ -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).
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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!
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
@ -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).
|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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/).
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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!
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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**.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)`.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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/).
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in New Issue