Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
d6533c4486
commit
0568b9e17a
|
@ -13,20 +13,14 @@
|
|||
# WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/322903
|
||||
Graphql/Descriptions:
|
||||
Exclude:
|
||||
- 'app/graphql/types/access_level_enum.rb'
|
||||
- 'app/graphql/types/base_enum.rb'
|
||||
- 'app/graphql/types/ci/pipeline_config_source_enum.rb'
|
||||
- 'app/graphql/types/ci/pipeline_status_enum.rb'
|
||||
- 'app/graphql/types/container_expiration_policy_cadence_enum.rb'
|
||||
- 'app/graphql/types/container_expiration_policy_keep_enum.rb'
|
||||
- 'app/graphql/types/container_expiration_policy_older_than_enum.rb'
|
||||
- 'app/graphql/types/notes/position_type_enum.rb'
|
||||
- 'app/graphql/types/packages/package_type_enum.rb'
|
||||
- 'app/graphql/types/snippets/blob_action_enum.rb'
|
||||
- 'app/graphql/types/snippets/type_enum.rb'
|
||||
- 'app/graphql/types/snippets/visibility_scopes_enum.rb'
|
||||
- 'app/graphql/types/todo_action_enum.rb'
|
||||
- 'app/graphql/types/tree/type_enum.rb'
|
||||
- 'ee/app/graphql/ee/types/list_limit_metric_enum.rb'
|
||||
- 'ee/app/graphql/types/alert_management/payload_alert_field_name_enum.rb'
|
||||
- 'ee/app/graphql/types/epic_state_enum.rb'
|
||||
|
|
|
@ -5,12 +5,12 @@ module Types
|
|||
graphql_name 'AccessLevelEnum'
|
||||
description 'Access level to a resource'
|
||||
|
||||
value 'NO_ACCESS', value: Gitlab::Access::NO_ACCESS, description: 'No access'
|
||||
value 'MINIMAL_ACCESS', value: Gitlab::Access::MINIMAL_ACCESS, description: 'Minimal access'
|
||||
value 'GUEST', value: Gitlab::Access::GUEST, description: 'Guest access'
|
||||
value 'REPORTER', value: Gitlab::Access::REPORTER, description: 'Reporter access'
|
||||
value 'DEVELOPER', value: Gitlab::Access::DEVELOPER, description: 'Developer access'
|
||||
value 'MAINTAINER', value: Gitlab::Access::MAINTAINER, description: 'Maintainer access'
|
||||
value 'OWNER', value: Gitlab::Access::OWNER, description: 'Owner access'
|
||||
value 'NO_ACCESS', value: Gitlab::Access::NO_ACCESS, description: 'No access.'
|
||||
value 'MINIMAL_ACCESS', value: Gitlab::Access::MINIMAL_ACCESS, description: 'Minimal access.'
|
||||
value 'GUEST', value: Gitlab::Access::GUEST, description: 'Guest access.'
|
||||
value 'REPORTER', value: Gitlab::Access::REPORTER, description: 'Reporter access.'
|
||||
value 'DEVELOPER', value: Gitlab::Access::DEVELOPER, description: 'Developer access.'
|
||||
value 'MAINTAINER', value: Gitlab::Access::MAINTAINER, description: 'Maintainer access.'
|
||||
value 'OWNER', value: Gitlab::Access::OWNER, description: 'Owner access.'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,7 +7,7 @@ module Types
|
|||
description 'Alert status values'
|
||||
|
||||
::AlertManagement::Alert.status_names.each do |status|
|
||||
value status.to_s.upcase, value: status, description: ::AlertManagement::Alert::STATUS_DESCRIPTIONS[status]
|
||||
value status.to_s.upcase, value: status, description: "#{::AlertManagement::Alert::STATUS_DESCRIPTIONS[status]}."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ module Types
|
|||
class PipelineStatusEnum < BaseEnum
|
||||
::Ci::Pipeline.all_state_names.each do |state_symbol|
|
||||
value state_symbol.to_s.upcase,
|
||||
description: ::Ci::Pipeline::STATUSES_DESCRIPTION[state_symbol],
|
||||
description: "#{::Ci::Pipeline::STATUSES_DESCRIPTION[state_symbol]}.",
|
||||
value: state_symbol.to_s
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,7 +6,7 @@ module Types
|
|||
description 'Group member relation'
|
||||
|
||||
::GroupMembersFinder::RELATIONS.each do |member_relation|
|
||||
value member_relation.to_s.upcase, value: member_relation, description: ::GroupMembersFinder::RELATIONS_DESCRIPTIONS[member_relation]
|
||||
value member_relation.to_s.upcase, value: member_relation, description: "#{::GroupMembersFinder::RELATIONS_DESCRIPTIONS[member_relation]}."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,8 +6,8 @@ module Types
|
|||
graphql_name 'DiffPositionType'
|
||||
description 'Type of file the position refers to'
|
||||
|
||||
value 'text', description: "A text file"
|
||||
value 'image', description: "An image"
|
||||
value 'text', description: "A text file."
|
||||
value 'image', description: "An image."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,9 +6,9 @@ module Types
|
|||
graphql_name 'EntryType'
|
||||
description 'Type of a tree entry'
|
||||
|
||||
value 'tree', description: 'Directory tree type', value: :tree
|
||||
value 'blob', description: 'File tree type', value: :blob
|
||||
value 'commit', description: 'Commit tree type', value: :commit
|
||||
value 'tree', description: 'Directory tree type.', value: :tree
|
||||
value 'blob', description: 'File tree type.', value: :blob
|
||||
value 'commit', description: 'Commit tree type.', value: :commit
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,30 +14,6 @@ module Ci
|
|||
(local + cross_pipeline + cross_project).uniq
|
||||
end
|
||||
|
||||
# Dependencies local to the given pipeline
|
||||
def local
|
||||
return [] if no_local_dependencies_specified?
|
||||
return [] unless processable.pipeline_id # we don't have any dependency when creating the pipeline
|
||||
|
||||
deps = model_class.where(pipeline_id: processable.pipeline_id).latest
|
||||
deps = from_previous_stages(deps)
|
||||
deps = from_needs(deps)
|
||||
from_dependencies(deps)
|
||||
end
|
||||
|
||||
# Dependencies from the same parent-pipeline hierarchy excluding
|
||||
# the current job's pipeline
|
||||
def cross_pipeline
|
||||
strong_memoize(:cross_pipeline) do
|
||||
fetch_dependencies_in_hierarchy
|
||||
end
|
||||
end
|
||||
|
||||
# Dependencies that are defined by project and ref
|
||||
def cross_project
|
||||
[]
|
||||
end
|
||||
|
||||
def invalid_local
|
||||
local.reject(&:valid_dependency?)
|
||||
end
|
||||
|
@ -54,6 +30,32 @@ module Ci
|
|||
::Ci::Build
|
||||
end
|
||||
|
||||
# Dependencies local to the given pipeline
|
||||
def local
|
||||
strong_memoize(:local) do
|
||||
next [] if no_local_dependencies_specified?
|
||||
next [] unless processable.pipeline_id # we don't have any dependency when creating the pipeline
|
||||
|
||||
deps = model_class.where(pipeline_id: processable.pipeline_id).latest
|
||||
deps = from_previous_stages(deps)
|
||||
deps = from_needs(deps)
|
||||
from_dependencies(deps).to_a
|
||||
end
|
||||
end
|
||||
|
||||
# Dependencies from the same parent-pipeline hierarchy excluding
|
||||
# the current job's pipeline
|
||||
def cross_pipeline
|
||||
strong_memoize(:cross_pipeline) do
|
||||
fetch_dependencies_in_hierarchy
|
||||
end
|
||||
end
|
||||
|
||||
# Dependencies that are defined by project and ref
|
||||
def cross_project
|
||||
[]
|
||||
end
|
||||
|
||||
def fetch_dependencies_in_hierarchy
|
||||
deps_specifications = specified_cross_pipeline_dependencies
|
||||
return [] if deps_specifications.empty?
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
title: Track checking/unchecking tasks on epics
|
||||
merge_request: 59871
|
||||
author:
|
||||
type: added
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix pipeline status when DAG jobs needs manual jobs
|
||||
merge_request: 59975
|
||||
author:
|
||||
type: fixed
|
|
@ -36,8 +36,6 @@ module Gitlab
|
|||
# Application configuration should go into files in config/initializers
|
||||
# -- all .rb files in that directory are automatically loaded.
|
||||
|
||||
config.active_record.sqlite3.represent_boolean_as_integer = true
|
||||
|
||||
# Sidekiq uses eager loading, but directories not in the standard Rails
|
||||
# directories must be added to the eager load paths:
|
||||
# https://github.com/mperham/sidekiq/wiki/FAQ#why-doesnt-sidekiq-autoload-my-rails-application-code
|
||||
|
|
|
@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/321972
|
|||
milestone: '13.10'
|
||||
type: development
|
||||
group: group::pipeline authoring
|
||||
default_enabled: false
|
||||
default_enabled: true
|
||||
|
|
|
@ -10,9 +10,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
Maintenance Mode allows administrators to reduce write operations to a minimum while maintenance tasks are performed. The main goal is to block all external actions that change the internal state, including the PostgreSQL database, but especially files, Git repositories, Container repositories, etc.
|
||||
|
||||
Once Maintenance Mode is enabled, in-progress actions will finish relatively quickly since no new actions are coming in, and internal state changes will be minimal.
|
||||
Once Maintenance Mode is enabled, in-progress actions finish relatively quickly since no new actions are coming in, and internal state changes are minimal.
|
||||
In that state, various maintenance tasks are easier, and services can be stopped completely or be
|
||||
further degraded for a much shorter period of time than might otherwise be needed, for example stopping cron jobs and draining queues should be fairly quick.
|
||||
further degraded for a much shorter period of time than might otherwise be needed. For example, stopping cron jobs and draining queues should be fairly quick.
|
||||
|
||||
Maintenance Mode allows most external actions that do not change internal state. On a high-level, HTTP POST, PUT, PATCH, and DELETE requests are blocked and a detailed overview of [how special cases are handled](#rest-api) is available.
|
||||
|
||||
|
@ -74,33 +74,33 @@ In some cases, the visual feedback from an action could be misleading, for examp
|
|||
|
||||
### Admin functions
|
||||
|
||||
Systems administrators can edit the application settings. This will allow
|
||||
Systems administrators can edit the application settings. This allows
|
||||
them to disable Maintenance Mode after it's been enabled.
|
||||
|
||||
### Authentication
|
||||
|
||||
All users can log in and out of the GitLab instance but no new users can be created.
|
||||
|
||||
If there are [LDAP syncs](../auth/ldap/index.md) scheduled for that time, they will fail since user creation is disabled. Similarly, [user creations based on SAML](../../integration/saml.md#general-setup) will fail.
|
||||
If there are [LDAP syncs](../auth/ldap/index.md) scheduled for that time, they fail since user creation is disabled. Similarly, [user creations based on SAML](../../integration/saml.md#general-setup) fail.
|
||||
|
||||
### Git actions
|
||||
|
||||
All read-only Git operations will continue to work, for example
|
||||
`git clone` and `git pull`. All write operations will fail, both through the CLI and Web IDE with the error message: `Git push is not allowed because this GitLab instance is currently in (read-only) maintenance mode.`
|
||||
All read-only Git operations continue to work, for example
|
||||
`git clone` and `git pull`. All write operations fail, both through the CLI and Web IDE with the error message: `Git push is not allowed because this GitLab instance is currently in (read-only) maintenance mode.`
|
||||
|
||||
If Geo is enabled, Git pushes to both primary and secondaries will fail.
|
||||
If Geo is enabled, Git pushes to both primary and secondaries fail.
|
||||
|
||||
### Merge requests, issues, epics
|
||||
|
||||
All write actions except those mentioned above will fail. For example, a user cannot update merge requests or issues.
|
||||
All write actions except those mentioned above fail. For example, a user cannot update merge requests or issues.
|
||||
|
||||
### Incoming email
|
||||
|
||||
Creating new issue replies, issues (including new Service Desk issues), merge requests [by email](../incoming_email.md) will fail.
|
||||
Creating new issue replies, issues (including new Service Desk issues), merge requests [by email](../incoming_email.md) fail.
|
||||
|
||||
### Outgoing email
|
||||
|
||||
Notification emails will continue to arrive, but emails that require database writes, like resetting the password, will not arrive.
|
||||
Notification emails continue to arrive, but emails that require database writes, like resetting the password, do not arrive.
|
||||
|
||||
### REST API
|
||||
|
||||
|
|
|
@ -1100,54 +1100,6 @@ Status: `data_available`
|
|||
|
||||
Tiers: `free`
|
||||
|
||||
### `counts.g_project_management_users_checking_epic_task_monthly`
|
||||
|
||||
Counts of MAU checking epic task
|
||||
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210421080207_g_project_management_users_checking_epic_task_monthly.yml)
|
||||
|
||||
Group: `group::product planning`
|
||||
|
||||
Status: `implemented`
|
||||
|
||||
Tiers: `premium`, `ultimate`
|
||||
|
||||
### `counts.g_project_management_users_checking_epic_task_weekly`
|
||||
|
||||
Counts of WAU checking epic task
|
||||
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210421075943_g_project_management_users_checking_epic_task_weekly.yml)
|
||||
|
||||
Group: `group::product planning`
|
||||
|
||||
Status: `implemented`
|
||||
|
||||
Tiers: `premium`, `ultimate`
|
||||
|
||||
### `counts.g_project_management_users_unchecking_epic_task_monthly`
|
||||
|
||||
Counts of MAU unchecking epic task
|
||||
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210421102516_g_project_management_users_unchecking_epic_task_monthly.yml)
|
||||
|
||||
Group: `group::product planning`
|
||||
|
||||
Status: `implemented`
|
||||
|
||||
Tiers: `premium`, `ultimate`
|
||||
|
||||
### `counts.g_project_management_users_unchecking_epic_task_weekly`
|
||||
|
||||
Counts of WAU unchecking epic task
|
||||
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210421102812_g_project_management_users_unchecking_epic_task_weekly.yml)
|
||||
|
||||
Group: `group::product planning`
|
||||
|
||||
Status: `implemented`
|
||||
|
||||
Tiers: `premium`, `ultimate`
|
||||
|
||||
### `counts.geo_event_log_max_id`
|
||||
|
||||
Number of replication events on a Geo primary
|
||||
|
@ -6478,7 +6430,7 @@ Tiers: `free`, `premium`, `ultimate`
|
|||
|
||||
### `database.pg_system_id`
|
||||
|
||||
TBD
|
||||
Missing description
|
||||
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183248_pg_system_id.yml)
|
||||
|
||||
|
@ -7812,7 +7764,7 @@ Tiers: `free`, `premium`, `ultimate`
|
|||
|
||||
Number of projects using 5 min production app CI template in last 7 days.
|
||||
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184515_p_ci_templates_5_min_production_app_weekly.yml)
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184515_p_ci_templates_5_min_production_app_weekly.yml)
|
||||
|
||||
Group: `group::5-min-app`
|
||||
|
||||
|
@ -16058,8 +16010,6 @@ Tiers: `free`
|
|||
|
||||
Histogram (buckets 1 to 100) of projects with at least 1 enabled integration.
|
||||
|
||||
[Object JSON schema](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/objects_schemas/projects_with_enabled_alert_integrations_histogram.json)
|
||||
|
||||
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210309165717_projects_with_enabled_alert_integrations_histogram.yml)
|
||||
|
||||
Group: `group::monitor`
|
||||
|
|
|
@ -48,35 +48,5 @@ methods, the majority which use the Linux packages:
|
|||
|
||||
## Next steps
|
||||
|
||||
Here are a few resources you might want to check out after completing the
|
||||
installation:
|
||||
|
||||
- [Upload a license](../user/admin_area/license.md) or [start a free trial](https://about.gitlab.com/free-trial/):
|
||||
Activate all GitLab Enterprise Edition functionality with a license.
|
||||
- [Set up runners](https://docs.gitlab.com/runner/): Set up one or more GitLab
|
||||
Runners, the agents that are responsible for all of the GitLab CI/CD features.
|
||||
- [GitLab Pages](../administration/pages/index.md): Configure GitLab Pages to
|
||||
allow hosting of static sites.
|
||||
- [GitLab Registry](../administration/packages/container_registry.md): With the
|
||||
GitLab Container Registry, every project can have its own space to store Docker
|
||||
images.
|
||||
- [Secure GitLab](../security/README.md#securing-your-gitlab-installation):
|
||||
Recommended practices to secure your GitLab instance.
|
||||
- [SMTP](https://docs.gitlab.com/omnibus/settings/smtp.html): Configure SMTP
|
||||
for proper email notifications support.
|
||||
- [LDAP](../administration/auth/ldap/index.md): Configure LDAP to be used as
|
||||
an authentication mechanism for GitLab.
|
||||
- [Back up and restore GitLab](../raketasks/backup_restore.md): Learn the different
|
||||
ways you can back up or restore GitLab.
|
||||
- [Upgrade GitLab](../update/index.md): Every 22nd of the month, a new feature-rich GitLab version
|
||||
is released. Learn how to upgrade to it, or to an interim release that contains a security fix.
|
||||
- [Scaling GitLab](../administration/reference_architectures/index.md):
|
||||
GitLab supports several different types of clustering.
|
||||
- [Advanced Search](../integration/elasticsearch.md): Leverage Elasticsearch for
|
||||
faster, more advanced code search across your entire GitLab instance.
|
||||
- [Geo replication](../administration/geo/index.md):
|
||||
Geo is the solution for widely distributed development teams.
|
||||
- [Release and maintenance policy](../policy/maintenance.md): Learn about GitLab
|
||||
policies governing version naming, as well as release pace for major, minor, patch,
|
||||
and security releases.
|
||||
- [Pricing](https://about.gitlab.com/pricing/): Pricing for the different tiers.
|
||||
After you complete the steps for installing GitLab, you can
|
||||
[configure your instance](next_steps.md).
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
---
|
||||
stage: Enablement
|
||||
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
|
||||
---
|
||||
|
||||
# Steps after installing GitLab
|
||||
|
||||
Here are a few resources you might want to check out after completing the
|
||||
installation.
|
||||
|
||||
## License
|
||||
|
||||
- [Upload a license](../user/admin_area/license.md) or [start a free trial](https://about.gitlab.com/free-trial/):
|
||||
Activate all GitLab Enterprise Edition functionality with a license.
|
||||
- [Pricing](https://about.gitlab.com/pricing/): Pricing for the different tiers.
|
||||
|
||||
## Security
|
||||
|
||||
- [Secure GitLab](../security/README.md#securing-your-gitlab-installation):
|
||||
Recommended practices to secure your GitLab instance.
|
||||
|
||||
## Authentication
|
||||
|
||||
- [LDAP](../administration/auth/ldap/index.md): Configure LDAP to be used as
|
||||
an authentication mechanism for GitLab.
|
||||
|
||||
## Email and notifications
|
||||
|
||||
- [SMTP](https://docs.gitlab.com/omnibus/settings/smtp.html): Configure SMTP
|
||||
for proper email notifications support.
|
||||
|
||||
## Backup and upgrade
|
||||
|
||||
- [Back up and restore GitLab](../raketasks/backup_restore.md): Learn the different
|
||||
ways you can back up or restore GitLab.
|
||||
- [Upgrade GitLab](../update/index.md): Every 22nd of the month, a new feature-rich GitLab version
|
||||
is released. Learn how to upgrade to it, or to an interim release that contains a security fix.
|
||||
- [Release and maintenance policy](../policy/maintenance.md): Learn about GitLab
|
||||
policies governing version naming, as well as release pace for major, minor, patch,
|
||||
and security releases.
|
||||
|
||||
## CI/CD
|
||||
|
||||
- [Set up runners](https://docs.gitlab.com/runner/): Set up one or more GitLab
|
||||
Runners, the agents that are responsible for all of the GitLab CI/CD features.
|
||||
- [GitLab Pages](../administration/pages/index.md): Configure GitLab Pages to
|
||||
allow hosting of static sites.
|
||||
- [GitLab Registry](../administration/packages/container_registry.md): With the
|
||||
GitLab Container Registry, every project can have its own space to store Docker
|
||||
images.
|
||||
|
||||
## Scaling and replication
|
||||
|
||||
- [Scaling GitLab](../administration/reference_architectures/index.md):
|
||||
GitLab supports several different types of clustering.
|
||||
- [Geo replication](../administration/geo/index.md):
|
||||
Geo is the solution for widely distributed development teams.
|
||||
|
||||
## Search
|
||||
|
||||
- [Advanced Search](../integration/elasticsearch.md): Leverage Elasticsearch for
|
||||
faster, more advanced code search across your entire GitLab instance.
|
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
Binary file not shown.
Before Width: | Height: | Size: 32 KiB |
|
@ -38,24 +38,24 @@ to **Admin Area > License**.
|
|||
|
||||
Otherwise, you can:
|
||||
|
||||
1. Navigate manually to the **Admin Area** by clicking the wrench (**{admin}**) icon in the menu bar.
|
||||
1. Navigate manually to the **Admin Area** by selecting the wrench (**{admin}**) icon in the top menu.
|
||||
|
||||
1. Navigate to the **License** tab, and click **Upload New License**.
|
||||
1. Navigate to the **License** tab, and select **Upload New License**.
|
||||
|
||||
- *If you've received a `.gitlab-license` file:*
|
||||
1. Download the license file to your local machine.
|
||||
1. Select **Upload `.gitlab-license` file**.
|
||||
1. Select **Choose File** and select the license file.
|
||||
1. Select **Choose file** and select the license file.
|
||||
In this example the license file is named `GitLab.gitlab-license`.
|
||||
1. Check the **Subscription Agreement** checkbox.
|
||||
1. Select the **Terms of Service** checkbox.
|
||||
1. Select **Upload License**.
|
||||
|
||||
![Upload license](img/license_upload_v13_8.png)
|
||||
![Upload license](img/license_upload_v13_12.png)
|
||||
|
||||
- *If you've received your license as plain text:*
|
||||
1. Select **Enter license key**.
|
||||
1. Copy the license and paste it into the **License key** field.
|
||||
1. Check the **Subscription Agreement** checkbox.
|
||||
1. Select the **Terms of Service** checkbox.
|
||||
1. Select **Upload License**.
|
||||
|
||||
## Add your license at install time
|
||||
|
|
|
@ -9,20 +9,6 @@
|
|||
aggregation: daily
|
||||
feature_flag: track_epics_activity
|
||||
|
||||
# content change events
|
||||
|
||||
- name: project_management_users_unchecking_epic_task
|
||||
category: epics_usage
|
||||
redis_slot: project_management
|
||||
aggregation: daily
|
||||
feature_flag: track_epics_activity
|
||||
|
||||
- name: project_management_users_checking_epic_task
|
||||
category: epics_usage
|
||||
redis_slot: project_management
|
||||
aggregation: daily
|
||||
feature_flag: track_epics_activity
|
||||
|
||||
- name: g_project_management_users_updating_epic_titles
|
||||
category: epics_usage
|
||||
redis_slot: project_management
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Gitlab::Ci::Config::Entry::Default do
|
||||
let(:config) { {} }
|
||||
let(:entry) { described_class.new(config) }
|
||||
|
||||
it_behaves_like 'with inheritable CI config' do
|
||||
|
|
|
@ -20,6 +20,7 @@ RSpec.describe Gitlab::Ci::Config::Entry::Hidden do
|
|||
end
|
||||
|
||||
describe '.new' do
|
||||
let(:config) { {} }
|
||||
let(:entry) { described_class.new(config) }
|
||||
|
||||
describe 'validations' do
|
||||
|
@ -41,8 +42,6 @@ RSpec.describe Gitlab::Ci::Config::Entry::Hidden do
|
|||
|
||||
context 'when entry value is not correct' do
|
||||
context 'when config is empty' do
|
||||
let(:config) { {} }
|
||||
|
||||
describe '#valid' do
|
||||
it 'is invalid' do
|
||||
expect(entry).not_to be_valid
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Gitlab::Ci::Config::Entry::Kubernetes do
|
||||
let(:config) { Hash(namespace: 'namespace') }
|
||||
|
||||
subject { described_class.new(config) }
|
||||
|
||||
describe 'attributes' do
|
||||
|
|
|
@ -22,8 +22,8 @@ RSpec.describe Ci::BuildDependencies do
|
|||
stub_feature_flags(ci_validate_build_dependencies_override: false)
|
||||
end
|
||||
|
||||
describe '#local' do
|
||||
subject { described_class.new(job).local }
|
||||
context 'for local dependencies' do
|
||||
subject { described_class.new(job).all }
|
||||
|
||||
describe 'jobs from previous stages' do
|
||||
context 'when job is in the first stage' do
|
||||
|
@ -52,7 +52,7 @@ RSpec.describe Ci::BuildDependencies do
|
|||
project.add_developer(user)
|
||||
end
|
||||
|
||||
let(:retried_job) { Ci::Build.retry(rspec_test, user) }
|
||||
let!(:retried_job) { Ci::Build.retry(rspec_test, user) }
|
||||
|
||||
it 'contains the retried job instead of the original one' do
|
||||
is_expected.to contain_exactly(build, retried_job, rubocop_test)
|
||||
|
@ -150,7 +150,7 @@ RSpec.describe Ci::BuildDependencies do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#cross_pipeline' do
|
||||
context 'for cross_pipeline dependencies' do
|
||||
let!(:job) do
|
||||
create(:ci_build,
|
||||
pipeline: pipeline,
|
||||
|
@ -160,7 +160,7 @@ RSpec.describe Ci::BuildDependencies do
|
|||
|
||||
subject { described_class.new(job) }
|
||||
|
||||
let(:cross_pipeline_deps) { subject.cross_pipeline }
|
||||
let(:cross_pipeline_deps) { subject.all }
|
||||
|
||||
context 'when dependency specifications are valid' do
|
||||
context 'when pipeline exists in the hierarchy' do
|
||||
|
|
|
@ -2815,11 +2815,11 @@ RSpec.describe Project, factory_default: :keep do
|
|||
end
|
||||
|
||||
describe '#remove_import_data' do
|
||||
let_it_be(:import_data) { ProjectImportData.new(data: { 'test' => 'some data' }) }
|
||||
let(:import_data) { ProjectImportData.new(data: { 'test' => 'some data' }) }
|
||||
|
||||
context 'when jira import' do
|
||||
let_it_be(:project, reload: true) { create(:project, import_type: 'jira', import_data: import_data) }
|
||||
let_it_be(:jira_import) { create(:jira_import_state, project: project) }
|
||||
let!(:project) { create(:project, import_type: 'jira', import_data: import_data) }
|
||||
let!(:jira_import) { create(:jira_import_state, project: project) }
|
||||
|
||||
it 'does remove import data' do
|
||||
expect(project.mirror?).to be false
|
||||
|
@ -2829,8 +2829,7 @@ RSpec.describe Project, factory_default: :keep do
|
|||
end
|
||||
|
||||
context 'when neither a mirror nor a jira import' do
|
||||
let_it_be(:user) { create(:user) }
|
||||
let_it_be(:project) { create(:project, import_type: 'github', import_data: import_data) }
|
||||
let!(:project) { create(:project, import_type: 'github', import_data: import_data) }
|
||||
|
||||
it 'removes import data' do
|
||||
expect(project.mirror?).to be false
|
||||
|
|
|
@ -502,8 +502,8 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
|
|||
expect { request_job }.to exceed_all_query_limit(1).for_model(::Ci::JobArtifact)
|
||||
end
|
||||
|
||||
it 'queries the ci_builds table more than five times' do
|
||||
expect { request_job }.to exceed_all_query_limit(5).for_model(::Ci::Build)
|
||||
it 'queries the ci_builds table more than three times' do
|
||||
expect { request_job }.to exceed_all_query_limit(3).for_model(::Ci::Build)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@ RSpec.describe Mutations::Boards::Destroy do
|
|||
let_it_be(:current_user, reload: true) { create(:user) }
|
||||
let_it_be(:project, reload: true) { create(:project) }
|
||||
let_it_be(:board) { create(:board, project: project) }
|
||||
let_it_be(:other_board) { create(:board, project: project) }
|
||||
let_it_be(:other_board, refind: true) { create(:board, project: project) }
|
||||
|
||||
let(:mutation) do
|
||||
variables = {
|
||||
id: GitlabSchema.id_from_object(board).to_s
|
||||
|
|
|
@ -10,7 +10,8 @@ RSpec.describe Mutations::Boards::Lists::Destroy do
|
|||
it_behaves_like 'board lists destroy request' do
|
||||
let_it_be(:group, reload: true) { create(:group) }
|
||||
let_it_be(:board) { create(:board, group: group) }
|
||||
let_it_be(:list) { create(:list, board: board) }
|
||||
let_it_be(:list, refind: true) { create(:list, board: board) }
|
||||
|
||||
let(:variables) do
|
||||
{
|
||||
list_id: GitlabSchema.id_from_object(list).to_s
|
||||
|
|
|
@ -1335,6 +1335,7 @@ RSpec.describe API::Projects do
|
|||
describe 'GET /users/:user_id/starred_projects/' do
|
||||
before do
|
||||
user3.update!(starred_projects: [project, project2, project3])
|
||||
user3.reload
|
||||
end
|
||||
|
||||
it 'returns error when user not found' do
|
||||
|
|
|
@ -5,7 +5,7 @@ require 'spec_helper'
|
|||
RSpec.describe Ci::CreateDownstreamPipelineService, '#execute' do
|
||||
let_it_be(:user) { create(:user) }
|
||||
let(:upstream_project) { create(:project, :repository) }
|
||||
let_it_be(:downstream_project) { create(:project, :repository) }
|
||||
let_it_be(:downstream_project, refind: true) { create(:project, :repository) }
|
||||
|
||||
let!(:upstream_pipeline) do
|
||||
create(:ci_pipeline, :running, project: upstream_project)
|
||||
|
|
|
@ -161,6 +161,7 @@ RSpec.describe Deployments::UpdateEnvironmentService do
|
|||
context 'when deployment was created by an external CD system' do
|
||||
before do
|
||||
deployment.update_column(:deployable_id, nil)
|
||||
deployment.reload
|
||||
end
|
||||
|
||||
it 'guesses the deployment tier' do
|
||||
|
|
|
@ -7,7 +7,7 @@ RSpec.describe Projects::Prometheus::Alerts::NotifyService do
|
|||
using RSpec::Parameterized::TableSyntax
|
||||
|
||||
let_it_be_with_reload(:project) { create(:project) }
|
||||
let_it_be_with_reload(:setting) do
|
||||
let_it_be_with_refind(:setting) do
|
||||
create(:project_incident_management_setting, project: project, send_email: true, create_issue: true)
|
||||
end
|
||||
|
||||
|
|
|
@ -41,15 +41,15 @@ RSpec.describe WebHooks::DestroyService do
|
|||
end
|
||||
|
||||
context 'with system hook' do
|
||||
let_it_be(:hook) { create(:system_hook, url: "http://example.com") }
|
||||
let_it_be(:log) { create_list(:web_hook_log, 3, web_hook: hook) }
|
||||
let!(:hook) { create(:system_hook, url: "http://example.com") }
|
||||
let!(:log) { create_list(:web_hook_log, 3, web_hook: hook) }
|
||||
|
||||
it_behaves_like 'batched destroys'
|
||||
end
|
||||
|
||||
context 'with project hook' do
|
||||
let_it_be(:hook) { create(:project_hook) }
|
||||
let_it_be(:log) { create_list(:web_hook_log, 3, web_hook: hook) }
|
||||
let!(:hook) { create(:project_hook) }
|
||||
let!(:log) { create_list(:web_hook_log, 3, web_hook: hook) }
|
||||
|
||||
it_behaves_like 'batched destroys'
|
||||
end
|
||||
|
|
|
@ -23,14 +23,9 @@ RSpec.shared_examples 'updating a single task' do
|
|||
if try(:merge_request)
|
||||
expect(Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter)
|
||||
.to receive(:track_task_item_status_changed).once.with(user: user)
|
||||
elsif try(:epic)
|
||||
expect(Gitlab::UsageDataCounters::EpicActivityUniqueCounter)
|
||||
.to receive(:track_epic_task_checked).once.with(author: user)
|
||||
else
|
||||
expect(Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter)
|
||||
.not_to receive(:track_task_item_status_changed)
|
||||
expect(Gitlab::UsageDataCounters::EpicActivityUniqueCounter)
|
||||
.not_to receive(:track_epic_task_checked)
|
||||
end
|
||||
|
||||
update_issuable(
|
||||
|
|
|
@ -5,7 +5,7 @@ require 'spec_helper'
|
|||
RSpec.describe ContainerExpirationPolicies::CleanupContainerRepositoryWorker do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
|
||||
let_it_be(:repository, reload: true) { create(:container_repository, :cleanup_scheduled) }
|
||||
let_it_be(:repository, refind: true) { create(:container_repository, :cleanup_scheduled) }
|
||||
let_it_be(:project) { repository.project }
|
||||
let_it_be(:policy) { project.container_expiration_policy }
|
||||
let_it_be(:other_repository) { create(:container_repository) }
|
||||
|
|
Loading…
Reference in New Issue