Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-11-28 09:27:41 +00:00
parent 2fc6cbed01
commit 940dc9bc92
6 changed files with 90 additions and 12 deletions

View File

@ -3,7 +3,6 @@
Layout/SpaceInsideParens:
Exclude:
- 'spec/lib/banzai/filter/repository_link_filter_spec.rb'
- 'spec/lib/feature/gitaly_spec.rb'
- 'spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/reports_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/trigger_spec.rb'

View File

@ -80,11 +80,12 @@ module Ci
def token_scope
case attrs_from_token[:runner_type]
when :instance_type
Gitlab::Audit::InstanceScope.new
when :project_type
attrs_from_token[:projects]&.first
when :group_type
attrs_from_token[:groups]&.first
# No scope for instance type
end
end

View File

@ -31162,6 +31162,7 @@ Project-level settings for product analytics provider.
| <a id="projectpendingmemberapprovals"></a>`pendingMemberApprovals` **{warning-solid}** | [`MemberApprovalConnection`](#memberapprovalconnection) | **Introduced** in GitLab 17.3. **Status**: Experiment. Pending member promotions of the project. |
| <a id="projectpermanentdeletiondate"></a>`permanentDeletionDate` **{warning-solid}** | [`String`](#string) | **Introduced** in GitLab 16.11. **Status**: Experiment. Date when project will be deleted if delayed project deletion is enabled. |
| <a id="projectpipelinetriggers"></a>`pipelineTriggers` **{warning-solid}** | [`PipelineTriggerConnection`](#pipelinetriggerconnection) | **Introduced** in GitLab 16.3. **Status**: Experiment. List of pipeline trigger tokens. |
| <a id="projectprereceivesecretdetectionenabled"></a>`preReceiveSecretDetectionEnabled` | [`Boolean`](#boolean) | Indicates whether Secret Push Protection is on or not for the project. |
| <a id="projectpreventmergewithoutjiraissueenabled"></a>`preventMergeWithoutJiraIssueEnabled` | [`Boolean!`](#boolean) | Indicates if an associated issue from Jira is required. |
| <a id="projectprintingmergerequestlinkenabled"></a>`printingMergeRequestLinkEnabled` | [`Boolean`](#boolean) | Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line. |
| <a id="projectproductanalyticsinstrumentationkey"></a>`productAnalyticsInstrumentationKey` **{warning-solid}** | [`String`](#string) | **Introduced** in GitLab 16.0. **Status**: Experiment. Product Analytics instrumentation key assigned to the project. |

View File

@ -68,6 +68,8 @@ are very appreciative of the work done by translators and proofreaders!
- Proofreaders needed.
- Indonesian
- Rahayu Rafika - [GitLab](https://gitlab.com/Vkfikaa), [Crowdin](https://crowdin.com/profile/rahayurafika_12)
- Irish
- Aindriú Mac Giolla Eoin - [GitLab](https://gitlab.com/aindriu80), [Crowdin](https://crowdin.com/profile/aindriu80)
- Italian
- Proofreaders needed.
- Japanese

View File

@ -548,6 +548,8 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
let_it_be(:user2) { create(:user, name: 'Michael Scott') }
let_it_be(:project) { create(:project, :public, developers: user) }
let_it_be(:issue) { create(:issue, project: project, due_date: Date.today, title: "Fix bug") }
let_it_be(:issue2) { create(:issue, project: project, due_date: Date.today, title: "Update gems") }
let_it_be(:issue3) { create(:issue, project: project, due_date: Date.today, title: "Deploy feature") }
before do
sign_in user
@ -595,12 +597,11 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
context 'when user has no done tasks' do
before do
create_todo(state: :pending)
visit dashboard_todos_path(author_id: user.id)
click_on 'Done'
end
context 'with filters applied' do
it 'shows a "no matches" message' do
visit dashboard_todos_path(author_id: user.id, state: :done)
expect(page).to have_content 'Sorry, your filter produced no results'
expect_tab_nav
end
@ -608,7 +609,7 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
context 'with no filters applied' do
it 'shows a "no done todos" message on the "Done" tab' do
click_on 'Clear'
visit dashboard_todos_path(state: :done)
expect(page).to have_content 'There are no done to-do items yet'
expect_tab_nav
end
@ -617,13 +618,11 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
end
context 'when user has pending todos' do
let!(:todo_assigned) { create(:todo, :assigned, :pending, user: user, project: project, target: issue, author: user2) }
let!(:todo_marked) { create(:todo, :marked, :pending, user: user, project: project, target: issue, author: user) }
let_it_be(:todo_assigned) { create(:todo, :assigned, :pending, user: user, project: project, target: issue, author: user2) }
let_it_be(:todo_marked) { create(:todo, :marked, :pending, user: user, project: project, target: issue, author: user) }
before do
sign_in(user)
visit dashboard_todos_path
wait_for_requests
end
it 'allows to mark a pending todo as done and find it in the Done tab' do
@ -642,8 +641,84 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
end
end
def create_todo(state:)
create(:todo, :assigned, state, user: user, project: project, target: issue, author: user2)
describe 'sorting' do
let_it_be(:oldest_but_most_recently_updated) { create_todo(created_at: 3.days.ago, updated_at: 3.minutes.ago, target: issue) }
let_it_be(:middle_old_and_middle_updated) { create_todo(created_at: 2.days.ago, updated_at: 2.hours.ago, target: issue2) }
let_it_be(:newest_but_never_updated) { create_todo(created_at: 1.day.ago, updated_at: 1.day.ago, target: issue3) }
before do
visit dashboard_todos_path
end
it 'allows to change sort order and direction' do
# default sort is by `created_at` (desc)
expect(page).to have_content(
/#{newest_but_never_updated.target.title}.*#{middle_old_and_middle_updated.target.title}.*#{oldest_but_most_recently_updated.target.title}/
)
# change direction
find('.sorting-direction-button').click
expect(page).to have_content(
/#{oldest_but_most_recently_updated.target.title}.*#{middle_old_and_middle_updated.target.title}.*#{newest_but_never_updated.target.title}/
)
# change order
click_on 'Created' # to open order dropdown
find('li', text: 'Updated').click # to change to `updated_at`
expect(page).to have_content(
/#{newest_but_never_updated.target.title}.*#{middle_old_and_middle_updated.target.title}.*#{oldest_but_most_recently_updated.target.title}/
)
end
end
describe 'filtering' do
let_it_be(:self_assigned) { create_todo(author: user, target: issue) }
let_it_be(:self_marked) { create_todo(author: user, target: issue2, action: :marked) }
let_it_be(:other_assigned) { create_todo(author: user2, target: issue3) }
before do
visit dashboard_todos_path
end
it 'allows to filter by auther, action etc' do
find_by_testid('filtered-search-term').click
find('li', text: 'Author').click
find('li', text: user.username).click
find_by_testid('search-button').click
expect(page).to have_content(self_assigned.target.title)
expect(page).to have_content(self_marked.target.title)
expect(page).not_to have_content(other_assigned.target.title)
find_by_testid('filtered-search-term').click
find('li', text: 'Reason').click
find('li', text: 'Marked').click
find_by_testid('search-button').click
expect(page).not_to have_content(self_assigned.target.title)
expect(page).to have_content(self_marked.target.title)
expect(page).not_to have_content(other_assigned.target.title)
click_on 'Clear'
expect(page).to have_content(self_assigned.target.title)
expect(page).to have_content(self_marked.target.title)
expect(page).to have_content(other_assigned.target.title)
end
end
def create_todo(action: :assigned, state: :pending, created_at: nil, updated_at: nil, target: issue, author: user2)
create(
:todo,
action,
state: state,
user: user,
created_at: created_at,
updated_at: updated_at,
project: project,
target: target,
author: author
)
end
def expect_tab_nav

View File

@ -270,7 +270,7 @@ RSpec.describe Feature::Gitaly do
end
describe ".group_actor" do
let_it_be(:group) { create(:group ) }
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, group: group) }
context 'when project is passed in' do