Commit d0d54215 authored by 徐豪's avatar 徐豪
Browse files

init

parents

Too many changes to show.

To preserve performance only 330 of 330+ files are displayed.
#
# This list of browsers is a conservative definition, based on
# https://docs.gitlab.com/ee/install/requirements.html#supported-web-browsers. We
# also use the following reasoning to choose the target versions:
#
# - Actual Browser usage on gitlab.com
# - Support second latest version of Firefox ESR
# - Support Chrome / Edge versions about the same age as the Firefox ESR version chosen
#
# If need be we raise versions closer to the actual supported web browsers.
#
# See also this epic: https://gitlab.com/groups/gitlab-org/-/epics/3957
#
chrome >= 103
edge >= 103
firefox >= 102
safari >= 15.6
---
version: "2"
plugins:
bundler-audit:
enabled: true
duplication:
enabled: true
config:
languages:
- ruby
- javascript
rubocop:
enabled: false
exclude_patterns:
- "{ee/,jh/,}config/"
- "{ee/,jh/,}db/"
- "**/log/"
- "**/node_modules/"
- "**/spec/"
- "**/tmp/"
- "**/vendor/"
- .yarn-cache/
- backups/
- builds/
- coverage/
- file_hooks/
- plugins/
- public/
- shared/
- webpack-report/
# `build_from_dir` can't find Dockerfile when `.dockerignore` is "*"
# See https://github.com/swipely/docker-api/issues/484
# Ignore all folders except the one listed at the bottom of this file.
/.git/
/app/
/bin/
/builds/
/changelogs/
/config/
/coverage/
/danger/
/data/
/db/
/doc/
/ee/
/file_hooks/
/fixtures/
/gems/
/generator_templates/
/glfm_specification/
/haml_lint/
/jh/
/lib/
/locale/
/log/
/metrics_server/
/node_modules/
/patches/
/public/
/qa/
/rubocop/
/scripts/
/shared/
/sidekiq_cluster/
/spec/
/storybook/
/tmp/
/tooling/
/vendor/
/workhorse/
!/config/initializers/0_inject_enterprise_edition_module.rb
!/config/feature_flags/
!/config/bundler_setup.rb
!/lib/gitlab_edition.rb
!/lib/gitlab/utils.rb
!/spec/support/fast_quarantine.rb
!/tooling/lib/tooling/fast_quarantine.rb
!/INSTALLATION_TYPE
!/VERSION
!/gems/
!/qa/
!/vendor/gems/
!/ee/app/models/license.rb
!/ee/config/feature_flags/
!/jh/qa/
!/jh/lib/
!/jh/config/feature_flags/
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
[*.{js,json,vue,scss,rb,haml,yml}]
indent_size = 2
[*.{js,json,vue,scss,rb,haml,yml,md}]
indent_style = space
charset = utf-8
[*.{md,markdown,js.snap}]
trim_trailing_whitespace = false
[doc/**/*.md]
trim_trailing_whitespace = true
[*.rb]
max_line_length = 120
# Don't apply editorconfig rules to vendor/ resources
[vendor/**]
charset = unset
end_of_line = unset
indent_size = unset
indent_style = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
max_line_length = unset
/app/assets/javascripts/locale/**/app.js
/builds/
/coverage/
/coverage-frontend/
/node_modules/
/public/
/tmp/
/vendor/
/sitespeed-result/
/fixtures/**/*.graphql
# Storybook build artifacts
/storybook/public
spec/fixtures/**/*.graphql
extends:
- plugin:@gitlab/default
- plugin:@gitlab/i18n
- plugin:no-jquery/slim
- plugin:no-jquery/deprecated-3.4
- plugin:no-unsanitized/DOM
- ./tooling/eslint-config/conditionally_ignore.js
globals:
__webpack_public_path__: true
gl: false
gon: false
localStorage: false
IS_EE: false
plugins:
- no-jquery
settings:
import/resolver:
webpack:
config: './config/webpack.config.js'
rules:
import/no-commonjs: error
import/no-default-export: off
no-underscore-dangle:
- error
- allow:
- __
- _links
import/no-unresolved:
- error
- ignore:
# In FOSS, these import paths are rewritten using
# NormalModuleReplacementPlugin, which import/no-unresolved doesn't
# consider. See
# https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89831.
- '^(ee|jh)_component/'
lines-between-class-members: off
# all offenses of no-jquery/no-animate-toggle are false positives ( $toast.show() )
no-jquery/no-animate-toggle: off
no-jquery/no-event-shorthand: off
no-jquery/no-serialize: error
promise/always-return: off
promise/no-callback-in-promise: off
'@gitlab/no-global-event-off': error
'@gitlab/vue-no-new-non-primitive-in-template':
- error
- allowNames:
- 'class(es)?$'
- '^style$'
- '^to$'
- '^$'
- '^variables$'
- 'attrs?$'
no-param-reassign:
- error
- props: true
ignorePropertyModificationsFor:
- acc
- accumulator
- el
- element
- state
ignorePropertyModificationsForRegex:
- '^draft'
import/order:
- error
- groups:
- builtin
- external
- internal
- parent
- sibling
- index
pathGroups:
- pattern: ~/**
group: internal
- pattern: emojis/**
group: internal
- pattern: '{ee_,jh_,}empty_states/**'
group: internal
- pattern: '{ee_,jh_,}icons/**'
group: internal
- pattern: '{ee_,jh_,}images/**'
group: internal
- pattern: vendor/**
group: internal
- pattern: shared_queries/**
group: internal
- pattern: '{ee_,}spec/**'
group: internal
- pattern: '{ee_,jh_,}jest/**'
group: internal
- pattern: '{ee_,jh_,any_}else_ce/**'
group: internal
- pattern: ee/**
group: internal
- pattern: '{ee_,jh_,}component/**'
group: internal
- pattern: jh_else_ee/**
group: internal
- pattern: jh/**
group: internal
- pattern: '{test_,}helpers/**'
group: internal
- pattern: test_fixtures/**
group: internal
alphabetize:
order: ignore
'no-restricted-syntax':
- error
- selector: ImportSpecifier[imported.name='GlSkeletonLoading']
message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.'
- selector: ImportSpecifier[imported.name='GlSafeHtmlDirective']
message: 'Use directive at ~/vue_shared/directives/safe_html.js instead.'
- selector: Literal[value=/docs.gitlab.+\u002Fee/]
message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateElement[value.cooked=/docs.gitlab.+\u002Fee/]
message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`'
- selector: Literal[value=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/]
message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateElement[value.cooked=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/]
message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: Literal[value=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/]
message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateElement[value.cooked=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/]
message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateLiteral[expressions.0.name=DOCS_URL] > TemplateElement[value.cooked=/\u002Fjh|\u002Fee/]
message: '`/ee` or `/jh` path found in docs url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`'
no-restricted-imports:
- error
- paths:
- name: mousetrap
message: 'Import { Mousetrap } from ~/lib/mousetrap instead.'
- name: vuex
message: 'See our documentation on "Migrating from VueX" for tips on how to avoid adding new VueX stores.'
- name: '@sentry/browser'
message: Use "import * as Sentry from '~/sentry/sentry_browser_wrapper';" instead
unicorn/prefer-dom-node-dataset:
- error
no-unsanitized/method:
- error
- escape:
methods: 'sanitize'
no-unsanitized/property:
- error
- escape:
methods: 'sanitize'
# This rule will be enabled later.
unicorn/no-array-callback-reference: off
vue/no-undef-components:
- error
- ignorePatterns:
- '^router-link$'
- '^router-view$'
- '^gl-emoji$'
overrides:
- files:
- '{,ee/,jh/}spec/frontend*/**/*'
rules:
'@gitlab/require-i18n-strings': off
'@gitlab/no-runtime-template-compiler': off
'require-await': error
'import/no-dynamic-require': off
'no-import-assign': off
'no-restricted-syntax':
- error
- selector: CallExpression[callee.object.name=/(wrapper|vm)/][callee.property.name="setData"]
message: 'Avoid using "setData" on VTU wrapper'
- selector: MemberExpression[object.type!='ThisExpression'][property.type='Identifier'][property.name='$nextTick']
message: 'Using $nextTick from a component instance is discouraged. Import nextTick directly from the Vue package.'
- selector: Identifier[name='setImmediate']
message: 'Prefer explicit waitForPromises (or equivalent), or jest.runAllTimers (or equivalent) to vague setImmediate calls.'
- selector: ImportSpecifier[imported.name='GlSkeletonLoading']
message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.'
- selector: CallExpression[arguments.length=1][arguments.0.type='Literal'] CallExpression[callee.property.name='toBe'] CallExpression[callee.property.name='attributes'][arguments.length=1][arguments.0.value='disabled']
message: Avoid asserting disabled attribute exact value, because Vue.js 2 and Vue.js 3 renders it differently. Use toBeDefined / toBeUndefined instead
- selector: MemberExpression[object.object.name='Vue'][object.property.name='config'][property.name='errorHandler']
message: 'Use setErrorHandler/resetVueErrorHandler from helpers/set_vue_error_handler.js instead.'
- selector: Literal[value=/docs.gitlab.+\u002Fee/]
message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateElement[value.cooked=/docs.gitlab.+\u002Fee/]
message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`'
- selector: Literal[value=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/]
message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateElement[value.cooked=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/]
message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: Literal[value=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/]
message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateElement[value.cooked=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/]
message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`'
- selector: TemplateLiteral[expressions.0.name=DOCS_URL] > TemplateElement[value.cooked=/\u002Fjh|\u002Fee/]
message: '`/ee` or `/jh` path found in docs url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`'
no-unsanitized/method: off
no-unsanitized/property: off
- files:
- 'config/**/*'
- 'scripts/**/*'
- '*.config.js'
- '*.config.*.js'
- 'jest_resolver.js'
rules:
'@gitlab/require-i18n-strings': off
import/no-extraneous-dependencies: off
import/no-commonjs: off
import/no-nodejs-modules: off
filenames/match-regex: off
no-console: off
- files:
- '*.stories.js'
rules:
filenames/match-regex: off
'@gitlab/require-i18n-strings': off
- files:
- '*.graphql'
plugins:
- '@graphql-eslint'
parserOptions:
parser: '@graphql-eslint/eslint-plugin'
operations: '{,ee/,jh/}app/**/*.graphql'
schema: './tmp/tests/graphql/gitlab_schema_apollo.graphql'
rules:
filenames/match-regex: off
spaced-comment: off
# TODO: We need a way to include this rule + support ee_else_ce fragments
#'@graphql-eslint/unique-fragment-name': error
# TODO: Uncomment these rules when then `schema` is available
#'@graphql-eslint/fragments-on-composite-type': error
#'@graphql-eslint/known-argument-names': error
#'@graphql-eslint/known-type-names': error
'@graphql-eslint/no-anonymous-operations': error
'@graphql-eslint/unique-operation-name': error
'@graphql-eslint/require-id-when-available': error
'@graphql-eslint/no-unused-variables': error
'@graphql-eslint/no-unused-fragments': error
'@graphql-eslint/no-duplicate-fields': error
- files:
- '{,ee/}spec/contracts/consumer/**/*'
rules:
'@gitlab/require-i18n-strings': off
- files:
- 'app/assets/javascripts/projects/settings/branch_rules/queries/branch_rules_details.query.graphql'
- 'app/assets/javascripts/projects/settings/repository/branch_rules/graphql/mutations/create_branch_rule.mutation.graphql'
- 'app/assets/javascripts/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql'
- 'ee/app/assets/javascripts/projects/settings/branch_rules/queries/branch_rules_details.query.graphql'
- 'ee/app/assets/javascripts/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql'
rules:
'@graphql-eslint/require-id-when-available': off
# This file contains revisions to be ignored by git blame.
# These revisions are expected to be formatting-only changes.
#
# Calling `git blame --ignore-revs-file .git-blame-ignore-revs` will
# tell git blame to ignore changes made by these revisions when assigning
# assigning blame, as if the change never happened.
#
# You can enable this as a default for your local repository by running
# `git config blame.ignoreRevsFile .git-blame-ignore-revs`
# This will probably be automatically picked by your IDE
# (VSCode+GitLens and JetBrains products are confirmed to this)
#
# Important: if you are switching to the branch without this file,
# `git blame` will fail with an error
#
# Guidelines:
# - Only large automated refactorings are expected to be included in this file.
# Do not add new revision just because it feels unimportant
# - When adding sinle revision use inline comment to link relevant issue/MR
# Example:
## d4a8b7307acc2dc8a8833ccfa65426ad28b3ffc9 # https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/60
# - When adding multiple revisions precede each addition (this could be multiple revisions) with a link to
# line with word START and link to relevant issue/MR/epic and conclude with line END and link to the
# same issue/MR/epic
# Example:
# # START https://gitlab.com/gitlab-org/issues/12345
# 6f0bd2d8a1e6cd2e794cd39976e9756e0c85ac66
# d53974df11dbc22cbea9dc7dcbc9896c25979a27
# ... <rest of the list>
# # END https://gitlab.com/gitlab-org/issues/12345
# - Please append new lines to the end of the file, no matter of real chronological
# order of revisions
# - Since this is using hashes for reformatting it might be a good idea to update
# this file in separate MR when relevant changes already landed in master. By
# utilizing this manner you will be safe from random rebase/squash issues
# - Only put full 40-character hashes on this list
# START https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/60
f2d28d7ab8525944fda634241a780006594fbe1a
94cfbb0ce38e893edda33ebc069bfa616a08a961
b69f448f0685ad96edc474f75a17e0278a6d6011
52907ac20c3af337544bdf18023730b9ada4b157
d4a8b7307acc2dc8a8833ccfa65426ad28b3ffc9
468cb9f0a4b88bf686f3e78250834f7c9d31ff76
a536349d1d219f0b79a7a711d37dd1c705e49128
6f0bd2d8a1e6cd2e794cd39976e9756e0c85ac66
d53974df11dbc22cbea9dc7dcbc9896c25979a27
818537524d13469cbc7ac5cb89263378b4cddca4
bcbbcb2e708868099301ad5039badfba2128d47b
a4c662da544b38b7e593eb79f24b24c5cb2f205e
9aa1f6207a91a76940b34c921ce89894fcd74a06
66da09846a17435f332296f73af44919ff2cfb52
216f795bab0e8fbf6023f22f6e54cc07514a04ec
e820c22892d207e138bdff717100e5240f8ffd94
2f8dbd483242575f9ceca0a2947c9b21e5ab59a0
e7d50054818ada29751539f548ef72f46deca8bb
00827a74cf3bfef985ed6046fb2d42f29cbb19ac
333bad893e98068053c888f6b020632f1c6f472e
85af3689eea96b4d9131d80d8c5c8936de520074
325fb305ea395a7f44ae1eea0a3e77e46e10c2b6
e37a6d7aa61039734025474ce901f2907283e239
dff561fa8c50e9b96aec9800b6b88ad6c7a2777b
19b0ba7265cfb154505f74b6856e73662829af2e
7c1fa749efcd59e81b565d6803285f6bd4bcefaf
5c23cb94c5d1aed2a4b02b7c1f3e5a53a0aa4760
c35cc92c80969e7c87bbcda7db6cbd04f6719589
280a79c0ec4c1383e49480f3028f5b2025a2a76b
e94556e9f9a145374bf26feb5e1823dae8a4004d
b6a8d9baf700dbb3f780b27d9a9820c9cb7a346c
9180eaee4d58a9e91c5f960148290b5271ba870c
0fdc1fc0380056836dff7aba9be3b1e4b531daea
157e117fcb530436561e3fb8faba6f751dc19e91
7cfe360c9e5460a595dfe729e81cf404c1106638
e3aca8c8f8488c55a199fc28595709b393f5040b
3b1593f2d53b735299381ad0878959cbc2fc9923
39bb37cc0d18f620006d85dfdff7b9a54077708e
cdc1a4a8eec43e6a3df05403af8d05ab6ea7a213
87ad67fef574cd102887f3dde98917f3b2bbcab8
99bff4450248457ba877dec0388241625fb0144b
d1b6d05c08e0730463084acd1a387cd9d6acea8b
557c22a8242d1d7ccf2228b9b3156e2aa0dd05aa
7f4e951ce8073b50a245ebe216a8961c88846cfa
7dae714f23f423ff362d73e0d16da7b3a6cd721f
cfb368284545a4bd1e759cfe9e3e3bde54a1ec6f
aa653d5a380d88493050b22d84df36ae6df2cddd
96ed4677c602e8f9c83b28fbc0d802aa26527ab8
72c11eb5a15735dc52dcd893e9112a10444d46e4
b48e14b89b94a1a87affabd09bc603a67fc6bb01
d46581c1fbcef34cfdd85c6c542fb4ac1b974861
ef02363c9cd41a9ce41443661efed1c0399c5551
075a78b319466aff9e94149c41c286544af91782
9f4b4de2df17268732ae198d5f48c9b99d071a35
0a8f575e365804239d29b45562ca6594b9da59e9
c04bd24738b1775b963bba3f78b48007fccce37e
1173c801ea53c9d814fdf27d878f73a1702eb4e9
a2f5e7395004c255ecaadef30d7a6b5bf453d372
80f1ea7e3f11063a4f15bdd4a2e4a1ca7f770d87
0e6e345f3b4dcb7b51403bcd096e6d3d294743f4
06ee932e0844fa4cc91c15d5ca581de262d7bedd
b3ece842f7c05230f77055ad11e3c4a07c34e1e9
5ebea3a48831351169e0a312e9d6985b31c9975b
02fad0bc640f5f91c748d692c01d6221c9b03b6e
16d4df3c7130b5a0995fdc685b272bef65ff84d5
281cc7306ab92d2e053d0bb2d79e4f3646b980f6
1877bf550016eac9ecac53ec498ec83bdd24339c
7e9741c59d1e3612017925a7b7cf0946bbdd6eca
b282f7dda6d7e93fcb0f000db8aa6634ac8d1b88
81e82875704ffb35842534433216e797c41f89c3
4914a729d17efbe250ac2cab2153f72caef3a7b7
792e349390327fa11721e2f744cafec3b05f51f4
8869ce0866823b229a863e435aa108c5d4fcf448
a223014afe14686a4e18a826fd0bac9bdaaf969b
482d756cf69e3f0dd5997ea0e58d35c0eb694e35
4700ac1d1da533cfefd50bd640db77a12c458fda
21fa9ca4832cfb57f791ff057e7c5987349aa964
8b24c8d64d9328e0884725a2075a4a21faa76842
86ce5406c3b60757f40d4c434b5ce7dfc602a643
da4eea76b3cc1d68d4bfd2705bb86e904d1b54bc
8ac8a1f21a21840b53175e9f4a423b9ffa083f71
ed189d0e9925eb08f3eb444176fad2614a3a4f83
6e183d5016afc50e60892c7f1cf79035619c2deb
9b1d8b4c2897792be067e33442ebf3ce0961a5d0
57da632154bfc193224d5a290b9c2b6cbd7fa0ad
1e3190b0049ba1b502918dc018681808b9203803
0e334037bf0f93ff6f7bc922c48fa97556f39808
07f5bc94bd983e77361c9a5020f8f229da3a465a
888002a62696ba66d8eb49f1dfe83a5a49bdf421
c152d51445d9d9dd7c2c328ca8c407fa5438d16b
26b68c70df73289210aa600fa3c1fe45f05afee4
# END https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/60
VERSION merge=ours
Dangerfile gitlab-language=ruby
*.rb diff=ruby
workhorse/testdata/*.pdf -filter -diff -merge
We’re closing our issue tracker on GitHub so we can focus on the GitLab.com project and respond to issues more quickly.
We encourage you to open an issue on the [GitLab.com issue tracker](https://gitlab.com/gitlab-org/gitlab/issues). You can log into GitLab.com using your GitHub account.
Thank you for taking the time to contribute back to GitLab!
Please open a merge request [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/merge_requests), we look forward to reviewing your contribution! You can log into GitLab.com using your GitHub account.
*.log
*.swp
*.mo
*.edit.po
*.rej
.dir-locals.el
.DS_Store
.bundle
.chef
.directory
.eslintcache
/.envrc
eslint-report.html
/.gitlab_shell_secret
.idea
.nova
/.vscode/*
/.rbenv-version
.rbx/
/.ruby-gemset
/.ruby-version
/.tool-versions
/.rvmrc
/.secret
.sass-cache/
/.vagrant
/.yarn-cache
/.byebug_history
/Vagrantfile
/app/assets/images/icons.json
/app/assets/images/icons.svg
/app/assets/images/illustrations/
/app/assets/javascripts/locale/**/app.js
/backups/*
/config/aws.yml
/config/cable.yml
/config/database*.yml
/config/gitlab.yml
/config/gitlab_ci.yml
/config/Gitlab.gitlab-license
/config/initializers/smtp_settings.rb
/config/initializers/relative_url.rb
/config/resque.yml
/config/redis.*.yml
/config/redis.yml
/config/unicorn.rb
/config/puma.rb
/config/secrets.yml
/config/session_store.yml
/config/sidekiq.yml
/config/click_house.yml
/config/registry.key
/coverage/*
/db/*.sqlite3
/db/*.sqlite3-journal
/db/data.yml
/doc/code/*
/dump.rdb
/jsconfig.json
/lefthook-local.yml
/log/*.log*
/node_modules
/nohup.out
/public/assets/
/public/uploads.*
/public/uploads/
/public/sitemap.xml
/public/sitemap.xml.gz
/shared/artifacts/
/spec/examples.txt
/rails_best_practices_output.html
/tags
/vendor/bundle/*
/vendor/package_metadata_db/
/builds*
/.gitlab_workhorse_secret
/.gitlab_pages_secret
/.gitlab_kas_secret
/.gitlab_suggested_reviewers_secret
/.gitlab_zoekt_username
/.gitlab_zoekt_password
/webpack-report/
/crystalball/
/test_results/
/deprecations/
/knapsack/
/rspec_flaky/
/rspec/
/locale/**/LC_MESSAGES
/locale/**/*.time_stamp
/.rspec
/.gitlab_smime_key
/.gitlab_smime_cert
package-lock.json
/junit_*.xml
/coverage-frontend/
jsdoc/
**/tmp/rubocop_cache/**
.projections.json
/qa/.rakeTasks
webpack-dev-server.json
/.nvimrc
.solargraph.yml
ee/changelogs/unreleased-ee
/sitespeed-result
tags.lock
tags.temp
.stylelintcache
.solargraph.yml
jest-snapshot-test-match.json
jest-test-report.json
jest-snapshot-test-report.json
# Vite Ruby
/public/vite*
# Vite uses dotenv and suggests to ignore local-only env files. See
# https://vitejs.dev/guide/env-and-mode.html#env-files
*.local
/config/vite.gdk.json
# CSS compilation for cssbundling and tailwind
app/assets/builds/
config/helpers/tailwind/all_utilities.haml
config/helpers/tailwind/css_in_js.js
# ruby-lsp
.index.yml
stages:
- sync
- preflight
- prepare
- build-images
- fixtures
- lint
- test-frontend
- test
- post-test
- review
- qa
- post-qa
- pre-merge
- pages
- notify
- release-environments
- benchmark
# always use `gitlab-org` runners, however
# in cases where jobs require Docker-in-Docker, the job
# definition must be extended with `.use-docker-in-docker`
default:
image: $DEFAULT_CI_IMAGE
tags:
- gitlab-org
# All jobs are interruptible by default
interruptible: true
# Default job timeout doesn't work: https://gitlab.com/gitlab-org/gitlab/-/issues/387528
timeout: 90m
.default-ruby-variables: &default-ruby-variables
RUBY_VERSION: "${RUBY_VERSION_DEFAULT}"
OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3_1"
.next-ruby-variables: &next-ruby-variables
RUBY_VERSION: "${RUBY_VERSION_NEXT}"
OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3_2"
.default-branch-pipeline-failure-variables: &default-branch-pipeline-failure-variables
CREATE_RAILS_FLAKY_TEST_ISSUES: "true"
CREATE_RAILS_SLOW_TEST_ISSUES: "true"
CREATE_RAILS_TEST_FAILURE_ISSUES: "true"
.default-merge-request-variables: &default-merge-request-variables
NO_SOURCEMAPS: "true"
ADD_SLOW_TEST_NOTE_TO_MERGE_REQUEST: "true"
FF_NETWORK_PER_BUILD: "true"
FF_TIMESTAMPS: "true"
.if-merge-request-security-canonical-sync: &if-merge-request-security-canonical-sync
if: '$CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == "gitlab-org/security/gitlab" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
.if-not-security-canonical-sync: &if-not-security-canonical-sync
if: '$CI_MERGE_REQUEST_SOURCE_PROJECT_PATH != "gitlab-org/security/gitlab" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_DEFAULT_BRANCH'
workflow:
name: '$PIPELINE_NAME'
rules:
- if: '$CI_PIPELINE_SOURCE == "pipeline" && $GITALY_TEST'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Gitaly Rails Test Pipeline'
# If `$FORCE_GITLAB_CI` is set, create a pipeline.
- if: '$FORCE_GITLAB_CI'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION forced'
- if: '$START_AS_IF_FOSS'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION as-if-foss'
# As part of the process of creating RCs automatically, we update stable
# branches with the changes of the most recent production deployment. The
# merge requests used for this merge a branch release-tools/X into a stable
# branch. For these merge requests we don't want to run any pipelines, as
# they serve no purpose and will run anyway when the changes are merged.
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^release-tools\/\d+\.\d+\.\d+-rc\d+$/ && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee)?$/ && $CI_PROJECT_PATH == "gitlab-org/gitlab"'
when: never
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_1/ || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee)?$/'
variables:
<<: [*default-ruby-variables, *default-merge-request-variables]
PIPELINE_NAME: 'Ruby $RUBY_VERSION MR'
- if: '$CI_MERGE_REQUEST_LABELS =~ /Community contribution/'
variables:
<<: [*next-ruby-variables, *default-merge-request-variables]
GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby $RUBY_VERSION MR (community contribution)'
# This work around https://gitlab.com/gitlab-org/gitlab/-/issues/332411 which prevents usage of dependency proxy
# when pipeline is triggered by a project access token.
# Example of project bot usernames (the format changed over time):
# - project_278964_bot2
# - project_278964_bot_7fb4d1cca8242cb399a0b8f483783120
- if: '$CI_MERGE_REQUEST_IID && $GITLAB_USER_LOGIN =~ /project_\d+_bot/'
variables:
<<: [*next-ruby-variables, *default-merge-request-variables]
GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby $RUBY_VERSION MR (triggered by a project token)'
- <<: *if-merge-request-security-canonical-sync
variables:
<<: [*next-ruby-variables, *default-merge-request-variables]
PIPELINE_NAME: '$CI_DEFAULT_BRANCH security->canonical sync'
SKIP_MESSAGE: 'MR only contains changes from the security mirror, which have already been reviewed, tested and deployed.'
# For (detached) merge request pipelines.
- if: '$CI_MERGE_REQUEST_IID'
variables:
<<: [*next-ruby-variables, *default-merge-request-variables]
PIPELINE_NAME: 'Ruby $RUBY_VERSION MR'
# For the scheduled pipelines, we set specific variables.
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"'
variables:
<<: [*default-ruby-variables, *default-branch-pipeline-failure-variables]
CRYSTALBALL: "true"
PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch'
- if: '$CI_COMMIT_BRANCH == "ruby3_2" && $CI_PIPELINE_SOURCE == "schedule"'
variables:
<<: *next-ruby-variables
PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch'
# This work around https://gitlab.com/gitlab-org/gitlab/-/issues/332411 which prevents usage of dependency proxy
# when pipeline is triggered by a project access token.
# Example of project bot usernames (the format changed over time):
# - project_278964_bot2
# - project_278964_bot_7fb4d1cca8242cb399a0b8f483783120
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $GITLAB_USER_LOGIN =~ /project_\d+_bot/'
variables:
<<: [*default-ruby-variables, *default-branch-pipeline-failure-variables]
GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch (triggered by a project token)'
# For `$CI_DEFAULT_BRANCH` from wider community contributors, we don't want to run any pipelines on pushes,
# because normally we want to run merge request pipelines and scheduled pipelines, not for repository synchronization.
# This can avoid accidentally using up pipeline minutes quota while synchronizing the repository for wider community contributors.
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE !~ /^gitlab(-org|-cn)?($|\/)/'
when: never
# For `$CI_DEFAULT_BRANCH` branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
variables:
<<: [*default-ruby-variables, *default-branch-pipeline-failure-variables]
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch'
# For tags, create a pipeline.
- if: '$CI_COMMIT_TAG'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_TAG tag'
# If `$GITLAB_INTERNAL` isn't set, don't create a pipeline.
- if: '$GITLAB_INTERNAL == null'
when: never
# For stable, auto-deploy, and security branches, create a pipeline.
- if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch'
- if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch'
- if: '$CI_COMMIT_BRANCH =~ /^security\//'
variables:
<<: *default-ruby-variables
PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch'
variables:
PG_VERSION: "14"
DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-${NODE_VERSION}-postgresql-${PG_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-yarn-1.22-graphicsmagick-1.3.36"
# We set $GITLAB_DEPENDENCY_PROXY to another variable (since it's set at the group level and has higher precedence than .gitlab-ci.yml)
# so that we can override $GITLAB_DEPENDENCY_PROXY_ADDRESS in workflow rules.
GITLAB_DEPENDENCY_PROXY_ADDRESS: "${GITLAB_DEPENDENCY_PROXY}"
RAILS_ENV: "test"
NODE_ENV: "test"
BUNDLE_WITHOUT: "production:development"
BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3"
BUNDLE_FROZEN: "true"
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=5120
GIT_DEPTH: "20"
# 'GIT_STRATEGY: clone' optimizes the pack-objects cache hit ratio
GIT_STRATEGY: "clone"
GIT_SUBMODULE_STRATEGY: "none"
GET_SOURCES_ATTEMPTS: "3"
# CI_FETCH_REPO_GIT_STRATEGY: "none" is from artifacts. "clone" is from cloning
CI_FETCH_REPO_GIT_STRATEGY: "none"
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json
FRONTEND_FIXTURES_MAPPING_PATH: crystalball/frontend_fixtures_mapping.json
GITLAB_WORKHORSE_FOLDER: "gitlab-workhorse"
JOB_METRICS_FILE_PATH: "${CI_PROJECT_DIR}/tmp/job-metrics.json"
KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/report-master.json
RSPEC_CHANGED_FILES_PATH: rspec/changed_files.txt
RSPEC_FAIL_FAST_THRESHOLD: 20
RSPEC_FAST_QUARANTINE_PATH: rspec/fast_quarantine-gitlab.txt
RSPEC_LAST_RUN_RESULTS_FILE: rspec/rspec_last_run_results.txt
RSPEC_MATCHING_JS_FILES_PATH: rspec/js_matching_files.txt
RSPEC_MATCHING_TESTS_EE_PATH: rspec/matching_tests-ee.txt
RSPEC_MATCHING_TESTS_FOSS_PATH: rspec/matching_tests-foss.txt
RSPEC_MATCHING_TESTS_PATH: rspec/matching_tests.txt
RSPEC_PACKED_TESTS_MAPPING_PATH: crystalball/packed-mapping.json
RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML: .gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb
RSPEC_PROFILING_FOLDER_PATH: rspec/profiling
RSPEC_TESTS_MAPPING_PATH: crystalball/mapping.json
RSPEC_VIEWS_INCLUDING_PARTIALS_PATH: rspec/views_including_partials.txt
RSPEC_AUTO_EXPLAIN_LOG_PATH: auto_explain/auto_explain.ndjson.gz
TMP_TEST_FOLDER: "${CI_PROJECT_DIR}/tmp/tests"
TMP_TEST_GITLAB_WORKHORSE_PATH: "${TMP_TEST_FOLDER}/${GITLAB_WORKHORSE_FOLDER}"
ES_JAVA_OPTS: "-Xms256m -Xmx256m"
ELASTIC_URL: "http://elastic:changeme@elasticsearch:9200"
BUNDLER_CHECKSUM_VERIFICATION_OPT_IN: "1"
CACHE_CLASSES: "true"
CHECK_PRECOMPILED_ASSETS: "true"
RETRY_FAILED_TESTS_IN_NEW_PROCESS: "true"
# Run with decomposed databases by default
DECOMPOSED_DB: "true"
DOCS_REVIEW_APPS_DOMAIN: "docs.gitlab-review.app"
DOCS_GITLAB_REPO_SUFFIX: "ee"
REVIEW_APPS_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:gcloud-383-kubectl-1.27-helm-3.9"
REVIEW_APPS_DOMAIN: "gitlab-review.app"
REVIEW_APPS_GCP_PROJECT: "gitlab-review-apps"
REVIEW_APPS_GCP_REGION: "us-central1"
REGISTRY_HOST: "registry.gitlab.com"
REGISTRY_GROUP: "gitlab-org"
# Disable useless network connections when installing some NPM packages.
# See https://gitlab.com/gitlab-com/gl-security/engineering-and-research/inventory/-/issues/827#note_1203181407
DISABLE_OPENCOLLECTIVE: "true"
# This is set at the gitlab-org level, but we set it here for forks
DANGER_DO_NOT_POST_INVALID_DANGERFILE_ERROR: "1"
# Workaround for https://gitlab.com/gitlab-org/gitlab/-/issues/390313. This can be dropped whenever
# https://github.com/ruby/ruby/pull/7663 lands in the Ruby interpreter.
NOKOGIRI_LIBXML_MEMORY_MANAGEMENT: default
# CI jobs behavior can be changed by changing the value of these variables in the project's CI/CD variables
AVERAGE_KNAPSACK_REPORT: "true"
ENABLE_DEPSCORE: "true"
CACHE_ASSETS_AS_PACKAGE: "true"
REUSE_FRONTEND_FIXTURES_ENABLED: "true"
BUILD_ASSETS_IMAGE: "true" # Set it to "false" to disable assets image building, used in `build-assets-image`
SIMPLECOV: "true"
include:
- local: .gitlab/ci/_skip.yml
rules:
- <<: *if-merge-request-security-canonical-sync
- local: .gitlab/ci/version.yml
- local: .gitlab/ci/*.gitlab-ci.yml
rules:
- <<: *if-not-security-canonical-sync
- remote: 'https://gitlab.com/gitlab-org/frontend/untamper-my-lockfile/-/raw/main/templates/merge_request_pipelines.yml'
rules:
- <<: *if-not-security-canonical-sync
- local: .gitlab/ci/includes/gitlab-com/*.gitlab-ci.yml
rules:
- if: '$CI_SERVER_HOST == "gitlab.com"'
- if: '$CI_SERVER_HOST == "jihulab.com"'
- local: .gitlab/ci/includes/as-if-jh.gitlab-ci.yml
rules:
# Only run as-if-jh triggerred pipelines for gitlab.com/gitlab-org/gitlab MRs that don't target stable branches
# and that don't have the quarantine or pipeline::expedited labels.
- if: '$CI_PROJECT_URL != "https://gitlab.com/gitlab-org/gitlab"'
when: never
- if: '$CI_MERGE_REQUEST_ID == null'
when: never
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee|-jh)?$/'
when: never
- if: '$CI_MERGE_REQUEST_LABELS =~ /quarantine/ || $CI_MERGE_REQUEST_LABELS =~ /pipeline::expedited/ || $CI_MERGE_REQUEST_LABELS =~ /pipeline:expedite/'
when: never
- when: always
# When adding a group as a code owner, make sure to invite the group to the
# project here: https://gitlab.com/gitlab-org/gitlab/-/project_members
# As described in https://docs.gitlab.com/ee/user/project/code_owners.html
* @gitlab-org/maintainers/rails-backend @gitlab-org/maintainers/frontend @gitlab-org/maintainers/database @gl-quality/qe-maintainers @gl-quality/tooling-maintainers @gitlab-org/delivery @gitlab-org/maintainers/cicd-templates @gitlab-org/tw-leadership @gitlab-org/maintainers/kas-version-maintainers
.gitlab/CODEOWNERS @gitlab-org/development-leaders @gitlab-org/tw-leadership
## Allows release tooling and Gitaly team members to update the Gitaly Version
/GITALY_SERVER_VERSION @project_278964_bot6 @gitlab-org/maintainers/rails-backend @gitlab-org/delivery @gl-gitaly
## Files that are excluded from required approval
## These rules override the * rule above, so that changes to docs and templates
## can be merged by any user who has maintainer rights, but is not included in
## the * rule (usually technical writers).
/.gitlab/issue_templates/*.md
/.gitlab/merge_request_templates/*.md
/doc/*.md
/doc/**/*.md
/doc/**/*.jpg
/doc/**/*.png
/data/deprecations/*.yml
## Technical writing files that do not need `*` rule approval,
## but still require an approval from a TW team DRI for each file.
/data/deprecations/templates/ @marcel.amirault @sarahgerman @gitlab-org/tw-leadership
.markdownlint-cli2.yaml @marcel.amirault @eread @aqualls @gitlab-org/tw-leadership
/doc/.markdownlint/ @marcel.amirault @eread @aqualls @gitlab-org/tw-leadership
/doc/.vale/ @marcel.amirault @eread @aqualls @gitlab-org/tw-leadership
/lib/tasks/gitlab/tw/codeowners.rake @aqualls @gitlab-org/tw-leadership
/scripts/lint-doc.sh @marcel.amirault @eread @axil @sarahgerman @gitlab-org/tw-leadership
/scripts/lint-docs-metadata.sh @marcel.amirault @eread @axil @sarahgerman @gitlab-org/tw-leadership
config/bounded_contexts.yml @fabiopitino @grzesiek @stanhu @cwoolley-gitlab @tkuah
^[Source code editing]
.solargraph.yml.example @igor.drozdov
^[Backend] @gitlab-org/maintainers/rails-backend
*.rb
*.rake
.rubocop_todo/
^[Frontend] @gitlab-org/maintainers/frontend
*.scss
*.js
/app/assets/
/ee/app/assets/
/spec/frontend/
/ee/spec/frontend/
/spec/frontend_integration/
/ee/spec/frontend_integration/
[Clickhouse] @gitlab-org/maintainers/clickhouse
/db/click_house/
/ee/db/click_house/
/**/click_house/
## We list db/ subfolders explicitly as we don't want to match Clickhouse files
[Database] @gitlab-org/maintainers/database
/db/database_connections/
/ee/db/database_connections/
/db/docs/
/ee/db/docs/
/ee/db/embedding/
/ee/db/geo/
/ee/db/seeds/
/db/gitlab_schemas/
/ee/db/gitlab_schemas/
/db/*migrate/
/ee/db/*migrate/
/db/schema_migrations/
/ee/db/schema_migrations/
# The following two lines only match db/ root files
/db/*
/spec/db/*
/ee/db/*
/ee/spec/db/*
/lib/gitlab/background_migration/
/spec/lib/gitlab/background_migration/
/ee/lib/ee/gitlab/background_migration/
/ee/spec/lib/ee/gitlab/background_migration/
/lib/gitlab/database.rb
/lib/gitlab/database/
/spec/lib/gitlab/database_spec.rb
/spec/lib/gitlab/database/
/ee/lib/gitlab/database/
/ee/spec/lib/gitlab/database/
/ee/lib/ee/gitlab/database.rb
/ee/lib/ee/gitlab/database/
/ee/spec/lib/ee/gitlab/database/
/ee/spec/lib/ee/gitlab/database_spec.rb
/lib/gitlab/sql/
/spec/lib/gitlab/sql/
/app/finders/
/spec/finders/
/ee/app/finders/
/ee/spec/finders/
/rubocop/rubocop-migrations.yml
[Pipeline configuration] @gl-quality/eng-prod
/.gitlab-ci.yml
/.gitlab/ci/
/.gitlab/ci/docs.gitlab-ci.yml @gl-quality/eng-prod @gl-docsteam
/.gitlab/ci/frontend.gitlab-ci.yml @gl-quality/eng-prod @gitlab-org/maintainers/frontend
/.gitlab/ci/package-and-test/ @gl-quality/eng-prod @gl-quality/qe-maintainers
/.gitlab/ci/qa.gitlab-ci.yml @gl-quality/eng-prod @gl-quality/qe-maintainers
/.gitlab/ci/qa-common/ @gl-quality/eng-prod @gl-quality/qe-maintainers
/.gitlab/ci/releases.gitlab-ci.yml @gl-quality/eng-prod @gitlab-org/delivery
/.gitlab/ci/reports.gitlab-ci.yml @gl-quality/eng-prod @gitlab-com/gl-security/appsec
/.gitlab/ci/review-apps/qa.gitlab-ci.yml @gl-quality/eng-prod @gl-quality/qe-maintainers
/.gitlab/ci/test-on-gdk/ @gl-quality/eng-prod @gl-quality/qe-maintainers
/gems/gem.gitlab-ci.yml
[Tooling] @gl-quality/eng-prod
Dangerfile
/danger/
/tooling/
/spec/tooling/
/scripts/
/scripts/**/*.rb @gl-quality/eng-prod @gitlab-org/maintainers/rails-backend
/scripts/**/glfm/**/* @gl-quality/eng-prod @gitlab-org/plan-stage/backend-engineers
/scripts/**/*.js @gl-quality/eng-prod @gitlab-org/maintainers/frontend
/scripts/frontend/ @gl-quality/eng-prod @gitlab-org/maintainers/frontend
/scripts/remote_development/ @gitlab-org/maintainers/remote-development/backend
/scripts/review_apps/seed-dast-test-data.sh @gl-quality/eng-prod @dappelt @ngeorge1
/.codeclimate.yml
/.dockerignore
/.editorconfig
/.gitpod.yml
/.haml-lint_todo.yml
/.haml-lint.yml
/.nvmrc
/.ruby-version
/.tool-versions
/lefthook.yml
/tests.yml
^[Backend Static Code Analysis] @gl-quality/eng-prod @dstull
.rubocop*.yml
/gems/config/rubocop.yml
/rubocop/
/spec/rubocop/
/spec/rubocop*
^[End-to-end] @gl-quality
/qa/
^[LDAP] @dblessing @mkozono
/ee/lib/ee/gitlab/auth/ldap/
/lib/gitlab/auth/ldap/
^[Project Alias] @patrickbajao
/ee/app/models/project_alias.rb
/ee/lib/api/project_aliases.rb
^[Distribution] @gitlab-org/distribution
/lib/support/
[Upgrade path] @gitlab-org/distribution
/config/upgrade_path.yml
# Secure & Threat Management ownership delineation
# https://about.gitlab.com/handbook/engineering/development/threat-management/delineate-secure-threat-management.html#technical-boundaries
^[Threat Insights backend] @gitlab-org/govern/threat-insights-backend-team
/development/sec/cyclonedx_property_taxonomy.md
/app/finders/security/
/app/models/vulnerability.rb
/app/presenters/projects/security/
/spec/presenters/projects/security/
/ee/app/finders/security/
/ee/app/finders/sbom/
/ee/app/models/security/
/ee/app/models/vulnerabilities/
/ee/app/policies/vulnerabilities/
/ee/app/policies/vulnerability*.rb
/ee/lib/api/vulnerabilit*.rb
/ee/spec/policies/vulnerabilities/
/ee/spec/policies/vulnerability*.rb
^[Composition Analysis backend] @gitlab-org/secure/composition-analysis-be
/app/events/package_metadata/
/app/models/concerns/enums/package_metadata.rb
/ee/app/finders/sbom/possibly_affected_occurences_finder.rb
/ee/app/models/package_metadata/
/ee/app/models/sbom/
/ee/app/services/package_metadata/
/ee/app/services/sbom/ingestion/
/ee/app/services/security/ingestion/
/ee/app/workers/package_metadata/
/ee/lib/gitlab/license_scanning.rb
/ee/lib/gitlab/license_scanning/
/ee/lib/gitlab/vulnerability_scanning/
/ee/lib/sbom/
/ee/spec/lib/gitlab/license_scanning/
/ee/spec/lib/gitlab/license_scanning_spec.rb
/ee/spec/lib/gitlab/vulnerability_scanning/
/ee/spec/lib/sbom/
/ee/spec/models/package_metadata/
/ee/spec/models/sbom/
/lib/gitlab/ci/parsers/sbom/
/lib/gitlab/ci/reports/sbom/
/lib/sbom/
/spec/lib/gitlab/ci/parsers/sbom/
/spec/lib/gitlab/ci/reports/sbom/
/spec/lib/sbom/
^[Secure] @gitlab-org/secure/dynamic-analysis-be
/ee/app/services/app_sec/dast/
^[Security Policies frontend] @gitlab-org/govern/security-policies-frontend
/ee/app/assets/javascripts/approvals/components/license_compliance/**
/ee/app/assets/javascripts/approvals/stores/modules/license_compliance/**
/ee/app/assets/javascripts/license_compliance/**
/ee/app/assets/javascripts/pages/projects/licenses/**
/ee/app/assets/javascripts/pages/projects/pipelines/licenses/**
/ee/app/assets/javascripts/pages/projects/pipelines/show/license_report.js
/ee/app/assets/javascripts/vue_merge_request_widget/extensions/license_compliance/**
/ee/app/assets/javascripts/vue_shared/license_compliance/**
/ee/app/views/projects/licenses/**
/ee/spec/frontend/approvals/components/license_compliance/**
/ee/spec/frontend/approvals/stores/modules/license_compliance/**
/ee/spec/frontend/license_compliance/**
/ee/spec/frontend/vue_merge_request_widget/extensions/license_compliance/**
/ee/spec/frontend/vue_shared/license_compliance/**
/ee/app/assets/javascripts/approvals/components/security_orchestration/**
/ee/app/assets/javascripts/approvals/stores/modules/security_orchestration/**
/ee/app/assets/javascripts/pages/groups/security/policies/**
/ee/app/assets/javascripts/pages/projects/security/policies/**
/ee/app/assets/javascripts/security_orchestration/**
/ee/app/views/groups/security/policies
/ee/app/views/projects/security/policies/**
/ee/spec/frontend/approvals/components/security_orchestration/**
/ee/spec/frontend/approvals/stores/modules/security_orchestration/**
/ee/spec/frontend/security_orchestration/**
/ee/spec/views/projects/security/policies/**
^[Security Policies backend] @gitlab-org/govern/security-policies-backend
/app/models/clusters/applications/cilium.rb
/ee/app/controllers/groups/security/policies_controller.rb
/ee/app/controllers/projects/security/policies_controller.rb
/ee/app/graphql/mutations/concerns/mutations/finds_project_or_group_for_security_policies.rb
/ee/app/graphql/mutations/security_policy/**
/ee/app/graphql/resolvers/concerns/resolves_orchestration_policy.rb
/ee/app/graphql/resolvers/security_orchestration/**
/ee/app/graphql/types/security_orchestration/**
/ee/app/helpers/ee/security_orchestration_helper.rb
/ee/app/models/security/orchestration_policy_configuration.rb
/ee/app/models/security/orchestration_policy_rule_schedule.rb
/ee/app/services/security/orchestration/**
/ee/app/services/security/security_orchestration_policies/**
/ee/app/validators/json_schemas/security_orchestration_policy.json
/ee/app/workers/concerns/update_orchestration_policy_configuration.rb
/ee/app/workers/security/create_orchestration_policy_worker.rb
/ee/app/workers/security/orchestration_policy_rule_schedule_namespace_worker.rb
/ee/app/workers/security/orchestration_policy_rule_schedule_worker.rb
/ee/lib/ee/gitlab/ci/pipeline/chain/validate/security_orchestration_policy.rb
/ee/lib/gitlab/ci/config/security_orchestration_policies/**
/ee/lib/gitlab/graphql/aggregations/security_orchestration_policies/**
/ee/spec/controllers/groups/security/policies_controller_spec.rb
/ee/spec/factories/security_orchestration_policy_configurations.rb
/ee/spec/factories/security_orchestration_policy_rule_schedules.rb
/ee/spec/factories/security/policies.rb
/ee/spec/graphql/mutations/security_policy/**
/ee/spec/graphql/resolvers/security_orchestration/**
/ee/spec/graphql/types/security_orchestration/**
/ee/spec/helpers/ee/security_orchestration_helper_spec.rb
/ee/spec/lib/ee/gitlab/ci/pipeline/chain/validate/security_orchestration_policy_spec.rb
/ee/spec/lib/gitlab/ci/config/security_orchestration_policies/**
/ee/spec/lib/gitlab/graphql/aggregations/security_orchestration_policies/**
/ee/spec/models/security/orchestration_policy_configuration_spec.rb
/ee/spec/models/security/orchestration_policy_rule_schedule_spec.rb
/ee/spec/requests/api/graphql/mutations/security_policy/**
/ee/spec/requests/api/graphql/project/security_orchestration/**
/ee/spec/requests/projects/security/policies_controller_spec.rb
/ee/spec/services/security/orchestration/**
/ee/spec/services/security/security_orchestration_policies/**
/ee/spec/support/shared_contexts/graphql/resolvers/security_orchestration/**
/ee/spec/views/projects/security/policies/index.html.haml_spec.rb
/ee/spec/workers/concerns/update_orchestration_policy_configuration_spec.rb
/ee/spec/workers/security/create_orchestration_policy_worker_spec.rb
/ee/spec/workers/security/orchestration_policy_rule_schedule_namespace_worker_spec.rb
/ee/spec/workers/security/orchestration_policy_rule_schedule_worker_spec.rb
/lib/gitlab/ci/pipeline/chain/validate/security_orchestration_policy.rb
/spec/models/clusters/applications/cilium_spec.rb
/app/finders/security/license_compliance_jobs_finder.rb
/ee/app/controllers/projects/licenses_controller.rb
/ee/app/finders/software_license_policies_finder.rb
/ee/app/models/sca/license_compliance.rb @gitlab-org/govern/security-policies-backend @gitlab-org/secure/composition-analysis-be
/ee/app/models/sca/license_policy.rb
/ee/app/models/software_license_policy.rb
/ee/app/models/software_license.rb
/ee/app/serializers/license_compliance/**
/ee/app/serializers/license_entity.rb
/ee/app/serializers/licenses_list_entity.rb
/ee/app/serializers/licenses_list_serializer.rb
/ee/app/serializers/security/license_policy_entity.rb
/ee/app/services/ci/compare_license_scanning_reports_collapsed_service.rb
/ee/app/services/ci/compare_license_scanning_reports_service.rb
/ee/app/services/software_license_policies/**
/ee/app/workers/refresh_license_compliance_checks_worker.rb
/ee/lib/api/managed_licenses.rb
/ee/lib/ee/api/entities/managed_license.rb
/ee/lib/gitlab/spdx/license.rb
/ee/spec/factories/software_license_policy.rb
/ee/spec/factories/software_license.rb
/ee/spec/factories/spdx_license.rb
/ee/spec/finders/software_license_policies_finder_spec.rb
/ee/spec/lib/gitlab/ci/parsers/license_compliance/**
/ee/spec/models/sca/license_compliance_spec.rb @gitlab-org/govern/security-policies-backend @gitlab-org/secure/composition-analysis-be
/ee/spec/models/sca/license_policy_spec.rb
/ee/spec/models/software_license_policy_spec.rb
/ee/spec/models/software_license_spec.rb
/ee/spec/requests/api/managed_licenses_spec.rb
/ee/spec/serializers/license_compliance/**
/ee/spec/services/ci/compare_license_scanning_reports_collapsed_service_spec.rb
/ee/spec/services/ci/compare_license_scanning_reports_service_spec.rb
/ee/spec/services/software_license_policies/**
/spec/finders/security/license_compliance_jobs_finder_spec.rb
[Secure::Secret Detection] @gitlab-org/secure/secret-detection
/ee/lib/gitlab/checks/secrets_check.rb
/ee/spec/lib/gitlab/checks/secrets_check_spec.rb
/ee/spec/support/shared_contexts/secrets_check_shared_contexts.rb
/ee/spec/support/shared_examples/lib/gitlab/secrets_check_shared_examples.rb
/lib/gitlab/checks/changed_blobs.rb
/spec/lib/gitlab/checks/changed_blobs.rb
^[Code Owners] @reprazent @kerrizor @garyh
/ee/lib/gitlab/code_owners.rb
/ee/lib/gitlab/code_owners/
/ee/spec/lib/gitlab/code_owners/
/doc/user/project/code_owners.md
[Merge Requests backend] @code-review-be/engineers
/app/controllers/projects/merge_requests_controller.rb
/app/controllers/projects/merge_requests/
/app/models/merge_request.rb
/app/services/merge_requests/
/app/workers/merge_requests/
/app/workers/merge_request_cleanup_refs_worker.rb
/app/workers/merge_request_mergeability_check_worker.rb
/app/workers/new_merge_request_worker.rb
/app/workers/schedule_merge_request_cleanup_refs_worker.rb
/app/workers/update_head_pipeline_for_merge_request_worker.rb
/app/workers/update_merge_requests_worker.rb
/ee/app/controllers/ee/projects/merge_requests_controller.rb
/ee/app/controllers/ee/projects/merge_requests/
/ee/app/models/ee/merge_request.rb
/ee/app/services/merge_requests/
/ee/app/services/ee/merge_requests
/ee/app/workers/merge_requests/
/ee/app/workers/ee/merge_requests
/ee/app/workers/merge_request_reset_approvals_worker.rb
/ee/lib/ee/gitlab/quick_actions/merge_request_actions.rb
/lib/gitlab/diff/file_collection/merge_request_diff.rb
/lib/gitlab/diff/file_collection/merge_request_diff_base.rb
/lib/gitlab/diff/file_collection/merge_request_diff_batch.rb
/lib/gitlab/diff/file_collection/paginated_diffs.rb
/lib/gitlab/diff/file_collection/paginated_merge_request_diff.rb
/lib/gitlab/quick_actions/merge_request_actions.rb
^[Merge Requests frontend] @slashmanov @iamphill @thomasrandolph
/app/assets/javascripts/diffs
/app/assets/javascripts/batch_comments/
/app/assets/javascripts/notes
/app/assets/javascripts/merge_conflicts
/app/assets/javascripts/mr_notes
/app/assets/javascripts/issuable/popover
/app/assets/javascripts/vue_merge_request_widget
/app/assets/javascripts/merge_request.js
/app/assets/javascripts/merge_request_tabs.js
/app/assets/stylesheets/framework/diffs.scss
/ee/app/assets/javascripts/diffs/
/ee/app/assets/javascripts/vue_merge_request_widget
/spec/frontend/diffs/
/spec/frontend/batch_comments/
^[Product Analytics] @gitlab-org/analytics-section/product-analytics/engineers/frontend
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/analytics_dashboard.vue
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/analytics_visualization_designer.vue
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/dashboards_list.vue
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/visualization_designer/selectors/product_analytics/
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/visualizations/column_chart.vue
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/visualizations/data_table.vue
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/visualizations/line_chart.vue
/ee/app/assets/javascripts/analytics/analytics_dashboards/components/visualizations/single_stat.vue
/ee/app/assets/javascripts/analytics/analytics_dashboards/data_sources/
/ee/app/assets/javascripts/analytics/analytics_dashboards/index.js
/ee/app/assets/javascripts/analytics/analytics_dashboards/router.js
/ee/app/assets/javascripts/analytics/analytics_dashboards/constants.js
/ee/app/assets/javascripts/analytics/analytics_dashboards/graphql/queries/get_all_customizable_dashboards.query.graphql
/ee/app/assets/javascripts/analytics/analytics_dashboards/graphql/queries/get_customizable_dashboard.query.graphql
/ee/app/assets/javascripts/analytics/analytics_dashboards/graphql/queries/get_all_customizable_visualizations.query.graphql
/ee/app/assets/javascripts/vue_shared/components/customizable_dashboard/customizable_dashboard.vue
/ee/app/assets/javascripts/vue_shared/components/customizable_dashboard/panels_base.vue
/ee/app/assets/javascripts/product_analytics/
^[Analytics Instrumentation] @gitlab-org/analytics-section/analytics-instrumentation/engineers
/ee/lib/gitlab/usage_data_counters/
/ee/lib/ee/gitlab/usage_data.rb
/lib/gitlab/usage_data.rb
/lib/gitlab/usage_data_counters/
/lib/gitlab/usage/
/ee/lib/ee/gitlab/usage_data_counters/
/ee/lib/ee/gitlab/usage/
/config/metrics/
/ee/config/metrics/
/app/workers/gitlab_service_ping_worker.rb
/spec/workers/gitlab_service_ping_worker_spec.rb
/ee/spec/lib/gitlab/usage_data_counters/
/ee/spec/lib/ee/gitlab/usage_data_spec.rb
/spec/lib/gitlab/usage_data_spec.rb
/spec/lib/gitlab/usage_data_counters/
/spec/lib/gitlab/usage/
/ee/spec/lib/ee/gitlab/usage_data_counters/
/ee/spec/lib/ee/gitlab/usage/
/ee/spec/config/metrics/
^[Growth Experiments] @gitlab-org/growth/experiment-devs
/app/experiments/
/spec/experiments/
/config/initializers/gitlab_experiment.rb
/config/feature_flags/experiment/
/ee/config/feature_flags/experiment/
/ee/lib/api/experiments.rb
/ee/spec/requests/api/experiments_spec.rb
/ee/lib/ee/api/entities/experiment.rb
/ee/spec/lib/ee/api/entities/experiment_spec.rb
^[Growth] @gitlab-org/growth/engineers
/app/models/onboarding/
/spec/models/onboarding/
/app/services/onboarding/
/spec/services/onboarding/
/ee/app/components/namespaces/free_user_cap/
/ee/spec/components/namespaces/free_user_cap/
/ee/app/models/namespaces/free_user_cap/
/ee/spec/models/namespaces/free_user_cap/
/app/controllers/registrations_controller.rb
/spec/controllers/registrations_controller_spec.rb
/app/controllers/registrations/
/spec/controllers/registrations/
/app/controllers/confirmations_controller.rb
/spec/controllers/confirmations_controller_spec.rb
/ee/app/controllers/trial_registrations_controller.rb
/ee/spec/controllers/trial_registrations_controller_spec.rb
/ee/spec/requests/trial_registrations_controller_spec.rb
/ee/app/controllers/registrations/
/ee/spec/controllers/registrations/
/ee/spec/requests/registrations/
/ee/spec/features/registrations/saas/
/ee/spec/support/helpers/saas_registration_helpers.rb
/ee/spec/support/shared_contexts/saas_registration_settings_context.rb
/ee/app/controllers/ee/registrations_controller.rb
/ee/spec/controllers/ee/registrations_controller_spec.rb
/ee/app/controllers/ee/registrations/
/ee/app/controllers/ee/confirmations_controller.rb
/ee/app/controllers/subscriptions_controller.rb
/ee/spec/controllers/subscriptions_controller_spec.rb
/ee/app/controllers/subscriptions/
/ee/spec/controllers/subscriptions/
/app/services/users/in_product_marketing_email_records.rb
/spec/services/users/in_product_marketing_email_records_spec.rb
/app/workers/namespaces/in_product_marketing_emails_worker.rb
/spec/workers/namespaces/in_product_marketing_emails_worker_spec.rb
/ee/app/workers/ee/namespaces/in_product_marketing_emails_worker.rb
/ee/spec/workers/ee/namespaces/in_product_marketing_emails_worker_spec.rb
/app/models/users/in_product_marketing_email.rb
/spec/models/users/in_product_marketing_email_spec.rb
/app/services/namespaces/in_product_marketing_emails_service.rb
/spec/services/namespaces/in_product_marketing_emails_service_spec.rb
/ee/app/services/ee/namespaces/in_product_marketing_emails_service.rb
/ee/spec/services/namespaces/in_product_marketing_emails_service_spec.rb
/app/workers/projects/record_target_platforms_worker.rb
/spec/workers/projects/record_target_platforms_worker_spec.rb
^[Legal] @gitlab-org/legal-reviewers
/config/dependency_decisions.yml
# https://gitlab.com/groups/gitlab-org/maintainers/gitlab-workhorse/-/group_members?with_inherited_permissions=exclude
^[Workhorse] @gitlab-org/maintainers/gitlab-workhorse
/workhorse/
[Application Security] @gitlab-com/gl-security/appsec
/app/assets/javascripts/lib/dompurify.js
/app/assets/javascripts/gfm_auto_complete.js
/ee/app/assets/javascripts/gfm_auto_complete.js
/app/validators/addressable_url_validator.rb
/app/validators/public_url_validator.rb
/config/initializers/content_security_policy.rb
/config/initializers/gitlab_http.rb
/gems/gitlab-http/**/*.rb
/lib/gitlab/content_security_policy/
/lib/gitlab/http.rb
/lib/gitlab/http_connection_adapter.rb
/lib/gitlab/sanitizers
/lib/gitlab/untrusted_regexp.rb
/lib/gitlab/url_blocker.rb
/lib/gitlab/url_blockers/
/lib/gitlab/utils.rb
/lib/gitlab/path_traversal.rb
^[Gitaly] @proglottis @toon
lib/gitlab/git_access.rb
lib/gitlab/git_access_*.rb
ee/lib/ee/gitlab/git_access.rb
ee/lib/ee/gitlab/git_access_*.rb
ee/lib/ee/gitlab/checks/**
lib/gitlab/checks/**
^[Documentation Directories] @gl-docsteam
/doc/
/data/deprecations/
^[Documentation Pages]
# This block is managed by the rake script at lib/tasks/gitlab/tw/codeowners.rake, manual updates will be overwritten!
# Begin rake-managed-docs-block
/doc/administration/analytics.md @lciutacu
/doc/administration/analytics/ @lciutacu
/doc/administration/application_settings_cache.md @jglassman1
/doc/administration/audit_event_reports.md @eread
/doc/administration/audit_event_streaming/ @eread
/doc/administration/auditor_users.md @jglassman1
/doc/administration/auth/ @jglassman1
/doc/administration/backup_restore/ @axil
/doc/administration/cicd.md @marcel.amirault @lyspin
/doc/administration/clusters/ @phillipwells
/doc/administration/compliance.md @eread
/doc/administration/configure.md @axil
/doc/administration/consul.md @axil
/doc/administration/credentials_inventory.md @jglassman1
/doc/administration/custom_html_header_tags.md @eread
/doc/administration/custom_project_templates.md @msedlakjakubowski
/doc/administration/dedicated/ @lyspin
/doc/administration/diff_limits.md @msedlakjakubowski
/doc/administration/docs_self_host.md @axil
/doc/administration/encrypted_configuration.md @axil
/doc/administration/environment_variables.md @axil
/doc/administration/external_pipeline_validation.md @marcel.amirault @lyspin
/doc/administration/external_users.md @jglassman1
/doc/administration/feature_flags.md @axil
/doc/administration/file_hooks.md @eread
/doc/administration/geo/ @axil
/doc/administration/geo_sites.md @axil
/doc/administration/get_started.md @kpaizee
/doc/administration/git_protocol.md @msedlakjakubowski
/doc/administration/gitaly/ @eread
/doc/administration/housekeeping.md @eread
/doc/administration/inactive_project_deletion.md @lciutacu
/doc/administration/incoming_email.md @msedlakjakubowski
/doc/administration/index.md @axil
/doc/administration/instance_limits.md @axil
/doc/administration/integration/ @msedlakjakubowski
/doc/administration/integration/terminal.md @phillipwells
/doc/administration/invalidate_markdown_cache.md @msedlakjakubowski
/doc/administration/issue_closing_pattern.md @aqualls
/doc/administration/job_artifacts.md @marcel.amirault @lyspin
/doc/administration/job_artifacts_troubleshooting.md @marcel.amirault @lyspin
/doc/administration/job_logs.md @ashrafkhamis
/doc/administration/labels.md @msedlakjakubowski
/doc/administration/lfs/ @msedlakjakubowski
/doc/administration/libravatar.md @axil
/doc/administration/license.md @fneill
/doc/administration/license_file.md @fneill
/doc/administration/load_balancer.md @axil
/doc/administration/logs/ @axil
/doc/administration/maintenance_mode/ @axil
/doc/administration/merge_request_diffs.md @msedlakjakubowski
/doc/administration/merge_requests_approvals.md @msedlakjakubowski
/doc/administration/moderate_users.md @jglassman1
/doc/administration/monitoring/github_imports.md @eread
/doc/administration/monitoring/ip_allowlist.md @jglassman1
/doc/administration/monitoring/performance/ @jglassman1
/doc/administration/monitoring/prometheus/gitlab_exporter.md @jglassman1
/doc/administration/monitoring/prometheus/index.md @axil
/doc/administration/monitoring/prometheus/registry_exporter.md @phillipwells
/doc/administration/monitoring/prometheus/web_exporter.md @jglassman1
/doc/administration/nfs.md @axil
/doc/administration/object_storage.md @axil
/doc/administration/operations/ @axil
/doc/administration/operations/fast_ssh_key_lookup.md @msedlakjakubowski
/doc/administration/operations/gitlab_sshd.md @msedlakjakubowski
/doc/administration/operations/moving_repositories.md @eread
/doc/administration/package_information/ @axil
/doc/administration/packages/ @marcel.amirault
/doc/administration/packages/index.md @phillipwells
/doc/administration/polling.md @axil
/doc/administration/postgresql/ @lciutacu
/doc/administration/raketasks/ @axil
/doc/administration/raketasks/ldap.md @jglassman1
/doc/administration/raketasks/praefect.md @eread
/doc/administration/read_only_gitlab.md @axil
/doc/administration/redis/ @axil
/doc/administration/reference_architectures/ @axil
/doc/administration/reply_by_email_postfix_setup.md @axil
/doc/administration/reporting/ @axil
/doc/administration/repository_checks.md @eread
/doc/administration/repository_storage_paths.md @eread
/doc/administration/restart_gitlab.md @axil
/doc/administration/self_hosted_models/ @sselhorn @jglassman1 @fneill
/doc/administration/server_hooks.md @eread
/doc/administration/settings/account_and_limit_settings.md @msedlakjakubowski
/doc/administration/settings/continuous_integration.md @marcel.amirault @lyspin
/doc/administration/settings/deprecated_api_rate_limits.md @msedlakjakubowski
/doc/administration/settings/email.md @msedlakjakubowski
/doc/administration/settings/external_authorization.md @jglassman1
/doc/administration/settings/files_api_rate_limits.md @msedlakjakubowski
/doc/administration/settings/git_http_rate_limits.md @msedlakjakubowski
/doc/administration/settings/git_lfs_rate_limits.md @msedlakjakubowski
/doc/administration/settings/gitaly_timeouts.md @eread
/doc/administration/settings/import_and_export_settings.md @eread
/doc/administration/settings/import_export_rate_limits.md @eread
/doc/administration/settings/instance_template_repository.md @msedlakjakubowski
/doc/administration/settings/jira_cloud_app.md @eread
/doc/administration/settings/jira_cloud_app_troubleshooting.md @eread
/doc/administration/settings/package_registry_rate_limits.md @phillipwells
/doc/administration/settings/project_integration_management.md @eread
/doc/administration/settings/push_event_activities_limit.md @msedlakjakubowski
/doc/administration/settings/rate_limit_on_groups_api.md @lciutacu
/doc/administration/settings/rate_limit_on_issues_creation.md @msedlakjakubowski
/doc/administration/settings/rate_limit_on_members_api.md @lciutacu
/doc/administration/settings/rate_limit_on_notes_creation.md @msedlakjakubowski
/doc/administration/settings/rate_limit_on_pipelines_creation.md @marcel.amirault @lyspin
/doc/administration/settings/rate_limit_on_projects_api.md @lciutacu
/doc/administration/settings/rate_limit_on_users_api.md @jglassman1
/doc/administration/settings/rate_limits_on_git_ssh_operations.md @msedlakjakubowski
/doc/administration/settings/scim_setup.md @jglassman1
/doc/administration/settings/security_and_compliance.md @rdickenson @phillipwells
/doc/administration/settings/security_contact_information.md @eread
/doc/administration/settings/slack_app.md @eread
/doc/administration/settings/terraform_limits.md @phillipwells
/doc/administration/settings/third_party_offers.md @lciutacu
/doc/administration/settings/visibility_and_access_controls.md @msedlakjakubowski
/doc/administration/sidekiq/ @axil
/doc/administration/sidekiq/sidekiq_memory_killer.md @jglassman1
/doc/administration/silent_mode/ @axil
/doc/administration/smime_signing_email.md @axil
/doc/administration/snippets/ @msedlakjakubowski
/doc/administration/static_objects_external_storage.md @ashrafkhamis
/doc/administration/system_hooks.md @eread
/doc/administration/terraform_state.md @phillipwells
/doc/administration/timezone.md @axil
/doc/administration/troubleshooting/ @axil
/doc/administration/uploads.md @axil
/doc/administration/user_settings.md @jglassman1
/doc/api/access_requests.md @jglassman1
/doc/api/admin_sidekiq_queues.md @axil
/doc/api/api_resources.md @eread
/doc/api/appearance.md @jglassman1
/doc/api/applications.md @jglassman1
/doc/api/audit_events.md @eread
/doc/api/avatar.md @jglassman1
/doc/api/boards.md @msedlakjakubowski
/doc/api/branches.md @msedlakjakubowski
/doc/api/bulk_imports.md @eread
/doc/api/cluster_agents.md @phillipwells
/doc/api/code_suggestions.md @jglassman1
/doc/api/commits.md @msedlakjakubowski
/doc/api/container_registry.md @marcel.amirault
/doc/api/custom_attributes.md @msedlakjakubowski
/doc/api/dependencies.md @rdickenson @phillipwells
/doc/api/dependency_list_export.md @rdickenson
/doc/api/dependency_proxy.md @marcel.amirault
/doc/api/deploy_keys.md @phillipwells
/doc/api/deploy_tokens.md @phillipwells
/doc/api/deployments.md @phillipwells
/doc/api/discussions.md @msedlakjakubowski
/doc/api/dora/ @lciutacu
/doc/api/draft_notes.md @aqualls
/doc/api/emoji_reactions.md @msedlakjakubowski
/doc/api/environments.md @phillipwells
/doc/api/epic_issues.md @msedlakjakubowski
/doc/api/epic_links.md @msedlakjakubowski
/doc/api/epics.md @msedlakjakubowski
/doc/api/events.md @eread
/doc/api/feature_flag_user_lists.md @phillipwells
/doc/api/feature_flags.md @phillipwells
/doc/api/features.md @phillipwells
/doc/api/freeze_periods.md @phillipwells
/doc/api/geo_nodes.md @axil
/doc/api/geo_sites.md @axil
/doc/api/google_cloud_integration.md @jglassman1
/doc/api/graphql/ @eread
/doc/api/graphql/branch_rules.md @msedlakjakubowski
/doc/api/graphql/custom_emoji.md @msedlakjakubowski
/doc/api/graphql/sample_issue_boards.md @msedlakjakubowski
/doc/api/graphql/users_example.md @jglassman1
/doc/api/group_access_tokens.md @jglassman1
/doc/api/group_activity_analytics.md @lciutacu
/doc/api/group_badges.md @lciutacu
/doc/api/group_boards.md @msedlakjakubowski
/doc/api/group_clusters.md @phillipwells
/doc/api/group_epic_boards.md @msedlakjakubowski
/doc/api/group_import_export.md @eread
/doc/api/group_iterations.md @msedlakjakubowski
/doc/api/group_labels.md @msedlakjakubowski
/doc/api/group_level_variables.md @marcel.amirault @lyspin
/doc/api/group_milestones.md @msedlakjakubowski
/doc/api/group_protected_branches.md @msedlakjakubowski
/doc/api/group_protected_environments.md @phillipwells
/doc/api/group_relations_export.md @eread
/doc/api/group_releases.md @phillipwells
/doc/api/group_repository_storage_moves.md @ashrafkhamis
/doc/api/group_ssh_certificates.md @msedlakjakubowski
/doc/api/groups.md @lciutacu
/doc/api/import.md @eread
/doc/api/index.md @eread
/doc/api/instance_clusters.md @phillipwells
/doc/api/instance_level_ci_variables.md @marcel.amirault @lyspin
/doc/api/integrations.md @eread
/doc/api/issue_links.md @msedlakjakubowski
/doc/api/issues.md @msedlakjakubowski
/doc/api/issues_statistics.md @msedlakjakubowski
/doc/api/iterations.md @msedlakjakubowski
/doc/api/job_artifacts.md @marcel.amirault @lyspin
/doc/api/jobs.md @marcel.amirault @lyspin
/doc/api/keys.md @msedlakjakubowski
/doc/api/labels.md @msedlakjakubowski
/doc/api/license.md @fneill
/doc/api/linked_epics.md @msedlakjakubowski
/doc/api/lint.md @marcel.amirault @lyspin
/doc/api/markdown.md @msedlakjakubowski
/doc/api/member_roles.md @jglassman1
/doc/api/members.md @jglassman1
/doc/api/merge_request_approvals.md @aqualls
/doc/api/merge_request_context_commits.md @aqualls
/doc/api/merge_requests.md @aqualls
/doc/api/merge_trains.md @marcel.amirault @lyspin
/doc/api/metadata.md @phillipwells
/doc/api/milestones.md @msedlakjakubowski
/doc/api/namespaces.md @jglassman1
/doc/api/notes.md @msedlakjakubowski
/doc/api/oauth2.md @jglassman1
/doc/api/openapi/ @eread
/doc/api/packages.md @phillipwells
/doc/api/packages/ @phillipwells
/doc/api/personal_access_tokens.md @jglassman1
/doc/api/pipeline_schedules.md @marcel.amirault @lyspin
/doc/api/pipeline_triggers.md @marcel.amirault @lyspin
/doc/api/pipelines.md @marcel.amirault @lyspin
/doc/api/plan_limits.md @jglassman1
/doc/api/product_analytics.md @lciutacu
/doc/api/project_access_tokens.md @jglassman1
/doc/api/project_aliases.md @msedlakjakubowski
/doc/api/project_badges.md @msedlakjakubowski
/doc/api/project_clusters.md @phillipwells
/doc/api/project_container_registry_protection_rules.md @marcel.amirault
/doc/api/project_import_export.md @eread
/doc/api/project_job_token_scopes.md @marcel.amirault
/doc/api/project_level_variables.md @marcel.amirault @lyspin
/doc/api/project_packages_protection_rules.md @phillipwells
/doc/api/project_relations_export.md @eread
/doc/api/project_repository_storage_moves.md @eread
/doc/api/project_snippets.md @msedlakjakubowski
/doc/api/project_statistics.md @msedlakjakubowski
/doc/api/project_templates.md @msedlakjakubowski
/doc/api/project_vulnerabilities.md @rdickenson
/doc/api/projects.md @lciutacu
/doc/api/protected_branches.md @msedlakjakubowski
/doc/api/protected_environments.md @phillipwells
/doc/api/protected_tags.md @msedlakjakubowski
/doc/api/releases/ @phillipwells
/doc/api/remote_mirrors.md @msedlakjakubowski
/doc/api/repositories.md @msedlakjakubowski
/doc/api/repository_files.md @msedlakjakubowski
/doc/api/repository_submodules.md @msedlakjakubowski
/doc/api/resource_groups.md @phillipwells
/doc/api/resource_iteration_events.md @msedlakjakubowski
/doc/api/resource_label_events.md @eread
/doc/api/resource_milestone_events.md @msedlakjakubowski
/doc/api/resource_state_events.md @msedlakjakubowski
/doc/api/resource_weight_events.md @msedlakjakubowski
/doc/api/rest/ @eread
/doc/api/runners.md @ashrafkhamis
/doc/api/saml.md @jglassman1
/doc/api/scim.md @jglassman1
/doc/api/search.md @ashrafkhamis
/doc/api/search_admin.md @ashrafkhamis
/doc/api/secure_files.md @marcel.amirault
/doc/api/settings.md @jglassman1
/doc/api/sidekiq_metrics.md @axil
/doc/api/snippet_repository_storage_moves.md @msedlakjakubowski
/doc/api/snippets.md @msedlakjakubowski
/doc/api/statistics.md @jglassman1
/doc/api/status_checks.md @rdickenson
/doc/api/suggestions.md @msedlakjakubowski
/doc/api/system_hooks.md @eread
/doc/api/tags.md @msedlakjakubowski
/doc/api/templates/dockerfiles.md @msedlakjakubowski
/doc/api/templates/gitignores.md @msedlakjakubowski
/doc/api/templates/gitlab_ci_ymls.md @marcel.amirault @lyspin
/doc/api/templates/licenses.md @rdickenson @phillipwells
/doc/api/topics.md @lciutacu
/doc/api/users.md @jglassman1
/doc/api/version.md @phillipwells
/doc/api/vulnerabilities.md @rdickenson
/doc/api/vulnerability_exports.md @rdickenson
/doc/api/vulnerability_findings.md @rdickenson
/doc/architecture/blueprints/autoflow/ @phillipwells
/doc/architecture/blueprints/cells/ @lciutacu
/doc/architecture/blueprints/ci_builds_runner_fleet_metrics/ @ashrafkhamis
/doc/architecture/blueprints/google_artifact_registry_integration/ @marcel.amirault
/doc/architecture/blueprints/organization/ @lciutacu
/doc/ci/ @marcel.amirault @lyspin
/doc/ci/chatops/ @phillipwells
/doc/ci/cloud_deployment/ @phillipwells
/doc/ci/cloud_services/ @marcel.amirault
/doc/ci/docker/using_docker_images.md @ashrafkhamis
/doc/ci/environments/ @phillipwells
/doc/ci/examples/authenticating-with-hashicorp-vault/ @marcel.amirault
/doc/ci/examples/deployment/ @phillipwells
/doc/ci/examples/semantic-release.md @phillipwells
/doc/ci/gitlab_google_cloud_integration/ @marcel.amirault
/doc/ci/interactive_web_terminal/ @ashrafkhamis
/doc/ci/jobs/ci_job_token.md @marcel.amirault
/doc/ci/pipelines/pipeline_security.md @marcel.amirault
/doc/ci/resource_groups/ @phillipwells
/doc/ci/runners/ @ashrafkhamis
/doc/ci/secrets/ @marcel.amirault
/doc/ci/secure_files/ @marcel.amirault
/doc/ci/services/ @ashrafkhamis
/doc/ci/ssh_keys/ @marcel.amirault
/doc/ci/steps/ @ashrafkhamis
/doc/ci/test_cases/ @msedlakjakubowski
/doc/ci/testing/code_quality.md @rdickenson
/doc/ci/testing/code_quality_troubleshooting.md @rdickenson @phillipwells
/doc/ci/yaml/ci_job_log_timestamps.md @ashrafkhamis
/doc/ci/yaml/signing_examples.md @marcel.amirault
/doc/development/advanced_search.md @gitlab-org/search-team/migration-maintainers
/doc/development/ai_architecture.md @gitlab-org/ai-powered
/doc/development/ai_features/ @gitlab-org/ai-powered
/doc/development/ai_features/embeddings.md @gitlab-org/search-team/migration-maintainers
/doc/development/application_limits.md @gitlab-org/distribution
/doc/development/audit_event_guide/ @gitlab-org/govern/security-policies-frontend @gitlab-org/govern/threat-insights-frontend-team @gitlab-org/govern/threat-insights-backend-team
/doc/development/avoiding_required_stops.md @gitlab-org/distribution
/doc/development/build_test_package.md @gitlab-org/distribution
/doc/development/cells/ @abdwdd @alexpooley @manojmj
/doc/development/cicd/ @gitlab-org/maintainers/cicd-verify
/doc/development/contributing/verify/ @gitlab-org/maintainers/cicd-verify
/doc/development/database/ @abdwdd @alexpooley @manojmj
/doc/development/distribution/ @gitlab-org/distribution
/doc/development/documentation/ @sselhorn
/doc/development/fe_guide/ @gitlab-org/analytics-section/product-analytics/engineers/frontend
/doc/development/git_object_deduplication.md @proglottis @toon
/doc/development/gitaly.md @proglottis @toon
/doc/development/gitlab_flavored_markdown/ @gitlab-org/maintainers/remote-development/backend @gitlab-org/maintainers/remote-development/frontend
/doc/development/gitpod_internals.md @gl-quality/eng-prod
/doc/development/image_scaling.md @abdwdd @alexpooley @manojmj
/doc/development/internal_analytics/ @gitlab-org/analytics-section/product-analytics/engineers/frontend @gitlab-org/analytics-section/analytics-instrumentation/engineers
/doc/development/omnibus.md @gitlab-org/distribution
/doc/development/organization/ @abdwdd @alexpooley @manojmj
/doc/development/permissions.md @gitlab-org/govern/authorization/approvers
/doc/development/permissions/ @gitlab-org/govern/authorization/approvers
/doc/development/pipelines/ @gl-quality/eng-prod
/doc/development/policies.md @gitlab-org/govern/authentication/approvers
/doc/development/search/ @gitlab-org/search-team/migration-maintainers
/doc/development/sec/ @gitlab-org/govern/threat-insights-frontend-team
/doc/development/sec/gemnasium_analyzer_data.md @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/static-analysis
/doc/development/software_design.md @gl-quality/eng-prod
/doc/downgrade_ee_to_ce/ @axil
/doc/drawers/ @ashrafkhamis
/doc/editor_extensions/ @aqualls
/doc/gitlab-basics/ @msedlakjakubowski
/doc/install/ @axil
/doc/integration/ @jglassman1
/doc/integration/advanced_search/ @ashrafkhamis
/doc/integration/datadog.md @ashrafkhamis
/doc/integration/diffblue_cover.md @marcel.amirault @lyspin
/doc/integration/exact_code_search/ @ashrafkhamis
/doc/integration/external-issue-tracker.md @eread
/doc/integration/gitpod.md @ashrafkhamis
/doc/integration/gmail_action_buttons_for_gitlab.md @eread
/doc/integration/index.md @eread
/doc/integration/jenkins.md @marcel.amirault @lyspin
/doc/integration/jira/ @eread
/doc/integration/mattermost/ @axil
/doc/integration/partner_marketplace.md @fneill
/doc/integration/snowflake.md @eread
/doc/integration/sourcegraph.md @msedlakjakubowski
/doc/integration/trello_power_up.md @eread
/doc/integration/vault.md @phillipwells
/doc/operations/ @phillipwells
/doc/policy/ @axil
/doc/raketasks/ @axil
/doc/raketasks/spdx.md @rdickenson @phillipwells
/doc/raketasks/x509_signatures.md @msedlakjakubowski
/doc/security/ @jglassman1
/doc/solutions/ @jfullam @brianwald @Darwinjs
/doc/subscriptions/ @fneill
/doc/subscriptions/gitlab_dedicated/ @lyspin
/doc/topics/ @msedlakjakubowski
/doc/topics/autodevops/ @phillipwells
/doc/topics/offline/ @axil
/doc/tutorials/ @kpaizee
/doc/tutorials/boards_for_teams/ @msedlakjakubowski
/doc/tutorials/compliance_pipeline/ @eread
/doc/tutorials/configure_gitlab_runner_to_use_gke/ @ashrafkhamis
/doc/tutorials/container_scanning/ @rdickenson @phillipwells
/doc/tutorials/convert_personal_namespace_to_group/ @lciutacu
/doc/tutorials/create_register_first_runner/ @ashrafkhamis
/doc/tutorials/dependency_scanning.md @rdickenson @phillipwells
/doc/tutorials/export_sbom.md @rdickenson @phillipwells
/doc/tutorials/fuzz_testing/ @rdickenson @phillipwells
/doc/tutorials/idea_management/ @msedlakjakubowski
/doc/tutorials/install_gitlab_single_node/ @axil
/doc/tutorials/issue_triage/ @msedlakjakubowski
/doc/tutorials/move_personal_project_to_group/ @lciutacu
/doc/tutorials/product_analytics_onboarding_website_project/ @lciutacu
/doc/tutorials/protected_workflow/ @aqualls
/doc/tutorials/reviews/ @aqualls
/doc/tutorials/scan_execution_policy/ @rdickenson
/doc/tutorials/scan_result_policy/ @rdickenson
/doc/tutorials/scrum_events/ @msedlakjakubowski
/doc/tutorials/setup_steps/ @ashrafkhamis
/doc/tutorials/update_commit_messages/ @msedlakjakubowski
/doc/tutorials/website_project_with_analytics/ @lciutacu
/doc/update/ @axil
/doc/user/ @msedlakjakubowski
/doc/user/analytics/ @lciutacu
/doc/user/analytics/ci_cd_analytics.md @phillipwells
/doc/user/application_security/ @rdickenson @phillipwells
/doc/user/application_security/cve_id_request.md @rdickenson
/doc/user/application_security/policies/ @rdickenson
/doc/user/application_security/secret_detection/ @rdickenson
/doc/user/application_security/security_dashboard/ @rdickenson
/doc/user/application_security/vulnerabilities/ @rdickenson
/doc/user/application_security/vulnerability_report/ @rdickenson
/doc/user/clusters/ @phillipwells
/doc/user/compliance/ @eread
/doc/user/compliance/license_approval_policies.md @rdickenson
/doc/user/compliance/license_list.md @rdickenson
/doc/user/compliance/license_scanning_of_cyclonedx_files/ @rdickenson @phillipwells
/doc/user/discussions/ @aqualls
/doc/user/enterprise_user/ @jglassman1
/doc/user/get_started/get_started_managing_code.md @msedlakjakubowski
/doc/user/get_started/get_started_managing_infrastructure.md @phillipwells
/doc/user/get_started/get_started_planning_work.md @msedlakjakubowski
/doc/user/get_started/get_started_projects.md @lciutacu
/doc/user/gitlab_duo/ @sselhorn @jglassman1 @fneill
/doc/user/gitlab_duo_chat/ @sselhorn @jglassman1 @fneill
/doc/user/group/access_and_permissions.md @lciutacu
/doc/user/group/clusters/ @phillipwells
/doc/user/group/compliance_frameworks.md @eread
/doc/user/group/compliance_pipelines.md @eread
/doc/user/group/contribution_analytics/ @lciutacu
/doc/user/group/custom_project_templates.md @msedlakjakubowski
/doc/user/group/devops_adoption/ @lciutacu
/doc/user/group/epics/ @msedlakjakubowski
/doc/user/group/import/ @eread
/doc/user/group/index.md @lciutacu
/doc/user/group/issues_analytics/ @lciutacu
/doc/user/group/iterations/ @msedlakjakubowski
/doc/user/group/manage.md @lciutacu
/doc/user/group/planning_hierarchy/ @msedlakjakubowski
/doc/user/group/repositories_analytics/ @marcel.amirault @lyspin
/doc/user/group/roadmap/ @msedlakjakubowski
/doc/user/group/saml_sso/ @jglassman1
/doc/user/group/settings/ @jglassman1
/doc/user/group/ssh_certificates.md @msedlakjakubowski
/doc/user/group/subgroups/ @lciutacu
/doc/user/group/troubleshooting.md @lciutacu
/doc/user/group/value_stream_analytics/ @lciutacu
/doc/user/infrastructure/ @phillipwells
/doc/user/infrastructure/clusters/manage/management_project_applications/ @phillipwells
/doc/user/infrastructure/clusters/manage/management_project_applications/runner.md @ashrafkhamis
/doc/user/namespace/ @lciutacu
/doc/user/operations_dashboard/ @phillipwells
/doc/user/organization/ @lciutacu
/doc/user/packages/ @phillipwells
/doc/user/packages/container_registry/ @marcel.amirault
/doc/user/packages/dependency_proxy/ @marcel.amirault
/doc/user/packages/harbor_container_registry/ @marcel.amirault
/doc/user/product_analytics/ @lciutacu
/doc/user/profile/ @jglassman1
/doc/user/profile/achievements.md @lciutacu
/doc/user/profile/comment_templates.md @aqualls
/doc/user/profile/contributions_calendar.md @lciutacu
/doc/user/project/badges.md @lciutacu
/doc/user/project/clusters/ @phillipwells
/doc/user/project/code_intelligence.md @aqualls
/doc/user/project/deploy_boards.md @phillipwells
/doc/user/project/deploy_keys/ @phillipwells
/doc/user/project/deploy_tokens/ @phillipwells
/doc/user/project/import/ @eread
/doc/user/project/import/jira.md @msedlakjakubowski
/doc/user/project/index.md @lciutacu
/doc/user/project/insights/ @lciutacu
/doc/user/project/integrations/ @eread
/doc/user/project/integrations/bamboo.md @marcel.amirault @lyspin
/doc/user/project/integrations/beyond_identity.md @msedlakjakubowski
/doc/user/project/integrations/git_guardian.md @msedlakjakubowski
/doc/user/project/integrations/github.md @marcel.amirault @lyspin
/doc/user/project/integrations/google_artifact_management.md @marcel.amirault
/doc/user/project/integrations/harbor.md @marcel.amirault
/doc/user/project/issues/csv_import.md @eread
/doc/user/project/members/ @lciutacu
/doc/user/project/merge_requests/ @aqualls
/doc/user/project/merge_requests/approvals/ @msedlakjakubowski
/doc/user/project/merge_requests/cherry_pick_changes.md @msedlakjakubowski
/doc/user/project/merge_requests/csv_export.md @eread
/doc/user/project/merge_requests/methods/ @msedlakjakubowski
/doc/user/project/merge_requests/reviews/data_usage.md @sselhorn @jglassman1 @fneill
/doc/user/project/merge_requests/squash_and_merge.md @msedlakjakubowski
/doc/user/project/merge_requests/status_checks.md @rdickenson
/doc/user/project/ml/experiment_tracking/ @sselhorn @jglassman1 @fneill
/doc/user/project/ml/model_registry/ @sselhorn @jglassman1 @fneill
/doc/user/project/organize_work_with_projects.md @lciutacu
/doc/user/project/project_topics.md @lciutacu
/doc/user/project/releases/ @phillipwells
/doc/user/project/releases/release_evidence.md @eread
/doc/user/project/remote_development/ @ashrafkhamis
/doc/user/project/repository/code_explain.md @sselhorn @jglassman1 @fneill
/doc/user/project/repository/code_suggestions/ @jglassman1
/doc/user/project/repository/files/index.md @ashrafkhamis
/doc/user/project/repository/monorepos/ @eread
/doc/user/project/repository/web_editor.md @ashrafkhamis
/doc/user/project/settings/import_export.md @eread
/doc/user/project/settings/import_export_troubleshooting.md @eread
/doc/user/project/settings/index.md @lciutacu
/doc/user/project/settings/migrate_projects.md @lciutacu
/doc/user/project/settings/project_access_tokens.md @jglassman1
/doc/user/project/troubleshooting.md @lciutacu
/doc/user/project/use_project_as_go_package.md @lciutacu
/doc/user/project/web_ide/ @ashrafkhamis
/doc/user/project/working_with_projects.md @lciutacu
/doc/user/public_access.md @lciutacu
/doc/user/reserved_names.md @lciutacu
/doc/user/search/ @ashrafkhamis
/doc/user/ssh.md @jglassman1
/doc/user/storage_management_automation.md @fneill
/doc/user/usage_quotas.md @fneill
/doc/user/workspace/ @ashrafkhamis
# End rake-managed-docs-block
[Authorization] @gitlab-org/govern/authorization/approvers
/config/initializers/declarative_policy.rb
/config/initializers/declarative_policy_cached_attributes.rb
/app/policies/
/ee/app/policies/
/ee/app/policies/remote_development/ @gitlab-org/maintainers/remote-development/backend
/ee/app/policies/clusters/ @gitlab-org/maintainers/remote-development/backend
/ee/spec/policies/remote_development/ @gitlab-org/maintainers/remote-development/backend
/ee/app/models/members/member_role.rb
/ee/app/models/auth/member_role_ability_loader.rb
/ee/app/models/preloaders/user_member_roles_in_groups_preloader.rb
/ee/app/models/preloaders/user_member_roles_in_projects_preloader.rb
/ee/app/services/member_roles/
/ee/app/graphql/types/member_roles/
/ee/app/graphql/mutations/member_roles/
/ee/app/graphql/resolvers/member_roles/
/ee/spec/requests/custom_roles/
/ee/lib/api/member_roles.rb
[Authentication] @gitlab-org/govern/authentication/approvers
/app/assets/javascripts/access_tokens/
/app/assets/javascripts/alerts_settings/graphql/mutations/reset_http_token.mutation.graphql
/app/assets/javascripts/authentication/
/app/assets/javascripts/ide/components/shared/tokened_input.vue
/app/assets/javascripts/packages_and_registries/package_registry/components/list/tokens/
/app/assets/javascripts/pages/admin/impersonation_tokens/
/app/assets/javascripts/pages/groups/settings/access_tokens/
/app/assets/javascripts/pages/ldap/
/app/assets/javascripts/pages/oauth/
/app/assets/javascripts/pages/omniauth_callbacks/
/app/assets/javascripts/pages/profiles/password_prompt/
/app/assets/javascripts/pages/user_settings/personal_access_tokens/
/app/assets/javascripts/pages/profiles/two_factor_auths/
/app/assets/javascripts/pages/projects/settings/access_tokens/
/app/assets/javascripts/pages/sessions/new/oauth_remember_me.js
/app/assets/javascripts/projects/settings/topics/components/
/app/assets/javascripts/related_issues/components/issue_token.vue
/app/assets/stylesheets/page_bundles/profile_two_factor_auth.scss
/app/controllers/admin/impersonation_tokens_controller.rb
/app/controllers/concerns/access_tokens_actions.rb
/app/controllers/concerns/authenticates_with_two_factor.rb
/app/controllers/concerns/authenticates_with_two_factor_for_admin_mode.rb
/app/controllers/concerns/enforces_admin_authentication.rb
/app/controllers/concerns/enforces_two_factor_authentication.rb
/app/controllers/concerns/oauth_applications.rb
/app/controllers/concerns/project_unauthorized.rb
/app/models/concerns/require_email_verification.rb
/app/controllers/concerns/sessionless_authentication.rb
/app/controllers/concerns/snippet_authorizations.rb
/app/controllers/concerns/verifies_with_email.rb
/app/controllers/concerns/workhorse_authorization.rb
/app/controllers/groups/settings/access_tokens_controller.rb
/app/controllers/ldap/
/app/controllers/oauth/
/app/controllers/omniauth_callbacks_controller.rb
/app/controllers/passwords_controller.rb
/app/controllers/profiles/passwords_controller.rb
/app/controllers/user_settings/personal_access_tokens_controller.rb
/app/controllers/profiles/two_factor_auths_controller.rb
/app/controllers/profiles/webauthn_registrations_controller.rb
/app/controllers/projects/settings/access_tokens_controller.rb
/app/controllers/sessions_controller.rb
/app/finders/groups/projects_requiring_authorizations_refresh/
/app/finders/personal_access_tokens_finder.rb
/app/helpers/access_tokens_helper.rb
/app/helpers/auth_helper.rb
/app/models/authentication_event.rb
/app/models/concerns/admin_changed_password_notifier.rb
/app/models/concerns/mirror_authentication.rb
/app/models/concerns/select_for_project_authorization.rb
/app/models/concerns/token_authenticatable.rb
/app/models/concerns/token_authenticatable_strategies/
/app/models/oauth_access_grant.rb
/app/models/oauth_access_token.rb
/app/models/personal_access_token.rb
/app/models/project_authorization.rb
/app/models/webauthn_registration.rb
/app/policies/personal_access_token_policy.rb
/app/serializers/access_token_entity_base.rb
/app/serializers/group_access_token_entity.rb
/app/serializers/group_access_token_serializer.rb
/app/serializers/impersonation_access_token_entity.rb
/app/serializers/impersonation_access_token_serializer.rb
/app/serializers/personal_access_token_entity.rb
/app/serializers/personal_access_token_serializer.rb
/app/serializers/project_access_token_entity.rb
/app/serializers/project_access_token_serializer.rb
/app/services/access_token_validation_service.rb
/app/services/auth/
/app/services/authorized_project_update/
/app/services/chat_names/authorize_user_service.rb
/app/services/personal_access_tokens/
/app/services/projects/move_project_authorizations_service.rb
/app/services/resource_access_tokens/
/app/services/todos/destroy/unauthorized_features_service.rb
/app/services/users/authorized_build_service.rb
/app/services/users/authorized_create_service.rb
/app/services/users/email_verification/
/app/services/users/refresh_authorized_projects_service.rb
/app/services/webauthn/
/app/validators/json_schemas/cluster_agent_authorization_configuration.json
/app/views/admin/application_settings/_external_authorization_service_form.html.haml
/app/views/admin/impersonation_tokens/
/app/views/authentication/
/app/views/dashboard/projects/_zero_authorized_projects.html.haml
/app/views/devise/mailer/password_change.html.haml
/app/views/devise/mailer/password_change.text.erb
/app/views/devise/mailer/password_change_by_admin.html.haml
/app/views/devise/mailer/password_change_by_admin.text.erb
/app/views/devise/mailer/reset_password_instructions.html.haml
/app/views/devise/mailer/reset_password_instructions.text.erb
/app/views/devise/**/
/app/views/doorkeeper/authorizations/
/app/views/doorkeeper/authorized_applications/
/app/views/errors/omniauth_error.html.haml
/app/views/groups/settings/_resource_access_token_creation.html.haml
/app/views/groups/settings/_two_factor_auth.html.haml
/app/views/groups/settings/access_tokens/
/app/views/layouts/oauth_error.html.haml
/app/views/notify/access_token_about_to_expire_email.html.haml
/app/views/notify/access_token_about_to_expire_email.text.erb
/app/views/notify/access_token_created_email.html.haml
/app/views/notify/access_token_created_email.text.erb
/app/views/notify/access_token_expired_email.html.haml
/app/views/notify/access_token_expired_email.text.erb
/app/views/notify/access_token_revoked_email.html.haml
/app/views/notify/access_token_revoked_email.text.erb
/app/views/profiles/passwords/
/app/views/user_settings/personal_access_tokens/
/app/views/profiles/two_factor_auths/
/app/views/projects/mirrors/_authentication_method.html.haml
/app/views/projects/settings/access_tokens/
/app/views/shared/_no_password.html.haml
/app/views/shared/_two_factor_auth_recovery_settings_check.html.haml
/app/views/shared/access_tokens/
/app/views/shared/members/_two_factor_auth_badge.html.haml
/app/views/shared/tokens/
/app/workers/authorized_keys_worker.rb
/app/workers/authorized_project_update/
/app/workers/authorized_projects_worker.rb
/app/workers/personal_access_tokens/
/config/initializers/01_secret_token.rb
/config/initializers/declarative_policy.rb
/config/initializers/declarative_policy_cached_attributes.rb
/config/initializers/devise_dynamic_password_length_validation.rb
/config/initializers/devise_password_length.rb.example
/config/initializers/doorkeeper.rb
/config/initializers/doorkeeper_openid_connect.rb
/config/initializers/gitlab_shell_secret_token.rb
/config/initializers/omniauth.rb
/config/initializers/rails_host_authorization.rb
/config/initializers/rails_host_authorization_gitpod.rb
/config/initializers/warden.rb
/config/initializers/webauthn.rb
/config/initializers_before_autoloader/100_patch_omniauth_oauth2.rb
/config/initializers_before_autoloader/100_patch_omniauth_saml.rb
/config/weak_password_digests.yml
/ee/app/assets/javascripts/access_tokens/
/ee/app/assets/javascripts/audit_events/components/tokens/
/ee/app/assets/javascripts/audit_events/token_utils.js
/ee/app/assets/javascripts/groups/settings/components/
/ee/app/assets/javascripts/pages/admin/application_settings/general/components/
/ee/app/assets/javascripts/pages/groups/omniauth_callbacks/
/ee/app/assets/javascripts/pages/passwords/
/ee/app/assets/javascripts/pages/profiles/passwords/
/ee/app/assets/javascripts/password/
/ee/app/assets/javascripts/requirements/components/tokens/
/ee/app/assets/javascripts/saml_providers/scim_token_service.js
/ee/app/assets/javascripts/saml_sso/components/
/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_auth.vue
/ee/app/controllers/concerns/ee/authenticates_with_two_factor.rb
/ee/app/controllers/concerns/ee/enforces_two_factor_authentication.rb
/ee/app/controllers/concerns/saml_authorization.rb
/ee/app/controllers/ee/ldap/
/ee/app/controllers/ee/omniauth_callbacks_controller.rb
/ee/app/controllers/ee/passwords_controller.rb
/ee/app/controllers/ee/sessions_controller.rb
/ee/app/controllers/groups/omniauth_callbacks_controller.rb
/ee/app/controllers/groups/scim_oauth_controller.rb
/ee/app/controllers/oauth/
/ee/app/controllers/omniauth_kerberos_controller.rb
/ee/app/finders/auth/
/ee/app/helpers/ee/access_tokens_helper.rb
/ee/app/helpers/ee/auth_helper.rb
/ee/app/helpers/ee/personal_access_tokens_helper.rb
/ee/app/models/concerns/password_complexity.rb
/ee/app/models/ee/personal_access_token.rb
/ee/app/models/ee/project_authorization.rb
/ee/app/models/scim_oauth_access_token.rb
/ee/app/serializers/scim_oauth_access_token_entity.rb
/ee/app/services/arkose/token_verification_service.rb
/ee/app/services/ee/auth/
/ee/app/services/ee/personal_access_tokens/
/ee/app/services/ee/resource_access_tokens/
/ee/app/services/ee/users/authorized_build_service.rb
/ee/app/services/personal_access_tokens/
/ee/app/services/security/token_revocation_service.rb
/ee/app/services/users/email_verification/
/ee/app/validators/password/
/ee/app/views/admin/application_settings/_personal_access_token_expiration_policy.html.haml
/ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.html.haml
/ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.text.haml
/app/views/devise/**/
/ee/app/views/groups/_personal_access_token_expiration_policy.html.haml
/ee/app/views/groups/sso/_authorize_pane.html.haml
/ee/app/views/notify/policy_revoked_personal_access_tokens_email.html.haml
/ee/app/views/notify/policy_revoked_personal_access_tokens_email.text.erb
/ee/app/views/oauth/
/ee/app/views/shared/_password_requirements_list.html.haml
/ee/app/views/shared/credentials_inventory/_personal_access_tokens.html.haml
/ee/app/views/shared/credentials_inventory/personal_access_tokens/
/ee/app/workers/auth/
/ee/app/workers/personal_access_tokens/
/ee/config/routes/oauth.rb
/ee/lib/ee/gitlab/auth/
/ee/lib/ee/gitlab/omniauth_initializer.rb
/ee/lib/gitlab/auth/
/ee/lib/gitlab/authority_analyzer.rb
/ee/lib/gitlab/geo/oauth/
/ee/lib/gitlab/kerberos/
/ee/lib/omni_auth/
/ee/lib/system_check/geo/authorized_keys_check.rb
/ee/lib/system_check/geo/authorized_keys_flag_check.rb
/lib/api/entities/impersonation_token.rb
/lib/api/entities/impersonation_token_with_token.rb
/lib/api/entities/personal_access_token.rb
/lib/api/entities/personal_access_token_with_token.rb
/lib/api/entities/resource_access_token.rb
/lib/api/entities/resource_access_token_with_token.rb
/lib/api/helpers/authentication.rb
/lib/api/helpers/packages/basic_auth_helpers.rb
/lib/api/helpers/personal_access_tokens_helpers.rb
/lib/api/personal_access_tokens/
/lib/api/personal_access_tokens.rb
/lib/api/resource_access_tokens.rb
/lib/api/support/token_with_expiration.rb
/lib/gitlab/api_authentication/
/lib/gitlab/auth/
/lib/gitlab/auth.rb
/lib/gitlab/auth_logger.rb
/lib/gitlab/authorized_keys.rb
/lib/gitlab/background_migration/encrypt_static_object_token.rb
/lib/gitlab/background_migration/expire_o_auth_tokens.rb
/lib/gitlab/background_migration/migrate_u2f_webauthn.rb
/lib/gitlab/background_migration/update_users_where_two_factor_auth_required_from_group.rb
/lib/gitlab/chat_name_token.rb
/lib/gitlab/cleanup/personal_access_tokens.rb
/lib/gitlab/external_authorization/
/lib/gitlab/external_authorization.rb
/lib/gitlab/grape_logging/loggers/token_logger.rb
/lib/gitlab/graphql/authorize/
/lib/gitlab/jwt_authenticatable.rb
/lib/gitlab/jwt_token.rb
/lib/gitlab/lfs_token.rb
/lib/gitlab/mail_room/
/lib/gitlab/omniauth_initializer.rb
/lib/gitlab/project_authorizations.rb
/lib/json_web_token/
/lib/omni_auth/
/lib/security/weak_passwords.rb
/lib/system_check/app/authorized_keys_permission_check.rb
/lib/system_check/incoming_email/imap_authentication_check.rb
/lib/tasks/gitlab/password.rake
/lib/tasks/tokens.rake
# Necessary for GitLab availability
[Verify] @gitlab-org/maintainers/cicd-verify @stanhu @ayufan
# With these catch-all rules we will require backend approval and use it as an
# opportunity to refine specific rules defined in this section.
# Note that frontend, CI templates and other concerns should be kept within
# the same section.
/app/**/ci/*.rb
/ee/app/**/ci/*.rb
/lib/**/ci/
/ee/lib/**/ci/
/ee/app/**/merge_trains/*.rb
/app/controllers/admin/jobs_controller.rb
/app/controllers/admin/runner_projects_controller.rb
/app/controllers/admin/runners_controller.rb
/app/controllers/projects/artifacts_controller.rb
/app/controllers/projects/build_artifacts_controller.rb
/app/controllers/projects/builds_controller.rb
/app/controllers/projects/jobs_controller.rb
/app/controllers/runner_setup_controller.rb
/app/controllers/projects/pipeline_schedules_controller.rb
/app/controllers/projects/pipelines_controller.rb
/app/controllers/projects/pipelines_settings_controller.rb
/app/controllers/projects/runner_projects_controller.rb
/app/controllers/projects/runners_controller.rb
/app/controllers/projects/triggers_controller.rb
/app/controllers/projects/variables_controller.rb
/app/models/commit_status.rb
/app/models/generic_commit_status.rb
/app/models/namespace_ci_cd_setting.rb
/app/models/project_ci_cd_setting.rb
/app/models/projects/build_artifacts_size_refresh.rb
/app/presenters/commit_status_presenter.rb
/app/presenters/generic_commit_status_presenter.rb
/app/services/projects/refresh_build_artifacts_size_statistics_service.rb
/app/uploaders/job_artifact_uploader.rb
/app/validators/json_schemas/build_metadata_id_tokens.json
/app/workers/build_queue_worker.rb
/app/workers/ci_platform_metrics_update_cron_worker.rb
/app/workers/create_pipeline_worker.rb
/app/workers/expire_build_artifacts_worker.rb
/app/workers/pipeline_hooks_worker.rb
/app/workers/pipeline_metrics_worker.rb
/app/workers/pipeline_notification_worker.rb
/app/workers/pipeline_process_worker.rb
/app/workers/pipeline_schedule_worker.rb
/app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb
/app/workers/run_pipeline_schedule_worker.rb
/app/workers/stuck_ci_jobs_worker.rb
/app/workers/update_external_pull_requests_worker.rb
/lib/api/commit_statuses.rb
/ee/app/finders/merge_trains_finder.rb
/ee/app/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service.rb
/ee/app/services/auto_merge/merge_train_service.rb
/ee/app/services/system_notes/merge_train_service.rb
/ee/app/controllers/ee/admin/runners_controller.rb
/ee/app/controllers/ee/projects/pipelines_controller.rb
/ee/app/controllers/projects/pipelines/
/ee/app/controllers/projects/subscriptions_controller.rb
/ee/app/helpers/ee/projects/pipeline_helper.rb
/ee/app/views/ci_minutes_usage_mailer/
/ee/app/views/projects/pipelines/
/ee/app/views/projects/settings/ci_cd/
/ee/lib/api/merge_trains.rb
/ee/lib/ee/api/entities/merge_train.rb
# Overrides for Verify. These files below require approval from teams outside Verify.
/**/lib/**/ci/reports/**/ @gitlab-org/maintainers/rails-backend
/**/lib/**/ci/parsers/**/ @gitlab-org/maintainers/rails-backend
/**/app/views/ci/**/ @gitlab-org/maintainers/rails-backend
/ee/lib/gitlab/ci/parsers/license_compliance/ @gitlab-org/secure/composition-analysis-be
/ee/lib/gitlab/ci/parsers/security/ @gitlab-org/govern/threat-insights-backend-team
/ee/lib/gitlab/ci/reports/coverage_fuzzing/ @gitlab-org/secure/fuzzing-be
/ee/lib/gitlab/ci/reports/dependency_list/ @gitlab-org/secure/composition-analysis-be
/ee/lib/gitlab/ci/reports/license_scanning/ @gitlab-org/secure/composition-analysis-be
/ee/lib/gitlab/ci/reports/security/ @gitlab-org/govern/threat-insights-backend-team
# CI/CD templates require approval from specific owners.
/lib/gitlab/ci/templates/ @gitlab-org/maintainers/cicd-templates
/lib/gitlab/ci/templates/Security/ @gonzoyumo @twoodham @amarpatel @theoretick @thiagocsf @agroleau
/lib/gitlab/ci/templates/Security/API-Fuzzing.*.yml @gitlab-org/secure/dynamic-analysis
/lib/gitlab/ci/templates/Security/Container-Scanning.*.yml @gitlab-org/secure/composition-analysis-be
/lib/gitlab/ci/templates/Security/Coverage-Fuzzing.*.yml @gitlab-org/secure/dynamic-analysis
/lib/gitlab/ci/templates/Security/DAST*.yml @gitlab-org/secure/dynamic-analysis
/lib/gitlab/ci/templates/Security/Dependency-Scanning.*.yml @gitlab-org/secure/composition-analysis-be
/lib/gitlab/ci/templates/Security/License-Scanning.*.yml @gitlab-org/secure/composition-analysis-be
/lib/gitlab/ci/templates/Security/SAST.*.yml @gitlab-org/secure/static-analysis
/lib/gitlab/ci/templates/Security/Secret-Detection.*.yml @gitlab-org/secure/static-analysis
/lib/gitlab/ci/templates/Security/Secure-Binaries.*.yml @gitlab-org/secure/static-analysis @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/dynamic-analysis
# Note: The `Fortify-FoD-sast.gitlab-ci.yml` template is provided and maintained by Fortify, an official Technology Partner with GitLab.
/lib/gitlab/ci/templates/Jobs/Container-Scanning.*.yml @gitlab-org/secure/composition-analysis-be
/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.*.yml @gitlab-org/secure/composition-analysis-be
/lib/gitlab/ci/templates/Jobs/License-Scanning.*.yml @gitlab-org/secure/composition-analysis-be
/lib/gitlab/ci/templates/Jobs/SAST.*.yml @gitlab-org/secure/static-analysis
/lib/gitlab/ci/templates/Jobs/Secret-Detection.*.yml @gitlab-org/secure/static-analysis
# Verify Frontend, optional approvals
^[Verify frontend] @gitlab-org/ci-cd/verify/frontend
/**/javascripts/ci/
/**/javascripts/token_access/
/**/javascripts/admin/application_settings/runner_token_expiration/
/**/javascripts/editor/schema/ci.json
/app/**/ci/*.haml
/app/views/projects/artifacts/
/app/views/projects/generic_commit_statuses/
/app/views/projects/jobs/
/app/views/projects/pipeline_schedules/
/app/views/projects/pipelines/
/app/views/projects/triggers/
/ee/app/**/ci/*.haml
/ee/app/**/merge_trains/*.haml
## Verify:Runner Fleet Backend
^[Runner Fleet Backend] @gitlab-org/ci-cd/runner-fleet-team/backend-approvers
/app/controllers/admin/runner*.rb
/app/controllers/concerns/runner*.rb
/app/controllers/groups/runner*.rb
/app/controllers/projects/runner*.rb
/app/controllers/runner*.rb
/app/finders/ci/runner*.rb
/app/graphql/mutations/ci/runner/
/app/graphql/resolvers/ci/*_runners_resolver.rb
/app/graphql/resolvers/ci/runner*.rb
/app/graphql/types/ci/runner_*.rb
/app/graphql/types/namespace/shared_runners_setting_enum.rb
/app/graphql/types/permission_types/ci/runner*.rb
/app/models/ci/build_runner_session.rb
/app/models/ci/runner*.rb
/app/models/concerns/ci/has_runner_executor.rb
/app/models/concerns/runner*.rb
/app/models/preloaders/runner*.rb
/app/policies/ci/runner*.rb
/app/presenters/ci/runner_*.rb
/app/serializers/runner*.rb
/app/services/groups/update_shared_runners_service.rb
/app/services/ci/runners/
/app/workers/ci/runners/
/db/docs/ci_runner*.yml
/ee/app/controllers/ee/admin/runner*.rb
/ee/app/controllers/ee/groups/runner*.rb
/ee/app/graphql/ee/mutations/ci/runner/
/ee/app/graphql/ee/types/ci/runner*.rb
/ee/app/graphql/resolvers/ci/runner*.rb
/ee/app/models/ee/ci/runner*.rb
/ee/app/policies/ee/ci/runner*.rb
/ee/app/services/audit_events/*runner*.rb
/ee/app/services/ci/runners/
/ee/app/services/ee/ci/runners/
/ee/app/workers/ci/runners/
/lib/api/ci/helpers/runner.rb @gitlab-org/maintainers/cicd-verify
/lib/api/ci/runner*.rb
/lib/api/ci/runner.rb @gitlab-org/maintainers/cicd-verify
/lib/api/entities/ci/runner*.rb
/lib/gitlab/audit/ci_runner_token_author.rb
/lib/gitlab/ci/runner*.rb
/lib/gitlab/seeders/ci/runner/
/lib/tasks/gitlab/seed/runner_fleet.rake
# Require approvals for Project API entities affecting availability
[Data Stores::Tenant Scale] @gitlab-org/tenant-scale-group/backend-engineers
lib/api/entities/basic_project_details.rb
lib/api/entities/project_with_access.rb
lib/api/entities/project_identity.rb
lib/api/entities/project.rb
ee/lib/ee/api/entities/project.rb
[Compliance] @gitlab-org/govern/compliance/engineering
/app/services/audit_events/build_service.rb
/ee/app/services/ee/audit_events/build_service.rb
/app/models/audit_event.rb
/app/services/audit_event_service.rb
/app/services/concerns/audit_event_save_type.rb
/ee/app/models/audit_events/
/ee/app/models/concerns/audit_events/
/ee/app/models/concerns/auditable.rb
/ee/app/models/ee/audit_event.rb
/ee/app/services/ee/audit_event_service.rb
/ee/app/workers/audit_events/
/ee/lib/ee/gitlab/audit/
/lib/gitlab/audit/auditor.rb
/lib/gitlab/audit_json_logger.rb
/ee/app/models/concerns/audit_events/
/config/audit_events/types/type_schema.json
^[Fulfillment::Utilization] @sheldonled @aalakkad @kpalchyk
/ee/app/assets/javascripts/usage_quotas/components/
/ee/app/assets/javascripts/usage_quotas/seats/
/ee/app/assets/javascripts/usage_quotas/storage/
/**/javascripts/usage_quotas/pipelines/
^[Manage::Foundations] @gitlab-org/manage/foundations/engineering
/lib/sidebars/
/ee/lib/sidebars/
/ee/lib/ee/sidebars/
# Necessary for availability, similar to DB migrations
[Global Search] @gitlab-org/search-team/migration-maintainers
/ee/elastic/migrate/
/ee/spec/support/elastic.rb
^[Global Search] @gitlab-org/search-team/migration-maintainers
/ee/spec/elastic/migrate/
^[Create::IDE - Remote Development Backend] @gitlab-org/maintainers/remote-development/backend
/ee/app/models/remote_development/
/ee/app/policies/remote_development/
/ee/app/finders/remote_development/
/ee/app/graphql/types/remote_development/
/ee/app/graphql/mutations/remote_development/
/ee/app/graphql/resolvers/remote_development/
/ee/app/controllers/remote_development/
/ee/app/services/remote_development/
/ee/lib/remote_development/
/ee/spec/features/remote_development/
/ee/spec/models/remote_development/
/ee/spec/policies/remote_development/
/ee/spec/requests/api/graphql/mutations/remote_development/
/ee/spec/requests/api/graphql/remote_development/
/ee/spec/features/remote_development/ @gitlab-org/maintainers/remote-development/backend @gitlab-org/maintainers/remote-development/frontend
/ee/spec/finders/remote_development/
/ee/spec/support/shared_contexts/remote_development/
/ee/spec/graphql/types/remote_development/
/ee/spec/factories/remote_development/
/ee/spec/lib/remote_development/
/ee/spec/fixtures/remote_development/
/ee/spec/controllers/remote_development/
/ee/spec/services/remote_development/
/qa/qa/specs/features/**/remote_development/ @gitlab-org/maintainers/remote-development/backend @gl-quality/qe-maintainers
^[Create::IDE - Remote Development Frontend] @gitlab-org/maintainers/remote-development/frontend
/ee/app/assets/remote_development/
/ee/app/assets/**/remote_development/
/ee/app/views/remote_development/
/ee/spec/frontend/remote_development/
/ee/spec/frontend/**/remote_development/
[Identity Verification] @gitlab-org/modelops/anti-abuse/identity-verification-approvers
/ee/app/controllers/users/registrations_identity_verification_controller.rb
/ee/app/controllers/users/base_identity_verification_controller.rb
/ee/app/controllers/users/identity_verification_controller.rb
/ee/app/models/concerns/identity_verifiable.rb
/ee/config/routes/identity_verification.rb
[Deploy:Environments - KAS Version Maintainers] @gitlab-org/maintainers/kas-version-maintainers
/GITLAB_KAS_VERSION
^[DiffMatchPatch gem]
/vendor/gems/diff_match_patch @garyh
^[Gitlab Housekeeper gem] @DylanGriffith @rymai @tigerwnz
/gems/gitlab-housekeeper/
/keeps/
^[Storage Statistics] @jagood @suraj_tripathy @vij
/app/models/namespace/root_storage_statistics.rb
/ee/app/models/ee/namespace/root_storage_statistics.rb
/app/models/project_statistics.rb
/ee/app/models/ee/project_statistics.rb
# JiHu GitLab rules. See https://gitlab.com/gitlab-jh/gitlab-jh-enablement/-/issues/213#note_1024367528
[JH Frontend] @jihulab/maintainers/frontend
/jh/app/assets/
/jh/**/*.scss
/jh/**/*.js
/jh/**/*.vue
[JH Rails Backend] @jihulab/maintainers/rails-backend
/jh/**/*.rb
/jh/**/*.rake
/jh/qa/ @jihulab/maintainers/quality
[JH Technical Writer] @jihulab/maintainers/technical-writer
/jh/doc/
# This empty file is used for agent-based integration with Kubernetes
---
# Settings for generating changelogs using the GitLab API. See
# https://docs.gitlab.com/ee/api/repositories.html#generate-changelog-data for
# more information.
categories:
added: Added
fixed: Fixed
changed: Changed
deprecated: Deprecated
removed: Removed
security: Security
performance: Performance
other: Other
include_groups:
- gitlab-org/gitlab-core-team/community-members
template: |
{% if categories %}
{% each categories %}
### {{ title }} ({% if single_change %}1 change{% else %}{{ count }} changes{% end %})
{% each entries %}
- [{{ title }}]({{ commit.reference }})\
{% if author.credit %} by {{ author.reference }}{% end %}\
{% if commit.trailers.MR %}\
([merge request]({{ commit.trailers.MR }}))\
{% else %}\
{% if merge_request %}\
([merge request]({{ merge_request.reference }}))\
{% end %}\
{% end %}\
{% if commit.trailers.EE %}\
**GitLab Enterprise Edition**\
{% end %}
{% end %}
{% end %}
{% else %}
No changes.
{% end %}
# The tag format for gitlab-org/gitlab is vX.Y.Z(-rcX)-ee. The -ee prefix would
# be treated as a pre-release identifier, which can result in the wrong tag
# being used as the starting point of a changelog commit range. The custom regex
# here is used to ensure we find the correct tag.
tag_regex: '^v(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)-ee$'
# no-op pipeline template for skipping whole child pipeline execution
no-op:
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}alpine:latest
stage: test
variables:
GIT_STRATEGY: none
script:
- echo "${SKIP_MESSAGE:-no-op run, nothing will be executed!}"
rules:
- when: always
rspec:artifact-collector as-if-foss:
rules:
- when: never
script:
- echo OK
rspec:artifact-collector as-if-foss:
extends:
- .artifact-collector
- .as-if-foss:rules:start-as-if-foss
needs:
# We need to wait for `start-as-if-foss` because cross project needs
# will not wait, and it'll simply look at the latest pipeline regardless
# status. This means we need to wait for the whole FOSS pipeline before
# trying to fetch the artifacts from there, ensuring they're available.
- job: start-as-if-foss
- project: "${CI_PROJECT_NAMESPACE}/gitlab-foss"
ref: as-if-foss/${CI_COMMIT_REF_NAME}
job: rspec:artifact-collector unit
# optional is not supported. Error:
# jobs:rspec:artifact-collector as-if-foss:needs:need config contains unknown keys: optional
# optional: true
- project: "${CI_PROJECT_NAMESPACE}/gitlab-foss"
ref: as-if-foss/${CI_COMMIT_REF_NAME}
job: rspec:artifact-collector system
# optional: true
- project: "${CI_PROJECT_NAMESPACE}/gitlab-foss"
ref: as-if-foss/${CI_COMMIT_REF_NAME}
job: rspec:artifact-collector remainder
# optional: true
.as-if-foss-variables:
variables:
AS_IF_FOSS_BRANCH: "as-if-foss/${CI_COMMIT_REF_NAME}"
FOSS_REPOSITORY: "https://dummy:${AS_IF_FOSS_TOKEN}@gitlab.com/${CI_PROJECT_NAMESPACE}/gitlab-foss.git"
prepare-as-if-foss-branch:
extends:
- .as-if-foss:rules:start-as-if-foss
- .as-if-foss-variables
stage: prepare
needs: []
timeout: 10m
environment:
name: "as-if-foss/${CI_MERGE_REQUEST_IID}"
on_stop: delete-as-if-foss-branch
before_script:
- git clone --single-branch --branch master "${FOSS_REPOSITORY}" gitlab-foss
- git -C gitlab-foss checkout -b "${AS_IF_FOSS_BRANCH}" master
- git -C gitlab-foss rev-parse HEAD
- rm -r .git/
- mv gitlab-foss/.git .
- rm -r gitlab-foss
script:
# See: https://gitlab.com/gitlab-org/merge-train/-/blob/041d942ae1b5615703b7a786982340b61620e7c5/bin/merge-train#L228-239
- git checkout VERSION
- rm -rf ee
- rm -rf qa/spec/ee
- rm -rf qa/qa/specs/features/ee
- rm -rf qa/qa/ee
- rm -f qa/qa/ee.rb
- rm -f CHANGELOG-EE.md
- rm -f changelogs/*-ee.md
- git add -A
# --allow-empty accounts for the edge case where FOSS matchess EE repository
# and a merge request only contains EE related changes.
- git commit -m 'Update from merge request' --allow-empty # TODO: Mark which SHA we add
- git push -f "${FOSS_REPOSITORY}" "${AS_IF_FOSS_BRANCH}"
prepare-as-if-foss-env:
extends:
- .as-if-foss:rules:start-as-if-foss
- .fast-no-clone-job
stage: prepare
needs: []
variables:
BUILD_ENV: build.env
FILES_TO_DOWNLOAD: >
scripts/setup/generate-as-if-foss-env.rb
script:
- install_gitlab_gem
- ruby scripts/setup/generate-as-if-foss-env.rb | tee "${BUILD_ENV}"
artifacts:
expire_in: 3 days
reports:
dotenv: $BUILD_ENV
paths:
- $BUILD_ENV
start-as-if-foss:
extends:
- .as-if-foss:rules:start-as-if-foss
stage: prepare
needs:
- prepare-as-if-foss-branch
- prepare-as-if-foss-env
inherit:
variables: false # Otherwise variables will be messed up
variables:
START_AS_IF_FOSS: $START_AS_IF_FOSS
RUBY_VERSION: $RUBY_VERSION
# Variables for `detect-tests` to work in FOSS
FIND_CHANGES_MERGE_REQUEST_PROJECT_PATH: $FIND_CHANGES_MERGE_REQUEST_PROJECT_PATH
FIND_CHANGES_MERGE_REQUEST_IID: $FIND_CHANGES_MERGE_REQUEST_IID
# Enabling each individual jobs
ENABLE_RSPEC: $ENABLE_RSPEC
ENABLE_RSPEC_FAST_SPEC_HELPER: $ENABLE_RSPEC_FAST_SPEC_HELPER
ENABLE_RSPEC_PRAEFECT: $ENABLE_RSPEC_PRAEFECT
ENABLE_RSPEC_SINGLE_DB: $ENABLE_RSPEC_SINGLE_DB
ENABLE_RSPEC_SINGLE_DB_CI_CONNECTION: $ENABLE_RSPEC_SINGLE_DB_CI_CONNECTION
ENABLE_RSPEC_SINGLE_REDIS: $ENABLE_RSPEC_SINGLE_REDIS
ENABLE_RSPEC_UNIT: $ENABLE_RSPEC_UNIT
ENABLE_RSPEC_INTEGRATION: $ENABLE_RSPEC_INTEGRATION
ENABLE_RSPEC_SYSTEM: $ENABLE_RSPEC_SYSTEM
ENABLE_RSPEC_MIGRATION: $ENABLE_RSPEC_MIGRATION
ENABLE_RSPEC_BACKGROUND_MIGRATION: $ENABLE_RSPEC_BACKGROUND_MIGRATION
ENABLE_RSPEC_FRONTEND_FIXTURE: $ENABLE_RSPEC_FRONTEND_FIXTURE
ENABLE_BUILD_ASSETS_IMAGE: $ENABLE_BUILD_ASSETS_IMAGE
ENABLE_BUILD_QA_IMAGE: $ENABLE_BUILD_QA_IMAGE
ENABLE_COMPILE_PRODUCTION_ASSETS: $ENABLE_COMPILE_PRODUCTION_ASSETS
ENABLE_COMPILE_STORYBOOK: $ENABLE_COMPILE_STORYBOOK
ENABLE_COMPILE_TEST_ASSETS: $ENABLE_COMPILE_TEST_ASSETS
ENABLE_CACHE_ASSETS: $ENABLE_CACHE_ASSETS
ENABLE_DETECT_TESTS: $ENABLE_DETECT_TESTS
ENABLE_ESLINT: $ENABLE_ESLINT
ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA: $ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA
ENABLE_GRAPHQL_SCHEMA_DUMP: $ENABLE_GRAPHQL_SCHEMA_DUMP
ENABLE_JEST: $ENABLE_JEST
ENABLE_JEST_INTEGRATION: $ENABLE_JEST_INTEGRATION
ENABLE_JEST_PREDICTIVE: $ENABLE_JEST_PREDICTIVE
ENABLE_RSPEC_PREDICTIVE_PIPELINE_GENERATE: $ENABLE_RSPEC_PREDICTIVE_PIPELINE_GENERATE
ENABLE_RSPEC_PREDICTIVE_TRIGGER: $ENABLE_RSPEC_PREDICTIVE_TRIGGER
ENABLE_RSPEC_PREDICTIVE_TRIGGER_SINGLE_DB: $ENABLE_RSPEC_PREDICTIVE_TRIGGER_SINGLE_DB
ENABLE_RSPEC_PREDICTIVE_TRIGGER_SINGLE_DB_CI_CONNECTION: $ENABLE_RSPEC_PREDICTIVE_TRIGGER_SINGLE_DB_CI_CONNECTION
ENABLE_RUBOCOP: $ENABLE_RUBOCOP
ENABLE_QA_INTERNAL: $ENABLE_QA_INTERNAL
ENABLE_QA_SELECTORS: $ENABLE_QA_SELECTORS
ENABLE_STATIC_ANALYSIS: $ENABLE_STATIC_ANALYSIS
trigger:
project: ${CI_PROJECT_NAMESPACE}/gitlab-foss
branch: as-if-foss/${CI_COMMIT_REF_NAME}
strategy: depend
delete-as-if-foss-branch:
extends:
- .as-if-foss:rules:start-as-if-foss:allow-failure:manual
- .as-if-foss-variables
image:
name: alpine/git
entrypoint: [""]
stage: prepare
timeout: 10m
needs:
- prepare-as-if-foss-branch
environment:
name: "as-if-foss/${CI_MERGE_REQUEST_IID}"
action: stop
variables:
GIT_STRATEGY: "none"
script:
- |
git init
git push -d "${FOSS_REPOSITORY}" "${AS_IF_FOSS_BRANCH}"
# We can only delete the environment after it's stopped, therefore
# we need to use another job to delete the environment, not in the
# job where it's stopping the environment. See:
# https://docs.gitlab.com/ee/ci/environments/#delete-an-environment
delete-as-if-foss-environment:
extends:
- .as-if-foss:rules:start-as-if-foss:allow-failure
image: alpine:latest
stage: prepare
needs:
- delete-as-if-foss-branch
variables:
GIT_STRATEGY: "none"
ESCAPED_ENVIRONMENT_NAME: "as-if-foss%2f${CI_MERGE_REQUEST_IID}"
ENVIRONMENT_API_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/environments"
before_script:
- apk add jq curl
script:
- |
ENV_ID=$(curl --silent --fail --request GET --header "Private-Token: ${PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE}" "${ENVIRONMENT_API_URL}?name=${ESCAPED_ENVIRONMENT_NAME}" | jq '.[0].id')
curl --silent --request DELETE --header "Private-Token: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE" "${ENVIRONMENT_API_URL}/${ENV_ID}"
benchmark-markdown:
extends:
- .single-db-ci-connection
- .rails-job-base
- .use-pg14
- .benchmark:rules:benchmark-markdown
stage: benchmark
needs:
- setup-test-env
script:
- section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"; # Do not use 'bundle exec' here
- bundle exec rake benchmark:banzai &> benchmark-markdown.txt
artifacts:
expire_in: 30 days
when: always
paths:
- benchmark-markdown.txt
allow_failure: true
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment