diff --git a/.eslintrc.yml b/.eslintrc.yml index 70a71baa590fdc8764376984ee62918d16db1ba4..59eec634e8b6b8cf14d9c8f0e90a037821f38729 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -10,6 +10,7 @@ plugins: - import - "@gitlab/i18n" - "@gitlab/vue-i18n" + - no-jquery settings: import/resolver: webpack: @@ -36,6 +37,11 @@ rules: vue/no-use-v-if-with-v-for: off vue/no-v-html: off vue/use-v-on-exact: off + no-jquery/no-ajax: error + no-jquery/no-ajax-events: error + no-jquery/no-load: error + no-jquery/no-load-shorthand: error + no-jquery/no-serialize: error overrides: files: - '**/spec/**/*' diff --git a/.gitlab/issue_templates/Acceptance_Testing.md b/.gitlab/issue_templates/Acceptance_Testing.md index f1fbb96ce6115a9a6db5708081b97078f801f73d..5a6c35f28ad208ea5de7e9eb7acc08de502ecada 100644 --- a/.gitlab/issue_templates/Acceptance_Testing.md +++ b/.gitlab/issue_templates/Acceptance_Testing.md @@ -25,7 +25,7 @@ Then leave running while monitoring and performing some testing through web, api - [ ] [Monitor Using Grafana](https://dashboards.gitlab.net) - [ ] [Inspect logs in ELK](https://log.gitlab.net/app/kibana) -- [ ] [Check for errors in GitLab Dev Sentry](https://sentry.gitlap.com/gitlab/devgitlaborg/?query=is%3Aunresolved) +- [ ] [Check for errors in GitLab Dev Sentry](https://sentry.gitlab.net/gitlab/devgitlaborg/?query=is%3Aunresolved) ## 2. Staging Trial @@ -41,7 +41,7 @@ Then leave running while monitoring for at least **15 minutes** while performing - [ ] [Monitor Using Grafana](https://dashboards.gitlab.net) - [ ] [Inspect logs in ELK](https://log.gitlab.net/app/kibana) -- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlap.com/gitlab/gitlabcom/?query=is%3Aunresolved) +- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlab.net/gitlab/gitlabcom/?query=is%3Aunresolved) ## 4. Production Server Version Check @@ -57,7 +57,7 @@ Then leave running while monitoring for at least **15 minutes** while performing - [ ] [Monitor Using Grafana](https://dashboards.gitlab.net) - [ ] [Inspect logs in ELK](https://log.gitlab.net/app/kibana) -- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlap.com/gitlab/gitlabcom/?query=is%3Aunresolved) +- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlab.net/gitlab/gitlabcom/?query=is%3Aunresolved) ## 6. Low Impact Check @@ -69,7 +69,7 @@ Then leave running while monitoring for at least **30 minutes** while performing - [ ] [Monitor Using Grafana](https://dashboards.gitlab.net) - [ ] [Inspect logs in ELK](https://log.gitlab.net/app/kibana) -- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlap.com/gitlab/gitlabcom/?query=is%3Aunresolved) +- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlab.net/gitlab/gitlabcom/?query=is%3Aunresolved) ## 7. Mid Impact Trial @@ -81,7 +81,7 @@ Then leave running while monitoring for at least **12 hours** while performing s - [ ] [Monitor Using Grafana](https://dashboards.gitlab.net) - [ ] [Inspect logs in ELK](https://log.gitlab.net/app/kibana) -- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlap.com/gitlab/gitlabcom/?query=is%3Aunresolved) +- [ ] [Check for errors in GitLab Sentry](https://sentry.gitlab.net/gitlab/gitlabcom/?query=is%3Aunresolved) ## 8. Full Impact Trial @@ -93,7 +93,7 @@ Then leave running while monitoring for at least **1 week**. - [ ] [Monitor Using Grafana](https://dashboards.gitlab.net) - [ ] [Inspect logs in ELK](https://log.gitlab.net/app/kibana) -- [ ] [Check for errors in GitLab Dev Sentry](https://sentry.gitlap.com/gitlab/devgitlaborg/?query=is%3Aunresolved) +- [ ] [Check for errors in GitLab Dev Sentry](https://sentry.gitlab.net/gitlab/devgitlaborg/?query=is%3Aunresolved) #### Success? diff --git a/Gemfile b/Gemfile index 1901455af077069ed38379e720fb3ed257b15b99..5a3a6791b298d77946c51f3c941d79818e56ec59 100644 --- a/Gemfile +++ b/Gemfile @@ -446,7 +446,7 @@ group :ed25519 do end # Gitaly GRPC protocol definitions -gem 'gitaly', '~> 1.58.0' +gem 'gitaly', '~> 1.65.0' gem 'grpc', '~> 1.19.0' diff --git a/Gemfile.lock b/Gemfile.lock index 7b450c262dab39e7573b120606b06179158eeee7..3142ba094cdc6d7f886abb3eed90f07a29e4fdd1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -358,7 +358,7 @@ GEM po_to_json (>= 1.0.0) rails (>= 3.2.0) git (1.5.0) - gitaly (1.58.0) + gitaly (1.65.0) grpc (~> 1.0) github-markup (1.7.0) gitlab-labkit (0.5.2) @@ -1168,7 +1168,7 @@ DEPENDENCIES gettext (~> 3.2.2) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.3) - gitaly (~> 1.58.0) + gitaly (~> 1.65.0) github-markup (~> 1.7.0) gitlab-labkit (~> 0.5) gitlab-license (~> 1.0) diff --git a/app/assets/javascripts/event_tracking/issue_sidebar.js b/app/assets/javascripts/event_tracking/issue_sidebar.js deleted file mode 100644 index 6909f82c66f0159bc900486568758c6540606dc6..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/event_tracking/issue_sidebar.js +++ /dev/null @@ -1,2 +0,0 @@ -export const initSidebarTracking = () => {}; -export const trackEvent = () => {}; diff --git a/app/assets/javascripts/event_tracking/notes.js b/app/assets/javascripts/event_tracking/notes.js deleted file mode 100644 index 1f70290c3975ed86908cc8f8ba5061197600e17f..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/event_tracking/notes.js +++ /dev/null @@ -1,2 +0,0 @@ -// Noop function which has a EE counter-part -export default () => {}; diff --git a/app/assets/javascripts/filterable_list.js b/app/assets/javascripts/filterable_list.js index 77080691dcb32c49b0ec58a6483ba22fa2589560..c21fba06d42c50322a759e24ff267ce859aae7d2 100644 --- a/app/assets/javascripts/filterable_list.js +++ b/app/assets/javascripts/filterable_list.js @@ -22,6 +22,7 @@ export default class FilterableList { getPagePath() { const action = this.filterForm.getAttribute('action'); + // eslint-disable-next-line no-jquery/no-serialize const params = $(this.filterForm).serialize(); return `${action}${action.indexOf('?') > 0 ? '&' : '?'}${params}`; } diff --git a/app/assets/javascripts/integrations/integration_settings_form.js b/app/assets/javascripts/integrations/integration_settings_form.js index a7746bb3a0b7d4f73bc9f582c631231a36d71432..1c9b94ade8ac902183db67f08aecfcb2579ac9a3 100644 --- a/app/assets/javascripts/integrations/integration_settings_form.js +++ b/app/assets/javascripts/integrations/integration_settings_form.js @@ -42,6 +42,7 @@ export default class IntegrationSettingsForm { // and test the service using provided configuration. if (this.$form.get(0).checkValidity() && this.canTestService) { e.preventDefault(); + // eslint-disable-next-line no-jquery/no-serialize this.testSettings(this.$form.serialize()); } } diff --git a/app/assets/javascripts/issue_show/index.js b/app/assets/javascripts/issue_show/index.js index 4bcba72bc23e61f382677de1bc6dc468d739a439..e170d33840849781aac059182a89fc77af35cba4 100644 --- a/app/assets/javascripts/issue_show/index.js +++ b/app/assets/javascripts/issue_show/index.js @@ -1,5 +1,4 @@ import Vue from 'vue'; -import { initSidebarTracking } from 'ee_else_ce/event_tracking/issue_sidebar'; import issuableApp from './components/app.vue'; import { parseIssuableData } from './utils/parse_data'; @@ -9,9 +8,6 @@ export default function initIssueableApp() { components: { issuableApp, }, - mounted() { - initSidebarTracking(); - }, render(createElement) { return createElement('issuable-app', { props: parseIssuableData(), diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index 49be11d466d2ef72baa2bb5d7b6fae681bc6a9b4..c19a845eb69d88a4b5efa8480915422e6fb3788f 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -314,6 +314,7 @@ document.addEventListener('DOMContentLoaded', () => { const action = `${this.action}${link.search === '' ? '?' : '&'}`; event.preventDefault(); + // eslint-disable-next-line no-jquery/no-serialize visitUrl(`${action}${$(this).serialize()}`); }); diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index 9cc56b34c757e66767a4f424d7428b9c3556f38c..ed52eec8b188395feddb9c34889f89654dbbbecb 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -1461,6 +1461,7 @@ export default class Notes { getFormData($form) { const content = $form.find('.js-note-text').val(); return { + // eslint-disable-next-line no-jquery/no-serialize formData: $form.serialize(), formContent: _.escape(content), formAction: $form.attr('action'), diff --git a/app/assets/javascripts/notes/components/note_actions/reply_button.vue b/app/assets/javascripts/notes/components/note_actions/reply_button.vue index 1aeb07d6608db358fbcc5f860ec629d684a6d797..8bdee759a231e928a04bbc248297ebecb30b5cb8 100644 --- a/app/assets/javascripts/notes/components/note_actions/reply_button.vue +++ b/app/assets/javascripts/notes/components/note_actions/reply_button.vue @@ -19,7 +19,9 @@ export default { { notesData: JSON.parse(notesDataset.notesData), }; }, - mounted() { - initNoteStats(); - }, render(createElement) { return createElement('notes-app', { props: { diff --git a/app/assets/javascripts/pages/projects/commit/pipelines/index.js b/app/assets/javascripts/pages/projects/commit/pipelines/index.js index 8cc3cb0a57c92ca0038d558b8373261948f73f95..9f08260c3d6cd516fe5af4c4c575826376dc39fd 100644 --- a/app/assets/javascripts/pages/projects/commit/pipelines/index.js +++ b/app/assets/javascripts/pages/projects/commit/pipelines/index.js @@ -6,6 +6,7 @@ document.addEventListener('DOMContentLoaded', () => { new MiniPipelineGraph({ container: '.js-commit-pipeline-graph', }).bindEvents(); + // eslint-disable-next-line no-jquery/no-load $('.commit-info.branches').load(document.querySelector('.js-commit-box').dataset.commitPath); initPipelines(); }); diff --git a/app/assets/javascripts/pages/projects/commit/show/index.js b/app/assets/javascripts/pages/projects/commit/show/index.js index 6fc982967eb3f7bd00ce77090070feba711315b3..5aa4734244e702fed6e8b073e3003522b43084b8 100644 --- a/app/assets/javascripts/pages/projects/commit/show/index.js +++ b/app/assets/javascripts/pages/projects/commit/show/index.js @@ -21,6 +21,7 @@ document.addEventListener('DOMContentLoaded', () => { }).bindEvents(); initNotes(); initChangesDropdown(document.querySelector('.navbar-gitlab').offsetHeight + performanceHeight); + // eslint-disable-next-line no-jquery/no-load $('.commit-info.branches').load(document.querySelector('.js-commit-box').dataset.commitPath); fetchCommitMergeRequests(); initDiffNotes(); diff --git a/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue b/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue index 63b93a80ead43258e5ddb412c633dd6982dacf86..f4dac38b9e1a5dce18790b1e065db0108da18a30 100644 --- a/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue +++ b/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue @@ -1,6 +1,5 @@