Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-02-05 21:08:42 +00:00
parent c6a65ea473
commit 9947cb3657
24 changed files with 93 additions and 114 deletions

View File

@ -174,7 +174,7 @@ module NotesHelper
projectId: @project&.id,
groupId: @group&.id,
discussionsPath: discussions_path(issuable),
registerPath: new_session_path(:user, redirect_to_referer: 'yes', anchor: 'register-pane'),
registerPath: new_user_registration_path(redirect_to_referer: 'yes'),
newSessionPath: new_session_path(:user, redirect_to_referer: 'yes'),
markdownDocsPath: help_page_path('user/markdown'),
quickActionsDocsPath: help_page_path('user/project/quick_actions'),

View File

@ -8,7 +8,8 @@ module Integrations
ALLOWED_STATES = %w[failed canceled running pending success success-with-warnings skipped not_found].freeze
field :mock_service_url,
title: -> { s_('ProjectService|Mock service URL') },
title: -> { s_('ProjectService|Mock CI URL') },
description: -> { _('URL of the Mock CI integration.') },
placeholder: 'http://localhost:4004',
required: true
@ -19,7 +20,7 @@ module Integrations
end
def self.description
'Mock an external CI'
_('Mock an external CI integration.')
end
def self.to_param

View File

@ -1,7 +0,0 @@
= gitlab_ui_form_for(:user, url: admin_session_path, html: { class: 'gl-p-5 gl-show-field-errors', aria: { live: 'assertive' } }) do |f|
.form-group
= f.label :password, _('Password')
= f.password_field :password, class: 'form-control js-password', data: { id: 'user_password', name: 'user[password]', testid: 'password-field' }
= render Pajamas::ButtonComponent.new(type: :submit, variant: :confirm, block: true, button_options: { data: { testid: 'enter-admin-mode-button' } }) do
= _('Enter admin mode')

View File

@ -1,14 +0,0 @@
- if any_form_based_providers_enabled?
- if crowd_enabled?
.login-box.tab-pane{ id: "crowd", role: 'tabpanel', class: active_when(form_based_auth_provider_has_active_class?(:crowd)) }
= render 'devise/sessions/new_crowd', render_remember_me: false, submit_message: _('Enter admin mode')
- ldap_servers.each_with_index do |server, i|
.login-box.tab-pane{ id: "#{server['provider_name']}", role: 'tabpanel', class: active_when(i == 0 && form_based_auth_provider_has_active_class?(:ldapmain)) }
= render 'devise/sessions/new_ldap', server: server, render_remember_me: false, submit_message: _('Enter admin mode')
= render_if_exists 'devise/sessions/new_smartcard'
- if allow_admin_mode_password_authentication_for_web?
.login-box.tab-pane{ id: 'login-pane', role: 'tabpanel', class: active_when(!any_form_based_providers_enabled?) }
= render 'admin/sessions/new_base'

View File

@ -6,10 +6,9 @@
.login-page
.borderless
- if any_form_based_providers_enabled?
= render 'devise/shared/tabs_ldap', show_password_form: allow_admin_mode_password_authentication_for_web?, render_signup_link: false
.tab-content
- if allow_admin_mode_password_authentication_for_web? || ldap_sign_in_enabled? || crowd_enabled?
= render 'admin/sessions/signin_box'
= render 'devise/shared/tabs_ldap', admin_mode: true
- elsif allow_admin_mode_password_authentication_for_web?
= render 'devise/sessions/new_base', admin_mode: true
-# Show a message if none of the mechanisms above are enabled
- if !allow_admin_mode_password_authentication_for_web? && !ldap_sign_in_enabled? && !omniauth_enabled?

View File

