summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_info.vue4
-rw-r--r--app/assets/javascripts/vue_shared/components/bar_chart.vue13
-rw-r--r--app/helpers/sidekiq_helper.rb2
-rw-r--r--app/models/project.rb2
-rw-r--r--app/models/project_services/pipelines_email_service.rb2
-rw-r--r--app/models/project_wiki.rb2
-rw-r--r--app/models/repository.rb2
-rw-r--r--changelogs/unreleased/196861-improve-pipelines-copy.yml5
-rw-r--r--changelogs/unreleased/9425-gitlab-npm-registry-to-support-npm-tags.yml5
-rw-r--r--changelogs/unreleased/sh-add-missing-backtrace-define.yml5
-rw-r--r--config/environments/test.rb7
-rw-r--r--doc/install/aws/index.md50
-rw-r--r--lib/api/helpers/internal_helpers.rb2
-rw-r--r--lib/gitlab/bitbucket_server_import/importer.rb1
-rw-r--r--lib/gitlab/gl_repository/repo_type.rb8
-rw-r--r--lib/gitlab/regex.rb3
-rw-r--r--lib/gitlab/workhorse.rb2
-rw-r--r--locale/gitlab.pot9
-rw-r--r--package.json2
-rw-r--r--scripts/rspec_helpers.sh2
-rw-r--r--spec/features/merge_request/user_sees_deployment_widget_spec.rb2
-rw-r--r--spec/frontend/vue_mr_widget/deployment/deployment_spec.js42
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/importer_spec.rb8
-rw-r--r--spec/models/project_services/pipelines_email_service_spec.rb4
-rw-r--r--spec/models/project_spec.rb4
-rw-r--r--spec/requests/api/internal/base_spec.rb6
-rw-r--r--spec/support/shared_examples/repo_type_shared_examples.rb4
-rw-r--r--yarn.lock130
28 files changed, 199 insertions, 129 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_info.vue b/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_info.vue
index db4a4ece002..33db9b87b17 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_info.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/deployment/deployment_info.vue
@@ -32,12 +32,12 @@ export default {
},
},
deployedTextMap: {
- [MANUAL_DEPLOY]: __('Can deploy manually to'),
+ [MANUAL_DEPLOY]: __('Can be manually deployed to'),
[WILL_DEPLOY]: __('Will deploy to'),
[RUNNING]: __('Deploying to'),
[SUCCESS]: __('Deployed to'),
[FAILED]: __('Failed to deploy to'),
- [CANCELED]: __('Canceled deploy to'),
+ [CANCELED]: __('Canceled deployment to'),
},
computed: {
deployTimeago() {
diff --git a/app/assets/javascripts/vue_shared/components/bar_chart.vue b/app/assets/javascripts/vue_shared/components/bar_chart.vue
index ff718eacc5b..25d7bfe515c 100644
--- a/app/assets/javascripts/vue_shared/components/bar_chart.vue
+++ b/app/assets/javascripts/vue_shared/components/bar_chart.vue
@@ -124,7 +124,9 @@ export default {
},
},
mounted() {
- this.draw();
+ if (!this.allValuesEmpty) {
+ this.draw();
+ }
},
methods: {
draw() {
@@ -151,14 +153,7 @@ export default {
this.yScale = d3.scaleLinear().rangeRound([this.vbHeight, 0]);
this.xScale.domain(this.graphData.map(d => d.name));
- /*
- If we have all-zero graph we want graph to center 0 on axis and not to draw
- any kind of ticks on Y axis. Infinity allows us to do that.
-
- See https://gitlab.com/gitlab-org/gitlab/merge_requests/20627#note_251484582
- for detailed explanation
- */
- this.yScale.domain([0, d3.max(this.graphData.map(d => d.value)) || Infinity]);
+ this.yScale.domain([0, d3.max(this.graphData.map(d => d.value))]);
// Zoom/Panning Function
this.zoom = d3
diff --git a/app/helpers/sidekiq_helper.rb b/app/helpers/sidekiq_helper.rb
index 6326d98461e..07d83b8d850 100644
--- a/app/helpers/sidekiq_helper.rb
+++ b/app/helpers/sidekiq_helper.rb
@@ -5,7 +5,7 @@ module SidekiqHelper
(?<pid>\d+)\s+
(?<cpu>[\d\.,]+)\s+
(?<mem>[\d\.,]+)\s+
- (?<state>[DIEKNRSTVWXZNLpsl\+<>/\d]+)\s+
+ (?<state>[DIEKNRSTVWXZLpsl\+<>/\d]+)\s+
(?<start>.+?)\s+
(?<command>(?:ruby\d+:\s+)?sidekiq.*\].*)
\z}x.freeze
diff --git a/app/models/project.rb b/app/models/project.rb
index c48360290c7..a73ca7d5bbb 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -2203,7 +2203,7 @@ class Project < ApplicationRecord
end
def reference_counter(type: Gitlab::GlRepository::PROJECT)
- Gitlab::ReferenceCounter.new(type.identifier_for_subject(self))
+ Gitlab::ReferenceCounter.new(type.identifier_for_repositorable(self))
end
def badges
diff --git a/app/models/project_services/pipelines_email_service.rb b/app/models/project_services/pipelines_email_service.rb
index 8452239129d..65bf8535d2a 100644
--- a/app/models/project_services/pipelines_email_service.rb
+++ b/app/models/project_services/pipelines_email_service.rb
@@ -100,6 +100,6 @@ class PipelinesEmailService < Service
end
def retrieve_recipients(data)
- recipients.to_s.split(/[,(?:\r?\n) ]+/).reject(&:empty?)
+ recipients.to_s.split(/[,\r\n ]+/).reject(&:empty?)
end
end
diff --git a/app/models/project_wiki.rb b/app/models/project_wiki.rb
index f4666197def..3bec0c32c2c 100644
--- a/app/models/project_wiki.rb
+++ b/app/models/project_wiki.rb
@@ -65,7 +65,7 @@ class ProjectWiki
# Returns the Gitlab::Git::Wiki object.
def wiki
@wiki ||= begin
- gl_repository = Gitlab::GlRepository::WIKI.identifier_for_subject(project)
+ gl_repository = Gitlab::GlRepository::WIKI.identifier_for_repositorable(project)
raw_repository = Gitlab::Git::Repository.new(project.repository_storage, disk_path + '.git', gl_repository, full_path)
create_repo!(raw_repository) unless raw_repository.exists?
diff --git a/app/models/repository.rb b/app/models/repository.rb
index c53b2fc5340..a509315d94f 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -1177,7 +1177,7 @@ class Repository
def initialize_raw_repository
Gitlab::Git::Repository.new(project.repository_storage,
disk_path + '.git',
- repo_type.identifier_for_subject(project),
+ repo_type.identifier_for_repositorable(project),
project.full_path)
end
end
diff --git a/changelogs/unreleased/196861-improve-pipelines-copy.yml b/changelogs/unreleased/196861-improve-pipelines-copy.yml
new file mode 100644
index 00000000000..b96cc50549e
--- /dev/null
+++ b/changelogs/unreleased/196861-improve-pipelines-copy.yml
@@ -0,0 +1,5 @@
+---
+title: Update pipeline status copy in deploy footer
+merge_request: 23199
+author:
+type: changed
diff --git a/changelogs/unreleased/9425-gitlab-npm-registry-to-support-npm-tags.yml b/changelogs/unreleased/9425-gitlab-npm-registry-to-support-npm-tags.yml
new file mode 100644
index 00000000000..924478d3f8a
--- /dev/null
+++ b/changelogs/unreleased/9425-gitlab-npm-registry-to-support-npm-tags.yml
@@ -0,0 +1,5 @@
+---
+title: NPM dist tags will now be displayed on the package details page.
+merge_request: 23061
+author:
+type: added
diff --git a/changelogs/unreleased/sh-add-missing-backtrace-define.yml b/changelogs/unreleased/sh-add-missing-backtrace-define.yml
new file mode 100644
index 00000000000..fd07321d012
--- /dev/null
+++ b/changelogs/unreleased/sh-add-missing-backtrace-define.yml
@@ -0,0 +1,5 @@
+---
+title: Fix Bitbucket Server importer error handler
+merge_request: 23310
+author:
+type: fixed
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 153d16e4e55..d8235c6220c 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -10,11 +10,8 @@ Rails.application.configure do
# your test database is "scratch space" for the test suite and is wiped
# and recreated between test runs. Don't rely on the data there!
- # Enabling caching of classes slows start-up time because all controllers
- # are loaded at initialization, but it reduces memory and load because files
- # are not reloaded with every request. For example, caching is not necessary
- # for loading database migrations but useful for handling Knapsack specs.
- config.cache_classes = ENV['CACHE_CLASSES'] == 'true'
+ # Code doesn't change in CI so we don't need code-reloading
+ config.cache_classes = !!ENV['CI']
# Configure static asset server for tests with Cache-Control for performance
config.assets.compile = false if ENV['CI']
diff --git a/doc/install/aws/index.md b/doc/install/aws/index.md
index a3b9124a2ba..6a261091031 100644
--- a/doc/install/aws/index.md
+++ b/doc/install/aws/index.md
@@ -238,32 +238,7 @@ Now, it's time to create the database:
auto updates to minor versions. You may want to turn it off.
1. When done, click **Create database**.
-### Installing the `pg_trgm` extension for PostgreSQL
-
-Once the database is created, connect to your new RDS instance to verify access
-and to install a required extension.
-
-You can find the host or endpoint by selecting the instance you just created and
-after the details dropdown menu you'll find it labeled as 'Endpoint'. Do not to
-include the colon and port number:
-
-```sh
-sudo /opt/gitlab/embedded/bin/psql -U gitlab -h <rds-endpoint> -d gitlabhq_production
-```
-
-At the psql prompt create the extension and then quit the session:
-
-```sh
-psql (9.4.7)
-Type "help" for help.
-
-gitlab=# CREATE EXTENSION pg_trgm;
-gitlab=# \q
-```
-
----
-
-Now that the database is created, let's move on setting up Redis with ElasticCache.
+Now that the database is created, let's move on to setting up Redis with ElasticCache.
## Redis with ElastiCache
@@ -435,15 +410,32 @@ we intended.
After a few minutes, the instances should be up and accessible via the internet.
Let's connect to the primary and configure some things before logging in.
-### Configuring GitLab to connect with postgres and Redis
+### Installing the `pg_trgm` extension for PostgreSQL
+
+Connect to the RDS instance to verify access and to install the required `pg_trgm` extension.
+
+To find the host or endpoint, naviagate to **Amazon RDS > Databases** and click on the database you created earlier. Look for the endpoint under the **Connectivity & security** tab.
-While connected to your server, let's connect to the RDS instance to verify
-access and to install a required extension:
+Do not to include the colon and port number:
```sh
sudo /opt/gitlab/embedded/bin/psql -U gitlab -h <rds-endpoint> -d gitlabhq_production
```
+At the psql prompt create the extension and then quit the session:
+
+```sh
+psql (10.9)
+Type "help" for help.
+
+gitlab=# CREATE EXTENSION pg_trgm;
+gitlab=# \q
+```
+
+---
+
+### Configuring GitLab to connect with postgres and Redis
+
Edit the `gitlab.rb` file at `/etc/gitlab/gitlab.rb`
find the `external_url 'http://gitlab.example.com'` option and change it
to the domain you will be using or the public IP address of the current
diff --git a/lib/api/helpers/internal_helpers.rb b/lib/api/helpers/internal_helpers.rb
index cc4a0d348a0..c8e96c7c5db 100644
--- a/lib/api/helpers/internal_helpers.rb
+++ b/lib/api/helpers/internal_helpers.rb
@@ -118,7 +118,7 @@ module API
# Project id to pass between components that don't share/don't have
# access to the same filesystem mounts
def gl_repository
- repo_type.identifier_for_subject(project)
+ repo_type.identifier_for_repositorable(project)
end
def gl_project_path
diff --git a/lib/gitlab/bitbucket_server_import/importer.rb b/lib/gitlab/bitbucket_server_import/importer.rb
index 886fbaaff48..16fe5b46b1f 100644
--- a/lib/gitlab/bitbucket_server_import/importer.rb
+++ b/lib/gitlab/bitbucket_server_import/importer.rb
@@ -172,6 +172,7 @@ module Gitlab
stage: 'import_pull_requests', iid: pull_request.iid, error: e.message
)
+ backtrace = Gitlab::BacktraceCleaner.clean_backtrace(e.backtrace)
errors << { type: :pull_request, iid: pull_request.iid, errors: e.message, backtrace: backtrace.join("\n"), raw_response: pull_request.raw }
end
end
diff --git a/lib/gitlab/gl_repository/repo_type.rb b/lib/gitlab/gl_repository/repo_type.rb
index 01bc27f963b..6918344aa40 100644
--- a/lib/gitlab/gl_repository/repo_type.rb
+++ b/lib/gitlab/gl_repository/repo_type.rb
@@ -13,8 +13,8 @@ module Gitlab
@repository_accessor = repository_accessor
end
- def identifier_for_subject(subject)
- "#{name}-#{subject.id}"
+ def identifier_for_repositorable(repositorable)
+ "#{name}-#{repositorable.id}"
end
def fetch_id(identifier)
@@ -34,8 +34,8 @@ module Gitlab
project? ? "" : ".#{name}"
end
- def repository_for(subject)
- repository_accessor.call(subject)
+ def repository_for(repositorable)
+ repository_accessor.call(repositorable)
end
end
end
diff --git a/lib/gitlab/regex.rb b/lib/gitlab/regex.rb
index 48eaf073e8a..fd6e24a96d8 100644
--- a/lib/gitlab/regex.rb
+++ b/lib/gitlab/regex.rb
@@ -5,6 +5,9 @@ module Gitlab
extend self
def project_name_regex
+ # The character range \p{Alnum} overlaps with \u{00A9}-\u{1f9ff}
+ # hence the Ruby warning.
+ # https://gitlab.com/gitlab-org/gitlab/merge_requests/23165#not-easy-fixable
@project_name_regex ||= /\A[\p{Alnum}\u{00A9}-\u{1f9ff}_][\p{Alnum}\p{Pd}\u{00A9}-\u{1f9ff}_\. ]*\z/.freeze
end
diff --git a/lib/gitlab/workhorse.rb b/lib/gitlab/workhorse.rb
index 29450a33289..e377c690d51 100644
--- a/lib/gitlab/workhorse.rb
+++ b/lib/gitlab/workhorse.rb
@@ -24,7 +24,7 @@ module Gitlab
attrs = {
GL_ID: Gitlab::GlId.gl_id(user),
- GL_REPOSITORY: repo_type.identifier_for_subject(repository.project),
+ GL_REPOSITORY: repo_type.identifier_for_repositorable(repository.project),
GL_USERNAME: user&.username,
ShowAllRefs: show_all_refs,
Repository: repository.gitaly_repository.to_h,
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 3a784cd552e..ab01af440ac 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -173,6 +173,11 @@ msgid_plural "%d staged changes"
msgstr[0] ""
msgstr[1] ""
+msgid "%d tag"
+msgid_plural "%d tags"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "%d unstaged change"
msgid_plural "%d unstaged changes"
msgstr[0] ""
@@ -3081,7 +3086,7 @@ msgstr ""
msgid "Callback URL"
msgstr ""
-msgid "Can deploy manually to"
+msgid "Can be manually deployed to"
msgstr ""
msgid "Can override approvers and approvals required per merge request"
@@ -3114,7 +3119,7 @@ msgstr ""
msgid "Cancel this job"
msgstr ""
-msgid "Canceled deploy to"
+msgid "Canceled deployment to"
msgstr ""
msgid "Cancelling Preview"
diff --git a/package.json b/package.json
index 6bbb284b434..df3c28ada2a 100644
--- a/package.json
+++ b/package.json
@@ -66,7 +66,7 @@
"core-js": "^3.2.1",
"cropper": "^2.3.0",
"css-loader": "^1.0.0",
- "d3": "^5.12.0",
+ "d3": "^4.13.0",
"d3-scale": "^1.0.7",
"d3-selection": "^1.2.0",
"dateformat": "^3.0.3",
diff --git a/scripts/rspec_helpers.sh b/scripts/rspec_helpers.sh
index 1c75958aef1..23e76980926 100644
--- a/scripts/rspec_helpers.sh
+++ b/scripts/rspec_helpers.sh
@@ -40,7 +40,6 @@ function rspec_simple_job() {
local rspec_opts="${1}"
export NO_KNAPSACK="1"
- export CACHE_CLASSES="true"
scripts/gitaly-test-spawn
@@ -59,7 +58,6 @@ function rspec_paralellized_job() {
spec_folder_prefix="ee/"
fi
- export CACHE_CLASSES="true"
export KNAPSACK_LOG_LEVEL="debug"
export KNAPSACK_REPORT_PATH="knapsack/${test_tool}_${test_level}_${database}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json"
diff --git a/spec/features/merge_request/user_sees_deployment_widget_spec.rb b/spec/features/merge_request/user_sees_deployment_widget_spec.rb
index 99c9e9dc501..3b599fcacb1 100644
--- a/spec/features/merge_request/user_sees_deployment_widget_spec.rb
+++ b/spec/features/merge_request/user_sees_deployment_widget_spec.rb
@@ -96,7 +96,7 @@ describe 'Merge request > User sees deployment widget', :js do
visit project_merge_request_path(project, merge_request)
wait_for_requests
- expect(page).to have_content("Canceled deploy to #{environment.name}")
+ expect(page).to have_content("Canceled deployment to #{environment.name}")
expect(page).not_to have_css('.js-deploy-time')
end
end
diff --git a/spec/frontend/vue_mr_widget/deployment/deployment_spec.js b/spec/frontend/vue_mr_widget/deployment/deployment_spec.js
index 2902c8280dd..ec7be6b64fc 100644
--- a/spec/frontend/vue_mr_widget/deployment/deployment_spec.js
+++ b/spec/frontend/vue_mr_widget/deployment/deployment_spec.js
@@ -56,27 +56,27 @@ describe('Deployment component', () => {
const deployGroup = [DeploymentViewButton, DeploymentStopButton];
describe.each`
- status | previous | deploymentDetails | text | actionButtons
- ${CREATED} | ${true} | ${deployDetail} | ${'Can deploy manually to'} | ${deployGroup}
- ${CREATED} | ${true} | ${noDetails} | ${'Will deploy to'} | ${deployGroup}
- ${CREATED} | ${false} | ${deployDetail} | ${'Can deploy manually to'} | ${noActions}
- ${CREATED} | ${false} | ${noDetails} | ${'Will deploy to'} | ${noActions}
- ${RUNNING} | ${true} | ${deployDetail} | ${'Deploying to'} | ${deployGroup}
- ${RUNNING} | ${true} | ${noDetails} | ${'Deploying to'} | ${deployGroup}
- ${RUNNING} | ${false} | ${deployDetail} | ${'Deploying to'} | ${noActions}
- ${RUNNING} | ${false} | ${noDetails} | ${'Deploying to'} | ${noActions}
- ${SUCCESS} | ${true} | ${deployDetail} | ${'Deployed to'} | ${deployGroup}
- ${SUCCESS} | ${true} | ${noDetails} | ${'Deployed to'} | ${deployGroup}
- ${SUCCESS} | ${false} | ${deployDetail} | ${'Deployed to'} | ${deployGroup}
- ${SUCCESS} | ${false} | ${noDetails} | ${'Deployed to'} | ${deployGroup}
- ${FAILED} | ${true} | ${deployDetail} | ${'Failed to deploy to'} | ${deployGroup}
- ${FAILED} | ${true} | ${noDetails} | ${'Failed to deploy to'} | ${deployGroup}
- ${FAILED} | ${false} | ${deployDetail} | ${'Failed to deploy to'} | ${noActions}
- ${FAILED} | ${false} | ${noDetails} | ${'Failed to deploy to'} | ${noActions}
- ${CANCELED} | ${true} | ${deployDetail} | ${'Canceled deploy to'} | ${deployGroup}
- ${CANCELED} | ${true} | ${noDetails} | ${'Canceled deploy to'} | ${deployGroup}
- ${CANCELED} | ${false} | ${deployDetail} | ${'Canceled deploy to'} | ${noActions}
- ${CANCELED} | ${false} | ${noDetails} | ${'Canceled deploy to'} | ${noActions}
+ status | previous | deploymentDetails | text | actionButtons
+ ${CREATED} | ${true} | ${deployDetail} | ${'Can be manually deployed to'} | ${deployGroup}
+ ${CREATED} | ${true} | ${noDetails} | ${'Will deploy to'} | ${deployGroup}
+ ${CREATED} | ${false} | ${deployDetail} | ${'Can be manually deployed to'} | ${noActions}
+ ${CREATED} | ${false} | ${noDetails} | ${'Will deploy to'} | ${noActions}
+ ${RUNNING} | ${true} | ${deployDetail} | ${'Deploying to'} | ${deployGroup}
+ ${RUNNING} | ${true} | ${noDetails} | ${'Deploying to'} | ${deployGroup}
+ ${RUNNING} | ${false} | ${deployDetail} | ${'Deploying to'} | ${noActions}
+ ${RUNNING} | ${false} | ${noDetails} | ${'Deploying to'} | ${noActions}
+ ${SUCCESS} | ${true} | ${deployDetail} | ${'Deployed to'} | ${deployGroup}
+ ${SUCCESS} | ${true} | ${noDetails} | ${'Deployed to'} | ${deployGroup}
+ ${SUCCESS} | ${false} | ${deployDetail} | ${'Deployed to'} | ${deployGroup}
+ ${SUCCESS} | ${false} | ${noDetails} | ${'Deployed to'} | ${deployGroup}
+ ${FAILED} | ${true} | ${deployDetail} | ${'Failed to deploy to'} | ${deployGroup}
+ ${FAILED} | ${true} | ${noDetails} | ${'Failed to deploy to'} | ${deployGroup}
+ ${FAILED} | ${false} | ${deployDetail} | ${'Failed to deploy to'} | ${noActions}
+ ${FAILED} | ${false} | ${noDetails} | ${'Failed to deploy to'} | ${noActions}
+ ${CANCELED} | ${true} | ${deployDetail} | ${'Canceled deployment to'} | ${deployGroup}
+ ${CANCELED} | ${true} | ${noDetails} | ${'Canceled deployment to'} | ${deployGroup}
+ ${CANCELED} | ${false} | ${deployDetail} | ${'Canceled deployment to'} | ${noActions}
+ ${CANCELED} | ${false} | ${noDetails} | ${'Canceled deployment to'} | ${noActions}
`(
'$status + previous: $previous + manual: $deploymentDetails.isManual',
({ status, previous, deploymentDetails, text, actionButtons }) => {
diff --git a/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb b/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
index 8ab7b2c5fa7..cf39d2cb753 100644
--- a/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
+++ b/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
@@ -67,6 +67,7 @@ describe Gitlab::BitbucketServerImport::Importer do
author_email: project.owner.email,
created_at: Time.now,
updated_at: Time.now,
+ raw: {},
merged?: true)
allow(subject.client).to receive(:pull_requests).and_return([pull_request])
@@ -239,6 +240,13 @@ describe Gitlab::BitbucketServerImport::Importer do
expect(notes.first.note).to start_with('*Comment on .gitmodules')
expect(notes.second.note).to start_with('*Comment on .gitmodules')
end
+
+ it 'reports an error if an exception is raised' do
+ allow(subject).to receive(:import_bitbucket_pull_request).and_raise(RuntimeError)
+ expect(Gitlab::ErrorTracking).to receive(:log_exception)
+
+ subject.execute
+ end
end
describe 'inaccessible branches' do
diff --git a/spec/models/project_services/pipelines_email_service_spec.rb b/spec/models/project_services/pipelines_email_service_spec.rb
index 67358d6c3d6..f29414c80c9 100644
--- a/spec/models/project_services/pipelines_email_service_spec.rb
+++ b/spec/models/project_services/pipelines_email_service_spec.rb
@@ -305,8 +305,8 @@ describe PipelinesEmailService, :mailer do
end
context 'with recipients list separating with newlines' do
- let(:recipients) { "\ntest@gitlab.com, \r\nexample@gitlab.com" }
- let(:receivers) { %w[test@gitlab.com example@gitlab.com] }
+ let(:recipients) { "\ntest@gitlab.com, \r\nexample@gitlab.com\rother@gitlab.com" }
+ let(:receivers) { %w[test@gitlab.com example@gitlab.com other@gitlab.com] }
context 'with failed pipeline' do
before do
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index c57f47b5738..0b39cfa1243 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -3992,7 +3992,7 @@ describe Project do
end
it 'schedules HashedStorage::ProjectMigrateWorker with delayed start when the project repo is in use' do
- Gitlab::ReferenceCounter.new(Gitlab::GlRepository::PROJECT.identifier_for_subject(project)).increase
+ Gitlab::ReferenceCounter.new(Gitlab::GlRepository::PROJECT.identifier_for_repositorable(project)).increase
expect(HashedStorage::ProjectMigrateWorker).to receive(:perform_in)
@@ -4000,7 +4000,7 @@ describe Project do
end
it 'schedules HashedStorage::ProjectMigrateWorker with delayed start when the wiki repo is in use' do
- Gitlab::ReferenceCounter.new(Gitlab::GlRepository::WIKI.identifier_for_subject(project)).increase
+ Gitlab::ReferenceCounter.new(Gitlab::GlRepository::WIKI.identifier_for_repositorable(project)).increase
expect(HashedStorage::ProjectMigrateWorker).to receive(:perform_in)
diff --git a/spec/requests/api/internal/base_spec.rb b/spec/requests/api/internal/base_spec.rb
index 12e6e7c7a09..01a5930f8fb 100644
--- a/spec/requests/api/internal/base_spec.rb
+++ b/spec/requests/api/internal/base_spec.rb
@@ -268,7 +268,7 @@ describe API::Internal::Base do
end
context 'with env passed as a JSON' do
- let(:gl_repository) { Gitlab::GlRepository::WIKI.identifier_for_subject(project) }
+ let(:gl_repository) { Gitlab::GlRepository::WIKI.identifier_for_repositorable(project) }
it 'sets env in RequestStore' do
obj_dir_relative = './objects'
@@ -1054,9 +1054,9 @@ describe API::Internal::Base do
def gl_repository_for(project_or_wiki)
case project_or_wiki
when ProjectWiki
- Gitlab::GlRepository::WIKI.identifier_for_subject(project_or_wiki.project)
+ Gitlab::GlRepository::WIKI.identifier_for_repositorable(project_or_wiki.project)
when Project
- Gitlab::GlRepository::PROJECT.identifier_for_subject(project_or_wiki)
+ Gitlab::GlRepository::PROJECT.identifier_for_repositorable(project_or_wiki)
else
nil
end
diff --git a/spec/support/shared_examples/repo_type_shared_examples.rb b/spec/support/shared_examples/repo_type_shared_examples.rb
index dc9e3a73346..e4f277650e5 100644
--- a/spec/support/shared_examples/repo_type_shared_examples.rb
+++ b/spec/support/shared_examples/repo_type_shared_examples.rb
@@ -1,8 +1,8 @@
# frozen_string_literal: true
shared_examples 'a repo type' do
- describe "#identifier_for_subject" do
- subject { described_class.identifier_for_subject(project) }
+ describe "#identifier_for_repositorable" do
+ subject { described_class.identifier_for_repositorable(project) }
it { is_expected.to eq(expected_identifier) }
end
diff --git a/yarn.lock b/yarn.lock
index 559c9659f42..a4c4890fc4f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3238,17 +3238,17 @@ cyclist@~0.2.2:
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
-d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0:
+d3-array@1, d3-array@1.2.1, d3-array@^1.1.1, d3-array@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc"
integrity sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw==
-d3-axis@1:
+d3-axis@1, d3-axis@1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.8.tgz#31a705a0b535e65759de14173a31933137f18efa"
integrity sha1-MacFoLU15ldZ3hQXOjGTMTfxjvo=
-d3-brush@1:
+d3-brush@1, d3-brush@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.4.tgz#00c2f238019f24f6c0a194a26d41a1530ffe7bc4"
integrity sha1-AMLyOAGfJPbAoZSibUGhUw/+e8Q=
@@ -3259,7 +3259,7 @@ d3-brush@1:
d3-selection "1"
d3-transition "1"
-d3-chord@1:
+d3-chord@1, d3-chord@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.4.tgz#7dec4f0ba886f713fe111c45f763414f6f74ca2c"
integrity sha1-fexPC6iG9xP+ERxF92NBT290yiw=
@@ -3267,12 +3267,12 @@ d3-chord@1:
d3-array "1"
d3-path "1"
-d3-collection@1:
+d3-collection@1, d3-collection@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz#342dfd12837c90974f33f1cc0a785aea570dcdc2"
integrity sha1-NC39EoN8kJdPM/HMCnha6lcNzcI=
-d3-color@1:
+d3-color@1, d3-color@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz#bc7643fca8e53a8347e2fbdaffa236796b58509b"
integrity sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs=
@@ -3284,12 +3284,12 @@ d3-contour@1:
dependencies:
d3-array "^1.1.1"
-d3-dispatch@1:
+d3-dispatch@1, d3-dispatch@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.3.tgz#46e1491eaa9b58c358fce5be4e8bed626e7871f8"
integrity sha1-RuFJHqqbWMNY/OW+TovtYm54cfg=
-d3-drag@1:
+d3-drag@1, d3-drag@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.1.tgz#df8dd4c502fb490fc7462046a8ad98a5c479282d"
integrity sha512-Cg8/K2rTtzxzrb0fmnYOUeZHvwa4PHzwXOLZZPwtEs2SKLLKLXeYwZKBB+DlOxUvFmarOnmt//cU4+3US2lyyQ==
@@ -3297,7 +3297,7 @@ d3-drag@1:
d3-dispatch "1"
d3-selection "1"
-d3-dsv@1:
+d3-dsv@1, d3-dsv@1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.8.tgz#907e240d57b386618dc56468bacfe76bf19764ae"
integrity sha512-IVCJpQ+YGe3qu6odkPQI0KPqfxkhbP/oM1XhhE/DFiYmcXKfCRub4KXyiuehV1d4drjWVXHUWx4gHqhdZb6n/A==
@@ -3306,7 +3306,7 @@ d3-dsv@1:
iconv-lite "0.4"
rw "1"
-d3-ease@1:
+d3-ease@1, d3-ease@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e"
integrity sha1-aL+8NJM4o4DETYrMT7wzBKotjA4=
@@ -3318,7 +3318,7 @@ d3-fetch@1:
dependencies:
d3-dsv "1"
-d3-force@1:
+d3-force@1, d3-force@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.1.0.tgz#cebf3c694f1078fcc3d4daf8e567b2fbd70d4ea3"
integrity sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==
@@ -3328,50 +3328,65 @@ d3-force@1:
d3-quadtree "1"
d3-timer "1"
-d3-format@1:
+d3-format@1, d3-format@1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz#1a39c479c8a57fe5051b2e67a3bee27061a74e7a"
integrity sha512-zH9CfF/3C8zUI47nsiKfD0+AGDEuM8LwBIP7pBVpyR4l/sKkZqITmMtxRp04rwBrlshIZ17XeFAaovN3++wzkw==
-d3-geo@1:
+d3-geo@1, d3-geo@1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.9.1.tgz#157e3b0f917379d0f73bebfff3be537f49fa7356"
integrity sha512-l9wL/cEQkyZQYXw3xbmLsH3eQ5ij+icNfo4r0GrLa5rOCZR/e/3am45IQ0FvQ5uMsv+77zBRunLc9ufTWSQYFA==
dependencies:
d3-array "1"
-d3-hierarchy@1:
+d3-hierarchy@1, d3-hierarchy@1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz#a1c845c42f84a206bcf1c01c01098ea4ddaa7a26"
integrity sha1-ochFxC+Eoga88cAcAQmOpN2qeiY=
-d3-interpolate@1:
+d3-interpolate@1, d3-interpolate@1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6"
integrity sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==
dependencies:
d3-color "1"
-d3-path@1:
+d3-path@1, d3-path@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz#241eb1849bd9e9e8021c0d0a799f8a0e8e441764"
integrity sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q=
-d3-polygon@1:
+d3-polygon@1, d3-polygon@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.3.tgz#16888e9026460933f2b179652ad378224d382c62"
integrity sha1-FoiOkCZGCTPysXllKtN4Ik04LGI=
-d3-quadtree@1:
+d3-quadtree@1, d3-quadtree@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.3.tgz#ac7987e3e23fe805a990f28e1b50d38fcb822438"
integrity sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg=
-d3-random@1:
+d3-queue@3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.7.tgz#c93a2e54b417c0959129d7d73f6cf7d4292e7618"
+ integrity sha1-yTouVLQXwJWRKdfXP2z31Ckudhg=
+
+d3-random@1, d3-random@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.0.tgz#6642e506c6fa3a648595d2b2469788a8d12529d3"
integrity sha1-ZkLlBsb6OmSFldKyRpeIqNElKdM=
+d3-request@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.6.tgz#a1044a9ef4ec28c824171c9379fae6d79474b19f"
+ integrity sha512-FJj8ySY6GYuAJHZMaCQ83xEYE4KbkPkmxZ3Hu6zA1xxG2GD+z6P+Lyp+zjdsHf0xEbp2xcluDI50rCS855EQ6w==
+ dependencies:
+ d3-collection "1"
+ d3-dispatch "1"
+ d3-dsv "1"
+ xmlhttprequest "1"
+
d3-scale-chromatic@1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz#dad4366f0edcb288f490128979c3c793583ed3c0"
@@ -3380,61 +3395,61 @@ d3-scale-chromatic@1:
d3-color "1"
d3-interpolate "1"
-d3-scale@2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f"
- integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==
+d3-scale@1.0.7, d3-scale@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz#fa90324b3ea8a776422bd0472afab0b252a0945d"
+ integrity sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==
dependencies:
d3-array "^1.2.0"
d3-collection "1"
+ d3-color "1"
d3-format "1"
d3-interpolate "1"
d3-time "1"
d3-time-format "2"
-d3-scale@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz#fa90324b3ea8a776422bd0472afab0b252a0945d"
- integrity sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==
+d3-scale@2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f"
+ integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==
dependencies:
d3-array "^1.2.0"
d3-collection "1"
- d3-color "1"
d3-format "1"
d3-interpolate "1"
d3-time "1"
d3-time-format "2"
-d3-selection@1, d3-selection@^1.1.0, d3-selection@^1.2.0:
+d3-selection@1, d3-selection@1.3.0, d3-selection@^1.1.0, d3-selection@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.0.tgz#d53772382d3dc4f7507bfb28bcd2d6aed2a0ad6d"
integrity sha512-qgpUOg9tl5CirdqESUAu0t9MU/t3O9klYfGfyKsXEmhyxyzLpzpeh08gaxBUTQw1uXIOkr/30Ut2YRjSSxlmHA==
-d3-shape@1:
+d3-shape@1, d3-shape@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.2.0.tgz#45d01538f064bafd05ea3d6d2cb748fd8c41f777"
integrity sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=
dependencies:
d3-path "1"
-d3-time-format@2:
+d3-time-format@2, d3-time-format@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz#85b7cdfbc9ffca187f14d3c456ffda268081bb31"
integrity sha512-8kAkymq2WMfzW7e+s/IUNAtN/y3gZXGRrdGfo6R8NKPAA85UBTxZg5E61bR6nLwjPjj4d3zywSQe1CkYLPFyrw==
dependencies:
d3-time "1"
-d3-time@1:
+d3-time@1, d3-time@1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz#dbd2d6007bf416fe67a76d17947b784bffea1e84"
integrity sha512-YRZkNhphZh3KcnBfitvF3c6E0JOFGikHZ4YqD+Lzv83ZHn1/u6yGenRU1m+KAk9J1GnZMnKcrtfvSktlA1DXNQ==
-d3-timer@1:
+d3-timer@1, d3-timer@1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531"
integrity sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA==
-d3-transition@1:
+d3-transition@1, d3-transition@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.1.tgz#d8ef89c3b848735b060e54a39b32aaebaa421039"
integrity sha512-xeg8oggyQ+y5eb4J13iDgKIjUcEfIOZs2BqV/eEmXm2twx80wTzJ4tB4vaZ5BKfz7XsI/DFmQL5me6O27/5ykQ==
@@ -3446,12 +3461,12 @@ d3-transition@1:
d3-selection "^1.1.0"
d3-timer "1"
-d3-voronoi@1:
+d3-voronoi@1, d3-voronoi@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz#1687667e8f13a2d158c80c1480c5a29cb0d8973c"
integrity sha1-Fodmfo8TotFYyAwUgMWinLDYlzw=
-d3-zoom@1:
+d3-zoom@1, d3-zoom@1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.1.tgz#02f43b3c3e2db54f364582d7e4a236ccc5506b63"
integrity sha512-sZHQ55DGq5BZBFGnRshUT8tm2sfhPHFnOlmPbbwTkAoPeVdRTkB4Xsf9GCY0TSHrTD8PeJPZGmP/TpGicwJDJQ==
@@ -3462,7 +3477,43 @@ d3-zoom@1:
d3-selection "1"
d3-transition "1"
-d3@^5.12.0, d3@^5.14, d3@^5.7.0:
+d3@^4.13.0:
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/d3/-/d3-4.13.0.tgz#ab236ff8cf0cfc27a81e69bf2fb7518bc9b4f33d"
+ integrity sha512-l8c4+0SldjVKLaE2WG++EQlqD7mh/dmQjvi2L2lKPadAVC+TbJC4ci7Uk9bRi+To0+ansgsS0iWfPjD7DBy+FQ==
+ dependencies:
+ d3-array "1.2.1"
+ d3-axis "1.0.8"
+ d3-brush "1.0.4"
+ d3-chord "1.0.4"
+ d3-collection "1.0.4"
+ d3-color "1.0.3"
+ d3-dispatch "1.0.3"
+ d3-drag "1.2.1"
+ d3-dsv "1.0.8"
+ d3-ease "1.0.3"
+ d3-force "1.1.0"
+ d3-format "1.2.2"
+ d3-geo "1.9.1"
+ d3-hierarchy "1.1.5"
+ d3-interpolate "1.1.6"
+ d3-path "1.0.5"
+ d3-polygon "1.0.3"
+ d3-quadtree "1.0.3"
+ d3-queue "3.0.7"
+ d3-random "1.1.0"
+ d3-request "1.0.6"
+ d3-scale "1.0.7"
+ d3-selection "1.3.0"
+ d3-shape "1.2.0"
+ d3-time "1.0.8"
+ d3-time-format "2.1.1"
+ d3-timer "1.0.7"
+ d3-transition "1.1.1"
+ d3-voronoi "1.1.2"
+ d3-zoom "1.7.1"
+
+d3@^5.14, d3@^5.7.0:
version "5.15.0"
resolved "https://registry.yarnpkg.com/d3/-/d3-5.15.0.tgz#ffd44958e6a3cb8a59a84429c45429b8bca5677a"
integrity sha512-C+E80SL2nLLtmykZ6klwYj5rPqB5nlfN5LdWEAVdWPppqTD8taoJi2PxLZjPeYT8FFRR2yucXq+kBlOnnvZeLg==
@@ -12095,6 +12146,11 @@ xmlhttprequest-ssl@~1.5.4:
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
+xmlhttprequest@1:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
+ integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=
+
xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"