Commit aaf59610 authored by GitLab Bot's avatar GitLab Bot

Add latest changes from gitlab-org/gitlab@master

parent 1363ca12
extends: extends:
- '@gitlab' - plugin:@gitlab/default
- plugin:promise/recommended - plugin:@gitlab/i18n
- plugin:no-jquery/slim - plugin:no-jquery/slim
- plugin:no-jquery/deprecated-3.4 - plugin:no-jquery/deprecated-3.4
globals: globals:
...@@ -16,9 +16,6 @@ settings: ...@@ -16,9 +16,6 @@ settings:
webpack: webpack:
config: './config/webpack.config.js' config: './config/webpack.config.js'
rules: rules:
"@gitlab/i18n/no-non-i18n-strings": error
"@gitlab/vue-i18n/no-bare-strings": error
"@gitlab/vue-i18n/no-bare-attribute-strings": error
import/no-commonjs: error import/no-commonjs: error
no-underscore-dangle: no-underscore-dangle:
- error - error
...@@ -54,4 +51,4 @@ overrides: ...@@ -54,4 +51,4 @@ overrides:
- files: - files:
- '**/spec/**/*' - '**/spec/**/*'
rules: rules:
"@gitlab/i18n/no-non-i18n-strings": off "@gitlab/require-i18n-strings": off
...@@ -8,7 +8,6 @@ Please describe the proposal and add a link to the source (for example, http://w ...@@ -8,7 +8,6 @@ Please describe the proposal and add a link to the source (for example, http://w
- [ ] Make sure this MR enables a static analysis check rule for new usage but - [ ] Make sure this MR enables a static analysis check rule for new usage but
ignores current offenses ignores current offenses
- [ ] Create a follow-up issue to fix the current offenses as a separate iteration: ISSUE_LINK
- [ ] Mention this proposal in the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`) - [ ] Mention this proposal in the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`)
- [ ] If there is a choice to make between two potential styles, set up an emoji vote in the MR: - [ ] If there is a choice to make between two potential styles, set up an emoji vote in the MR:
- CHOICE_A: :a: - CHOICE_A: :a:
...@@ -17,6 +16,7 @@ Please describe the proposal and add a link to the source (for example, http://w ...@@ -17,6 +16,7 @@ Please describe the proposal and add a link to the source (for example, http://w
- [ ] The MR doesn't have significant objections, and is getting a majority of :+1: vs :-1: (remember that [we don't need to reach a consensus](https://about.gitlab.com/handbook/values/#collaboration-is-not-consensus)) - [ ] The MR doesn't have significant objections, and is getting a majority of :+1: vs :-1: (remember that [we don't need to reach a consensus](https://about.gitlab.com/handbook/values/#collaboration-is-not-consensus))
- [ ] (If applicable) One style is getting a majority of vote (compared to the other choice) - [ ] (If applicable) One style is getting a majority of vote (compared to the other choice)
- [ ] (If applicable) Update the MR with the chosen style - [ ] (If applicable) Update the MR with the chosen style
- [ ] Create a follow-up issue to fix the current offenses as a separate iteration: ISSUE_LINK
- [ ] Follow the [review process](https://docs.gitlab.com/ee/development/code_review.html) as usual - [ ] Follow the [review process](https://docs.gitlab.com/ee/development/code_review.html) as usual
- [ ] Once approved and merged by a maintainer, mention it again: - [ ] Once approved and merged by a maintainer, mention it again:
- [ ] In the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`) - [ ] In the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`)
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
# #
# Uncomment the following lines to make the configuration take effect. # Uncomment the following lines to make the configuration take effect.
# Make sure to run `cd tooling/overcommit && make && cd -` # Make sure to run `make -C tooling/overcommit`
gemfile: 'tooling/overcommit/gems.rb' gemfile: 'tooling/overcommit/Gemfile'
PostCheckout: PostCheckout:
BundleInstall: BundleInstall:
......
...@@ -475,7 +475,7 @@ gem 'lograge', '~> 0.5' ...@@ -475,7 +475,7 @@ gem 'lograge', '~> 0.5'
gem 'grape_logging', '~> 1.7' gem 'grape_logging', '~> 1.7'
# DNS Lookup # DNS Lookup
gem 'gitlab-net-dns', '~> 0.9.1' gem 'gitlab-net-dns', '~> 0.9.1', require: 'net/dns'
# Countries list # Countries list
gem 'countries', '~> 3.0' gem 'countries', '~> 3.0'
......
/* eslint-disable class-methods-use-this, @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable class-methods-use-this, @gitlab/require-i18n-strings */
import $ from 'jquery'; import $ from 'jquery';
import _ from 'underscore'; import _ from 'underscore';
......
...@@ -4,7 +4,7 @@ import Icon from '~/vue_shared/components/icon.vue'; ...@@ -4,7 +4,7 @@ import Icon from '~/vue_shared/components/icon.vue';
export default { export default {
// name: 'Badge' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25 // name: 'Badge' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
name: 'Badge', name: 'Badge',
components: { components: {
Icon, Icon,
......
/* eslint-disable class-methods-use-this */ /* eslint-disable class-methods-use-this */
/* eslint-disable @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable @gitlab/require-i18n-strings */
import { Node } from 'tiptap'; import { Node } from 'tiptap';
import { defaultMarkdownSerializer } from 'prosemirror-markdown'; import { defaultMarkdownSerializer } from 'prosemirror-markdown';
......
...@@ -36,6 +36,7 @@ export default Vue.extend({ ...@@ -36,6 +36,7 @@ export default Vue.extend({
list: { list: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
disabled: { disabled: {
type: Boolean, type: Boolean,
...@@ -94,7 +95,7 @@ export default Vue.extend({ ...@@ -94,7 +95,7 @@ export default Vue.extend({
return this.list.type !== ListType.blank && this.list.type !== ListType.promotion; return this.list.type !== ListType.blank && this.list.type !== ListType.promotion;
}, },
uniqueKey() { uniqueKey() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `boards.${this.boardId}.${this.list.type}.${this.list.id}`; return `boards.${this.boardId}.${this.list.type}.${this.list.id}`;
}, },
helpLink() { helpLink() {
......
...@@ -13,29 +13,36 @@ export default { ...@@ -13,29 +13,36 @@ export default {
list: { list: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
issue: { issue: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
issueLinkBase: { issueLinkBase: {
type: String, type: String,
default: '', default: '',
required: false,
}, },
disabled: { disabled: {
type: Boolean, type: Boolean,
default: false, default: false,
required: false,
}, },
index: { index: {
type: Number, type: Number,
default: 0, default: 0,
required: false,
}, },
rootPath: { rootPath: {
type: String, type: String,
default: '', default: '',
required: false,
}, },
groupId: { groupId: {
type: Number, type: Number,
required: false,
}, },
}, },
data() { data() {
......
...@@ -7,6 +7,7 @@ export default Vue.extend({ ...@@ -7,6 +7,7 @@ export default Vue.extend({
list: { list: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
methods: { methods: {
......
...@@ -34,6 +34,7 @@ export default Vue.extend({ ...@@ -34,6 +34,7 @@ export default Vue.extend({
currentUser: { currentUser: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
data() { data() {
......
...@@ -43,6 +43,7 @@ export default { ...@@ -43,6 +43,7 @@ export default {
throttleDuration: { throttleDuration: {
type: Number, type: Number,
default: 200, default: 200,
required: false,
}, },
boardBaseUrl: { boardBaseUrl: {
type: String, type: String,
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { __ } from '~/locale'; import { __ } from '~/locale';
import ModalFilters from './filters'; import ModalFilters from './filters';
import ModalTabs from './tabs.vue'; import ModalTabs from './tabs.vue';
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import ModalStore from '../../stores/modal_store'; import ModalStore from '../../stores/modal_store';
import modalMixin from '../../mixins/modal_mixins'; import modalMixin from '../../mixins/modal_mixins';
......
const notImplemented = () => { const notImplemented = () => {
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
throw new Error('Not implemented!'); throw new Error('Not implemented!');
}; };
......
import * as mutationTypes from './mutation_types'; import * as mutationTypes from './mutation_types';
const notImplemented = () => { const notImplemented = () => {
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
throw new Error('Not implemented!'); throw new Error('Not implemented!');
}; };
......
<script> <script>
/* eslint-disable vue/require-default-prop */ /* eslint-disable vue/require-default-prop */
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { GlLink, GlModalDirective } from '@gitlab/ui'; import { GlLink, GlModalDirective } from '@gitlab/ui';
import { s__, __, sprintf } from '~/locale'; import { s__, __, sprintf } from '~/locale';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
...@@ -95,6 +95,7 @@ export default { ...@@ -95,6 +95,7 @@ export default {
updateable: { updateable: {
type: Boolean, type: Boolean,
default: true, default: true,
required: false,
}, },
updateSuccessful: { updateSuccessful: {
type: Boolean, type: Boolean,
......
...@@ -22,6 +22,7 @@ export default { ...@@ -22,6 +22,7 @@ export default {
ingressDnsHelpPath: { ingressDnsHelpPath: {
type: String, type: String,
default: '', default: '',
required: false,
}, },
}, },
computed: { computed: {
......
...@@ -13,10 +13,12 @@ export default { ...@@ -13,10 +13,12 @@ export default {
items: { items: {
type: Array, type: Array,
default: () => [], default: () => [],
required: false,
}, },
stage: { stage: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
}; };
......
...@@ -13,10 +13,12 @@ export default { ...@@ -13,10 +13,12 @@ export default {
items: { items: {
type: Array, type: Array,
default: () => [], default: () => [],
required: false,
}, },
stage: { stage: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
}; };
......
...@@ -15,10 +15,12 @@ export default { ...@@ -15,10 +15,12 @@ export default {
items: { items: {
type: Array, type: Array,
default: () => [], default: () => [],
required: false,
}, },
stage: { stage: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
}; };
......
...@@ -16,10 +16,12 @@ export default { ...@@ -16,10 +16,12 @@ export default {
items: { items: {
type: Array, type: Array,
default: () => [], default: () => [],
required: false,
}, },
stage: { stage: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
computed: { computed: {
......
...@@ -15,10 +15,12 @@ export default { ...@@ -15,10 +15,12 @@ export default {
items: { items: {
type: Array, type: Array,
default: () => [], default: () => [],
required: false,
}, },
stage: { stage: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
computed: { computed: {
......
...@@ -48,7 +48,7 @@ export default { ...@@ -48,7 +48,7 @@ export default {
}, },
authorUrl() { authorUrl() {
// name: 'mailto:' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives // name: 'mailto:' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return this.author.web_url || `mailto:${this.commit.author_email}`; return this.author.web_url || `mailto:${this.commit.author_email}`;
}, },
authorAvatar() { authorAvatar() {
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
export default { export default {
props: { props: {
total: { total: {
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import _ from 'underscore'; import _ from 'underscore';
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective } from '@gitlab/ui';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
...@@ -342,7 +342,7 @@ export default { ...@@ -342,7 +342,7 @@ export default {
isLastDeployment() { isLastDeployment() {
// name: 'last?' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives // name: 'last?' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives
// Vue i18n ESLint rules issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/63560 // Vue i18n ESLint rules issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/63560
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return this.model && this.model.last_deployment && this.model.last_deployment['last?']; return this.model && this.model.last_deployment && this.model.last_deployment['last?'];
}, },
......
...@@ -24,6 +24,7 @@ export default { ...@@ -24,6 +24,7 @@ export default {
isLastDeployment: { isLastDeployment: {
type: Boolean, type: Boolean,
default: true, default: true,
required: false,
}, },
environment: { environment: {
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { GlTooltipDirective } from '@gitlab/ui'; import { GlTooltipDirective } from '@gitlab/ui';
import DeprecatedModal2 from '~/vue_shared/components/deprecated_modal_2.vue'; import DeprecatedModal2 from '~/vue_shared/components/deprecated_modal_2.vue';
import { s__, sprintf } from '~/locale'; import { s__, sprintf } from '~/locale';
......
/* eslint-disable @gitlab/i18n/no-non-i18n-strings, import/prefer-default-export */ /* eslint-disable @gitlab/require-i18n-strings, import/prefer-default-export */
/** /**
* Tracks snowplow event when User clicks on error link to Sentry * Tracks snowplow event when User clicks on error link to Sentry
......
...@@ -24,7 +24,7 @@ export default { ...@@ -24,7 +24,7 @@ export default {
<label class="label-bold" for="error-tracking-api-host">{{ __('Sentry API URL') }}</label> <label class="label-bold" for="error-tracking-api-host">{{ __('Sentry API URL') }}</label>
<div class="row"> <div class="row">
<div class="col-8 col-md-9 gl-pr-0"> <div class="col-8 col-md-9 gl-pr-0">
<!-- eslint-disable @gitlab/vue-i18n/no-bare-attribute-strings --> <!-- eslint-disable @gitlab/vue-require-i18n-attribute-strings -->
<gl-form-input <gl-form-input
id="error-tracking-api-host" id="error-tracking-api-host"
:value="apiHost" :value="apiHost"
...@@ -39,7 +39,7 @@ export default { ...@@ -39,7 +39,7 @@ export default {
) )
}} }}
</p> </p>
<!-- eslint-enable @gitlab/vue-i18n/no-bare-attribute-strings --> <!-- eslint-enable @gitlab/vue-require-i18n-attribute-strings -->
</div> </div>
</div> </div>
</div> </div>
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import Icon from '~/vue_shared/components/icon.vue'; import Icon from '~/vue_shared/components/icon.vue';
import Timeago from '~/vue_shared/components/time_ago_tooltip.vue'; import Timeago from '~/vue_shared/components/time_ago_tooltip.vue';
import router from '../../ide_router'; import router from '../../ide_router';
......
...@@ -38,7 +38,7 @@ export default { ...@@ -38,7 +38,7 @@ export default {
computed: { computed: {
iconName() { iconName() {
// name: '-solid' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives // name: '-solid' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
const suffix = this.stagedList ? '-solid' : ''; const suffix = this.stagedList ? '-solid' : '';
return `${getCommitIconMap(this.file).icon}${suffix}`; return `${getCommitIconMap(this.file).icon}${suffix}`;
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { mapActions, mapState, mapGetters } from 'vuex'; import { mapActions, mapState, mapGetters } from 'vuex';
import IdeStatusList from 'ee_else_ce/ide/components/ide_status_list.vue'; import IdeStatusList from 'ee_else_ce/ide/components/ide_status_list.vue';
import IdeStatusMr from './ide_status_mr.vue'; import IdeStatusMr from './ide_status_mr.vue';
......
...@@ -48,7 +48,7 @@ export default { ...@@ -48,7 +48,7 @@ export default {
}, },
}), }),
namespace() { namespace() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `${this.side}Pane`; return `${this.side}Pane`;
}, },
tabs() { tabs() {
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { uniqueId } from 'lodash'; import { uniqueId } from 'lodash';
import { GlLink, GlTooltip, GlTooltipDirective } from '@gitlab/ui'; import { GlLink, GlTooltip, GlTooltipDirective } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import updateMixin from '../mixins/update'; import updateMixin from '../mixins/update';
import eventHub from '../event_hub'; import eventHub from '../event_hub';
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import timeAgoTooltip from '../../vue_shared/components/time_ago_tooltip.vue'; import timeAgoTooltip from '../../vue_shared/components/time_ago_tooltip.vue';
export default { export default {
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import $ from 'jquery'; import $ from 'jquery';
import IssuableTemplateSelectors from '../../../templates/issuable_template_selectors'; import IssuableTemplateSelectors from '../../../templates/issuable_template_selectors';
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { GlLink } from '@gitlab/ui'; import { GlLink } from '@gitlab/ui';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue'; import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
......
...@@ -29,5 +29,5 @@ export const updateDraft = (autosaveKey, text) => { ...@@ -29,5 +29,5 @@ export const updateDraft = (autosaveKey, text) => {
}; };
export const getDiscussionReplyKey = (noteableType, discussionId) => export const getDiscussionReplyKey = (noteableType, discussionId) =>
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
['Note', capitalizeFirstCharacter(noteableType), discussionId, 'Reply'].join('/'); ['Note', capitalizeFirstCharacter(noteableType), discussionId, 'Reply'].join('/');
...@@ -10,7 +10,7 @@ const durationToMillis = duration => { ...@@ -10,7 +10,7 @@ const durationToMillis = duration => {
if (Object.entries(duration).length === 1 && Number.isFinite(duration.seconds)) { if (Object.entries(duration).length === 1 && Number.isFinite(duration.seconds)) {
return secondsToMilliseconds(duration.seconds); return secondsToMilliseconds(duration.seconds);
} }
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
throw new Error('Invalid duration: only `seconds` is supported'); throw new Error('Invalid duration: only `seconds` is supported');
}; };
...@@ -131,7 +131,7 @@ const convertOpenToFixed = ({ anchor, direction }) => { ...@@ -131,7 +131,7 @@ const convertOpenToFixed = ({ anchor, direction }) => {
* Handles invalid date ranges * Handles invalid date ranges
*/ */
const handleInvalidRange = () => { const handleInvalidRange = () => {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
throw new Error('The input range does not have the right format.'); throw new Error('The input range does not have the right format.');
}; };
......
...@@ -13,7 +13,7 @@ function notificationGranted(message, opts, onclick) { ...@@ -13,7 +13,7 @@ function notificationGranted(message, opts, onclick) {
} }
function notifyPermissions() { function notifyPermissions() {
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
if ('Notification' in window) { if ('Notification' in window) {
return Notification.requestPermission(); return Notification.requestPermission();
} }
...@@ -25,7 +25,7 @@ function notifyMe(message, body, icon, onclick) { ...@@ -25,7 +25,7 @@ function notifyMe(message, body, icon, onclick) {
icon, icon,
}; };
// Let's check if the browser supports notifications // Let's check if the browser supports notifications
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
if (!('Notification' in window)) { if (!('Notification' in window)) {
// do nothing // do nothing
} else if (Notification.permission === 'granted') { } else if (Notification.permission === 'granted') {
......
...@@ -111,7 +111,7 @@ export const scaledSIFormatter = (unit = '', prefixOffset = 0) => { ...@@ -111,7 +111,7 @@ export const scaledSIFormatter = (unit = '', prefixOffset = 0) => {
}); });
if (!units.length) { if (!units.length) {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
throw new RangeError('The unit cannot be converted, please try a different scale'); throw new RangeError('The unit cannot be converted, please try a different scale');
} }
...@@ -122,7 +122,7 @@ export const scaledSIFormatter = (unit = '', prefixOffset = 0) => { ...@@ -122,7 +122,7 @@ export const scaledSIFormatter = (unit = '', prefixOffset = 0) => {
* Returns a function that formats a number scaled using SI units notation. * Returns a function that formats a number scaled using SI units notation.
*/ */
export const scaledBinaryFormatter = (unit = '', prefixOffset = 0) => { export const scaledBinaryFormatter = (unit = '', prefixOffset = 0) => {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
const multiplicative = ['Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi']; const multiplicative = ['Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi'];
const symbols = ['', ...multiplicative]; const symbols = ['', ...multiplicative];
...@@ -131,7 +131,7 @@ export const scaledBinaryFormatter = (unit = '', prefixOffset = 0) => { ...@@ -131,7 +131,7 @@ export const scaledBinaryFormatter = (unit = '', prefixOffset = 0) => {
}); });
if (!units.length) { if (!units.length) {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
throw new RangeError('The unit cannot be converted, please try a different scale'); throw new RangeError('The unit cannot be converted, please try a different scale');
} }
......
...@@ -49,7 +49,7 @@ window.$ = jQuery; ...@@ -49,7 +49,7 @@ window.$ = jQuery;
// Add nonce to jQuery script handler // Add nonce to jQuery script handler
jQuery.ajaxSetup({ jQuery.ajaxSetup({
converters: { converters: {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings, func-names // eslint-disable-next-line @gitlab/require-i18n-strings, func-names
'text script': function(text) { 'text script': function(text) {
jQuery.globalEval(text, { nonce: getCspNonceValue() }); jQuery.globalEval(text, { nonce: getCspNonceValue() });
return text; return text;
......
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
} }
}) })
.catch(e => { .catch(e => {
// eslint-disable-next-line no-console, @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line no-console, @gitlab/require-i18n-strings
console.error('SVG could not be rendered correctly: ', e); console.error('SVG could not be rendered correctly: ', e);
}); });
}, },
......
...@@ -327,7 +327,7 @@ export default { ...@@ -327,7 +327,7 @@ export default {
} }
}) })
.catch(e => { .catch(e => {
// eslint-disable-next-line no-console, @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line no-console, @gitlab/require-i18n-strings
console.error('SVG could not be rendered correctly: ', e); console.error('SVG could not be rendered correctly: ', e);
}); });
}, },
......
...@@ -95,7 +95,7 @@ export default { ...@@ -95,7 +95,7 @@ export default {
csvText() { csvText() {
const chartData = this.graphData.metrics[0].result[0].values; const chartData = this.graphData.metrics[0].result[0].values;
const yLabel = this.graphData.y_label; const yLabel = this.graphData.y_label;
const header = `timestamp,${yLabel}\r\n`; // eslint-disable-line @gitlab/i18n/no-non-i18n-strings const header = `timestamp,${yLabel}\r\n`; // eslint-disable-line @gitlab/require-i18n-strings
return chartData.reduce((csv, data) => { return chartData.reduce((csv, data) => {
const row = data.join(','); const row = data.join(',');
return `${csv}${row}\r\n`; return `${csv}${row}\r\n`;
......
...@@ -28,7 +28,7 @@ export const graphDataValidatorForValues = (isValues, graphData) => { ...@@ -28,7 +28,7 @@ export const graphDataValidatorForValues = (isValues, graphData) => {
); );
}; };
/* eslint-disable @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable @gitlab/require-i18n-strings */
/** /**
* Checks that element that triggered event is located on cluster health check dashboard * Checks that element that triggered event is located on cluster health check dashboard
* @param {HTMLElement} element to check against * @param {HTMLElement} element to check against
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { GlPopover, GlSkeletonLoading } from '@gitlab/ui'; import { GlPopover, GlSkeletonLoading } from '@gitlab/ui';
import CiIcon from '../../vue_shared/components/ci_icon.vue'; import CiIcon from '../../vue_shared/components/ci_icon.vue';
import timeagoMixin from '../../vue_shared/mixins/timeago'; import timeagoMixin from '../../vue_shared/mixins/timeago';
...@@ -8,7 +8,7 @@ import { mrStates, humanMRStates } from '../constants'; ...@@ -8,7 +8,7 @@ import { mrStates, humanMRStates } from '../constants';
export default { export default {
// name: 'MRPopover' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25 // name: 'MRPopover' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25
name: 'MRPopover', // eslint-disable-line @gitlab/i18n/no-non-i18n-strings name: 'MRPopover', // eslint-disable-line @gitlab/require-i18n-strings
components: { components: {
GlPopover, GlPopover,
GlSkeletonLoading, GlSkeletonLoading,
...@@ -102,11 +102,11 @@ export default { ...@@ -102,11 +102,11 @@ export default {
<ci-icon v-if="detailedStatus" :status="detailedStatus" /> <ci-icon v-if="detailedStatus" :status="detailedStatus" />
</div> </div>
<h5 class="my-2">{{ mergeRequestTitle }}</h5> <h5 class="my-2">{{ mergeRequestTitle }}</h5>
<!-- eslint-disable @gitlab/vue-i18n/no-bare-strings --> <!-- eslint-disable @gitlab/vue-require-i18n-strings -->
<div class="text-secondary"> <div class="text-secondary">
{{ `${projectPath}!${mergeRequestIID}` }} {{ `${projectPath}!${mergeRequestIID}` }}
</div> </div>
<!-- eslint-enable @gitlab/vue-i18n/no-bare-strings --> <!-- eslint-enable @gitlab/vue-require-i18n-strings -->
</div> </div>
</gl-popover> </gl-popover>
</template> </template>
/* eslint-disable func-names, consistent-return, no-return-assign, no-else-return, @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable func-names, consistent-return, no-return-assign, no-else-return, @gitlab/require-i18n-strings */
import $ from 'jquery'; import $ from 'jquery';
import RefSelectDropdown from './ref_select_dropdown'; import RefSelectDropdown from './ref_select_dropdown';
......
...@@ -29,6 +29,7 @@ export default { ...@@ -29,6 +29,7 @@ export default {
metadata: { metadata: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
computed: { computed: {
......
...@@ -43,7 +43,7 @@ renderer.paragraph = t => { ...@@ -43,7 +43,7 @@ renderer.paragraph = t => {
if (typeof katex !== 'undefined') { if (typeof katex !== 'undefined') {
const katexString = text const katexString = text
.replace(/&amp;/g, '&') .replace(/&amp;/g, '&')
.replace(/&=&/g, '\\space=\\space') // eslint-disable-line @gitlab/i18n/no-non-i18n-strings .replace(/&=&/g, '\\space=\\space') // eslint-disable-line @gitlab/require-i18n-strings
.replace(/<(\/?)em>/g, '_'); .replace(/<(\/?)em>/g, '_');
const regex = new RegExp(katexRegexString, 'gi'); const regex = new RegExp(katexRegexString, 'gi');
const matchLocation = katexString.search(regex); const matchLocation = katexString.search(regex);
......
...@@ -25,7 +25,7 @@ export default { ...@@ -25,7 +25,7 @@ export default {
}, },
computed: { computed: {
imgSrc() { imgSrc() {
return `data:${this.outputType};base64,${this.rawCode}`; // eslint-disable-line @gitlab/i18n/no-non-i18n-strings return `data:${this.outputType};base64,${this.rawCode}`; // eslint-disable-line @gitlab/require-i18n-strings
}, },
showOutput() { showOutput() {
return this.index === 0; return this.index === 0;
......
...@@ -22,6 +22,7 @@ export default { ...@@ -22,6 +22,7 @@ export default {
metadata: { metadata: {
type: Object, type: Object,
default: () => ({}), default: () => ({}),
required: false,
}, },
}, },
methods: { methods: {
......
...@@ -39,7 +39,7 @@ export default { ...@@ -39,7 +39,7 @@ export default {
}, },
methods: { methods: {
cellType(type) { cellType(type) {
return `${type}-cell`; // eslint-disable-line @gitlab/i18n/no-non-i18n-strings return `${type}-cell`; // eslint-disable-line @gitlab/require-i18n-strings
}, },
}, },
}; };
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import { GlSkeletonLoading } from '@gitlab/ui'; import { GlSkeletonLoading } from '@gitlab/ui';
import DiffFileHeader from '~/diffs/components/diff_file_header.vue'; import DiffFileHeader from '~/diffs/components/diff_file_header.vue';
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import timeAgoTooltip from '../../vue_shared/components/time_ago_tooltip.vue'; import timeAgoTooltip from '../../vue_shared/components/time_ago_tooltip.vue';
export default { export default {
......
...@@ -54,14 +54,14 @@ export default { ...@@ -54,14 +54,14 @@ export default {
:description="s__('ExternalMetrics|Enter the URL of the dashboard you want to link to')" :description="s__('ExternalMetrics|Enter the URL of the dashboard you want to link to')"
> >
<!-- placeholder with a url is a false positive --> <!-- placeholder with a url is a false positive -->
<!-- eslint-disable @gitlab/vue-i18n/no-bare-attribute-strings --> <!-- eslint-disable @gitlab/vue-require-i18n-attribute-strings -->
<gl-form-input <gl-form-input
id="full-dashboard-url" id="full-dashboard-url"
v-model="userDashboardUrl" v-model="userDashboardUrl"
placeholder="https://my-org.gitlab.io/my-dashboards" placeholder="https://my-org.gitlab.io/my-dashboards"
@keydown.enter.native.prevent="updateExternalDashboardUrl" @keydown.enter.native.prevent="updateExternalDashboardUrl"
/> />
<!-- eslint-enable @gitlab/vue-i18n/no-bare-attribute-strings --> <!-- eslint-enable @gitlab/vue-require-i18n-attribute-strings -->
</gl-form-group> </gl-form-group>
<gl-button variant="success" @click="updateExternalDashboardUrl"> <gl-button variant="success" @click="updateExternalDashboardUrl">
{{ __('Save Changes') }} {{ __('Save Changes') }}
......
...@@ -19,7 +19,7 @@ function loadModalsConfigurationFromHtml(modalsElement) { ...@@ -19,7 +19,7 @@ function loadModalsConfigurationFromHtml(modalsElement) {
const modalsConfiguration = {}; const modalsConfiguration = {};
if (!modalsElement) { if (!modalsElement) {
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
throw new Error('Modals content element not found!'); throw new Error('Modals content element not found!');
} }
......
/* eslint-disable @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable @gitlab/require-i18n-strings */
import Vue from 'vue'; import Vue from 'vue';
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { GlLink, GlTooltipDirective } from '@gitlab/ui'; import { GlLink, GlTooltipDirective } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue'; import Icon from '~/vue_shared/components/icon.vue';
......
...@@ -14,15 +14,15 @@ export default { ...@@ -14,15 +14,15 @@ export default {
computed: { computed: {
...mapState(['config']), ...mapState(['config']),
dockerBuildCommand() { dockerBuildCommand() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `docker build -t ${this.config.repositoryUrl} .`; return `docker build -t ${this.config.repositoryUrl} .`;
}, },
dockerPushCommand() { dockerPushCommand() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `docker push ${this.config.repositoryUrl}`; return `docker push ${this.config.repositoryUrl}`;
}, },
dockerLoginCommand() { dockerLoginCommand() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `docker login ${this.config.registryHostUrlWithPort}`; return `docker login ${this.config.registryHostUrlWithPort}`;
}, },
}, },
......
...@@ -37,15 +37,15 @@ export default { ...@@ -37,15 +37,15 @@ export default {
}, },
computed: { computed: {
dockerBuildCommand() { dockerBuildCommand() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `docker build -t ${this.repositoryUrl} .`; return `docker build -t ${this.repositoryUrl} .`;
}, },
dockerPushCommand() { dockerPushCommand() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `docker push ${this.repositoryUrl}`; return `docker push ${this.repositoryUrl}`;
}, },
dockerLoginCommand() { dockerLoginCommand() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `docker login ${this.registryHostUrlWithPort}`; return `docker login ${this.registryHostUrlWithPort}`;
}, },
noContainerImagesText() { noContainerImagesText() {
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
export default { export default {
name: 'ReportIssueLink', name: 'ReportIssueLink',
props: { props: {
......
...@@ -151,7 +151,7 @@ export default { ...@@ -151,7 +151,7 @@ export default {
> >
{{ fullPath }} {{ fullPath }}
</component> </component>
<!-- eslint-disable-next-line @gitlab/vue-i18n/no-bare-strings --> <!-- eslint-disable-next-line @gitlab/vue-require-i18n-strings -->
<gl-badge v-if="lfsOid" variant="default" class="label-lfs ml-1">LFS</gl-badge> <gl-badge v-if="lfsOid" variant="default" class="label-lfs ml-1">LFS</gl-badge>
<template v-if="isSubmodule"> <template v-if="isSubmodule">
@ <gl-link :href="submoduleTreeUrl" class="commit-sha">{{ shortSha }}</gl-link> @ <gl-link :href="submoduleTreeUrl" class="commit-sha">{{ shortSha }}</gl-link>
......
...@@ -39,7 +39,7 @@ const defaultClient = createDefaultClient( ...@@ -39,7 +39,7 @@ const defaultClient = createDefaultClient(
cacheConfig: { cacheConfig: {
fragmentMatcher, fragmentMatcher,
dataIdFromObject: obj => { dataIdFromObject: obj => {
/* eslint-disable @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable @gitlab/require-i18n-strings */
// eslint-disable-next-line no-underscore-dangle // eslint-disable-next-line no-underscore-dangle
switch (obj.__typename) { switch (obj.__typename) {
// We need to create a dynamic ID for each entry // We need to create a dynamic ID for each entry
...@@ -55,7 +55,7 @@ const defaultClient = createDefaultClient( ...@@ -55,7 +55,7 @@ const defaultClient = createDefaultClient(
// eslint-disable-next-line no-underscore-dangle // eslint-disable-next-line no-underscore-dangle
return obj.id || obj._id; return obj.id || obj._id;
} }
/* eslint-enable @gitlab/i18n/no-non-i18n-strings */ /* eslint-enable @gitlab/require-i18n-strings */
}, },
}, },
}, },
......
...@@ -9,7 +9,7 @@ export const setTitle = (pathMatch, ref, project) => { ...@@ -9,7 +9,7 @@ export const setTitle = (pathMatch, ref, project) => {
const path = pathMatch.replace(/^\//, ''); const path = pathMatch.replace(/^\//, '');
const isEmpty = path === ''; const isEmpty = path === '';
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
document.title = `${isEmpty ? 'Files' : path} · ${ref} · ${project} ${DEFAULT_TITLE}`; document.title = `${isEmpty ? 'Files' : path} · ${ref} · ${project} ${DEFAULT_TITLE}`;
}; };
......
...@@ -420,11 +420,11 @@ export class SearchAutocomplete { ...@@ -420,11 +420,11 @@ export class SearchAutocomplete {
onClick(item, $el, e) { onClick(item, $el, e) {
if (window.location.pathname.indexOf(item.url) !== -1) { if (window.location.pathname.indexOf(item.url) !== -1) {
if (!e.metaKey) e.preventDefault(); if (!e.metaKey) e.preventDefault();
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
if (item.category === 'Projects') { if (item.category === 'Projects') {
this.projectInputEl.val(item.id); this.projectInputEl.val(item.id);
} }
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ // eslint-disable-next-line @gitlab/require-i18n-strings
if (item.category === 'Groups') { if (item.category === 'Groups') {
this.groupInputEl.val(item.id); this.groupInputEl.val(item.id);
} }
......
...@@ -4,7 +4,7 @@ import UncollapsedAssigneeList from '../assignees/uncollapsed_assignee_list.vue' ...@@ -4,7 +4,7 @@ import UncollapsedAssigneeList from '../assignees/uncollapsed_assignee_list.vue'
export default { export default {
// name: 'Assignees' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives // name: 'Assignees' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
name: 'Assignees', name: 'Assignees',
components: { components: {
CollapsedAssigneeList, CollapsedAssigneeList,
......
...@@ -40,6 +40,7 @@ export default { ...@@ -40,6 +40,7 @@ export default {
limitToHours: { limitToHours: {
type: Boolean, type: Boolean,
default: false, default: false,
required: false,
}, },
rootPath: { rootPath: {
type: String, type: String,
......
mutation ($projectPath: ID!, $iid: String!, $healthStatus: HealthStatus) { mutation($projectPath: ID!, $iid: String!, $healthStatus: HealthStatus) {
updateIssue(input: { projectPath: $projectPath, iid: $iid, healthStatus: $healthStatus}) { updateIssue(input: { projectPath: $projectPath, iid: $iid, healthStatus: $healthStatus }) {
issue { issue {
healthStatus healthStatus
} }
errors
} }
} }
...@@ -137,7 +137,10 @@ export default { ...@@ -137,7 +137,10 @@ export default {
mutation: DeleteSnippetMutation, mutation: DeleteSnippetMutation,
variables: { id: this.snippet.id }, variables: { id: this.snippet.id },
}) })
.then(() => { .then(({ data }) => {
if (data?.destroySnippet?.errors) {
throw new Error(data?.destroySnippet?.errors[0]);
}
this.isDeleting = false; this.isDeleting = false;
this.errorMessage = undefined; this.errorMessage = undefined;
this.closeDeleteModal(); this.closeDeleteModal();
......
...@@ -54,7 +54,7 @@ export default class Tracking { ...@@ -54,7 +54,7 @@ export default class Tracking {
static event(category = document.body.dataset.page, action = 'generic', data = {}) { static event(category = document.body.dataset.page, action = 'generic', data = {}) {
if (!this.enabled()) return false; if (!this.enabled()) return false;
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
if (!category) throw new Error('Tracking: no category provided for tracking.'); if (!category) throw new Error('Tracking: no category provided for tracking.');
const { label, property, value, context } = data; const { label, property, value, context } = data;
......
...@@ -5,7 +5,7 @@ import { MANUAL_DEPLOY, WILL_DEPLOY, CREATED } from './constants'; ...@@ -5,7 +5,7 @@ import { MANUAL_DEPLOY, WILL_DEPLOY, CREATED } from './constants';
export default { export default {
// name: 'Deployment' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives // name: 'Deployment' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
name: 'Deployment', name: 'Deployment',
components: { components: {
DeploymentActions, DeploymentActions,
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { GlLoadingIcon } from '@gitlab/ui'; import { GlLoadingIcon } from '@gitlab/ui';
import Flash from '~/flash'; import Flash from '~/flash';
import tooltip from '~/vue_shared/directives/tooltip'; import tooltip from '~/vue_shared/directives/tooltip';
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
.then(res => res.data) .then(res => res.data)
.then(data => { .then(data => {
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26 // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
if (data.message === 'Branch was deleted') { if (data.message === 'Branch was deleted') {
eventHub.$emit('MRWidgetUpdateRequested', () => { eventHub.$emit('MRWidgetUpdateRequested', () => {
this.isMakingRequest = false; this.isMakingRequest = false;
......
...@@ -42,7 +42,7 @@ import { setFaviconOverlay } from '../lib/utils/common_utils'; ...@@ -42,7 +42,7 @@ import { setFaviconOverlay } from '../lib/utils/common_utils';
export default { export default {
el: '#js-vue-mr-widget', el: '#js-vue-mr-widget',
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25 // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
name: 'MRWidget', name: 'MRWidget',
components: { components: {
Loading, Loading,
......
...@@ -40,7 +40,7 @@ export default { ...@@ -40,7 +40,7 @@ export default {
computed: { computed: {
changedIcon() { changedIcon() {
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26 // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
const suffix = this.file.staged && this.showStagedIcon ? '-solid' : ''; const suffix = this.file.staged && this.showStagedIcon ? '-solid' : '';
return `${getCommitIconMap(this.file).icon}${suffix}`; return `${getCommitIconMap(this.file).icon}${suffix}`;
......
...@@ -8,6 +8,7 @@ export default { ...@@ -8,6 +8,7 @@ export default {
content: { content: {
type: String, type: String,
default: '', default: '',
required: false,
}, },
path: { path: {
type: String, type: String,
......
...@@ -16,6 +16,7 @@ export default { ...@@ -16,6 +16,7 @@ export default {
renderInfo: { renderInfo: {
type: Boolean, type: Boolean,
default: true, default: true,
required: false,
}, },
innerCssClasses: { innerCssClasses: {
type: [Array, Object, String], type: [Array, Object, String],
......
...@@ -39,10 +39,10 @@ export default { ...@@ -39,10 +39,10 @@ export default {
mdTable() { mdTable() {
return [ return [
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26 // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26
'| header | header |', // eslint-disable-line @gitlab/i18n/no-non-i18n-strings '| header | header |', // eslint-disable-line @gitlab/require-i18n-strings
'| ------ | ------ |', '| ------ | ------ |',
'| cell | cell |', // eslint-disable-line @gitlab/i18n/no-non-i18n-strings '| cell | cell |', // eslint-disable-line @gitlab/require-i18n-strings
'| cell | cell |', // eslint-disable-line @gitlab/i18n/no-non-i18n-strings '| cell | cell |', // eslint-disable-line @gitlab/require-i18n-strings
].join('\n'); ].join('\n');
}, },
mdSuggestion() { mdSuggestion() {
......
<script> <script>
/* eslint-disable @gitlab/vue-i18n/no-bare-strings */ /* eslint-disable @gitlab/vue-require-i18n-strings */
import { GlLink, GlLoadingIcon } from '@gitlab/ui'; import { GlLink, GlLoadingIcon } from '@gitlab/ui';
export default { export default {
......
...@@ -15,6 +15,7 @@ export default { ...@@ -15,6 +15,7 @@ export default {
size: { size: {
type: Number, type: Number,
default: 40, default: 40,
required: false,
}, },
}, },
computed: { computed: {
......
...@@ -4,7 +4,7 @@ import 'select2'; ...@@ -4,7 +4,7 @@ import 'select2';
export default { export default {
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26 // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
name: 'Select2Select', name: 'Select2Select',
props: { props: {
options: { options: {
......
...@@ -77,12 +77,12 @@ export default { ...@@ -77,12 +77,12 @@ export default {
}, },
enableScopedLabels: { enableScopedLabels: {
type: Boolean, type: Boolean,
require: false, required: false,
default: false, default: false,
}, },
scopedLabelsDocumentationLink: { scopedLabelsDocumentationLink: {
type: String, type: String,
require: false, required: false,
default: '#', default: '#',
}, },
}, },
......
...@@ -33,12 +33,12 @@ export default { ...@@ -33,12 +33,12 @@ export default {
}, },
enableScopedLabels: { enableScopedLabels: {
type: Boolean, type: Boolean,
require: false, required: false,
default: false, default: false,
}, },
scopedLabelsDocumentationLink: { scopedLabelsDocumentationLink: {
type: String, type: String,
require: false, required: false,
default: '#', default: '#',
}, },
}, },
......
...@@ -45,7 +45,7 @@ export const createLabel = ({ state, dispatch }, label) => { ...@@ -45,7 +45,7 @@ export const createLabel = ({ state, dispatch }, label) => {
dispatch('receiveCreateLabelSuccess'); dispatch('receiveCreateLabelSuccess');
dispatch('toggleDropdownContentsCreateView'); dispatch('toggleDropdownContentsCreateView');
} else { } else {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
throw new Error('Error Creating Label'); throw new Error('Error Creating Label');
} }
}) })
......
...@@ -8,9 +8,9 @@ export default { ...@@ -8,9 +8,9 @@ export default {
size: { type: Number, required: true }, size: { type: Number, required: true },
length: { type: Number, required: true }, length: { type: Number, required: true },
remain: { type: Number, required: true }, remain: { type: Number, required: true },
rtag: { type: String, default: 'div' }, rtag: { type: String, default: 'div', required: false },
wtag: { type: String, default: 'div' }, wtag: { type: String, default: 'div', required: false },
wclass: { type: String, default: null }, wclass: { type: String, default: null, required: false },
}, },
}; };
</script> </script>
......
...@@ -83,7 +83,7 @@ export default { ...@@ -83,7 +83,7 @@ export default {
}, },
barStyle(percent) { barStyle(percent) {
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26 // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings
return `width: ${percent}%;`; return `width: ${percent}%;`;
}, },
getTooltip(label, count) { getTooltip(label, count) {
......
...@@ -51,6 +51,7 @@ module Types ...@@ -51,6 +51,7 @@ module Types
Types::BoardType.connection_type, Types::BoardType.connection_type,
null: true, null: true,
description: 'Boards of the group', description: 'Boards of the group',
max_page_size: 2000,
resolver: Resolvers::BoardsResolver resolver: Resolvers::BoardsResolver
field :board, field :board,
......
...@@ -184,6 +184,7 @@ module Types ...@@ -184,6 +184,7 @@ module Types
Types::BoardType.connection_type, Types::BoardType.connection_type,
null: true, null: true,
description: 'Boards of the project', description: 'Boards of the project',
max_page_size: 2000,
resolver: Resolvers::BoardsResolver resolver: Resolvers::BoardsResolver
field :board, field :board,
......
...@@ -68,6 +68,7 @@ class Issue < ApplicationRecord ...@@ -68,6 +68,7 @@ class Issue < ApplicationRecord
scope :order_closest_future_date, -> { reorder(Arel.sql('CASE WHEN issues.due_date >= CURRENT_DATE THEN 0 ELSE 1 END ASC, ABS(CURRENT_DATE - issues.due_date) ASC')) } scope :order_closest_future_date, -> { reorder(Arel.sql('CASE WHEN issues.due_date >= CURRENT_DATE THEN 0 ELSE 1 END ASC, ABS(CURRENT_DATE - issues.due_date) ASC')) }
scope :order_relative_position_asc, -> { reorder(::Gitlab::Database.nulls_last_order('relative_position', 'ASC')) } scope :order_relative_position_asc, -> { reorder(::Gitlab::Database.nulls_last_order('relative_position', 'ASC')) }
scope :order_closed_date_desc, -> { reorder(closed_at: :desc) } scope :order_closed_date_desc, -> { reorder(closed_at: :desc) }
scope :order_created_at_desc, -> { reorder(created_at: :desc) }
scope :preload_associated_models, -> { preload(:labels, project: :namespace) } scope :preload_associated_models, -> { preload(:labels, project: :namespace) }
scope :with_api_entity_associations, -> { preload(:timelogs, :assignees, :author, :notes, :labels, project: [:route, { namespace: :route }] ) } scope :with_api_entity_associations, -> { preload(:timelogs, :assignees, :author, :notes, :labels, project: [:route, { namespace: :route }] ) }
......
---
title: Optimize projects_service_active queries performance in usage data
merge_request: 27093
author:
type: performance
---
title: Add grape custom validator for git reference params
merge_request: 26102
author: Rajendra Kadam
type: added
...@@ -32,6 +32,8 @@ module Gitlab ...@@ -32,6 +32,8 @@ module Gitlab
config.active_record.sqlite3.represent_boolean_as_integer = true config.active_record.sqlite3.represent_boolean_as_integer = true
config.autoloader = :zeitwerk
# Sidekiq uses eager loading, but directories not in the standard Rails # Sidekiq uses eager loading, but directories not in the standard Rails
# directories must be added to the eager load paths: # directories must be added to the eager load paths:
# https://github.com/mperham/sidekiq/wiki/FAQ#why-doesnt-sidekiq-autoload-my-rails-application-code # https://github.com/mperham/sidekiq/wiki/FAQ#why-doesnt-sidekiq-autoload-my-rails-application-code
......
...@@ -42,7 +42,7 @@ Rails.application.configure do ...@@ -42,7 +42,7 @@ Rails.application.configure do
config.action_mailer.raise_delivery_errors = true config.action_mailer.raise_delivery_errors = true
# Don't make a mess when bootstrapping a development environment # Don't make a mess when bootstrapping a development environment
config.action_mailer.perform_deliveries = (ENV['BOOTSTRAP'] != '1') config.action_mailer.perform_deliveries = (ENV['BOOTSTRAP'] != '1')
config.action_mailer.preview_path = 'app/mailers/previews' config.action_mailer.preview_path = Rails.root.join('app', 'mailers', 'previews')
config.eager_load = false config.eager_load = false
......
...@@ -43,7 +43,7 @@ Rails.application.configure do ...@@ -43,7 +43,7 @@ Rails.application.configure do
# Print deprecation notices to the stderr # Print deprecation notices to the stderr
config.active_support.deprecation = :stderr config.active_support.deprecation = :stderr
config.eager_load = true config.eager_load = false
config.cache_store = :null_store config.cache_store = :null_store
......
# frozen_string_literal: true
Rails.autoloaders.each do |autoloader|
# We need to ignore these since these are non-Ruby files
# that do not define Ruby classes / modules
autoloader.ignore(Rails.root.join('lib/support'))
# Ignore generators since these are loaded manually by Rails
autoloader.ignore(Rails.root.join('lib/generators'))
autoloader.ignore(Rails.root.join('ee/lib/generators')) if Gitlab.ee?
# Mailer previews are also loaded manually by Rails
autoloader.ignore(Rails.root.join('app/mailers/previews'))
autoloader.ignore(Rails.root.join('ee/app/mailers/previews')) if Gitlab.ee?
# Ignore these files because these are only used in Rake tasks
# and are not available in production
autoloader.ignore(Rails.root.join('lib/gitlab/graphql/docs'))
autoloader.inflector.inflect(
'authenticates_2fa_for_admin_mode' => 'Authenticates2FAForAdminMode',
'api' => 'API',
'api_guard' => 'APIGuard',
'group_api_compatibility' => 'GroupAPICompatibility',
'project_api_compatibility' => 'ProjectAPICompatibility',
'cte' => 'CTE',
'recursive_cte' => 'RecursiveCTE',
'cidr' => 'CIDR',
'cli' => 'CLI',
'dn' => 'DN',
'hmac_token' => 'HMACToken',
'html' => 'HTML',
'html_parser' => 'HTMLParser',
'html_gitlab' => 'HTMLGitlab',
'http' => 'HTTP',
'http_connection_adapter' => 'HTTPConnectionAdapter',
'http_clone_enabled_check' => 'HTTPCloneEnabledCheck',
'chunked_io' => 'ChunkedIO',
'http_io' => 'HttpIO',
'json' => 'JSON',
'json_formatter' => 'JSONFormatter',
'json_web_token' => 'JSONWebToken',
'as_json' => 'AsJSON',
'ldap_key' => 'LDAPKey',
'mr_note' => 'MRNote',
'pdf' => 'PDF',
'rsa_token' => 'RSAToken',
'san_extension' => 'SANExtension',
'sca' => 'SCA',
'spdx' => 'SPDX',
'sql' => 'SQL',
'ssh_key' => 'SSHKey',
'ssh_key_with_user' => 'SSHKeyWithUser',
'ssh_public_key' => 'SSHPublicKey',
'git_push_ssh_proxy' => 'GitPushSSHProxy',
'git_user_default_ssh_config_check' => 'GitUserDefaultSSHConfigCheck',
'binary_stl' => 'BinarySTL',
'text_stl' => 'TextSTL',
'svg' => 'SVG',
'function_uri' => 'FunctionURI'
)
end
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
require 'settingslogic' require 'settingslogic'
require 'digest/md5' require 'digest/md5'
# We can not use `Rails.root` here, as this file might be loaded without the
# full Rails environment being loaded. We can not use `require_relative` either,
# as Rails uses `load` for `require_dependency` (used when loading the Rails
# environment). This could then lead to this file being loaded twice.
require_dependency File.expand_path('../lib/gitlab', __dir__)
class Settings < Settingslogic class Settings < Settingslogic
source ENV.fetch('GITLAB_CONFIG') { Pathname.new(File.expand_path('..', __dir__)).join('config/gitlab.yml') } source ENV.fetch('GITLAB_CONFIG') { Pathname.new(File.expand_path('..', __dir__)).join('config/gitlab.yml') }
namespace ENV.fetch('GITLAB_ENV') { Rails.env } namespace ENV.fetch('GITLAB_ENV') { Rails.env }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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