@ -1,25 +1,33 @@
= gitlab_ui_form_for(resource, as: resource_name, url: session_path(resource_name), html: { class: 'gl-p-5 gl-show-field-errors js-arkose-labs-form', aria: { live: 'assertive' }, data: { testid: 'sign-in-form' }}) do |f|
.form-group
= f.label :login, _('Username or primary email')
= f.text_field :login, value: @invite_email, class: 'form-control gl-form-input js-username-field', autocomplete: 'username', autofocus: 'autofocus', autocapitalize: 'off', autocorrect: 'off', required: true, title: _('This field is required.'), data: { testid: 'username-field' }
.form-group
= f.label :password, _('Password')
= f.password_field :password, class: 'form-control gl-form-input js-password', data: { id: "#{resource_name}_password",
testid: 'password-field',
name: "#{resource_name}[password]" }
.form-text.gl-text-right
- if unconfirmed_email?
= link_to _('Resend confirmation email'), new_user_confirmation_path
- else
= link_to _('Forgot your password?'), new_password_path(:user)
- url = admin_mode ? admin_session_path : session_path(:user)
- form_class = admin_mode ? '' : 'js-arkose-labs-form'
- button_class = admin_mode ? '' : 'js-sign-in-button'
- submit_message = admin_mode ? _('Enter admin mode') : _('Sign in')
.form-group
- if captcha_enabled? || captcha_on_login_required?
= recaptcha_tags nonce: content_security_policy_nonce
= gitlab_ui_form_for(:user, url: url, html: { class: ['gl-p-5 gl-show-field-errors', form_class], aria: { live: 'assertive' }, data: { testid: 'sign-in-form' }}) do |f|
- if admin_mode
.form-group
= f.label :password, _('Password')
= f.password_field :password, class: 'form-control gl-form-input js-password', data: { id: 'user_password', name: 'user[password]', testid: 'password-field' }
- else
.form-group
= f.label :login, _('Username or primary email')
= f.text_field :login, value: @invite_email, class: 'form-control gl-form-input js-username-field', autocomplete: 'username', autofocus: 'autofocus', autocapitalize: 'off', autocorrect: 'off', required: true, title: _('This field is required.'), data: { testid: 'username-field' }
.form-group
= f.label :password, _('Password')
= f.password_field :password, class: 'form-control gl-form-input js-password', data: { id: 'user_password', name: 'user[password]', testid: 'password-field' }
.form-text.gl-text-right
- if unconfirmed_email?
= link_to _('Resend confirmation email'), new_user_confirmation_path
- else
= link_to _('Forgot your password?'), new_password_path(:user)
- if remember_me_enabled?
.gl-mb-3
= f.gitlab_ui_checkbox_component :remember_me, _('Remember me'), checkbox_options: { autocomplete: 'off' }
.form-group
- if captcha_enabled? || captcha_on_login_required?
= recaptcha_tags nonce: content_security_policy_nonce
= render Pajamas::ButtonComponent.new(type: :submit, variant: :confirm, block: true, button_options: { class: 'js-sign-in-button', data: { testid: 'sign-in-button' } }) do
= _('Sign in')
- if remember_me_enabled?
.gl-mb-3
= f.gitlab_ui_checkbox_component :remember_me, _('Remember me'), checkbox_options: { autocomplete: 'off' }
= render Pajamas::ButtonComponent.new(type: :submit, variant: :confirm, block: true, button_options: { class: [button_class], data: { testid: 'sign-in-button' } }) do
= submit_message

View File

@ -1,5 +1,5 @@
- render_remember_me = remember_me_enabled? && local_assigns.fetch(:render_remember_me, true)
- submit_message = local_assigns.fetch(:submit_message, _('Sign in'))
- render_remember_me = admin_mode ? false : remember_me_enabled?
- submit_message = admin_mode ? _('Enter admin mode') : _('Sign in')
= gitlab_ui_form_for(:crowd, url: omniauth_authorize_path(:user, :crowd), html: { class: 'gl-p-5 gl-show-field-errors', aria: { live: 'assertive' }, data: { testid: 'new_crowd_user' }}) do |f|
.form-group

View File

