Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
6a5b78ac69
commit
a608e12045
51 changed files with 139 additions and 161 deletions
|
@ -289,7 +289,7 @@
|
|||
- "Dockerfile.assets"
|
||||
- "vendor/assets/**/*"
|
||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml"
|
||||
- ".rubocop_todo/**/*.yml"
|
||||
- "*_VERSION"
|
||||
- "{,jh/}Gemfile{,.lock}"
|
||||
|
@ -313,7 +313,7 @@
|
|||
- "Dockerfile.assets"
|
||||
- "vendor/assets/**/*"
|
||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml"
|
||||
- ".rubocop_todo/**/*.yml"
|
||||
- "*_VERSION"
|
||||
- "{,jh/}Gemfile{,.lock}"
|
||||
|
@ -344,7 +344,7 @@
|
|||
- "Dockerfile.assets"
|
||||
- "vendor/assets/**/*"
|
||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml"
|
||||
- ".rubocop_todo/**/*.yml"
|
||||
- "*_VERSION"
|
||||
- "{,jh/}Gemfile{,.lock}"
|
||||
|
@ -371,7 +371,7 @@
|
|||
- "Dockerfile.assets"
|
||||
- "vendor/assets/**/*"
|
||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml"
|
||||
- ".rubocop_todo/**/*.yml"
|
||||
- "*_VERSION"
|
||||
- "{,jh/}Gemfile{,.lock}"
|
||||
|
@ -405,7 +405,7 @@
|
|||
- "Dockerfile.assets"
|
||||
- "vendor/assets/**/*"
|
||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml"
|
||||
- ".rubocop_todo/**/*.yml"
|
||||
- "*_VERSION"
|
||||
- "{,jh/}Gemfile{,.lock}"
|
||||
|
|
|
@ -18,7 +18,7 @@ module ExportHelper
|
|||
[
|
||||
_('Milestones'),
|
||||
_('Labels'),
|
||||
_('Boards and Board Lists'),
|
||||
_('Boards and board lists'),
|
||||
_('Badges'),
|
||||
_('Subgroups')
|
||||
]
|
||||
|
|
|
@ -177,6 +177,8 @@ class ActiveSession
|
|||
# Returns an ActiveSession object
|
||||
def self.load_raw_session(raw_session)
|
||||
# rubocop:disable Security/MarshalLoad
|
||||
# Explanation of why this Marshal.load call is OK:
|
||||
# https://gitlab.com/gitlab-com/gl-security/appsec/appsec-reviews/-/issues/124#note_744576714
|
||||
Marshal.load(raw_session)
|
||||
# rubocop:enable Security/MarshalLoad
|
||||
end
|
||||
|
|
|
@ -81,14 +81,7 @@ module Ci
|
|||
|
||||
scope :belonging_to_group, -> (group_id, include_ancestors: false) {
|
||||
groups = ::Group.where(id: group_id)
|
||||
|
||||
if include_ancestors
|
||||
groups = if Feature.enabled?(:linear_runner_ancestor_scopes, default_enabled: :yaml)
|
||||
groups.self_and_ancestors
|
||||
else
|
||||
Gitlab::ObjectHierarchy.new(groups).base_and_ancestors
|
||||
end
|
||||
end
|
||||
groups = groups.self_and_ancestors if include_ancestors
|
||||
|
||||
joins(:runner_namespaces)
|
||||
.where(ci_runner_namespaces: { namespace_id: groups })
|
||||
|
@ -109,14 +102,9 @@ module Ci
|
|||
|
||||
scope :belonging_to_parent_group_of_project, -> (project_id) {
|
||||
project_groups = ::Group.joins(:projects).where(projects: { id: project_id })
|
||||
hierarchy_groups = if Feature.enabled?(:linear_runner_ancestor_scopes, default_enabled: :yaml)
|
||||
project_groups.self_and_ancestors.as_ids
|
||||
else
|
||||
Gitlab::ObjectHierarchy.new(project_groups).base_and_ancestors
|
||||
end
|
||||
|
||||
joins(:groups)
|
||||
.where(namespaces: { id: hierarchy_groups })
|
||||
.where(namespaces: { id: project_groups.self_and_ancestors.as_ids })
|
||||
.allow_cross_joins_across_databases(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/336433')
|
||||
}
|
||||
|
||||
|
|
|
@ -7,9 +7,8 @@
|
|||
= form_errors(@group)
|
||||
.form-group
|
||||
%p
|
||||
= s_('GroupSettings|Changing group URL can have unintended side effects.')
|
||||
= succeed '.' do
|
||||
= link_to _('Learn more'), help_page_path('user/group/index', anchor: 'change-a-groups-path'), target: '_blank'
|
||||
= s_("GroupSettings|Changing a group's URL can have unintended side effects.")
|
||||
= link_to _('Learn more.'), help_page_path('user/group/index', anchor: 'change-a-groups-path'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
.input-group.gl-field-error-anchor
|
||||
.group-root-path.input-group-prepend.has-tooltip{ title: group_path(@group), :'data-placement' => 'bottom' }
|
||||
|
|
|
@ -4,8 +4,11 @@
|
|||
|
||||
.sub-section
|
||||
%h4= s_('GroupSettings|Export group')
|
||||
%p= _('Export this group with all related data to a new GitLab instance. Once complete, you can import the data file from the "New Group" page.')
|
||||
|
||||
%p= _('Export this group with all related data.')
|
||||
%p
|
||||
- export_information = _('After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance.') % { strong_text_start: '<strong>'.html_safe, strong_text_end: '</strong>'.html_safe}
|
||||
= export_information.html_safe
|
||||
= link_to _('Learn more.'), help_page_path('user/group/settings/import_export.md'), target: '_blank', rel: 'noopener noreferrer'
|
||||
.bs-callout.bs-callout-info
|
||||
%p.gl-mb-0
|
||||
%p= _('The following items will be exported:')
|
||||
|
@ -17,7 +20,6 @@
|
|||
%li= _('Projects')
|
||||
%li= _('Runner tokens')
|
||||
%li= _('SAML discovery tokens')
|
||||
%p= _('Once the exported file is ready, you will receive a notification email with a download link, or you can download it from this page.')
|
||||
- if group.export_file_exists?
|
||||
= link_to _('Regenerate export'), export_group_path(group),
|
||||
method: :post, class: 'btn gl-button btn-default', data: { qa_selector: 'regenerate_export_group_link' }
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
.sub-section
|
||||
%h4.warning-title= s_('GroupSettings|Transfer group')
|
||||
%p= _('Transfer group to another parent group.')
|
||||
= form_for group, url: transfer_group_path(group), method: :put, html: { class: 'js-group-transfer-form' } do |f|
|
||||
.form-group
|
||||
= dropdown_tag('Select parent group', options: { toggle_class: 'js-groups-dropdown', title: 'Parent Group', filter: true, dropdown_class: 'dropdown-open-top dropdown-group-transfer', placeholder: 'Search groups', disabled: group.paid?, data: { data: parent_group_options(group), qa_selector: 'select_group_dropdown' } })
|
||||
= hidden_field_tag 'new_parent_group_id'
|
||||
|
||||
%ul
|
||||
- side_effects_link_start = '<a href="https://docs.gitlab.com/ee/user/project/repository/index.html#what-happens-when-a-repository-path-changes" target="_blank">'.html_safe
|
||||
- warning_text = s_("GroupSettings|Be careful. Changing a group's parent can have unintended %{side_effects_link_start}side effects%{side_effects_link_end}.") % { side_effects_link_start: side_effects_link_start, side_effects_link_end: '</a>'.html_safe }
|
||||
- learn_more_link_start = '<a href="https://docs.gitlab.com/ee/user/project/index.html#redirects-when-changing-repository-paths" target="_blank" rel="noopener noreferrer">'.html_safe
|
||||
- warning_text = s_("GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}") % { learn_more_link_start: learn_more_link_start, learn_more_link_end: '</a>'.html_safe }
|
||||
%li= warning_text.html_safe
|
||||
%li= s_('GroupSettings|You can only transfer the group to a group you manage.')
|
||||
%li= s_('GroupSettings|You will need to update your local repositories to point to the new location.')
|
||||
%li= s_("GroupSettings|If the parent group's visibility is lower than the group current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility.")
|
||||
|
||||
.form-group
|
||||
= dropdown_tag(s_('GroupSettings|Select parent group'), options: { toggle_class: 'js-groups-dropdown', title: s_('GroupSettings|Parent Group'), filter: true, dropdown_class: 'dropdown-open-top dropdown-group-transfer', placeholder: s_('GroupSettings|Search groups'), disabled: group.paid?, data: { data: parent_group_options(group), qa_selector: 'select_group_dropdown' } })
|
||||
= hidden_field_tag 'new_parent_group_id'
|
||||
- if group.paid?
|
||||
.gl-alert.gl-alert-info.gl-mb-5
|
||||
= sprite_icon('information-o', size: 16, css_class: 'gl-icon gl-alert-icon gl-alert-icon-no-title')
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
- page_title _('Pipelines'), "#{@commit.title} (#{@commit.short_id})", _('Commits')
|
||||
- add_page_specific_style 'page_bundles/pipelines'
|
||||
- add_page_specific_style 'page_bundles/ci_status'
|
||||
|
||||
= render 'commit_box'
|
||||
= render 'ci_menu'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- verification_enabled = Gitlab::CurrentSettings.pages_domain_verification_enabled?
|
||||
- dns_record = "#{domain_presenter.domain} CNAME #{domain_presenter.project.pages_subdomain}.#{Settings.pages.host}."
|
||||
- dns_record = "#{domain_presenter.domain} ALIAS #{domain_presenter.project.pages_subdomain}.#{Settings.pages.host}."
|
||||
|
||||
.form-group.border-section
|
||||
.row
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
name: linear_runner_ancestor_scopes
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70385
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/341114
|
||||
milestone: '14.6'
|
||||
type: development
|
||||
group: group::access
|
||||
default_enabled: false
|
|
@ -31,7 +31,7 @@ collections "**Consul** x3" as consul #e76a9b
|
|||
|
||||
card "Database" as database {
|
||||
collections "**PGBouncer x3**\n//Consul//" as pgbouncer #4EA7FF
|
||||
|
||||
|
||||
card "**PostgreSQL** //Primary//\n//Patroni//\n//PgBouncer//\n//Consul//" as postgres_primary #4EA7FF
|
||||
collections "**PostgreSQL** //Secondary// **x2**\n//Patroni//\n//PgBouncer//\n//Consul//" as postgres_secondary #4EA7FF
|
||||
|
||||
|
@ -61,8 +61,8 @@ consul .[#e76a9b,norank]r-> postgres_secondary
|
|||
|
||||
To enable Database Load Balancing, make sure that:
|
||||
|
||||
- The HA Postgres setup has one or more secondary nodes replicating the primary.
|
||||
- Each Postgres node is connected with the same credentials and on the same port.
|
||||
- The HA PostgreSQL setup has one or more secondary nodes replicating the primary.
|
||||
- Each PostgreSQL node is connected with the same credentials and on the same port.
|
||||
|
||||
For Omnibus GitLab, you also need PgBouncer configured on each PostgreSQL node to pool
|
||||
all load-balanced connections when [configuring a multi-node setup](replication_and_failover.md).
|
||||
|
|
|
@ -2155,8 +2155,7 @@ cluster alongside your instance, read how to
|
|||
## Configure NFS
|
||||
|
||||
[Object storage](#configure-the-object-storage), along with [Gitaly](#configure-gitaly)
|
||||
are recommended over NFS wherever possible for improved performance. If you intend
|
||||
to use GitLab Pages, this currently [requires NFS](troubleshooting.md#gitlab-pages-requires-nfs).
|
||||
are recommended over NFS wherever possible for improved performance.
|
||||
|
||||
See how to [configure NFS](../nfs.md).
|
||||
|
||||
|
|
|
@ -2161,8 +2161,7 @@ cluster alongside your instance, read how to
|
|||
## Configure NFS
|
||||
|
||||
[Object storage](#configure-the-object-storage), along with [Gitaly](#configure-gitaly)
|
||||
are recommended over NFS wherever possible for improved performance. If you intend
|
||||
to use GitLab Pages, this currently [requires NFS](troubleshooting.md#gitlab-pages-requires-nfs).
|
||||
are recommended over NFS wherever possible for improved performance.
|
||||
|
||||
See how to [configure NFS](../nfs.md).
|
||||
|
||||
|
|
|
@ -102,8 +102,7 @@ To set up GitLab and its components to accommodate up to 2,000 users:
|
|||
more advanced code search across your entire GitLab instance.
|
||||
1. [Configure NFS](#configure-nfs-optional) (optional, and not recommended)
|
||||
to have shared disk storage service as an alternative to Gitaly or object
|
||||
storage. You can skip this step if you're not using GitLab Pages (which
|
||||
requires NFS).
|
||||
storage.
|
||||
|
||||
## Configure the external load balancer
|
||||
|
||||
|
@ -960,8 +959,7 @@ cluster alongside your instance, read how to
|
|||
|
||||
For improved performance, [object storage](#configure-the-object-storage),
|
||||
along with [Gitaly](#configure-gitaly), are recommended over using NFS whenever
|
||||
possible. However, if you intend to use GitLab Pages,
|
||||
[you must use NFS](troubleshooting.md#gitlab-pages-requires-nfs).
|
||||
possible.
|
||||
|
||||
See how to [configure NFS](../nfs.md).
|
||||
|
||||
|
|
|
@ -187,8 +187,7 @@ To set up GitLab and its components to accommodate up to 3,000 users:
|
|||
more advanced code search across your entire GitLab instance.
|
||||
1. [Configure NFS](#configure-nfs-optional) (optional, and not recommended)
|
||||
to have shared disk storage service as an alternative to Gitaly or object
|
||||
storage. You can skip this step if you're not using GitLab Pages (which
|
||||
requires NFS).
|
||||
storage.
|
||||
|
||||
The servers start on the same 10.6.0.0/24 private network range, and can
|
||||
connect to each other freely on these addresses.
|
||||
|
@ -2103,8 +2102,7 @@ cluster alongside your instance, read how to
|
|||
## Configure NFS (optional)
|
||||
|
||||
[Object storage](#configure-the-object-storage), along with [Gitaly](#configure-gitaly)
|
||||
are recommended over NFS wherever possible for improved performance. If you intend
|
||||
to use GitLab Pages, this currently [requires NFS](troubleshooting.md#gitlab-pages-requires-nfs).
|
||||
are recommended over NFS wherever possible for improved performance.
|
||||
|
||||
See how to [configure NFS](../nfs.md).
|
||||
|
||||
|
|
|
@ -2175,8 +2175,7 @@ cluster alongside your instance, read how to
|
|||
## Configure NFS
|
||||
|
||||
[Object storage](#configure-the-object-storage), along with [Gitaly](#configure-gitaly)
|
||||
are recommended over NFS wherever possible for improved performance. If you intend
|
||||
to use GitLab Pages, this currently [requires NFS](troubleshooting.md#gitlab-pages-requires-nfs).
|
||||
are recommended over NFS wherever possible for improved performance.
|
||||
|
||||
See how to [configure NFS](../nfs.md).
|
||||
|
||||
|
|
|
@ -2097,8 +2097,7 @@ cluster alongside your instance, read how to
|
|||
## Configure NFS (optional)
|
||||
|
||||
[Object storage](#configure-the-object-storage), along with [Gitaly](#configure-gitaly)
|
||||
are recommended over NFS wherever possible for improved performance. If you intend
|
||||
to use GitLab Pages, this currently [requires NFS](troubleshooting.md#gitlab-pages-requires-nfs).
|
||||
are recommended over NFS wherever possible for improved performance.
|
||||
|
||||
See how to [configure NFS](../nfs.md).
|
||||
|
||||
|
|
|
@ -20,15 +20,14 @@ with the Fog library that GitLab uses. Symptoms include:
|
|||
411 Length Required
|
||||
```
|
||||
|
||||
### GitLab Pages requires NFS
|
||||
### GitLab Pages can use object storage
|
||||
|
||||
If you intend to use [GitLab Pages](../../user/project/pages/index.md), this currently requires
|
||||
[NFS](../nfs.md). There is [work in progress](https://gitlab.com/groups/gitlab-org/-/epics/3901)
|
||||
to remove this dependency. In the future, GitLab Pages will use
|
||||
object storage.
|
||||
If you intend to use [GitLab Pages](../../user/project/pages/index.md), you can
|
||||
[configure object storage](../pages/index.md#using-object-storage).
|
||||
NFS is still available if you prefer.
|
||||
|
||||
The dependency on disk storage also prevents Pages being deployed using the
|
||||
[GitLab Helm chart](https://gitlab.com/groups/gitlab-org/-/epics/4283).
|
||||
The [GitLab Pages Helm chart](https://docs.gitlab.com/charts/charts/gitlab/gitlab-pages/) is also available
|
||||
for Kubernetes deployments.
|
||||
|
||||
### Incremental logging is required for CI to use object storage
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
At the heart of GitLab is a web application [built using the Ruby on Rails
|
||||
framework](https://about.gitlab.com/blog/2018/10/29/why-we-use-rails-to-build-gitlab/).
|
||||
Thanks to this, we also get access to the amazing tools built right into Rails.
|
||||
In this guide, we are introducing the [Rails console](../operations/rails_console.md#starting-a-rails-console-session)
|
||||
This guide introduces the [Rails console](../operations/rails_console.md#starting-a-rails-console-session)
|
||||
and the basics of interacting with your GitLab instance from the command line.
|
||||
|
||||
WARNING:
|
||||
|
@ -195,7 +195,7 @@ a background job to deliver an email notification. This is an example of an
|
|||
-- code which is designated to run in response to events in the Active Record
|
||||
object life cycle. This is also why using the Rails console is preferred when
|
||||
direct changes to data is necessary as changes made via direct database queries
|
||||
does not trigger these callbacks.
|
||||
do not trigger these callbacks.
|
||||
|
||||
It's also possible to update attributes in a single line:
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ group: Access
|
|||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
# Namespaces API
|
||||
# Namespaces API **(FREE)**
|
||||
|
||||
Usernames and group names fall under a special category called
|
||||
[namespaces](../user/group/index.md#namespaces).
|
||||
|
|
|
@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Resource group API **(FREE)**
|
||||
|
||||
You can read more about [controling the job concurrency with resource groups](../ci/resource_groups/index.md).
|
||||
You can read more about [controlling the job concurrency with resource groups](../ci/resource_groups/index.md).
|
||||
|
||||
## Get a specific resource group
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ store all the builds in PostgreSQL in `ci_builds` table, and because we are
|
|||
creating more than [2 million builds each day on GitLab.com](https://docs.google.com/spreadsheets/d/17ZdTWQMnTHWbyERlvj1GA7qhw_uIfCoI5Zfrrsh95zU),
|
||||
we are reaching database limits that are slowing our development velocity down.
|
||||
|
||||
On February 1st, 2021, GitLab.com surpased 1 billion CI/CD builds created and the number of
|
||||
On February 1st, 2021, GitLab.com surpassed 1 billion CI/CD builds created and the number of
|
||||
builds continues to grow exponentially.
|
||||
|
||||
![CI builds cumulative with forecast](ci_builds_cumulative_forecast.png)
|
||||
|
@ -99,7 +99,7 @@ sustain in upcoming years.
|
|||
|
||||
**Status**: As of October 2021 we reduced the growth rate of `ci_builds` table
|
||||
by writing build options and variables to `ci_builds_metadata` table. We plan
|
||||
to ship futher improvements that will be described in a separate blueprint.
|
||||
to ship further improvements that will be described in a separate blueprint.
|
||||
|
||||
### Queuing mechanisms are using the large table
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ The initial iteration will provide a framework to house features under `Namespac
|
|||
|
||||
1. **Conceptual model**: What are the current and future state conceptual models of these features ([see object modeling for designers](https://hpadkisson.medium.com/object-modeling-for-designers-an-introduction-7871bdcf8baf))? These should be documented in Pajamas (example: [Merge Requests](https://design.gitlab.com/objects/merge-request)).
|
||||
1. **Merge conflicts**: What inconsistencies are there across project, group, and admin levels? How might these be addressed? For an example of how we rationalized this for labels, please see [this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/338820).
|
||||
1. **Inheritence & information flow**: How is information inherited across our container hierarchy currently? How might this be impacted if complying with the new [inheritence behavior](https://gitlab.com/gitlab-org/gitlab/-/issues/343316) framework?
|
||||
1. **Inheritance & information flow**: How is information inherited across our container hierarchy currently? How might this be impacted if complying with the new [inheritance behavior](https://gitlab.com/gitlab-org/gitlab/-/issues/343316) framework?
|
||||
1. **Settings**: Where can settings for this feature be found currently? How will these be impacted by `Namespaces`?
|
||||
1. **Access**: Who can access this feature and is that impacted by the new container structure? Are there any role or privacy considerations?
|
||||
1. **Tier**: Is there any tier functionality that is differentiated by projects and groups?
|
||||
|
|
|
@ -52,7 +52,7 @@ deploy:
|
|||
```
|
||||
|
||||
With this configuration, the safety on the deployments is assured while you
|
||||
can still run `build` jobs concurrently for maximizing the pipeline efficency.
|
||||
can still run `build` jobs concurrently for maximizing the pipeline efficiency.
|
||||
|
||||
## Requirements
|
||||
|
||||
|
|
|
@ -59,8 +59,12 @@ When using the GitLab UI form builder, the following components are available fo
|
|||
NOTE:
|
||||
Currently only the listed components are available but more components are planned.
|
||||
|
||||
<!-- vale gitlab.Spelling = NO -->
|
||||
|
||||
#### gitlab_ui_checkbox_component
|
||||
|
||||
<!-- vale gitlab.Spelling = YES -->
|
||||
|
||||
[GitLab UI Docs](https://gitlab-org.gitlab.io/gitlab-ui/?path=/story/base-form-form-checkbox--default)
|
||||
|
||||
| Argument | Description | Type | Required (default value) |
|
||||
|
@ -73,8 +77,12 @@ Currently only the listed components are available but more components are plann
|
|||
| `unchecked_value` | Value when checkbox is unchecked. | `String` | `false` (`'0'`) |
|
||||
| `label_options` | Options that are passed to [Rails `label` method](https://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-label). | `Hash` | `false` (`{}`) |
|
||||
|
||||
<!-- vale gitlab.Spelling = NO -->
|
||||
|
||||
#### gitlab_ui_radio_component
|
||||
|
||||
<!-- vale gitlab.Spelling = YES -->
|
||||
|
||||
[GitLab UI Docs](https://gitlab-org.gitlab.io/gitlab-ui/?path=/story/base-form-form-radio--default)
|
||||
|
||||
| Argument | Description | Type | Required (default value) |
|
||||
|
|
|
@ -64,7 +64,7 @@ To illustrate how these problems arise, take a look at this example:
|
|||
|
||||
In this example, you can imagine that we are updating by one monthly release. But refer to [How long must code be backwards-compatible?](#how-long-must-code-be-backwards-compatible).
|
||||
|
||||
| Update step | Postgres DB | Web nodes | API nodes | Sidekiq nodes | Compatibility concerns |
|
||||
| Update step | PostgreSQL DB | Web nodes | API nodes | Sidekiq nodes | Compatibility concerns |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| Initial state | 🙂 | 🙂 | 🙂 | 🙂 | |
|
||||
| Ran pre-deployment migrations | 🚢 except post-deploy migrations | 🙂 | 🙂 | 🙂 | Rails code in 🙂 is making DB calls to 🚢 |
|
||||
|
@ -102,7 +102,7 @@ But the problem isn't just that there are many nodes. The bigger problem is that
|
|||
- "Web app nodes": Handle web requests
|
||||
- "API app nodes": Handle API requests
|
||||
- "Sidekiq app nodes": Handle Sidekiq jobs
|
||||
- "Postgres database": Handle internal Postgres calls
|
||||
- "PostgreSQL database": Handle internal PostgreSQL calls
|
||||
- "Redis database": Handle internal Redis calls
|
||||
- "Gitaly nodes": Handle internal Gitaly calls
|
||||
|
||||
|
@ -110,7 +110,7 @@ During an update, there will be [two different versions of GitLab running in dif
|
|||
|
||||
## Doesn't the order of update steps matter?
|
||||
|
||||
Yes! We have specific instructions for [zero-downtime updates](../update/index.md#upgrading-without-downtime) because it allows us to ignore some permutations of compatibility. This is why we don't worry about Rails code making DB calls to an old Postgres database schema.
|
||||
Yes! We have specific instructions for [zero-downtime updates](../update/index.md#upgrading-without-downtime) because it allows us to ignore some permutations of compatibility. This is why we don't worry about Rails code making DB calls to an old PostgreSQL database schema.
|
||||
|
||||
## I've identified a potential backwards compatibility problem, what can I do about it?
|
||||
|
||||
|
|
|
@ -355,7 +355,7 @@ making sure that we read from the replica that is fully caught up.
|
|||
|
||||
FLAG:
|
||||
On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to
|
||||
[disable the feature flag](../administration/feature_flags.md) named preserve_latest_wal_locations_for_idempotent_jobs flag.
|
||||
[disable the feature flag](../administration/feature_flags.md) named `preserve_latest_wal_locations_for_idempotent_jobs`.
|
||||
|
||||
This feature flag is related to GitLab development and is not intended to be used by GitLab administrators, though.
|
||||
On GitLab.com, this feature is available.
|
||||
|
|
|
@ -173,7 +173,7 @@ curl --request POST \
|
|||
The authorization key can be used as the `password`. The `username` is left blank:
|
||||
|
||||
- username: `<blank>`
|
||||
- pasword: authorization_key
|
||||
- password: authorization_key
|
||||
|
||||
```shell
|
||||
curl --request POST \
|
||||
|
|
|
@ -1185,7 +1185,7 @@ A bug exists in versions of the API Fuzzing analyzer prior to v1.6.196 that can
|
|||
|
||||
The version information can be found in the job details for the `apifuzzer_fuzz` job.
|
||||
|
||||
If the issue is occuring with versions v1.6.196 or greater, please contact Support and provide the following information:
|
||||
If the issue is occurring with versions v1.6.196 or greater, please contact Support and provide the following information:
|
||||
|
||||
1. Reference this troubleshooting section and ask for the issue to be escalated to the Dynamic Analysis Team.
|
||||
1. The full console output of the job.
|
||||
|
|
|
@ -36,6 +36,6 @@ Set-Cookie: {cookie_name}=<random secure value>; HttpOnly
|
|||
|
||||
## Links
|
||||
|
||||
- [owasp](https://owasp.org/www-community/HttpOnly)
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/1004.html)
|
||||
- [OWASP](https://owasp.org/www-community/HttpOnly)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/1004.html)
|
||||
- [Mozilla MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies)
|
||||
|
|
|
@ -29,5 +29,5 @@ header to disable user agents from mis-interpreting resources.
|
|||
|
||||
## Links
|
||||
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [Mozilla Blog on MIME Confusion attacks](https://blog.mozilla.org/security/2016/08/26/mitigating-mime-confusion-attacks-in-firefox/)
|
||||
|
|
|
@ -31,5 +31,5 @@ information from the `X-Powered-By` header.
|
|||
|
||||
## Links
|
||||
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [PHP expose_php](https://www.php.net/manual/en/ini.core.php#ini.expose-php)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [PHP `expose_php`](https://www.php.net/manual/en/ini.core.php#ini.expose-php)
|
||||
|
|
|
@ -25,4 +25,4 @@ Consult your proxy/load balancer documentation or provider on how to disable rev
|
|||
|
||||
## Links
|
||||
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/16.html)
|
||||
|
|
|
@ -26,5 +26,5 @@ section of the `Web.config` file.
|
|||
|
||||
## Links
|
||||
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [IIS Remove Unwanted Headers](https://techcommunity.microsoft.com/t5/iis-support-blog/remove-unwanted-http-response-headers/ba-p/369710)
|
||||
|
|
|
@ -33,5 +33,5 @@ protected void Application_Start()
|
|||
|
||||
## Links
|
||||
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/16.html)
|
||||
- [IIS Remove Unwanted Headers](https://techcommunity.microsoft.com/t5/iis-support-blog/remove-unwanted-http-response-headers/ba-p/369710)
|
||||
|
|
|
@ -36,5 +36,5 @@ Set-Cookie: {cookie_name}=<random secure value>; Secure
|
|||
## Links
|
||||
|
||||
- [owasp](https://owasp.org/www-community/controls/SecureCookieAttribute)
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/614.html)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/614.html)
|
||||
- [Mozilla MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies)
|
||||
|
|
|
@ -30,7 +30,7 @@ misinterpreted.
|
|||
|
||||
## Links
|
||||
|
||||
- [owasp](https://owasp.org/www-project-secure-headers/#x-content-type-options)
|
||||
- [cwe](https://cwe.mitre.org/data/definitions/693.html)
|
||||
- [OWASP](https://owasp.org/www-project-secure-headers/#x-content-type-options)
|
||||
- [CWE](https://cwe.mitre.org/data/definitions/693.html)
|
||||
- [Mozilla Blog on MIME Confusion attacks](https://blog.mozilla.org/security/2016/08/26/mitigating-mime-confusion-attacks-in-firefox/)
|
||||
- [Mozilla MDN on X-Content-Type-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options)
|
||||
|
|
|
@ -1027,7 +1027,7 @@ The on-demand DAST scan runs, and the project's dashboard shows the results.
|
|||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.3. [Deployed behind the `dast_on_demand_scans_scheduler` flag](../../../administration/feature_flags.md), disabled by default.
|
||||
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.4.
|
||||
> - [Enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.4.
|
||||
> - [Feature flag dast_on_demand_scans_scheduler removed](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.5.
|
||||
> - [Feature flag `dast_on_demand_scans_scheduler` removed](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.5.
|
||||
|
||||
To schedule a scan:
|
||||
|
||||
|
|
|
@ -1138,7 +1138,7 @@ A bug exists in versions of the DAST API analyzer prior to v1.6.196 that can cau
|
|||
|
||||
The version information can be found in the job details for the `dast_api` job.
|
||||
|
||||
If the issue is occuring with versions v1.6.196 or greater, please contact Support and provide the following information:
|
||||
If the issue is occurring with versions v1.6.196 or greater, please contact Support and provide the following information:
|
||||
|
||||
1. Reference this troubleshooting section and ask for the issue to be escalated to the Dynamic Analysis Team.
|
||||
1. The full console output of the job.
|
||||
|
|
|
@ -82,4 +82,4 @@ You can download your project's list of dependencies and their details in JSON f
|
|||
|
||||
### Using the API
|
||||
|
||||
You can download your project's list of dependencies [using the API](../../../api/dependencies.md#list-project-dependencies). Note this only provides the dependencies identified by the gemnasium family of analyzers and [not any other of the GitLab dependency analyzers](../dependency_scanning/analyzers.md).
|
||||
You can download your project's list of dependencies [using the API](../../../api/dependencies.md#list-project-dependencies). Note this only provides the dependencies identified by the Gemnasium family of analyzers and [not any other of the GitLab dependency analyzers](../dependency_scanning/analyzers.md).
|
||||
|
|
|
@ -283,10 +283,10 @@ table.supported-languages ul {
|
|||
|
||||
GitLab analyzers obtain dependency information using one of the following two methods:
|
||||
|
||||
1. [Parsing lockfiles directly.](#obtaining-dependendency-information-by-parsing-lockfiles)
|
||||
1. [Running a package manager or build tool to generate a dependency information file which is then parsed.](#obtaining-dependendency-information-by-running-a-package-manager-to-generate-a-parsable-file)
|
||||
1. [Parsing lockfiles directly.](#obtaining-dependency-information-by-parsing-lockfiles)
|
||||
1. [Running a package manager or build tool to generate a dependency information file which is then parsed.](#obtaining-dependency-information-by-running-a-package-manager-to-generate-a-parsable-file)
|
||||
|
||||
#### Obtaining dependendency information by parsing lockfiles
|
||||
#### Obtaining dependency information by parsing lockfiles
|
||||
|
||||
The following package managers use lockfiles that GitLab analyzers are capable of parsing directly:
|
||||
|
||||
|
@ -300,7 +300,7 @@ The following package managers use lockfiles that GitLab analyzers are capable o
|
|||
| npm | v1, v2 | [6.x](https://gitlab.com/gitlab-org/security-products/tests/js-npm/-/blob/master/package-lock.json#L4), [7.x](https://gitlab.com/gitlab-org/security-products/tests/js-npm/-/blob/lockfile-v2-FREEZE/package-lock.json#L4) |
|
||||
| yarn | v1 | [1.x](https://gitlab.com/gitlab-org/security-products/tests/js-yarn/-/blob/master/yarn.lock) |
|
||||
|
||||
#### Obtaining dependendency information by running a package manager to generate a parsable file
|
||||
#### Obtaining dependency information by running a package manager to generate a parsable file
|
||||
|
||||
To support the following package managers, the GitLab analyzers proceed in two steps:
|
||||
|
||||
|
@ -374,7 +374,7 @@ We only execute one build in the directory where a build file has been detected,
|
|||
Please note, we support the following types of Java project structures:
|
||||
|
||||
- [multi-project sbt builds](https://www.scala-sbt.org/1.x/docs/Multi-Project.html)
|
||||
- [multi-project gradle builds](https://docs.gradle.org/current/userguide/intro_multi_project_builds.html)
|
||||
- [multi-project Gradle builds](https://docs.gradle.org/current/userguide/intro_multi_project_builds.html)
|
||||
- [multi-module maven projects](https://maven.apache.org/pom.html#Aggregation)
|
||||
|
||||
#### JavaScript
|
||||
|
@ -600,7 +600,7 @@ The dependency scanning tool emits a JSON report file. For more information, see
|
|||
|
||||
Here's an example dependency scanning report:
|
||||
|
||||
```json-doc
|
||||
```json
|
||||
{
|
||||
"version": "2.0",
|
||||
"vulnerabilities": [
|
||||
|
@ -713,7 +713,7 @@ Please check the [Release Process documentation](https://gitlab.com/gitlab-org/s
|
|||
|
||||
## Contributing to the vulnerability database
|
||||
|
||||
You can search the [gemnasium-db](https://gitlab.com/gitlab-org/security-products/gemnasium-db) project
|
||||
You can search the [`gemnasium-db`](https://gitlab.com/gitlab-org/security-products/gemnasium-db) project
|
||||
to find a vulnerability in the Gemnasium database.
|
||||
You can also [submit new vulnerabilities](https://gitlab.com/gitlab-org/security-products/gemnasium-db/blob/master/CONTRIBUTING.md).
|
||||
|
||||
|
@ -785,7 +785,7 @@ Support for custom certificate authorities was introduced in the following versi
|
|||
Add the following configuration to your `.gitlab-ci.yml` file. You must change the value of
|
||||
`SECURE_ANALYZERS_PREFIX` to refer to your local Docker container registry. You must also change the
|
||||
value of `GEMNASIUM_DB_REMOTE_URL` to the location of your offline Git copy of the
|
||||
[gemnasium-db advisory database](https://gitlab.com/gitlab-org/security-products/gemnasium-db/):
|
||||
[`gemnasium-db` advisory database](https://gitlab.com/gitlab-org/security-products/gemnasium-db/):
|
||||
|
||||
```yaml
|
||||
include:
|
||||
|
|
|
@ -32,14 +32,14 @@ GitLab IaC scanning supports a variety of IaC configuration files. Our IaC secur
|
|||
|
||||
| Configuration File Type | Scan tool | Introduced in GitLab Version |
|
||||
|------------------------------------------|----------------------------------|-------------------------------|
|
||||
| Ansible | [kics](https://kics.io/) | 14.5 |
|
||||
| AWS CloudFormation | [kics](https://kics.io/) | 14.5 |
|
||||
| Kubernetes | [kics](https://kics.io/) | 14.5 |
|
||||
| Terraform | [kics](https://kics.io/) | 14.5 |
|
||||
| Ansible | [KICS](https://kics.io/) | 14.5 |
|
||||
| AWS CloudFormation | [KICS](https://kics.io/) | 14.5 |
|
||||
| Kubernetes | [KICS](https://kics.io/) | 14.5 |
|
||||
| Terraform | [KICS](https://kics.io/) | 14.5 |
|
||||
|
||||
### Making IaC analyzers available to all GitLab tiers
|
||||
|
||||
All open source (OSS) analyzers are availibile with the GitLab Free tier. Future propietary analyzers may be restricted to higher tiers.
|
||||
All open source (OSS) analyzers are available with the GitLab Free tier. Future proprietary analyzers may be restricted to higher tiers.
|
||||
|
||||
#### Summary of features per tier
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ GitLab uses the following tools to scan and report known vulnerabilities found i
|
|||
| [Secret Detection](secret_detection/index.md) | Analyze Git history for leaked secrets. |
|
||||
| [Security Dashboard](security_dashboard/index.md) | View vulnerabilities in all your projects and groups. |
|
||||
| [Static Application Security Testing (SAST)](sast/index.md) | Analyze source code for known vulnerabilities. |
|
||||
| [Infrastructure as Code (IaC) Scanning](iac_scanning/index.md) | Analyze your IaC coniguration files for known vulnerabilities. |
|
||||
| [Infrastructure as Code (IaC) Scanning](iac_scanning/index.md) | Analyze your IaC configuration files for known vulnerabilities. |
|
||||
| [Coverage fuzzing](coverage_fuzzing/index.md) | Find unknown bugs and vulnerabilities with coverage-guided fuzzing. |
|
||||
| [Cluster Image Scanning](cluster_image_scanning/index.md) | Scan Kubernetes clusters for known vulnerabilities. |
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
> - [Deprecated](https://gitlab.com/groups/gitlab-org/configure/-/epics/8) in GitLab 14.5.
|
||||
|
||||
WARNING:
|
||||
This feature was deprecated in GitLab 14.5. Use [Infrastrucure as Code](../../infrastructure/iac/index.md#create-a-new-cluster-through-iac)
|
||||
This feature was deprecated in GitLab 14.5. Use [Infrastructure as Code](../../infrastructure/iac/index.md#create-a-new-cluster-through-iac)
|
||||
to create new clusters.
|
||||
|
||||
Through GitLab, you can create new clusters and add existing clusters hosted on Amazon Elastic
|
||||
|
|
|
@ -10,7 +10,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
WARNING:
|
||||
This feature was [deprecated](https://gitlab.com/groups/gitlab-org/configure/-/epics/8) in GitLab 14.5.
|
||||
Use [Infrastrucure as Code](../../infrastructure/clusters/connect/new_gke_cluster.md)
|
||||
Use [Infrastructure as Code](../../infrastructure/clusters/connect/new_gke_cluster.md)
|
||||
to create a cluster hosted on Google Kubernetes Engine (GKE).
|
||||
|
||||
Through GitLab, you can create new and connect existing clusters
|
||||
|
|
|
@ -67,7 +67,7 @@ associated Pages domain. GitLab also renews it automatically.
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/30146) in GitLab 13.0.
|
||||
|
||||
If you get an error **Something went wrong while obtaining the Let's Encrypt certificate**, first, make sure that your pages site is set to "Everyone" in your project's **Settings > General > Visbility**. This allows the Let's Encrypt Servers reach your pages site. Once this is confirmed, you can try obtaining the certificate again by following these steps:
|
||||
If you get an error **Something went wrong while obtaining the Let's Encrypt certificate**, first, make sure that your pages site is set to "Everyone" in your project's **Settings > General > Visibility**. This allows the Let's Encrypt Servers reach your pages site. Once this is confirmed, you can try obtaining the certificate again by following these steps:
|
||||
|
||||
1. Go to your project's **Settings > Pages**.
|
||||
1. Click **Edit** on your domain.
|
||||
|
|
|
@ -795,7 +795,7 @@ You can copy the example project to your own group or instance for testing. More
|
|||
|
||||
### Getting `403 Forbidden` or `Something went wrong while creating a new release` errors when creating, updating or deleting releases and their assets
|
||||
|
||||
If the release is associted with a [protected tag](../protected_tags.md),
|
||||
If the release is associated with a [protected tag](../protected_tags.md),
|
||||
the UI/API request might result in an authorization failure.
|
||||
Make sure that the user or a service/bot account is allowed to
|
||||
[create the protected tag](../protected_tags.md#configuring-protected-tags) too.
|
||||
|
|
|
@ -64,7 +64,7 @@ For the bot:
|
|||
- The username is set to `project_{project_id}_bot` for the first access token, such as `project_123_bot`.
|
||||
- The email is set to `project{project_id}_bot@example.com`, for example `project123_bot@example.com`.
|
||||
- For additional access tokens in the same project, the username is set to `project_{project_id}_bot{bot_count}`, for example `project_123_bot1`.
|
||||
- For additional acess tokens in the same project, the email is set to `project{project_id}_bot{bot_count}@example.com`, for example `project123_bot1@example.com`
|
||||
- For additional access tokens in the same project, the email is set to `project{project_id}_bot{bot_count}@example.com`, for example `project123_bot1@example.com`
|
||||
|
||||
API calls made with a project access token are associated with the corresponding bot user.
|
||||
|
||||
|
|
|
@ -2993,6 +2993,9 @@ msgstr ""
|
|||
msgid "After it expires, you can't use merge approvals, epics, or many security features."
|
||||
msgstr ""
|
||||
|
||||
msgid "After the export is complete, download the data file from a notification email or from this page. You can then import the data file from the %{strong_text_start}Create new group%{strong_text_end} page of another GitLab instance."
|
||||
msgstr ""
|
||||
|
||||
msgid "After you've reviewed these contribution guidelines, you'll be all set to"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5633,7 +5636,7 @@ msgstr ""
|
|||
msgid "Boards"
|
||||
msgstr ""
|
||||
|
||||
msgid "Boards and Board Lists"
|
||||
msgid "Boards and board lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Boards|+ %{displayedIssuablesCount} more %{issuableType}"
|
||||
|
@ -14259,7 +14262,7 @@ msgstr ""
|
|||
msgid "Export requirements"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export this group with all related data to a new GitLab instance. Once complete, you can import the data file from the \"New Group\" page."
|
||||
msgid "Export this group with all related data."
|
||||
msgstr ""
|
||||
|
||||
msgid "Export this project with all its related data in order to move it to a new GitLab instance. When the exported file is ready, you can download it from this page or from the download link in the email notification you will receive. You can then import it when creating a new project. %{link_start}Learn more.%{link_end}"
|
||||
|
@ -16440,9 +16443,6 @@ msgstr ""
|
|||
msgid "Group URL"
|
||||
msgstr ""
|
||||
|
||||
msgid "Group Wikis"
|
||||
msgstr ""
|
||||
|
||||
msgid "Group application: %{name}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -16569,6 +16569,9 @@ msgstr ""
|
|||
msgid "Group was successfully updated."
|
||||
msgstr ""
|
||||
|
||||
msgid "Group wikis"
|
||||
msgstr ""
|
||||
|
||||
msgid "Group: %{group_name}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -16842,7 +16845,7 @@ msgstr ""
|
|||
msgid "GroupSettings|Badges"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended %{side_effects_link_start}side effects%{side_effects_link_end}."
|
||||
msgid "GroupSettings|Be careful. Changing a group's parent can have unintended side effects. %{learn_more_link_start}Learn more.%{learn_more_link_end}"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
|
||||
|
@ -16851,7 +16854,7 @@ msgstr ""
|
|||
msgid "GroupSettings|Change group URL"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Changing group URL can have unintended side effects."
|
||||
msgid "GroupSettings|Changing a group's URL can have unintended side effects."
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Compliance frameworks"
|
||||
|
@ -16893,6 +16896,9 @@ msgstr ""
|
|||
msgid "GroupSettings|Overrides user notification preferences for all members of the group, subgroups, and projects."
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Parent Group"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Pipeline settings was updated for the group"
|
||||
msgstr ""
|
||||
|
||||
|
@ -16920,12 +16926,18 @@ msgstr ""
|
|||
msgid "GroupSettings|Projects will be permanently deleted after a %{waiting_period}-day delay. This delay can be %{link_start}customized by an admin%{link_end} in instance settings. Inherited by subgroups."
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Search groups"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Select a project with the %{code_start}.gitlab/insights.yml%{code_end} file"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Select a subgroup to use as the source for custom project templates for this group."
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Select parent group"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Select the project that contains your custom Insights file."
|
||||
msgstr ""
|
||||
|
||||
|
@ -24409,9 +24421,6 @@ msgstr ""
|
|||
msgid "Once removed, the fork relationship cannot be restored. This project will no longer be able to receive or send merge requests to the source project or other forks."
|
||||
msgstr ""
|
||||
|
||||
msgid "Once the exported file is ready, you will receive a notification email with a download link, or you can download it from this page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Once you confirm and press \"Reduce project visibility\":"
|
||||
msgstr ""
|
||||
|
||||
|
@ -34811,9 +34820,6 @@ msgstr ""
|
|||
msgid "The group and its projects can only be viewed by members."
|
||||
msgstr ""
|
||||
|
||||
msgid "The group can be fully restored"
|
||||
msgstr ""
|
||||
|
||||
msgid "The group export can be downloaded from:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -34823,9 +34829,6 @@ msgstr ""
|
|||
msgid "The group settings for %{group_links} require you to enable Two-Factor Authentication for your account. You can %{leave_group_links}."
|
||||
msgstr ""
|
||||
|
||||
msgid "The group will be placed in 'pending deletion' state"
|
||||
msgstr ""
|
||||
|
||||
msgid "The group_project_ids parameter is only allowed for a group"
|
||||
msgstr ""
|
||||
|
||||
|
@ -35654,6 +35657,9 @@ msgstr ""
|
|||
msgid "This group"
|
||||
msgstr ""
|
||||
|
||||
msgid "This group and its subgroups and projects will be placed in a 'pending deletion' state for %{deletion_adjourned_period} days, then permanently deleted on %{date}. The group can be fully restored before that date."
|
||||
msgstr ""
|
||||
|
||||
msgid "This group can't be removed because it is linked to a subscription. To remove this group, %{linkStart}link the subscription%{linkEnd} with a different group."
|
||||
msgstr ""
|
||||
|
||||
|
@ -36771,6 +36777,9 @@ msgstr ""
|
|||
msgid "Transfer"
|
||||
msgstr ""
|
||||
|
||||
msgid "Transfer group to another parent group."
|
||||
msgstr ""
|
||||
|
||||
msgid "Transfer ownership"
|
||||
msgstr ""
|
||||
|
||||
|
@ -37556,9 +37565,6 @@ msgstr ""
|
|||
msgid "Uploading changes to terminal"
|
||||
msgstr ""
|
||||
|
||||
msgid "Upon performing this action, the contents of this group, its subgroup and projects will be permanently deleted after %{deletion_adjourned_period} days on %{date}. Until that time:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Upstream"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -177,11 +177,11 @@ RSpec.describe 'User adds pages domain', :js do
|
|||
expect(domain.key).to be_nil
|
||||
end
|
||||
|
||||
it 'shows the DNS CNAME record' do
|
||||
it 'shows the DNS ALIAS record' do
|
||||
visit project_pages_path(project)
|
||||
|
||||
within('#content-body') { click_link 'Edit' }
|
||||
expect(page).to have_field :domain_dns, with: "#{domain.domain} CNAME #{domain.project.pages_subdomain}.#{Settings.pages.host}."
|
||||
expect(page).to have_field :domain_dns, with: "#{domain.domain} ALIAS #{domain.project.pages_subdomain}.#{Settings.pages.host}."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -204,38 +204,26 @@ RSpec.describe Ci::Runner do
|
|||
end
|
||||
|
||||
describe '.belonging_to_parent_group_of_project' do
|
||||
shared_examples 'returns parent group project runners' do
|
||||
let(:project) { create(:project, group: group) }
|
||||
let(:group) { create(:group) }
|
||||
let(:runner) { create(:ci_runner, :group, groups: [group]) }
|
||||
let!(:unrelated_group) { create(:group) }
|
||||
let!(:unrelated_project) { create(:project, group: unrelated_group) }
|
||||
let!(:unrelated_runner) { create(:ci_runner, :group, groups: [unrelated_group]) }
|
||||
let(:project) { create(:project, group: group) }
|
||||
let(:group) { create(:group) }
|
||||
let(:runner) { create(:ci_runner, :group, groups: [group]) }
|
||||
let!(:unrelated_group) { create(:group) }
|
||||
let!(:unrelated_project) { create(:project, group: unrelated_group) }
|
||||
let!(:unrelated_runner) { create(:ci_runner, :group, groups: [unrelated_group]) }
|
||||
|
||||
it 'returns the specific group runner' do
|
||||
expect(described_class.belonging_to_parent_group_of_project(project.id)).to contain_exactly(runner)
|
||||
end
|
||||
|
||||
context 'with a parent group with a runner' do
|
||||
let(:runner) { create(:ci_runner, :group, groups: [parent_group]) }
|
||||
let(:project) { create(:project, group: group) }
|
||||
let(:group) { create(:group, parent: parent_group) }
|
||||
let(:parent_group) { create(:group) }
|
||||
|
||||
it 'returns the group runner from the parent group' do
|
||||
expect(described_class.belonging_to_parent_group_of_project(project.id)).to contain_exactly(runner)
|
||||
end
|
||||
end
|
||||
it 'returns the specific group runner' do
|
||||
expect(described_class.belonging_to_parent_group_of_project(project.id)).to contain_exactly(runner)
|
||||
end
|
||||
|
||||
it_behaves_like 'returns parent group project runners'
|
||||
context 'with a parent group with a runner' do
|
||||
let(:runner) { create(:ci_runner, :group, groups: [parent_group]) }
|
||||
let(:project) { create(:project, group: group) }
|
||||
let(:group) { create(:group, parent: parent_group) }
|
||||
let(:parent_group) { create(:group) }
|
||||
|
||||
context 'when feature flag :linear_runner_ancestor_scopes is disabled' do
|
||||
before do
|
||||
stub_feature_flags(linear_runner_ancestor_scopes: false)
|
||||
it 'returns the group runner from the parent group' do
|
||||
expect(described_class.belonging_to_parent_group_of_project(project.id)).to contain_exactly(runner)
|
||||
end
|
||||
|
||||
it_behaves_like 'returns parent group project runners'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue