Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
091b62a159
commit
f80c3dfdfc
|
|
@ -1522,21 +1522,6 @@ Layout/ArgumentAlignment:
|
|||
- 'spec/components/previews/pajamas/alert_component_preview.rb'
|
||||
- 'spec/components/previews/pajamas/banner_component_preview.rb'
|
||||
- 'spec/components/previews/pajamas/button_component_preview.rb'
|
||||
- 'spec/features/error_tracking/user_filters_errors_by_status_spec.rb'
|
||||
- 'spec/features/error_tracking/user_searches_sentry_errors_spec.rb'
|
||||
- 'spec/features/error_tracking/user_sees_error_details_spec.rb'
|
||||
- 'spec/features/error_tracking/user_sees_error_index_spec.rb'
|
||||
- 'spec/features/groups_spec.rb'
|
||||
- 'spec/features/help_pages_spec.rb'
|
||||
- 'spec/features/ics/dashboard_issues_spec.rb'
|
||||
- 'spec/features/ics/group_issues_spec.rb'
|
||||
- 'spec/features/ics/project_issues_spec.rb'
|
||||
- 'spec/features/incidents/incident_timeline_events_spec.rb'
|
||||
- 'spec/features/incidents/user_views_incident_spec.rb'
|
||||
- 'spec/features/issuables/issuable_list_spec.rb'
|
||||
- 'spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb'
|
||||
- 'spec/features/issues/user_creates_branch_and_merge_request_spec.rb'
|
||||
- 'spec/features/issues/user_filters_issues_spec.rb'
|
||||
- 'spec/features/jira_oauth_provider_authorize_spec.rb'
|
||||
- 'spec/features/markdown/gitlab_flavored_markdown_spec.rb'
|
||||
- 'spec/features/nav/top_nav_tooltip_spec.rb'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddProjectIdToScanResultPolicies < Gitlab::Database::Migration[2.1]
|
||||
def up
|
||||
add_column :scan_result_policies, :project_id, :bigint
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :scan_result_policies, :project_id
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddIndexToScanResultPoliciesOnProjectId < Gitlab::Database::Migration[2.1]
|
||||
INDEX_NAME = 'index_scan_result_policies_on_project_id'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_index :scan_result_policies, :project_id, name: INDEX_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :scan_result_policies, INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddProjectIdForeignKeyToScanResultPolicies < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key :scan_result_policies,
|
||||
:projects,
|
||||
column: :project_id,
|
||||
on_delete: :cascade
|
||||
end
|
||||
|
||||
def down
|
||||
remove_foreign_key_if_exists :scan_result_policies, column: :project_id
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1 @@
|
|||
542e2345a171e46512d793cc764fdbb279d9bf40e65e021d249953b29ff66dcb
|
||||
|
|
@ -0,0 +1 @@
|
|||
633753a79a9d4f251c89b7fdbbf5fa17d2c85ceba091c450d377ab4e50bd9bce
|
||||
|
|
@ -0,0 +1 @@
|
|||
a702fd86f25c3044e7eb8195349aec6f0627e258946c996164880c0f72998176
|
||||
|
|
@ -22337,6 +22337,7 @@ CREATE TABLE scan_result_policies (
|
|||
age_operator smallint,
|
||||
age_interval smallint,
|
||||
vulnerability_attributes jsonb DEFAULT '{}'::jsonb,
|
||||
project_id bigint,
|
||||
CONSTRAINT age_value_null_or_positive CHECK (((age_value IS NULL) OR (age_value >= 0)))
|
||||
);
|
||||
|
||||
|
|
@ -32812,6 +32813,8 @@ CREATE UNIQUE INDEX index_sbom_sources_on_source_type_and_source ON sbom_sources
|
|||
|
||||
CREATE INDEX index_scan_result_policies_on_policy_configuration_id ON scan_result_policies USING btree (security_orchestration_policy_configuration_id);
|
||||
|
||||
CREATE INDEX index_scan_result_policies_on_project_id ON scan_result_policies USING btree (project_id);
|
||||
|
||||
CREATE INDEX index_schema_inconsistencies_on_issue_id ON schema_inconsistencies USING btree (issue_id);
|
||||
|
||||
CREATE INDEX index_scim_identities_on_group_id ON scim_identities USING btree (group_id);
|
||||
|
|
@ -35732,6 +35735,9 @@ ALTER TABLE ONLY lists
|
|||
ALTER TABLE ONLY protected_branches
|
||||
ADD CONSTRAINT fk_7a9c6d93e7 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY scan_result_policies
|
||||
ADD CONSTRAINT fk_7aa24439f1 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY vulnerabilities
|
||||
ADD CONSTRAINT fk_7ac31eacb9 FOREIGN KEY (updated_by_id) REFERENCES users(id) ON DELETE SET NULL;
|
||||
|
||||
|
|
|
|||
|
|
@ -274,6 +274,7 @@ query {
|
|||
logIdName
|
||||
googleProjectIdName
|
||||
privateKey
|
||||
clientEmail
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -392,7 +393,7 @@ by [listing all the external destinations](#list-streaming-destinations).
|
|||
```graphql
|
||||
mutation {
|
||||
googleCloudLoggingConfigurationUpdate(
|
||||
input: {id: "gid://gitlab/AuditEvents::GoogleCloudLoggingConfiguration/1", groupPath: "my-group", googleProjectIdName: "my-google-project", clientEmail: "my-email@my-google-project.iam.gservice.account.com", privateKey: "YOUR_PRIVATE_KEY", logIdName: "audit-events"}
|
||||
input: {id: "gid://gitlab/AuditEvents::GoogleCloudLoggingConfiguration/1", googleProjectIdName: "my-google-project", clientEmail: "my-email@my-google-project.iam.gservice.account.com", privateKey: "YOUR_PRIVATE_KEY", logIdName: "audit-events"}
|
||||
) {
|
||||
errors
|
||||
googleCloudLoggingConfiguration {
|
||||
|
|
@ -400,6 +401,7 @@ mutation {
|
|||
logIdName
|
||||
privateKey
|
||||
googleProjectIdName
|
||||
clientEmail
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@ Code Quality results are shown in the:
|
|||
> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) to GitLab Free in 13.2.
|
||||
|
||||
Code Quality analysis results display in the merge request widget area if a report from the target
|
||||
branch is available for comparison.
|
||||
branch is available for comparison. The merge request widget displays Code Quality findings and resolutions that
|
||||
were introduced by the changes made in the merge request.
|
||||
|
||||

|
||||
|
||||
|
|
@ -70,7 +71,8 @@ issues are marked by an indicator beside the gutter. Hover over the marker for d
|
|||
### Pipeline details view **(PREMIUM)**
|
||||
|
||||
The full list of Code Quality violations generated by a pipeline is shown in the **Code Quality**
|
||||
tab of the pipeline's details page.
|
||||
tab of the pipeline's details page. The pipeline details view displays all Code Quality findings
|
||||
that were found on the branch it was run on.
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ The following package managers use lockfiles that GitLab analyzers are capable o
|
|||
| Composer | Not applicable | [1.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/php-composer/default/composer.lock) |
|
||||
| Conan | 0.4 | [1.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/c-conan/default/conan.lock#L38) |
|
||||
| Go | Not applicable | [1.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/go-modules/gosum/default/go.sum) <sup><strong><a href="#notes-regarding-parsing-lockfiles-1">1</a></strong></sup> |
|
||||
| NuGet | v1 | [4.9](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/csharp-nuget-dotnetcore/default/src/web.api/packages.lock.json#L2) |
|
||||
| NuGet | v1, v2 | [4.9](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/csharp-nuget-dotnetcore/default/src/web.api/packages.lock.json#L2) |
|
||||
| npm | v1, v2, v3<sup><b><a href="#notes-regarding-parsing-lockfiles-2">2</a></b></sup> | [6.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/js-npm/default/package-lock.json#L4), [7.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/js-npm/lockfileVersion2/package-lock.json#L4), [9.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/scanner/parser/npm/fixtures/lockfile-v3/simple/package-lock.json#L4) |
|
||||
| pnpm | v5.3, v5.4, v6 | [7.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/js-pnpm/default/pnpm-lock.yaml#L1), [8.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/scanner/parser/pnpm/fixtures/v6/simple/pnpm-lock.yaml#L1) |
|
||||
| yarn | v1, v2<sup><b><a href="#notes-regarding-parsing-lockfiles-3">3</a></b></sup>, v3<sup><b><a href="#notes-regarding-parsing-lockfiles-3">3</a></b></sup> | [1.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/js-yarn/classic/default/yarn.lock#L2), [2.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/js-yarn/berry/v2/default/yarn.lock), [3.x](https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium/-/blob/master/qa/fixtures/js-yarn/berry/v3/default/yarn.lock) |
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe 'When a user filters Sentry errors by status', :js, :use_clean_rails_memory_store_caching, :sidekiq_inline,
|
||||
feature_category: :error_tracking do
|
||||
feature_category: :error_tracking do
|
||||
include_context 'sentry error tracking context feature'
|
||||
|
||||
let_it_be(:issues_response_body) { fixture_file('sentry/issues_sample_response.json') }
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe 'When a user searches for Sentry errors', :js, :use_clean_rails_memory_store_caching, :sidekiq_inline,
|
||||
feature_category: :error_tracking do
|
||||
feature_category: :error_tracking do
|
||||
include_context 'sentry error tracking context feature'
|
||||
|
||||
let_it_be(:issues_response_body) { fixture_file('sentry/issues_sample_response.json') }
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe 'View error details page', :js, :use_clean_rails_memory_store_caching, :sidekiq_inline,
|
||||
feature_category: :error_tracking do
|
||||
feature_category: :error_tracking do
|
||||
include_context 'sentry error tracking context feature'
|
||||
|
||||
context 'with current user as project owner' do
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe 'View error index page', :js, :use_clean_rails_memory_store_caching, :sidekiq_inline,
|
||||
feature_category: :error_tracking do
|
||||
feature_category: :error_tracking do
|
||||
include_context 'sentry error tracking context feature'
|
||||
|
||||
let_it_be(:issues_response_body) { fixture_file('sentry/issues_sample_response.json') }
|
||||
|
|
|
|||
|
|
@ -461,9 +461,11 @@ RSpec.describe 'Group', feature_category: :groups_and_projects do
|
|||
|
||||
describe 'new subgroup / project button' do
|
||||
let_it_be(:group, reload: true) do
|
||||
create(:group,
|
||||
project_creation_level: Gitlab::Access::NO_ONE_PROJECT_ACCESS,
|
||||
subgroup_creation_level: Gitlab::Access::OWNER_SUBGROUP_ACCESS)
|
||||
create(
|
||||
:group,
|
||||
project_creation_level: Gitlab::Access::NO_ONE_PROJECT_ACCESS,
|
||||
subgroup_creation_level: Gitlab::Access::OWNER_SUBGROUP_ACCESS
|
||||
)
|
||||
end
|
||||
|
||||
before do
|
||||
|
|
|
|||
|
|
@ -47,9 +47,11 @@ RSpec.describe 'Help Pages', feature_category: :shared do
|
|||
|
||||
describe 'when help page is customized' do
|
||||
before do
|
||||
stub_application_setting(help_page_hide_commercial_content: true,
|
||||
help_page_text: 'My Custom Text',
|
||||
help_page_support_url: 'http://example.com/help')
|
||||
stub_application_setting(
|
||||
help_page_hide_commercial_content: true,
|
||||
help_page_text: 'My Custom Text',
|
||||
help_page_support_url: 'http://example.com/help'
|
||||
)
|
||||
|
||||
sign_in(create(:user))
|
||||
visit help_path
|
||||
|
|
|
|||
|
|
@ -29,9 +29,11 @@ RSpec.describe 'Dashboard Issues Calendar Feed', feature_category: :team_plannin
|
|||
context 'with no referer' do
|
||||
it 'renders calendar feed' do
|
||||
sign_in user
|
||||
visit issues_dashboard_path(:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date')
|
||||
visit issues_dashboard_path(
|
||||
:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date'
|
||||
)
|
||||
|
||||
expect(response_headers['Content-Type']).to have_content('text/calendar')
|
||||
expect(body).to have_text('BEGIN:VCALENDAR')
|
||||
|
|
@ -42,9 +44,11 @@ RSpec.describe 'Dashboard Issues Calendar Feed', feature_category: :team_plannin
|
|||
it 'renders calendar feed as text/plain' do
|
||||
sign_in user
|
||||
page.driver.header('Referer', issues_dashboard_url(host: Settings.gitlab.base_url))
|
||||
visit issues_dashboard_path(:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date')
|
||||
visit issues_dashboard_path(
|
||||
:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date'
|
||||
)
|
||||
|
||||
expect(response_headers['Content-Type']).to have_content('text/plain')
|
||||
expect(body).to have_text('BEGIN:VCALENDAR')
|
||||
|
|
@ -54,10 +58,12 @@ RSpec.describe 'Dashboard Issues Calendar Feed', feature_category: :team_plannin
|
|||
context 'when filtered by milestone' do
|
||||
it 'renders calendar feed' do
|
||||
sign_in user
|
||||
visit issues_dashboard_path(:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
milestone_title: milestone.title)
|
||||
visit issues_dashboard_path(
|
||||
:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
milestone_title: milestone.title
|
||||
)
|
||||
|
||||
expect(response_headers['Content-Type']).to have_content('text/calendar')
|
||||
expect(body).to have_text('BEGIN:VCALENDAR')
|
||||
|
|
@ -69,10 +75,12 @@ RSpec.describe 'Dashboard Issues Calendar Feed', feature_category: :team_plannin
|
|||
it 'renders calendar feed' do
|
||||
personal_access_token = create(:personal_access_token, user: user)
|
||||
|
||||
visit issues_dashboard_path(:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
private_token: personal_access_token.token)
|
||||
visit issues_dashboard_path(
|
||||
:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
private_token: personal_access_token.token
|
||||
)
|
||||
|
||||
expect(response_headers['Content-Type']).to have_content('text/calendar')
|
||||
expect(body).to have_text('BEGIN:VCALENDAR')
|
||||
|
|
@ -81,10 +89,12 @@ RSpec.describe 'Dashboard Issues Calendar Feed', feature_category: :team_plannin
|
|||
|
||||
context 'when authenticated via feed token' do
|
||||
it 'renders calendar feed' do
|
||||
visit issues_dashboard_path(:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
feed_token: user.feed_token)
|
||||
visit issues_dashboard_path(
|
||||
:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
feed_token: user.feed_token
|
||||
)
|
||||
|
||||
expect(response_headers['Content-Type']).to have_content('text/calendar')
|
||||
expect(body).to have_text('BEGIN:VCALENDAR')
|
||||
|
|
@ -93,15 +103,24 @@ RSpec.describe 'Dashboard Issues Calendar Feed', feature_category: :team_plannin
|
|||
|
||||
context 'issue with due date' do
|
||||
let!(:issue) do
|
||||
create(:issue, author: user, assignees: [assignee], project: project, title: 'test title',
|
||||
description: 'test desc', due_date: Date.tomorrow)
|
||||
create(
|
||||
:issue,
|
||||
author: user,
|
||||
assignees: [assignee],
|
||||
project: project,
|
||||
title: 'test title',
|
||||
description: 'test desc',
|
||||
due_date: Date.tomorrow
|
||||
)
|
||||
end
|
||||
|
||||
it 'renders issue fields' do
|
||||
visit issues_dashboard_path(:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
feed_token: user.feed_token)
|
||||
visit issues_dashboard_path(
|
||||
:ics,
|
||||
due_date: Issue::DueNextMonthAndPreviousTwoWeeks.name,
|
||||
sort: 'closest_future_date',
|
||||
feed_token: user.feed_token
|
||||
)
|
||||
|
||||
expect(body).to have_text("SUMMARY:test title (in #{project.full_path})")
|
||||
# line length for ics is 75 chars
|
||||
|
|
|
|||
|
|
@ -71,8 +71,15 @@ RSpec.describe 'Group Issues Calendar Feed', feature_category: :groups_and_proje
|
|||
|
||||
context 'issue with due date' do
|
||||
let!(:issue) do
|
||||
create(:issue, author: user, assignees: [assignee], project: project, title: 'test title',
|
||||
description: 'test desc', due_date: Date.tomorrow)
|
||||
create(
|
||||
:issue,
|
||||
author: user,
|
||||
assignees: [assignee],
|
||||
project: project,
|
||||
title: 'test title',
|
||||
description: 'test desc',
|
||||
due_date: Date.tomorrow
|
||||
)
|
||||
end
|
||||
|
||||
it 'renders issue fields' do
|
||||
|
|
|
|||
|
|
@ -70,8 +70,15 @@ RSpec.describe 'Project Issues Calendar Feed', feature_category: :groups_and_pro
|
|||
|
||||
context 'issue with due date' do
|
||||
let!(:issue) do
|
||||
create(:issue, author: user, assignees: [assignee], project: project, title: 'test title',
|
||||
description: 'test desc', due_date: Date.tomorrow)
|
||||
create(
|
||||
:issue,
|
||||
author: user,
|
||||
assignees: [assignee],
|
||||
project: project,
|
||||
title: 'test title',
|
||||
description: 'test desc',
|
||||
due_date: Date.tomorrow
|
||||
)
|
||||
end
|
||||
|
||||
it 'renders issue fields' do
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ RSpec.describe 'Incident timeline events', :js, feature_category: :incident_mana
|
|||
end
|
||||
|
||||
it_behaves_like 'for each incident details route',
|
||||
'add, edit, and delete timeline events',
|
||||
tab_text: s_('Incident|Timeline'),
|
||||
tab: 'timeline'
|
||||
'add, edit, and delete timeline events',
|
||||
tab_text: s_('Incident|Timeline'),
|
||||
tab: 'timeline'
|
||||
end
|
||||
|
|
|
|||
|
|
@ -31,10 +31,12 @@ RSpec.describe "User views incident", feature_category: :incident_management do
|
|||
|
||||
describe 'user actions' do
|
||||
it 'shows the merge request and incident actions', :js, :aggregate_failures do
|
||||
expected_href = new_project_issue_path(project,
|
||||
issuable_template: 'incident',
|
||||
issue: { issue_type: 'incident' },
|
||||
add_related_issue: incident.iid)
|
||||
expected_href = new_project_issue_path(
|
||||
project,
|
||||
issuable_template: 'incident',
|
||||
issue: { issue_type: 'incident' },
|
||||
add_related_issue: incident.iid
|
||||
)
|
||||
|
||||
click_button 'Incident actions'
|
||||
|
||||
|
|
|
|||
|
|
@ -99,9 +99,7 @@ RSpec.describe 'issuable list', :js, feature_category: :team_planning do
|
|||
|
||||
if issuable_type == :issue
|
||||
issue = Issue.reorder(:iid).first
|
||||
merge_request = create(:merge_request,
|
||||
source_project: project,
|
||||
source_branch: generate(:branch))
|
||||
merge_request = create(:merge_request, source_project: project, source_branch: generate(:branch))
|
||||
|
||||
create(:merge_requests_closing_issues, issue: issue, merge_request: merge_request)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -74,8 +74,11 @@ RSpec.describe 'Resolve an open thread in a merge request by creating an issue',
|
|||
before do
|
||||
project.add_reporter(user)
|
||||
sign_in user
|
||||
visit new_project_issue_path(project, merge_request_to_resolve_discussions_of: merge_request.iid,
|
||||
discussion_to_resolve: discussion.id)
|
||||
visit new_project_issue_path(
|
||||
project,
|
||||
merge_request_to_resolve_discussions_of: merge_request.iid,
|
||||
discussion_to_resolve: discussion.id
|
||||
)
|
||||
end
|
||||
|
||||
it 'shows a notice to ask someone else to resolve the threads' do
|
||||
|
|
|
|||
|
|
@ -137,13 +137,25 @@ RSpec.describe 'User creates branch and merge request on issue page', :js, featu
|
|||
|
||||
context "when there is a referenced merge request" do
|
||||
let!(:note) do
|
||||
create(:note, :on_issue, :system, project: project, noteable: issue,
|
||||
note: "mentioned in #{referenced_mr.to_reference}")
|
||||
create(
|
||||
:note,
|
||||
:on_issue,
|
||||
:system,
|
||||
project: project,
|
||||
noteable: issue,
|
||||
note: "mentioned in #{referenced_mr.to_reference}"
|
||||
)
|
||||
end
|
||||
|
||||
let(:referenced_mr) do
|
||||
create(:merge_request, :simple, source_project: project, target_project: project,
|
||||
description: "Fixes #{issue.to_reference}", author: user)
|
||||
create(
|
||||
:merge_request,
|
||||
:simple,
|
||||
source_project: project,
|
||||
target_project: project,
|
||||
description: "Fixes #{issue.to_reference}",
|
||||
author: user
|
||||
)
|
||||
end
|
||||
|
||||
before do
|
||||
|
|
|
|||
|
|
@ -8,11 +8,13 @@ RSpec.describe 'User filters issues', :js, feature_category: :team_planning do
|
|||
|
||||
before do
|
||||
%w[foobar barbaz].each do |title|
|
||||
create(:issue,
|
||||
author: user,
|
||||
assignees: [user],
|
||||
project: project,
|
||||
title: title)
|
||||
create(
|
||||
:issue,
|
||||
author: user,
|
||||
assignees: [user],
|
||||
project: project,
|
||||
title: title
|
||||
)
|
||||
end
|
||||
|
||||
@issue = Issue.find_by(title: 'foobar')
|
||||
|
|
|
|||
|
|
@ -808,6 +808,7 @@ project:
|
|||
- design_management_repository
|
||||
- design_management_repository_state
|
||||
- compliance_standards_adherence
|
||||
- scan_result_policy_reads
|
||||
award_emoji:
|
||||
- awardable
|
||||
- user
|
||||
|
|
|
|||
|
|
@ -59,8 +59,7 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
|
|||
it { is_expected.to allow_value("dev.gitlab.com").for(:commit_email_hostname) }
|
||||
it { is_expected.not_to allow_value("@dev.gitlab").for(:commit_email_hostname) }
|
||||
|
||||
it { is_expected.to allow_value(true).for(:container_expiration_policies_enable_historic_entries) }
|
||||
it { is_expected.to allow_value(false).for(:container_expiration_policies_enable_historic_entries) }
|
||||
it { is_expected.to allow_value(true, false).for(:container_expiration_policies_enable_historic_entries) }
|
||||
it { is_expected.not_to allow_value(nil).for(:container_expiration_policies_enable_historic_entries) }
|
||||
|
||||
it { is_expected.to allow_value("myemail@gitlab.com").for(:lets_encrypt_notification_email) }
|
||||
|
|
@ -100,8 +99,7 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
|
|||
it { is_expected.to validate_numericality_of(:container_registry_cleanup_tags_service_max_list_size).only_integer.is_greater_than_or_equal_to(0) }
|
||||
it { is_expected.to validate_numericality_of(:container_registry_data_repair_detail_worker_max_concurrency).only_integer.is_greater_than_or_equal_to(0) }
|
||||
it { is_expected.to validate_numericality_of(:container_registry_expiration_policies_worker_capacity).only_integer.is_greater_than_or_equal_to(0) }
|
||||
it { is_expected.to allow_value(true).for(:container_registry_expiration_policies_caching) }
|
||||
it { is_expected.to allow_value(false).for(:container_registry_expiration_policies_caching) }
|
||||
it { is_expected.to allow_value(true, false).for(:container_registry_expiration_policies_caching) }
|
||||
|
||||
it { is_expected.to validate_numericality_of(:container_registry_import_max_tags_count).only_integer.is_greater_than_or_equal_to(0) }
|
||||
it { is_expected.to validate_numericality_of(:container_registry_import_max_retries).only_integer.is_greater_than_or_equal_to(0) }
|
||||
|
|
@ -134,8 +132,7 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
|
|||
|
||||
it { is_expected.to validate_numericality_of(:snippet_size_limit).only_integer.is_greater_than(0) }
|
||||
it { is_expected.to validate_numericality_of(:wiki_page_max_content_bytes).only_integer.is_greater_than_or_equal_to(1024) }
|
||||
it { is_expected.to allow_value(true).for(:wiki_asciidoc_allow_uri_includes) }
|
||||
it { is_expected.to allow_value(false).for(:wiki_asciidoc_allow_uri_includes) }
|
||||
it { is_expected.to allow_value(true, false).for(:wiki_asciidoc_allow_uri_includes) }
|
||||
it { is_expected.not_to allow_value(nil).for(:wiki_asciidoc_allow_uri_includes) }
|
||||
it { is_expected.to validate_presence_of(:max_artifacts_size) }
|
||||
it { is_expected.to validate_numericality_of(:max_artifacts_size).only_integer.is_greater_than(0) }
|
||||
|
|
@ -148,8 +145,7 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
|
|||
it { is_expected.to validate_presence_of(:max_terraform_state_size_bytes) }
|
||||
it { is_expected.to validate_numericality_of(:max_terraform_state_size_bytes).only_integer.is_greater_than_or_equal_to(0) }
|
||||
|
||||
it { is_expected.to allow_value(true).for(:user_defaults_to_private_profile) }
|
||||
it { is_expected.to allow_value(false).for(:user_defaults_to_private_profile) }
|
||||
it { is_expected.to allow_value(true, false).for(:user_defaults_to_private_profile) }
|
||||
it { is_expected.not_to allow_value(nil).for(:user_defaults_to_private_profile) }
|
||||
|
||||
it { is_expected.to allow_values([true, false]).for(:deny_all_requests_except_allowed) }
|
||||
|
|
@ -250,16 +246,13 @@ RSpec.describe ApplicationSetting, feature_category: :shared, type: :model do
|
|||
it { is_expected.to allow_value(http).for(:jira_connect_proxy_url) }
|
||||
it { is_expected.to allow_value(https).for(:jira_connect_proxy_url) }
|
||||
|
||||
it { is_expected.to allow_value(true).for(:bulk_import_enabled) }
|
||||
it { is_expected.to allow_value(false).for(:bulk_import_enabled) }
|
||||
it { is_expected.to allow_value(true, false).for(:bulk_import_enabled) }
|
||||
it { is_expected.not_to allow_value(nil).for(:bulk_import_enabled) }
|
||||
|
||||
it { is_expected.to allow_value(true).for(:allow_runner_registration_token) }
|
||||
it { is_expected.to allow_value(false).for(:allow_runner_registration_token) }
|
||||
it { is_expected.to allow_value(true, false).for(:allow_runner_registration_token) }
|
||||
it { is_expected.not_to allow_value(nil).for(:allow_runner_registration_token) }
|
||||
|
||||
it { is_expected.to allow_value(true).for(:gitlab_dedicated_instance) }
|
||||
it { is_expected.to allow_value(false).for(:gitlab_dedicated_instance) }
|
||||
it { is_expected.to allow_value(true, false).for(:gitlab_dedicated_instance) }
|
||||
it { is_expected.not_to allow_value(nil).for(:gitlab_dedicated_instance) }
|
||||
|
||||
it { is_expected.not_to allow_value(random: :value).for(:database_apdex_settings) }
|
||||
|
|
|
|||
Loading…
Reference in New Issue