@ -1,7 +1,7 @@
- server = local_assigns.fetch(:server)
- provider = server['provider_name']
- render_remember_me = remember_me_enabled? && local_assigns.fetch(:render_remember_me, true)
- submit_message = local_assigns.fetch(:submit_message, _('Sign in'))
- render_remember_me = local_assigns[:admin_mode] ? false : remember_me_enabled?
- submit_message = local_assigns[:admin_mode] ? _('Enter admin mode') : _('Sign in')
= gitlab_ui_form_for(provider, url: omniauth_callback_path(:user, provider), html: { class: 'gl-p-5 gl-show-field-errors', aria: { live: 'assertive' }, data: { testid: 'new_ldap_user' }}) do |f|
.form-group

View File

@ -11,10 +11,10 @@
.js-non-oauth-login
- if any_form_based_providers_enabled?
= render 'devise/shared/tabs_ldap', render_signup_link: false
.tab-content
- if password_authentication_enabled_for_web? || ldap_sign_in_enabled? || crowd_enabled?
= render 'devise/shared/signin_box'
= render 'devise/shared/tabs_ldap', admin_mode: false
- elsif password_authentication_enabled_for_web?
= render 'devise/sessions/new_base', admin_mode: false
-# Show a message if none of the mechanisms above are enabled
- if !password_authentication_enabled_for_web? && !ldap_sign_in_enabled? && !(omniauth_enabled? && devise_mapping.omniauthable?)
%div

View File

@ -1,18 +0,0 @@
- if any_form_based_providers_enabled?
- if crowd_enabled?
.login-box.tab-pane{ id: "crowd", role: 'tabpanel', class: active_when(form_based_auth_provider_has_active_class?(:crowd)) }
= render 'devise/sessions/new_crowd'
- ldap_servers.each_with_index do |server, i|
.login-box.tab-pane{ id: "#{server['provider_name']}", role: 'tabpanel', class: active_when(i == 0 && form_based_auth_provider_has_active_class?(:ldapmain)) }
= render 'devise/sessions/new_ldap', server: server
= render_if_exists 'devise/sessions/new_smartcard'
- if password_authentication_enabled_for_web?
.login-box.tab-pane{ id: 'login-pane', role: 'tabpanel' }
= render 'devise/sessions/new_base'
- elsif password_authentication_enabled_for_web?
.login-box.tab-pane.active{ id: 'login-pane', role: 'tabpanel' }
= render 'devise/sessions/new_base'

View File

@ -1,5 +1,4 @@
- show_password_form = local_assigns.fetch(:show_password_form, password_authentication_enabled_for_web?)
- render_signup_link = local_assigns.fetch(:render_signup_link, true)
- render_standard_signin = admin_mode ? allow_admin_mode_password_authentication_for_web? : password_authentication_enabled_for_web?
%ul.nav-links.new-session-tabs.nav-tabs.nav.nav-links-unboxed
- if crowd_enabled?
@ -12,10 +11,21 @@
= render_if_exists 'devise/shared/tab_smartcard'
- if show_password_form
- if render_standard_signin
%li.nav-item
= link_to _('Standard'), '#login-pane', class: 'nav-link', data: { toggle: 'tab', testid: 'standard-tab' }, role: 'tab'
- if render_signup_link && allow_signup?
%li.nav-item
= link_to _('Register'), '#register-pane', class: 'nav-link', data: { toggle: 'tab', testid: 'register-tab' }, role: 'tab'
.tab-content
- if crowd_enabled?
.login-box.tab-pane{ id: "crowd", role: 'tabpanel', class: active_when(form_based_auth_provider_has_active_class?(:crowd)) }
= render 'devise/sessions/new_crowd', admin_mode: admin_mode
- ldap_servers.each_with_index do |server, i|
.login-box.tab-pane{ id: server['provider_name'], role: 'tabpanel', class: active_when(i == 0 && form_based_auth_provider_has_active_class?(:ldapmain)) }
= render 'devise/sessions/new_ldap', server: server, admin_mode: admin_mode
= render_if_exists 'devise/sessions/new_smartcard'
- if render_standard_signin
.login-box.tab-pane{ id: 'login-pane', role: 'tabpanel' }
= render 'devise/sessions/new_base', admin_mode: admin_mode

View File

