Add latest changes from gitlab-org/gitlab@master
|
|
@ -3,34 +3,32 @@ import { convertToSnakeCase } from '~/lib/utils/text_utility';
|
|||
|
||||
export default class FormErrorTracker {
|
||||
constructor() {
|
||||
this.elements = document.querySelectorAll('.js-track-error');
|
||||
this.elements = [
|
||||
...document.querySelectorAll('.js-track-error'),
|
||||
// https://gitlab.com/gitlab-org/gitlab/-/issues/494329 to revert this additional
|
||||
// class when blocker is implemented
|
||||
...Array.from(document.querySelectorAll('.js-track-error-gl-select')).map(
|
||||
(select) => select.firstElementChild,
|
||||
),
|
||||
];
|
||||
|
||||
this.trackErrorOnChange = FormErrorTracker.trackErrorOnChange.bind(this);
|
||||
this.trackErrorOnEmptyField = FormErrorTracker.trackErrorOnEmptyField.bind(this);
|
||||
|
||||
this.elements.forEach((element) => {
|
||||
// https://gitlab.com/gitlab-org/gitlab/-/issues/494329 to revert this condition when
|
||||
// blocker is implemented
|
||||
const actionItem = element.hasChildNodes() ? element.firstElementChild : element;
|
||||
// on item change
|
||||
element.addEventListener('input', this.trackErrorOnChange);
|
||||
|
||||
if (actionItem) {
|
||||
// on item change
|
||||
actionItem.addEventListener('input', this.trackErrorOnChange);
|
||||
|
||||
// on invalid item - adding separately to track submit click without
|
||||
// changing any field
|
||||
actionItem.addEventListener('invalid', this.trackErrorOnEmptyField);
|
||||
}
|
||||
// on invalid item - adding separately to track submit click without
|
||||
// changing any field
|
||||
element.addEventListener('invalid', this.trackErrorOnEmptyField);
|
||||
});
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this.elements.forEach((element) => {
|
||||
const actionItem = element.hasChildNodes() ? element.firstElementChild : element;
|
||||
|
||||
if (actionItem) {
|
||||
actionItem.removeEventListener('input', this.trackErrorOnChange);
|
||||
actionItem.removeEventListener('invalid', this.trackErrorOnEmptyField);
|
||||
}
|
||||
element.removeEventListener('input', this.trackErrorOnChange);
|
||||
element.removeEventListener('invalid', this.trackErrorOnEmptyField);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class Admin::ImpersonationTokensController < Admin::ApplicationController
|
|||
end
|
||||
|
||||
def finder(options = {})
|
||||
PersonalAccessTokensFinder.new({ user: user, impersonation: true }.merge(options))
|
||||
PersonalAccessTokensFinder.new({ user: user, impersonation: true, organization: Current.organization }.merge(options))
|
||||
end
|
||||
|
||||
def active_impersonation_tokens
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ class Import::GithubController < Import::BaseController
|
|||
session[access_token_key] = nil
|
||||
docs_link = helpers.link_to(
|
||||
'',
|
||||
help_page_url('user/project/import/github', anchor: 'use-a-github-personal-access-token'),
|
||||
help_page_url('user/project/import/github.md', anchor: 'use-a-github-personal-access-token'),
|
||||
target: '_blank',
|
||||
rel: 'noopener noreferrer'
|
||||
)
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class JiraConnect::AppDescriptorController < JiraConnect::ApplicationController
|
|||
url: 'https://gitlab.com'
|
||||
},
|
||||
links: {
|
||||
documentation: help_page_url('integration/jira_development_panel', anchor: 'gitlabcom-1')
|
||||
documentation: help_page_url('integration/jira_development_panel.md', anchor: 'gitlabcom-1')
|
||||
},
|
||||
authentication: {
|
||||
type: 'jwt'
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ class JwtController < ApplicationController
|
|||
|
||||
def render_access_denied
|
||||
help_page = help_page_url(
|
||||
'user/profile/account/two_factor_authentication',
|
||||
'user/profile/account/two_factor_authentication.md',
|
||||
anchor: 'troubleshooting'
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class MetricsController < BaseActionController
|
|||
metrics_service.metrics_text
|
||||
else
|
||||
help_page = help_page_url(
|
||||
'administration/monitoring/prometheus/gitlab_metrics',
|
||||
'administration/monitoring/prometheus/gitlab_metrics.md',
|
||||
anchor: 'gitlab-prometheus-metrics'
|
||||
)
|
||||
"# Metrics are disabled, see: #{help_page}\n"
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ module Repositories
|
|||
|
||||
def render_access_denied
|
||||
help_page = help_page_url(
|
||||
'topics/git/troubleshooting_git',
|
||||
'topics/git/troubleshooting_git.md',
|
||||
anchor: 'error-on-git-fetch-http-basic-access-denied'
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module Emails
|
|||
@token = token
|
||||
@expires_in_minutes = Users::EmailVerification::ValidateTokenService::TOKEN_VALID_FOR_MINUTES
|
||||
@password_link = edit_user_settings_password_url
|
||||
@two_fa_link = help_page_url('user/profile/account/two_factor_authentication')
|
||||
@two_fa_link = help_page_url('user/profile/account/two_factor_authentication.md')
|
||||
|
||||
headers = {
|
||||
to: email,
|
||||
|
|
|
|||
|
|
@ -73,11 +73,11 @@ class IssueEntity < IssuableEntity
|
|||
end
|
||||
|
||||
expose :confidential_issues_docs_path, if: ->(issue) { issue.confidential? } do |issue|
|
||||
help_page_path('user/project/issues/confidential_issues')
|
||||
help_page_path('user/project/issues/confidential_issues.md')
|
||||
end
|
||||
|
||||
expose :locked_discussion_docs_path, if: ->(issue) { issue.discussion_locked? } do |issue|
|
||||
help_page_path('user/discussions/index', anchor: 'prevent-comments-by-locking-an-issue')
|
||||
help_page_path('user/discussions/index.md', anchor: 'prevent-comments-by-locking-an-issue')
|
||||
end
|
||||
|
||||
expose :is_project_archived do |issue|
|
||||
|
|
@ -85,7 +85,7 @@ class IssueEntity < IssuableEntity
|
|||
end
|
||||
|
||||
expose :archived_project_docs_path, if: ->(issue) { issue.project.archived? } do |issue|
|
||||
help_page_path('user/project/settings/index', anchor: 'archive-a-project')
|
||||
help_page_path('user/project/settings/index.md', anchor: 'archive-a-project')
|
||||
end
|
||||
|
||||
expose :issue_email_participants do |issue|
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ class MergeRequestNoteableEntity < IssuableEntity
|
|||
end
|
||||
|
||||
expose :locked_discussion_docs_path, if: ->(merge_request) { merge_request.discussion_locked? } do |merge_request|
|
||||
help_page_path('user/discussions/index', anchor: 'prevent-comments-by-locking-an-issue')
|
||||
help_page_path('user/discussions/index.md', anchor: 'prevent-comments-by-locking-an-issue')
|
||||
end
|
||||
|
||||
expose :is_project_archived do |merge_request|
|
||||
|
|
@ -66,7 +66,7 @@ class MergeRequestNoteableEntity < IssuableEntity
|
|||
expose :project_id
|
||||
|
||||
expose :archived_project_docs_path, if: ->(merge_request) { merge_request.project.archived? } do |merge_request|
|
||||
help_page_path('user/project/settings/index', anchor: 'archive-a-project')
|
||||
help_page_path('user/project/settings/index.md', anchor: 'archive-a-project')
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
|||
|
|
@ -48,15 +48,15 @@ class MergeRequestWidgetEntity < Grape::Entity
|
|||
end
|
||||
|
||||
expose :conflicts_docs_path do |merge_request|
|
||||
help_page_path('user/project/merge_requests/conflicts')
|
||||
help_page_path('user/project/merge_requests/conflicts.md')
|
||||
end
|
||||
|
||||
expose :reviewing_and_managing_merge_requests_docs_path do |merge_request|
|
||||
help_page_path('user/project/merge_requests/merge_request_troubleshooting', anchor: "check-out-merge-requests-locally-through-the-head-ref")
|
||||
help_page_path('user/project/merge_requests/merge_request_troubleshooting.md', anchor: "check-out-merge-requests-locally-through-the-head-ref")
|
||||
end
|
||||
|
||||
expose :merge_request_pipelines_docs_path do |merge_request|
|
||||
help_page_path('ci/pipelines/merge_request_pipelines')
|
||||
help_page_path('ci/pipelines/merge_request_pipelines.md')
|
||||
end
|
||||
|
||||
expose :ci_environments_status_path do |merge_request|
|
||||
|
|
@ -129,7 +129,7 @@ class MergeRequestWidgetEntity < Grape::Entity
|
|||
end
|
||||
|
||||
expose :security_reports_docs_path do |merge_request|
|
||||
help_page_path('user/application_security/index', anchor: 'view-security-scan-information-in-merge-requests')
|
||||
help_page_path('user/application_security/index.md', anchor: 'view-security-scan-information-in-merge-requests')
|
||||
end
|
||||
|
||||
expose :enabled_reports do |merge_request|
|
||||
|
|
|
|||
|
|
@ -63,12 +63,12 @@ module Jira
|
|||
end
|
||||
|
||||
def auth_docs_link_start
|
||||
auth_docs_link_url = Rails.application.routes.url_helpers.help_page_path('integration/jira/index', anchor: 'authentication-in-jira')
|
||||
auth_docs_link_url = Rails.application.routes.url_helpers.help_page_path('integration/jira/index.md', anchor: 'authentication-in-jira')
|
||||
link_start(auth_docs_link_url)
|
||||
end
|
||||
|
||||
def config_docs_link_start
|
||||
config_docs_link_url = Rails.application.routes.url_helpers.help_page_path('integration/jira/configure')
|
||||
config_docs_link_url = Rails.application.routes.url_helpers.help_page_path('integration/jira/configure.md')
|
||||
link_start(config_docs_link_url)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ module Projects
|
|||
end
|
||||
|
||||
def ambiguous_head_documentation_link
|
||||
url = Rails.application.routes.url_helpers.help_page_path('user/project/repository/branches/index', anchor: 'error-ambiguous-head-branch-exists')
|
||||
url = Rails.application.routes.url_helpers.help_page_path('user/project/repository/branches/index.md', anchor: 'error-ambiguous-head-branch-exists')
|
||||
|
||||
format('<a href="%{url}" target="_blank" rel="noopener noreferrer">', url: url)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -38,10 +38,10 @@
|
|||
label_options: { class: 'label-bold' }
|
||||
.form-group
|
||||
= f.label :throttle_authenticated_api_requests_per_period, _('Maximum authenticated API requests per rate limit period per user'), class: 'label-bold'
|
||||
= f.number_field :throttle_authenticated_api_requests_per_period, class: 'form-control gl-form-input'
|
||||
= f.number_field :throttle_authenticated_api_requests_per_period, class: 'form-control gl-form-input', data: { testid: 'throttle-authenticated-api-requests-per-user' }
|
||||
.form-group
|
||||
= f.label :throttle_authenticated_api_period_in_seconds, _('Authenticated API rate limit period in seconds'), class: 'label-bold'
|
||||
= f.number_field :throttle_authenticated_api_period_in_seconds, class: 'form-control gl-form-input'
|
||||
= f.number_field :throttle_authenticated_api_period_in_seconds, class: 'form-control gl-form-input', data: { testid: 'throttle-authenticated-api-requests-per-seconds' }
|
||||
|
||||
%fieldset
|
||||
.form-group
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
<% reassigned_by_name = reassigned_by.name %>
|
||||
<% reassigned_by_username = "#{reassigned_by.to_reference} - #{user_url(reassigned_by)}" %>
|
||||
<% destination_group = "#{@source_user.namespace.name} (/#{@source_user.namespace.full_path})" %>
|
||||
<% help_link = help_page_url('user/project/import/index', anchor: 'accept-contribution-reassignment') %>
|
||||
<% report_link = help_page_url('user/report_abuse') %>
|
||||
<% help_link = help_page_url('user/project/import/index.md', anchor: 'accept-contribution-reassignment') %>
|
||||
<% report_link = help_page_url('user/report_abuse.md') %>
|
||||
<%= s_('UserMapping|%{reassigned_by_name} (%{reassigned_by_username}) wants to reassign contributions made by %{source_name} (%{source_username}) on %{source_hostname} to you in %{destination_group}.') % { reassigned_by_name: reassigned_by_name,
|
||||
reassigned_by_username: reassigned_by_username,
|
||||
source_name: source_name,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<%= _("To ensure %{project_name} is unscheduled for deletion, check that activity has been logged by GitLab. For example:") % { project_name: @project.name } %>
|
||||
|
||||
<%= _("- Go to the Activity page for %{project_name}.") % { project_name: @project.name } %>
|
||||
<%= _("- View the last_activity_at attribute for %{project_name} using the Project API %{projects_api_link}.") % { project_name: @project.name, projects_api_link: help_page_url('api/projects') } %>
|
||||
<%= _("- List the visible events for %{project_name} using the Events API %{events_api_link}.") % { project_name: @project.name, events_api_link: help_page_url('api/events', anchor: 'list-a-projects-visible-events') } %>
|
||||
<%= _("- View the last_activity_at attribute for %{project_name} using the Project API %{projects_api_link}.") % { project_name: @project.name, projects_api_link: help_page_url('api/projects.md') } %>
|
||||
<%= _("- List the visible events for %{project_name} using the Events API %{events_api_link}.") % { project_name: @project.name, events_api_link: help_page_url('api/events.md', anchor: 'list-a-projects-visible-events') } %>
|
||||
|
||||
<%= _("This email supersedes any previous emails about scheduled deletion you may have received for %{project_name}.") % { project_name: @project.name } %>
|
||||
|
|
|
|||
|
|
@ -273,8 +273,16 @@ module Gitlab
|
|||
|
||||
def query_and_release(...)
|
||||
if low_timeout_for_host_queries?
|
||||
Gitlab::Database::LoadBalancing::Logger.info(
|
||||
event: :host_query_low_statement_timeout,
|
||||
message: "Using low statement timeout code path for host query"
|
||||
)
|
||||
query_and_release_fast_timeout(...)
|
||||
else
|
||||
Gitlab::Database::LoadBalancing::Logger.info(
|
||||
event: :host_query_high_statement_timeout,
|
||||
message: "Using high statement timeout code path for host query"
|
||||
)
|
||||
query_and_release_old(...)
|
||||
end
|
||||
end
|
||||
|
|
@ -328,7 +336,7 @@ module Gitlab
|
|||
end
|
||||
|
||||
def low_timeout_for_host_queries?
|
||||
Feature.enabled?(:load_balancer_low_statement_timeout)
|
||||
Feature.enabled?(:load_balancer_low_statement_timeout, Feature.current_pod)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
"@gitlab/fonts": "^1.3.0",
|
||||
"@gitlab/query-language": "^0.0.5-a-20241003",
|
||||
"@gitlab/svgs": "3.117.0",
|
||||
"@gitlab/ui": "95.1.1",
|
||||
"@gitlab/ui": "95.2.0",
|
||||
"@gitlab/web-ide": "^0.0.1-dev-20240909013227",
|
||||
"@mattiasbuelens/web-streams-adapter": "^0.1.0",
|
||||
"@rails/actioncable": "7.0.8-4",
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.0 KiB |