Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.rubocop_manual_todo.yml19
-rw-r--r--app/graphql/resolvers/concerns/looks_ahead.rb15
-rw-r--r--app/graphql/resolvers/group_members_resolver.rb6
-rw-r--r--app/graphql/resolvers/members_resolver.rb6
-rw-r--r--app/models/clusters/agent.rb1
-rw-r--r--app/models/clusters/agent_token.rb4
-rw-r--r--changelogs/unreleased/322128-token-order.yml5
-rw-r--r--changelogs/unreleased/issue-325836-fix-empty-line-after-let-it-be-models-project.yml5
-rw-r--r--db/migrate/20210407152925_add_cluster_agent_token_last_used.rb20
-rw-r--r--db/schema_migrations/202104071529251
-rw-r--r--db/structure.sql2
-rw-r--r--doc/administration/redis/index.md2
-rw-r--r--doc/administration/redis/troubleshooting.md2
-rw-r--r--doc/ci/pipelines/job_artifacts.md2
-rw-r--r--doc/development/api_graphql_styleguide.md20
-rw-r--r--doc/install/requirements.md3
-rw-r--r--doc/user/profile/notifications.md2
-rw-r--r--doc/user/project/releases/index.md2
-rw-r--r--locale/gitlab.pot3
-rw-r--r--spec/models/clusters/agent_spec.rb1
-rw-r--r--spec/models/clusters/agent_token_spec.rb13
-rw-r--r--spec/models/project_services/chat_message/alert_message_spec.rb1
-rw-r--r--spec/models/project_services/jira_service_spec.rb1
-rw-r--r--spec/models/project_services/prometheus_service_spec.rb2
-rw-r--r--spec/models/project_services/slack_service_spec.rb8
-rw-r--r--spec/models/project_spec.rb10
26 files changed, 71 insertions, 85 deletions
diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml
index aa22a908cee..99082386826 100644
--- a/.rubocop_manual_todo.yml
+++ b/.rubocop_manual_todo.yml
@@ -460,20 +460,6 @@ RSpec/EmptyLineAfterFinalLetItBe:
- ee/spec/features/projects/licenses/maintainer_views_policies_spec.rb
- ee/spec/features/registrations/group_invites_during_signup_flow_spec.rb
- ee/spec/features/subscriptions_spec.rb
- - ee/spec/finders/analytics/cycle_analytics/stage_finder_spec.rb
- - ee/spec/finders/billed_users_finder_spec.rb
- - ee/spec/finders/custom_project_templates_finder_spec.rb
- - ee/spec/finders/deployments_finder_spec.rb
- - ee/spec/finders/ee/projects_finder_spec.rb
- - ee/spec/finders/epics_finder_spec.rb
- - ee/spec/finders/geo_node_finder_spec.rb
- - ee/spec/finders/incident_management/oncall_schedules_finder_spec.rb
- - ee/spec/finders/issues_finder_spec.rb
- - ee/spec/finders/iterations_finder_spec.rb
- - ee/spec/finders/merge_trains_finder_spec.rb
- - ee/spec/finders/projects/integrations/jira/issues_finder_spec.rb
- - ee/spec/finders/scim_finder_spec.rb
- - ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb
- ee/spec/graphql/ee/mutations/concerns/mutations/resolves_issuable_spec.rb
- ee/spec/graphql/mutations/boards/update_epic_user_preferences_spec.rb
- ee/spec/graphql/mutations/clusters/agent_tokens/create_spec.rb
@@ -877,11 +863,6 @@ RSpec/EmptyLineAfterFinalLetItBe:
- spec/models/packages/package_spec.rb
- spec/models/packages/tag_spec.rb
- spec/models/plan_limits_spec.rb
- - spec/models/project_services/chat_message/alert_message_spec.rb
- - spec/models/project_services/jira_service_spec.rb
- - spec/models/project_services/prometheus_service_spec.rb
- - spec/models/project_services/slack_service_spec.rb
- - spec/models/project_spec.rb
- spec/models/prometheus_alert_spec.rb
- spec/models/protected_branch/push_access_level_spec.rb
- spec/models/release_spec.rb
diff --git a/app/graphql/resolvers/concerns/looks_ahead.rb b/app/graphql/resolvers/concerns/looks_ahead.rb
index 77a85edfba6..644b2a11460 100644
--- a/app/graphql/resolvers/concerns/looks_ahead.rb
+++ b/app/graphql/resolvers/concerns/looks_ahead.rb
@@ -15,12 +15,7 @@ module LooksAhead
end
def apply_lookahead(query)
- selection = node_selection
-
- includes = preloads.each.flat_map do |name, requirements|
- selection&.selects?(name) ? requirements : []
- end
- all_preloads = (unconditional_includes + includes).uniq
+ all_preloads = (unconditional_includes + filtered_preloads).uniq
return query if all_preloads.empty?
@@ -37,6 +32,14 @@ module LooksAhead
{}
end
+ def filtered_preloads
+ selection = node_selection
+
+ preloads.each.flat_map do |name, requirements|
+ selection&.selects?(name) ? requirements : []
+ end
+ end
+
def node_selection
return unless lookahead
diff --git a/app/graphql/resolvers/group_members_resolver.rb b/app/graphql/resolvers/group_members_resolver.rb
index 36e1977b756..d3662b08cdf 100644
--- a/app/graphql/resolvers/group_members_resolver.rb
+++ b/app/graphql/resolvers/group_members_resolver.rb
@@ -13,12 +13,6 @@ module Resolvers
private
- def preloads
- {
- user: [:user, :source]
- }
- end
-
def finder_class
GroupMembersFinder
end
diff --git a/app/graphql/resolvers/members_resolver.rb b/app/graphql/resolvers/members_resolver.rb
index 76c3ae936ee..2b731d54cdd 100644
--- a/app/graphql/resolvers/members_resolver.rb
+++ b/app/graphql/resolvers/members_resolver.rb
@@ -21,6 +21,12 @@ module Resolvers
private
+ def preloads
+ {
+ user: [:user, :source]
+ }
+ end
+
def finder_class
# override in subclass
end
diff --git a/app/models/clusters/agent.rb b/app/models/clusters/agent.rb
index 7c42fc28a8d..c5b9dddb1da 100644
--- a/app/models/clusters/agent.rb
+++ b/app/models/clusters/agent.rb
@@ -8,7 +8,6 @@ module Clusters
belongs_to :project, class_name: '::Project' # Otherwise, it will load ::Clusters::Project
has_many :agent_tokens, class_name: 'Clusters::AgentToken'
- has_many :last_used_agent_tokens, -> { order_last_used_at_desc }, class_name: 'Clusters::AgentToken'
scope :ordered_by_name, -> { order(:name) }
scope :with_name, -> (name) { where(name: name) }
diff --git a/app/models/clusters/agent_token.rb b/app/models/clusters/agent_token.rb
index 27a3cd8d13d..d42279502c5 100644
--- a/app/models/clusters/agent_token.rb
+++ b/app/models/clusters/agent_token.rb
@@ -6,7 +6,7 @@ module Clusters
include TokenAuthenticatable
add_authentication_token_field :token, encrypted: :required, token_generator: -> { Devise.friendly_token(50) }
- cached_attr_reader :last_used_at
+ cached_attr_reader :last_contacted_at
self.table_name = 'cluster_agent_tokens'
@@ -21,8 +21,6 @@ module Clusters
validates :description, length: { maximum: 1024 }
validates :name, presence: true, length: { maximum: 255 }
- scope :order_last_used_at_desc, -> { order(::Gitlab::Database.nulls_last_order('last_used_at', 'DESC')) }
-
def track_usage
track_values = { last_used_at: Time.current.utc }
diff --git a/changelogs/unreleased/322128-token-order.yml b/changelogs/unreleased/322128-token-order.yml
deleted file mode 100644
index cf2ccd57898..00000000000
--- a/changelogs/unreleased/322128-token-order.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Add ability to order cluster token by last used
-merge_request: 57520
-author:
-type: changed
diff --git a/changelogs/unreleased/issue-325836-fix-empty-line-after-let-it-be-models-project.yml b/changelogs/unreleased/issue-325836-fix-empty-line-after-let-it-be-models-project.yml
new file mode 100644
index 00000000000..cf41822a4f9
--- /dev/null
+++ b/changelogs/unreleased/issue-325836-fix-empty-line-after-let-it-be-models-project.yml
@@ -0,0 +1,5 @@
+---
+title: Fix EmptyLineAfterFinalLetItBe offenses in spec/models/project
+merge_request: 58372
+author: Huzaifa Iftikhar @huzaifaiftikhar
+type: fixed
diff --git a/db/migrate/20210407152925_add_cluster_agent_token_last_used.rb b/db/migrate/20210407152925_add_cluster_agent_token_last_used.rb
deleted file mode 100644
index 8ade2971539..00000000000
--- a/db/migrate/20210407152925_add_cluster_agent_token_last_used.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# frozen_string_literal: true
-
-class AddClusterAgentTokenLastUsed < ActiveRecord::Migration[6.0]
- include Gitlab::Database::MigrationHelpers
-
- INDEX = 'index_cluster_agent_tokens_on_last_used_at'
-
- disable_ddl_transaction!
-
- def up
- add_concurrent_index :cluster_agent_tokens,
- :last_used_at,
- name: INDEX,
- order: { last_used_at: 'DESC NULLS LAST' }
- end
-
- def down
- remove_concurrent_index_by_name :cluster_agent_tokens, INDEX
- end
-end
diff --git a/db/schema_migrations/20210407152925 b/db/schema_migrations/20210407152925
deleted file mode 100644
index 1a248d78c8f..00000000000
--- a/db/schema_migrations/20210407152925
+++ /dev/null
@@ -1 +0,0 @@
-079ca92ac58519ce8f575c4cb94bfe6cf209e0c9eac20d3d3a294f5b468bc586 \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 98f3206ab40..a553b47ff84 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -22309,8 +22309,6 @@ CREATE INDEX index_cluster_agent_tokens_on_agent_id ON cluster_agent_tokens USIN
CREATE INDEX index_cluster_agent_tokens_on_created_by_user_id ON cluster_agent_tokens USING btree (created_by_user_id);
-CREATE INDEX index_cluster_agent_tokens_on_last_used_at ON cluster_agent_tokens USING btree (last_used_at DESC NULLS LAST);
-
CREATE UNIQUE INDEX index_cluster_agent_tokens_on_token_encrypted ON cluster_agent_tokens USING btree (token_encrypted);
CREATE INDEX index_cluster_agents_on_created_by_user_id ON cluster_agents USING btree (created_by_user_id);
diff --git a/doc/administration/redis/index.md b/doc/administration/redis/index.md
index 30618075c8f..23d13491c75 100644
--- a/doc/administration/redis/index.md
+++ b/doc/administration/redis/index.md
@@ -5,7 +5,7 @@ group: Distribution
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
---
-# Configuring Redis for scaling
+# Configuring Redis for scaling **(FREE SELF)**
Based on your infrastructure setup and how you have installed GitLab, there are
multiple ways to configure Redis.
diff --git a/doc/administration/redis/troubleshooting.md b/doc/administration/redis/troubleshooting.md
index 144660c50ea..0c1046ca22d 100644
--- a/doc/administration/redis/troubleshooting.md
+++ b/doc/administration/redis/troubleshooting.md
@@ -5,7 +5,7 @@ group: Distribution
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
---
-# Troubleshooting Redis
+# Troubleshooting Redis **(FREE SELF)**
There are a lot of moving parts that needs to be taken care carefully
in order for the HA setup to work as expected.
diff --git a/doc/ci/pipelines/job_artifacts.md b/doc/ci/pipelines/job_artifacts.md
index 72266cce3e6..d239c8b34ae 100644
--- a/doc/ci/pipelines/job_artifacts.md
+++ b/doc/ci/pipelines/job_artifacts.md
@@ -18,6 +18,8 @@ You can download job artifacts by using the GitLab UI or the [API](../../api/job
For an overview, watch the video [GitLab CI Pipeline, Artifacts, and Environments](https://www.youtube.com/watch?v=PCKDICEe10s).
Watch also [GitLab CI pipeline tutorial for beginners](https://www.youtube.com/watch?v=Jav4vbUrqII).
+Administrators should review our [job artifacts administration](../../administration/job_artifacts.md) documentation.
+
## Define artifacts in the `.gitlab-ci.yml` file
This example shows how to configure your `.gitlab-ci.yml` file to create job artifacts:
diff --git a/doc/development/api_graphql_styleguide.md b/doc/development/api_graphql_styleguide.md
index d3c2e012891..6256610ae6a 100644
--- a/doc/development/api_graphql_styleguide.md
+++ b/doc/development/api_graphql_styleguide.md
@@ -1014,6 +1014,26 @@ class MyThingResolver < BaseResolver
end
```
+By default, fields defined in `#preloads` will be preloaded if that field
+is selected in the query. Occasionally, finer control may be
+needed to avoid preloading too much or incorrect content.
+
+Extending the above example, we might want to preload a different
+association if certain fields are requested together. This can
+be done by overriding `#filtered_preloads`:
+
+```ruby
+class MyThingResolver < BaseResolver
+ # ...
+
+ def filtered_preloads
+ return [:alternate_attribute] if lookahead.selects?(:field_one) && lookahead.selects?(:field_two)
+
+ super
+ end
+end
+```
+
The final thing that is needed is that every field that uses this resolver needs
to advertise the need for lookahead:
diff --git a/doc/install/requirements.md b/doc/install/requirements.md
index b340ae76239..83b3eb07b14 100644
--- a/doc/install/requirements.md
+++ b/doc/install/requirements.md
@@ -17,7 +17,8 @@ as the hardware requirements that are needed to install and use GitLab.
- Ubuntu (16.04/18.04/20.04)
- Debian (9/10)
- CentOS (7/8)
-- openSUSE (Leap 15.1/Enterprise Server 12.2)
+- openSUSE Leap (15.1/15.2)
+- SUSE Linux Enterprise Server (12 SP2/12 SP5)
- Red Hat Enterprise Linux (please use the CentOS packages and instructions)
- Scientific Linux (please use the CentOS packages and instructions)
- Oracle Linux (please use the CentOS packages and instructions)
diff --git a/doc/user/profile/notifications.md b/doc/user/profile/notifications.md
index c3d12a8ba54..4d890e249e7 100644
--- a/doc/user/profile/notifications.md
+++ b/doc/user/profile/notifications.md
@@ -5,7 +5,7 @@ group: Project Management
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
---
-# GitLab Notification Emails
+# GitLab Notification Emails **(FREE)**
GitLab Notifications allow you to stay informed about what's happening in GitLab. With notifications
enabled, you can receive updates about activity in issues, merge requests, epics, and designs.
diff --git a/doc/user/project/releases/index.md b/doc/user/project/releases/index.md
index 3aba5e7853f..99df4a315c3 100644
--- a/doc/user/project/releases/index.md
+++ b/doc/user/project/releases/index.md
@@ -5,7 +5,7 @@ group: Release
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
---
-# Releases
+# Releases **(FREE)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41766) in GitLab 11.7.
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 6e53001aaed..2c173ea73a8 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -5323,9 +5323,6 @@ msgstr ""
msgid "Burndown chart"
msgstr ""
-msgid "Burndown charts are now fixed. This means that removing issues from a milestone after it has expired won't affect the chart. You can view the old chart using the %{strongStart}Legacy burndown chart%{strongEnd} button."
-msgstr ""
-
msgid "BurndownChartLabel|Open issue weight"
msgstr ""
diff --git a/spec/models/clusters/agent_spec.rb b/spec/models/clusters/agent_spec.rb
index ea7a55480a8..a85a72eba0b 100644
--- a/spec/models/clusters/agent_spec.rb
+++ b/spec/models/clusters/agent_spec.rb
@@ -8,7 +8,6 @@ RSpec.describe Clusters::Agent do
it { is_expected.to belong_to(:created_by_user).class_name('User').optional }
it { is_expected.to belong_to(:project).class_name('::Project') }
it { is_expected.to have_many(:agent_tokens).class_name('Clusters::AgentToken') }
- it { is_expected.to have_many(:last_used_agent_tokens).class_name('Clusters::AgentToken') }
it { is_expected.to validate_presence_of(:name) }
it { is_expected.to validate_length_of(:name).is_at_most(63) }
diff --git a/spec/models/clusters/agent_token_spec.rb b/spec/models/clusters/agent_token_spec.rb
index bde4798abec..680b351d24a 100644
--- a/spec/models/clusters/agent_token_spec.rb
+++ b/spec/models/clusters/agent_token_spec.rb
@@ -9,19 +9,6 @@ RSpec.describe Clusters::AgentToken do
it { is_expected.to validate_length_of(:name).is_at_most(255) }
it { is_expected.to validate_presence_of(:name) }
- describe 'scopes' do
- describe '.order_last_used_at_desc' do
- let_it_be(:token_1) { create(:cluster_agent_token, last_used_at: 7.days.ago) }
- let_it_be(:token_2) { create(:cluster_agent_token, last_used_at: nil) }
- let_it_be(:token_3) { create(:cluster_agent_token, last_used_at: 2.days.ago) }
-
- it 'sorts by last_used_at descending, with null values at last' do
- expect(described_class.order_last_used_at_desc)
- .to eq([token_3, token_1, token_2])
- end
- end
- end
-
describe '#token' do
it 'is generated on save' do
agent_token = build(:cluster_agent_token, token_encrypted: nil)
diff --git a/spec/models/project_services/chat_message/alert_message_spec.rb b/spec/models/project_services/chat_message/alert_message_spec.rb
index 927c5dffe77..4d400990789 100644
--- a/spec/models/project_services/chat_message/alert_message_spec.rb
+++ b/spec/models/project_services/chat_message/alert_message_spec.rb
@@ -6,6 +6,7 @@ RSpec.describe ChatMessage::AlertMessage do
subject { described_class.new(args) }
let_it_be(:start_time) { Time.current }
+
let(:alert) { create(:alert_management_alert, started_at: start_time) }
let(:args) do
diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb
index 77b52c719c5..b50fa1edbc3 100644
--- a/spec/models/project_services/jira_service_spec.rb
+++ b/spec/models/project_services/jira_service_spec.rb
@@ -790,6 +790,7 @@ RSpec.describe JiraService do
describe '#create_cross_reference_note' do
let_it_be(:user) { build_stubbed(:user) }
+
let(:jira_issue) { ExternalIssue.new('JIRA-123', project) }
subject { jira_service.create_cross_reference_note(jira_issue, resource, user) }
diff --git a/spec/models/project_services/prometheus_service_spec.rb b/spec/models/project_services/prometheus_service_spec.rb
index 366c3f68e1d..37a6d49ff74 100644
--- a/spec/models/project_services/prometheus_service_spec.rb
+++ b/spec/models/project_services/prometheus_service_spec.rb
@@ -9,6 +9,7 @@ RSpec.describe PrometheusService, :use_clean_rails_memory_store_caching, :snowpl
include ReactiveCachingHelpers
let_it_be_with_reload(:project) { create(:prometheus_project) }
+
let(:service) { project.prometheus_service }
describe "Associations" do
@@ -337,6 +338,7 @@ RSpec.describe PrometheusService, :use_clean_rails_memory_store_caching, :snowpl
context 'cluster belongs to projects group' do
let_it_be(:group) { create(:group) }
+
let(:project) { create(:prometheus_project, group: group) }
let(:cluster) { create(:cluster_for_group, :with_installed_helm, groups: [group]) }
diff --git a/spec/models/project_services/slack_service_spec.rb b/spec/models/project_services/slack_service_spec.rb
index aa5d92e5c61..688a59fcf09 100644
--- a/spec/models/project_services/slack_service_spec.rb
+++ b/spec/models/project_services/slack_service_spec.rb
@@ -32,6 +32,7 @@ RSpec.describe SlackService do
context 'event is not supported for usage log' do
let_it_be(:pipeline) { create(:ci_pipeline) }
+
let(:data) { Gitlab::DataBuilder::Pipeline.build(pipeline) }
it 'does not increase the usage data counter' do
@@ -43,6 +44,7 @@ RSpec.describe SlackService do
context 'issue notification' do
let_it_be(:issue) { create(:issue) }
+
let(:data) { issue.to_hook_data(user) }
it_behaves_like 'increases the usage data counter', 'i_ecosystem_slack_service_issue_notification'
@@ -56,6 +58,7 @@ RSpec.describe SlackService do
context 'deployment notification' do
let_it_be(:deployment) { create(:deployment, user: user) }
+
let(:data) { Gitlab::DataBuilder::Deployment.build(deployment) }
it_behaves_like 'increases the usage data counter', 'i_ecosystem_slack_service_deployment_notification'
@@ -63,6 +66,7 @@ RSpec.describe SlackService do
context 'wiki_page notification' do
let_it_be(:wiki_page) { create(:wiki_page, wiki: project.wiki, message: 'user created page: Awesome wiki_page') }
+
let(:data) { Gitlab::DataBuilder::WikiPage.build(wiki_page, user, 'create') }
it_behaves_like 'increases the usage data counter', 'i_ecosystem_slack_service_wiki_page_notification'
@@ -70,6 +74,7 @@ RSpec.describe SlackService do
context 'merge_request notification' do
let_it_be(:merge_request) { create(:merge_request) }
+
let(:data) { merge_request.to_hook_data(user) }
it_behaves_like 'increases the usage data counter', 'i_ecosystem_slack_service_merge_request_notification'
@@ -77,6 +82,7 @@ RSpec.describe SlackService do
context 'note notification' do
let_it_be(:issue_note) { create(:note_on_issue, note: 'issue note') }
+
let(:data) { Gitlab::DataBuilder::Note.build(issue_note, user) }
it_behaves_like 'increases the usage data counter', 'i_ecosystem_slack_service_note_notification'
@@ -93,6 +99,7 @@ RSpec.describe SlackService do
context 'confidential note notification' do
let_it_be(:confidential_issue_note) { create(:note_on_issue, note: 'issue note', confidential: true) }
+
let(:data) { Gitlab::DataBuilder::Note.build(confidential_issue_note, user) }
it_behaves_like 'increases the usage data counter', 'i_ecosystem_slack_service_confidential_note_notification'
@@ -100,6 +107,7 @@ RSpec.describe SlackService do
context 'confidential issue notification' do
let_it_be(:issue) { create(:issue, confidential: true) }
+
let(:data) { issue.to_hook_data(user) }
it_behaves_like 'increases the usage data counter', 'i_ecosystem_slack_service_confidential_issue_notification'
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 263ab6526a0..01132e18745 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -891,6 +891,7 @@ RSpec.describe Project, factory_default: :keep do
describe '#get_issue' do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
+
let!(:issue) { create(:issue, project: project) }
before_all do
@@ -2406,6 +2407,7 @@ RSpec.describe Project, factory_default: :keep do
describe '#latest_pipeline' do
let_it_be(:project) { create(:project, :repository) }
+
let(:second_branch) { project.repository.branches[2] }
let!(:pipeline_for_default_branch) do
@@ -2870,6 +2872,7 @@ RSpec.describe Project, factory_default: :keep do
describe '#emails_disabled?' do
let_it_be(:namespace) { create(:namespace) }
+
let(:project) { build(:project, namespace: namespace, emails_disabled: false) }
context 'emails disabled in group' do
@@ -3190,6 +3193,7 @@ RSpec.describe Project, factory_default: :keep do
describe '#ci_variables_for' do
let_it_be(:project) { create(:project) }
+
let(:environment_scope) { '*' }
let!(:ci_variable) do
@@ -4035,6 +4039,7 @@ RSpec.describe Project, factory_default: :keep do
include ProjectHelpers
let_it_be(:group) { create(:group) }
+
let!(:project) { create(:project, project_level, namespace: group ) }
let(:user) { create_user_from_membership(project, membership) }
@@ -4300,6 +4305,7 @@ RSpec.describe Project, factory_default: :keep do
context 'legacy storage' do
let_it_be(:project) { create(:project, :repository, :legacy_storage) }
+
let(:gitlab_shell) { Gitlab::Shell.new }
let(:project_storage) { project.send(:storage) }
@@ -4399,6 +4405,7 @@ RSpec.describe Project, factory_default: :keep do
context 'hashed storage' do
let_it_be(:project) { create(:project, :repository, skip_disk_validation: true) }
+
let(:gitlab_shell) { Gitlab::Shell.new }
let(:hash) { Digest::SHA2.hexdigest(project.id.to_s) }
let(:hashed_prefix) { File.join('@hashed', hash[0..1], hash[2..3]) }
@@ -4489,6 +4496,7 @@ RSpec.describe Project, factory_default: :keep do
describe '#has_ci?' do
let_it_be(:project, reload: true) { create(:project) }
+
let(:repository) { double }
before do
@@ -4985,6 +4993,7 @@ RSpec.describe Project, factory_default: :keep do
context 'branch protection' do
let_it_be(:namespace) { create(:namespace) }
+
let(:project) { create(:project, :repository, namespace: namespace) }
before do
@@ -6597,6 +6606,7 @@ RSpec.describe Project, factory_default: :keep do
describe '#latest_jira_import' do
let_it_be(:project) { create(:project) }
+
context 'when no jira imports' do
it 'returns nil' do
expect(project.latest_jira_import).to be nil