@ -1258,7 +1258,7 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `mock_service_url` | string | true | `http://localhost:4004`. |
| `mock_service_url` | string | true | URL of the Mock CI integration. |
| `enable_ssl_verification` | boolean | false | Enable SSL verification. Defaults to `true` (enabled). |
### Disable Mock CI

View File

@ -111,7 +111,8 @@ is not used.
- [`retry`](#retry)
- [`services`](#services)
- [`tags`](#tags)
- [`timeout`](#timeout)
- [`timeout`](#timeout), though due to [issue 213634](https://gitlab.com/gitlab-org/gitlab/-/issues/213634)
this keyword has no effect.
**Example of `default`**:

View File

@ -7,6 +7,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Pre-receive secret detection
DETAILS:
**Tier:** Ultimate
**Offering:** Dedicated
**Status:** Experiment
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11439) in GitLab 16.7 as an [Experiment](../../../policy/experiment-beta-support.md) for GitLab Dedicated customers.

View File

@ -9,15 +9,7 @@ module API
integration_classes = Helpers::IntegrationsHelpers.integration_classes
if Gitlab.dev_or_test_env?
integrations['mock-ci'] = [
{
required: true,
name: :mock_service_url,
type: String,
desc: 'URL to the mock integration'
}
]
integrations['mock-deployment'] = []
integrations['mock-ci'] = ::Integrations::MockCi.api_fields
integrations['mock-monitoring'] = []
integration_classes += Helpers::IntegrationsHelpers.development_integration_classes

View File

@ -28939,9 +28939,6 @@ msgstr ""
msgid "LearnGitLab|Start a free trial of GitLab Ultimate"
msgstr ""
msgid "LearnGitLab|Start with the WebIDE"
msgstr ""
msgid "LearnGitLab|Submit a merge request (MR)"
msgstr ""
@ -28951,7 +28948,7 @@ msgstr ""
msgid "LearnGitLab|Try all GitLab features for 30 days, no credit card required."
msgstr ""
msgid "LearnGitLab|Use the built-in editor to create or upload files."
msgid "LearnGitLab|Use the built-in editor, WebIDE, or upload code using your preferred method."
msgstr ""
msgid "LearnGitLab|Use your new GitLab workflow to deploy your application, monitor its health, and keep it secure:"
@ -31610,6 +31607,9 @@ msgid_plural "MlModelRegistry|· %d versions"
msgstr[0] ""
msgstr[1] ""
msgid "Mock an external CI integration."
msgstr ""
msgid "Modal updated"
msgstr ""
@ -38608,7 +38608,7 @@ msgstr ""
msgid "ProjectService|Leave blank to use your current token."
msgstr ""
msgid "ProjectService|Mock service URL"
msgid "ProjectService|Mock CI URL"
msgstr ""
msgid "ProjectService|Must have permission to trigger a manual build in TeamCity."
@ -52514,6 +52514,9 @@ msgstr ""
msgid "URL of the Grafana instance to link to from the Metrics Dashboard menu item."
msgstr ""
msgid "URL of the Mock CI integration."
msgstr ""
msgid "URL of the Squash TM webhook."
msgstr ""

View File

@ -60,7 +60,7 @@
"@gitlab/cluster-client": "^2.1.0",
"@gitlab/favicon-overlay": "2.0.0",
"@gitlab/fonts": "^1.3.0",
"@gitlab/svgs": "3.80.0",
"@gitlab/svgs": "3.83.0",
"@gitlab/ui": "^74.0.0",
"@gitlab/visual-review-tools": "1.7.3",
"@gitlab/web-ide": "^0.0.1-dev-20240201215504",

View File

@ -1,4 +1,4 @@
ARG GDK_SHA=ed4223cdebc8a64bd3027eb4e08568ab66e18219
ARG GDK_SHA=03dcfc5fc17c0aef1253223652b15a2fa1544dc0
FROM registry.gitlab.com/gitlab-org/gitlab-development-kit/asdf-bootstrapped-verify/main:${GDK_SHA} as base

View File

@ -4,8 +4,8 @@ module QA
module Page
module Admin
class NewSession < Page::Base
view 'app/views/admin/sessions/_new_base.html.haml' do
element 'enter-admin-mode-button'
view 'app/views/devise/sessions/_new_base.html.haml' do
element 'sign-in-button'
element 'password-field'
end
@ -14,7 +14,7 @@ module QA
end
def click_enter_admin_mode
click_element 'enter-admin-mode-button'
click_element 'sign-in-button'
end
end
end

View File

@ -32,7 +32,6 @@ module QA
view 'app/views/devise/shared/_tabs_ldap.html.haml' do
element 'ldap-tab'
element 'standard-tab'
element 'register-tab'
end
view 'app/views/devise/shared/_tab_single.html.haml' do

View File

@ -153,7 +153,8 @@ RSpec.describe 'Protected Branches', :js, feature_category: :source_code_managem
expect(ProtectedBranch.last.name).to eq('*-stable')
end
it "displays the number of matching branches" do
it "displays the number of matching branches",
quarantine: 'https://gitlab.com/gitlab-org/quality/engineering-productivity/flaky-tests/-/issues/3459' do
project.repository.add_branch(admin, 'production-stable', 'master')
project.repository.add_branch(admin, 'staging-stable', 'master')

View File

@ -19,7 +19,7 @@ RSpec.describe 'admin/sessions/new.html.haml' do
it 'shows enter password form' do
render
expect(rendered).to have_css('.login-box')
expect(rendered).to have_selector('[data-testid="sign-in-form"]')
expect(rendered).to have_selector('[data-testid="password-field"]')
end
@ -28,7 +28,7 @@ RSpec.describe 'admin/sessions/new.html.haml' do
render
expect(rendered).not_to have_css('.login-box')
expect(rendered).to have_no_selector('[data-testid="sign-in-form"]')
expect(rendered).to have_content _('No authentication methods configured.')
end
end

View File

@ -2,12 +2,12 @@
require 'spec_helper'
RSpec.describe 'devise/shared/_signin_box' do
RSpec.describe 'devise/shared/_tabs_ldap.html.haml', feature_category: :system_access do
describe 'Crowd form' do
before do
stub_devise
allow(view).to receive(:ldap_servers).and_return([])
allow(view).to receive(:current_application_settings).and_return(Gitlab::CurrentSettings.current_application_settings)
allow(view).to receive(:current_application_settings)
.and_return(Gitlab::CurrentSettings.current_application_settings)
allow(view).to receive(:captcha_enabled?).and_return(false)
allow(view).to receive(:captcha_on_login_required?).and_return(false)
allow(view).to receive(:experiment_enabled?).and_return(false)
@ -43,6 +43,8 @@ RSpec.describe 'devise/shared/_signin_box' do
end
def stub_devise
allow(view).to receive(:admin_mode).and_return(false)
allow(view).to receive(:ldap_servers).and_return([])
allow(view).to receive(:devise_mapping).and_return(Devise.mappings[:user])
allow(view).to receive(:resource).and_return(spy)
allow(view).to receive(:resource_name).and_return(:user)

View File

@ -1316,10 +1316,10 @@
stylelint-declaration-strict-value "1.10.4"
stylelint-scss "6.0.0"
"@gitlab/svgs@3.80.0":
version "3.80.0"
resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.80.0.tgz#306b038ac3422e16eb7f7f29aedb6d25f935892c"
integrity sha512-RFvT5o/q2ET5POx1HyAr6UuB8EOUeVLHlP+oKU8/FPMBJrtpm6E4UojzD6LlPcNBYC97l0bdAGzGkYtsaT3a6Q==
"@gitlab/svgs@3.83.0":
version "3.83.0"
resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.83.0.tgz#5d6799e5fe3fb564b7e4190d90876469bd1608ba"
integrity sha512-881f6OsxREgBXYn9fkg+XGweBFbrGdrssrIzFIZFSG95GF/K+HILw1mXZ9nq7C5Xb5JDWPKJGYnKuHw5vvWm5Q==
"@gitlab/ui@^74.0.0":
version "74.0.0"