Commit 6a2e10e3 authored by John T Skarbek's avatar John T Skarbek

Merge remote-tracking branch 'origin/master'

parents de24e9b8 cf4d7cd8
<script>
export default {
name: 'TimelineEntryItem',
};
</script>
<template>
<li class="timeline-entry">
<div class="timeline-entry-inner"><slot></slot></div>
......
......@@ -20,4 +20,9 @@ module ClustersHelper
!cluster.provider.legacy_abac?
end
# EE overrides this
def show_cluster_health_graphs?(cluster)
false
end
end
......@@ -2,6 +2,7 @@
class IssueBoardEntity < Grape::Entity
include RequestAwareEntity
include TimeTrackableEntity
expose :id
expose :iid
......
......@@ -34,7 +34,7 @@
= render 'banner'
= render 'form'
= render_if_exists 'health'
= render_if_exists 'projects/clusters/prometheus_graphs' if show_cluster_health_graphs?(@cluster)
.cluster-applications-table#js-cluster-applications
......
......@@ -53,7 +53,7 @@ module ApplicationWorker
schedule = now + delay.to_i
if schedule <= now
raise ArgumentError, 'The schedule time must be in the future!'
raise ArgumentError, _('The schedule time must be in the future!')
end
Sidekiq::Client.push_bulk('class' => self, 'args' => args_list, 'at' => schedule)
......
......@@ -24,22 +24,22 @@ class EmailReceiverWorker
reason =
case error
when Gitlab::Email::UnknownIncomingEmail
"We couldn't figure out what the email is for. Please create your issue or comment through the web interface."
s_("EmailError|We couldn't figure out what the email is for. Please create your issue or comment through the web interface.")
when Gitlab::Email::SentNotificationNotFoundError
"We couldn't figure out what the email is in reply to. Please create your comment through the web interface."
s_("EmailError|We couldn't figure out what the email is in reply to. Please create your comment through the web interface.")
when Gitlab::Email::ProjectNotFound
"We couldn't find the project. Please check if there's any typo."
s_("EmailError|We couldn't find the project. Please check if there's any typo.")
when Gitlab::Email::EmptyEmailError
can_retry = true
"It appears that the email is blank. Make sure your reply is at the top of the email, we can't process inline replies."
s_("EmailError|It appears that the email is blank. Make sure your reply is at the top of the email, we can't process inline replies.")
when Gitlab::Email::UserNotFoundError
"We couldn't figure out what user corresponds to the email. Please create your comment through the web interface."
s_("EmailError|We couldn't figure out what user corresponds to the email. Please create your comment through the web interface.")
when Gitlab::Email::UserBlockedError
"Your account has been blocked. If you believe this is in error, contact a staff member."
s_("EmailError|Your account has been blocked. If you believe this is in error, contact a staff member.")
when Gitlab::Email::UserNotAuthorizedError
"You are not allowed to perform this action. If you believe this is in error, contact a staff member."
s_("EmailError|You are not allowed to perform this action. If you believe this is in error, contact a staff member.")
when Gitlab::Email::NoteableNotFoundError
"The thread you are replying to no longer exists, perhaps it was deleted? If you believe this is in error, contact a staff member."
s_("EmailError|The thread you are replying to no longer exists, perhaps it was deleted? If you believe this is in error, contact a staff member.")
when Gitlab::Email::InvalidAttachment
error.message
when Gitlab::Email::InvalidRecordError
......
......@@ -20,7 +20,7 @@ module ObjectStorage
end
def to_s
success? ? "Migration successful." : "Error while migrating #{upload.id}: #{error.message}"
success? ? _("Migration successful.") : _("Error while migrating %{upload_id}: %{error_message}") % { upload_id: upload.id, error_message: error.message }
end
end
......@@ -47,7 +47,7 @@ module ObjectStorage
end
def header(success, failures)
"Migrated #{success.count}/#{success.count + failures.count} files."
_("Migrated %{success_count}/%{total_count} files.") % { success_count: success.count, total_count: success.count + failures.count }
end
def failures(failures)
......@@ -75,9 +75,9 @@ module ObjectStorage
model_types = uploads.map(&:model_type).uniq
model_has_mount = mounted_as.nil? || model_class.uploaders[mounted_as] == uploader_class
raise(SanityCheckError, "Multiple uploaders found: #{uploader_types}") unless uploader_types.count == 1
raise(SanityCheckError, "Multiple model types found: #{model_types}") unless model_types.count == 1
raise(SanityCheckError, "Mount point #{mounted_as} not found in #{model_class}.") unless model_has_mount
raise(SanityCheckError, _("Multiple uploaders found: %{uploader_types}") % { uploader_types: uploader_types }) unless uploader_types.count == 1
raise(SanityCheckError, _("Multiple model types found: %{model_types}") % { model_types: model_types }) unless model_types.count == 1
raise(SanityCheckError, _("Mount point %{mounted_as} not found in %{model_class}.") % { mounted_as: mounted_as, model_class: model_class }) unless model_has_mount
end
# rubocop: disable CodeReuse/ActiveRecord
......@@ -110,9 +110,9 @@ module ObjectStorage
return if args.count == 4
case args.count
when 3 then raise SanityCheckError, "Job is missing the `model_type` argument."
when 3 then raise SanityCheckError, _("Job is missing the `model_type` argument.")
else
raise SanityCheckError, "Job has wrong arguments format."
raise SanityCheckError, _("Job has wrong arguments format.")
end
end
......
---
title: Update GitLab Workhorse to v8.5.1
merge_request: 27217
author:
type: fixed
......@@ -7,7 +7,8 @@
# * are being moved to ApplicationSetting model! #
# If a setting requires an application restart say so in that screen. #
# If you change this file in a Merge Request, please also create #
# a MR on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests #
# a MR on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests. #
# For more details see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/0928cfb09f43993fd9454b0b14dbd1924b1407bc/doc/settings/gitlab.yml.md #
########################################################################
#
#
......
......@@ -141,7 +141,7 @@ Now that your certificate has been issued, let's add it to your Pages site:
```
1. Click **Save changes** to apply them to your website.
1. Wait a few minutes for DNS propagation.
1. Wait a few minutes for the configuration changes to take effect.
1. Visit your website at `https://example.com`.
To force `https` connections on your site, navigate to your
......
......@@ -3184,6 +3184,30 @@ msgstr ""
msgid "Email patch"
msgstr ""
msgid "EmailError|It appears that the email is blank. Make sure your reply is at the top of the email, we can't process inline replies."
msgstr ""
msgid "EmailError|The thread you are replying to no longer exists, perhaps it was deleted? If you believe this is in error, contact a staff member."
msgstr ""
msgid "EmailError|We couldn't figure out what the email is for. Please create your issue or comment through the web interface."
msgstr ""
msgid "EmailError|We couldn't figure out what the email is in reply to. Please create your comment through the web interface."
msgstr ""
msgid "EmailError|We couldn't figure out what user corresponds to the email. Please create your comment through the web interface."
msgstr ""
msgid "EmailError|We couldn't find the project. Please check if there's any typo."
msgstr ""
msgid "EmailError|You are not allowed to perform this action. If you believe this is in error, contact a staff member."
msgstr ""
msgid "EmailError|Your account has been blocked. If you believe this is in error, contact a staff member."
msgstr ""
msgid "Emails"
msgstr ""
......@@ -3508,6 +3532,9 @@ msgstr ""
msgid "Error while loading the merge request. Please try again."
msgstr ""
msgid "Error while migrating %{upload_id}: %{error_message}"
msgstr ""
msgid "Error with Akismet. Please check the logs for more info."
msgstr ""
......@@ -4679,6 +4706,12 @@ msgstr ""
msgid "Job has been successfully erased!"
msgstr ""
msgid "Job has wrong arguments format."
msgstr ""
msgid "Job is missing the `model_type` argument."
msgstr ""
msgid "Job is stuck. Check runners."
msgstr ""
......@@ -5262,6 +5295,12 @@ msgstr ""
msgid "Metrics|Unexpected metrics data response from prometheus endpoint"
msgstr ""
msgid "Migrated %{success_count}/%{total_count} files."
msgstr ""
msgid "Migration successful."
msgstr ""
msgid "Milestone"
msgstr ""
......@@ -5355,12 +5394,21 @@ msgstr ""
msgid "Most stars"
msgstr ""
msgid "Mount point %{mounted_as} not found in %{model_class}."
msgstr ""
msgid "Move"
msgstr ""
msgid "Move issue"
msgstr ""
msgid "Multiple model types found: %{model_types}"
msgstr ""
msgid "Multiple uploaders found: %{uploader_types}"
msgstr ""
msgid "Name"
msgstr ""
......@@ -8307,6 +8355,9 @@ msgstr ""
msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request."
msgstr ""
msgid "The schedule time must be in the future!"
msgstr ""
msgid "The snippet can be accessed without any authentication."
msgstr ""
......
......@@ -39,7 +39,9 @@ following call would login to a local [GDK] instance and run all specs in
`qa/specs/features`:
```
bin/qa Test::Instance::All http://localhost:3000
# Make sure to install the dependencies first with `bundle install`
bundle exec bin/qa Test::Instance::All http://localhost:3000
```
Note: If you want to run tests requiring SSH against GDK, you
......@@ -56,14 +58,14 @@ You can also supply specific tests to run as another parameter. For example, to
run the repository-related specs, you can execute:
```
bin/qa Test::Instance::All http://localhost -- qa/specs/features/browser_ui/3_create/repository
bundle exec bin/qa Test::Instance::All http://localhost -- qa/specs/features/browser_ui/3_create/repository
```
Since the arguments would be passed to `rspec`, you could use all `rspec`
options there. For example, passing `--backtrace` and also line number:
```
bin/qa Test::Instance::All http://localhost -- qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb:6 --backtrace
bundle exec bin/qa Test::Instance::All http://localhost -- qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb:6 --backtrace
```
Note that the separator `--` is required; all subsequent options will be
......@@ -78,7 +80,7 @@ If you need to authenticate as a different user, you can provide the
`GITLAB_USERNAME` and `GITLAB_PASSWORD` environment variables:
```
GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password bin/qa Test::Instance::All https://gitlab.example.com
GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password bundle exec bin/qa Test::Instance::All https://gitlab.example.com
```
If your user doesn't have permission to default sandbox group
......@@ -86,7 +88,7 @@ If your user doesn't have permission to default sandbox group
`GITLAB_SANDBOX_NAME`:
```
GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password GITLAB_SANDBOX_NAME=jsmith-qa-sandbox bin/qa Test::Instance::All https://gitlab.example.com
GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password GITLAB_SANDBOX_NAME=jsmith-qa-sandbox bundle exec bin/qa Test::Instance::All https://gitlab.example.com
```
All [supported environment variables are here](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/what_tests_can_be_run.md#supported-environment-variables).
......@@ -121,7 +123,7 @@ tests that are expected to fail while a fix is in progress (similar to how
can be used).
```
bin/qa Test::Instance::All http://localhost -- --tag quarantine
bundle exec bin/qa Test::Instance::All http://localhost -- --tag quarantine
```
If `quarantine` is used with other tags, tests will only be run if they have at
......@@ -140,7 +142,7 @@ option `--enable-feature FEATURE_FLAG`. For example, to enable the feature flag
that enforces Gitaly request limits, you would use the command:
```
bin/qa Test::Instance::All http://localhost --enable-feature gitaly_enforce_requests_limits
bundle exec bin/qa Test::Instance::All http://localhost --enable-feature gitaly_enforce_requests_limits
```
This will instruct the QA framework to enable the `gitaly_enforce_requests_limits`
......@@ -153,4 +155,4 @@ flag during a single test, [as you can in unit tests](https://docs.gitlab.com/ee
but [that capability is planned](https://gitlab.com/gitlab-org/quality/team-tasks/issues/77).
Note also that the `--` separator isn't used because `--enable-feature` is a QA
framework option, not an `rspec` option.
\ No newline at end of file
framework option, not an `rspec` option.
# frozen_string_literal: true
module QA
context 'Create' do
# Failure issue: https://gitlab.com/gitlab-org/quality/nightly/issues/94
context 'Create', :quarantine do
describe 'Merge request creation from fork' do
it 'user forks a project, submits a merge request and maintainer merges it' do
Runtime::Browser.visit(:gitlab, Page::Main::Login)
......
# frozen_string_literal: true
module QA
# Failure issue: https://gitlab.com/gitlab-org/quality/staging/issues/31
context 'Create' do
# Failure issue: https://gitlab.com/gitlab-org/quality/nightly/issues/93
context 'Create', :quarantine do
describe 'Merge request squashing' do
it 'user squashes commits while merging' do
Runtime::Browser.visit(:gitlab, Page::Main::Login)
......
......@@ -139,7 +139,7 @@ describe 'User creates branch and merge request on issue page', :js do
visit project_issue_path(project, issue)
end
it 'disables the create branch button' do
it 'disables the create branch button', :quarantine do
expect(page).to have_css('.create-mr-dropdown-wrap .unavailable:not(.hidden)')
expect(page).to have_css('.create-mr-dropdown-wrap .available.hidden', visible: false)
expect(page).to have_content /Related merge requests/
......
......@@ -9,6 +9,9 @@
"project_id": { "type": "integer" },
"relative_position": { "type": ["integer", "null"] },
"time_estimate": { "type": "integer" },
"total_time_spent": { "type": "integer" },
"human_time_estimate": { "type": ["string", "null"] },
"human_total_time_spent": { "type": ["string", "null"] },
"weight": { "type": ["integer", "null"] },
"project": {
"type": "object",
......
......@@ -15,4 +15,5 @@ globals:
rules:
jest/no-identical-title: error
jest/no-focused-tests: error
jest/valid-describe: error
jest/no-jasmine-globals: error
......@@ -9,7 +9,7 @@ describe('IDE file templates mutations', () => {
state = createState();
});
describe(types.REQUEST_TEMPLATE_TYPES, () => {
describe(`${types.REQUEST_TEMPLATE_TYPES}`, () => {
it('sets isLoading', () => {
mutations[types.REQUEST_TEMPLATE_TYPES](state);
......@@ -17,7 +17,7 @@ describe('IDE file templates mutations', () => {
});
});
describe(types.RECEIVE_TEMPLATE_TYPES_ERROR, () => {
describe(`${types.RECEIVE_TEMPLATE_TYPES_ERROR}`, () => {
it('sets isLoading', () => {
state.isLoading = true;
......@@ -27,7 +27,7 @@ describe('IDE file templates mutations', () => {
});
});
describe(types.RECEIVE_TEMPLATE_TYPES_SUCCESS, () => {
describe(`${types.RECEIVE_TEMPLATE_TYPES_SUCCESS}`, () => {
it('sets isLoading to false', () => {
state.isLoading = true;
......@@ -43,7 +43,7 @@ describe('IDE file templates mutations', () => {
});
});
describe(types.SET_SELECTED_TEMPLATE_TYPE, () => {
describe(`${types.SET_SELECTED_TEMPLATE_TYPE}`, () => {
it('sets selectedTemplateType', () => {
mutations[types.SET_SELECTED_TEMPLATE_TYPE](state, 'type');
......@@ -59,7 +59,7 @@ describe('IDE file templates mutations', () => {
});
});
describe(types.SET_UPDATE_SUCCESS, () => {
describe(`${types.SET_UPDATE_SUCCESS}`, () => {
it('sets updateSuccess', () => {
mutations[types.SET_UPDATE_SUCCESS](state, true);
......
......@@ -2,7 +2,7 @@ import * as types from '~/import_projects/store/mutation_types';
import mutations from '~/import_projects/store/mutations';
describe('import_projects store mutations', () => {
describe(types.RECEIVE_IMPORT_SUCCESS, () => {
describe(`${types.RECEIVE_IMPORT_SUCCESS}`, () => {
it('removes repoId from reposBeingImported and providerRepos, adds to importedProjects', () => {
const repoId = 1;
const state = {
......@@ -20,7 +20,7 @@ describe('import_projects store mutations', () => {
});
});
describe(types.RECEIVE_JOBS_SUCCESS, () => {
describe(`${types.RECEIVE_JOBS_SUCCESS}`, () => {
it('updates importStatus of existing importedProjects', () => {
const repoId = 1;
const state = { importedProjects: [{ id: repoId, importStatus: 'started' }] };
......
......@@ -23,7 +23,7 @@ const newLine = {
type: 'new',
};
describe(SuggestionDiffRow.name, () => {
describe('SuggestionDiffRow', () => {
let wrapper;
const factory = (options = {}) => {
......
import { shallowMount, createLocalVue } from '@vue/test-utils';
import TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';
describe(TimelineEntryItem.name, () => {
describe(`TimelineEntryItem`, () => {
let wrapper;
const factory = (options = {}) => {
......
......@@ -2,7 +2,7 @@ import mutations from '~/vuex_shared/modules/modal/mutations';
import * as types from '~/vuex_shared/modules/modal/mutation_types';
describe('Vuex ModalModule mutations', () => {
describe(types.SHOW, () => {
describe(`${types.SHOW}`, () => {
it('sets isVisible to true', () => {
const state = {
isVisible: false,
......@@ -16,7 +16,7 @@ describe('Vuex ModalModule mutations', () => {
});
});
describe(types.HIDE, () => {
describe(`${types.HIDE}`, () => {
it('sets isVisible to false', () => {
const state = {
isVisible: true,
......@@ -30,7 +30,7 @@ describe('Vuex ModalModule mutations', () => {
});
});
describe(types.OPEN, () => {
describe(`${types.OPEN}`, () => {
it('sets data and sets isVisible to true', () => {
const data = { id: 7 };
const state = {
......
......@@ -157,7 +157,8 @@ describe PipelineSerializer do
it 'verifies number of queries', :request_store do
recorded = ActiveRecord::QueryRecorder.new { subject }
expect(recorded.count).to be_within(2).of(31)
expected_queries = Gitlab.ee? ? 38 : 31
expect(recorded.count).to be_within(2).of(expected_queries)
expect(recorded.cached_count).to eq(0)
end
end
......@@ -176,7 +177,8 @@ describe PipelineSerializer do
# pipeline. With the same ref this check is cached but if refs are
# different then there is an extra query per ref
# https://gitlab.com/gitlab-org/gitlab-ce/issues/46368
expect(recorded.count).to be_within(2).of(38)
expected_queries = Gitlab.ee? ? 44 : 38
expect(recorded.count).to be_within(2).of(expected_queries)
expect(recorded.cached_count).to eq(0)
end
end
......
......@@ -35,7 +35,7 @@ describe Ci::RetryBuildService do
commit_id deployment erased_by_id project_id
runner_id tag_taggings taggings tags trigger_request_id
user_id auto_canceled_by_id retried failure_reason
artifacts_file_store artifacts_metadata_store
sourced_pipelines artifacts_file_store artifacts_metadata_store
metadata runner_session trace_chunks].freeze
shared_examples 'build duplication' do
......@@ -95,7 +95,8 @@ describe Ci::RetryBuildService do
end
it 'has correct number of known attributes' do
known_accessors = CLONE_ACCESSORS + REJECT_ACCESSORS + IGNORE_ACCESSORS
processed_accessors = CLONE_ACCESSORS + REJECT_ACCESSORS
known_accessors = processed_accessors + IGNORE_ACCESSORS
# :tag_list is a special case, this accessor does not exist
# in reflected associations, comes from `act_as_taggable` and
......@@ -108,7 +109,8 @@ describe Ci::RetryBuildService do
current_accessors.uniq!
expect(known_accessors).to contain_exactly(*current_accessors)
expect(current_accessors).to include(*processed_accessors)
expect(known_accessors).to include(*current_accessors)
end
end
......
......@@ -100,8 +100,8 @@ RSpec.configure do |config|
config.include PolicyHelpers, type: :policy
if ENV['CI']
# This includes the first try, i.e. tests will be run 2 times before failing.
config.default_retry_count = 2
# This includes the first try, i.e. tests will be run 4 times before failing.
config.default_retry_count = 4
config.reporter.register_listener(
RspecFlaky::Listener.new,
:example_passed,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment