From 4372b0ca297cb4659bfcf81d511b70004bf365af Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 24 Nov 2020 09:09:32 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/review.gitlab-ci.yml | 6 +- .gitlab/ci/test-metadata.gitlab-ci.yml | 6 +- app/assets/javascripts/clone_panel.js | 42 ++++++++ app/assets/javascripts/pages/projects/project.js | 40 +------- .../components/states/squash_before_merge.vue | 28 ++---- app/helpers/application_settings_helper.rb | 6 +- app/helpers/button_helper.rb | 10 +- app/helpers/search_helper.rb | 2 +- app/views/projects/buttons/_clone.html.haml | 6 +- app/views/projects/issues/_issue.html.haml | 109 ++++++++++----------- app/views/projects/wikis/git_access.html.haml | 2 +- app/views/shared/_clone_panel.html.haml | 14 ++- app/views/shared/_no_password.html.haml | 2 +- app/views/shared/_no_ssh.html.haml | 2 +- .../unreleased/207869-fix-wiki-clone-panel.yml | 5 + .../225275-add-glcheckbox-to-squah-commits.yml | 5 + .../232670-steal-webauthn-background-migration.yml | 5 + .../unreleased/284602-remove-issue-box-static.yml | 5 + .../duplicate_autocomplete_suggestions.yml | 5 + .../development/usage_data_design_action.yml | 8 -- data/whats_new/202011230001_13_06.yml | 51 ++++++++++ .../20201117075742_change_webauthn_xid_length.rb | 18 ++++ ...1026185514_ensure_u2f_registrations_migrated.rb | 37 +++++++ db/schema_migrations/20201026185514 | 1 + db/schema_migrations/20201117075742 | 1 + db/structure.sql | 4 +- doc/development/testing_guide/ci.md | 6 +- doc/user/group/saml_sso/index.md | 30 +++--- lib/gitlab/database/batch_count.rb | 15 ++- locale/gitlab.pot | 16 +-- qa/qa/page/component/legacy_clone_panel.rb | 4 +- scripts/api/cancel_pipeline | 58 ----------- scripts/api/download_job_artifact | 92 ----------------- scripts/api/get_job_id | 108 -------------------- scripts/api/play_job | 60 ------------ scripts/get-job-id | 43 ++++++++ scripts/rspec_helpers.sh | 62 ++++++++---- scripts/utils.sh | 55 ++++++++++- spec/features/profiles/active_sessions_spec.rb | 4 +- spec/features/projects/show/no_password_spec.rb | 10 +- .../wiki/user_git_access_wiki_page_spec.rb | 21 ---- spec/features/projects/wikis_spec.rb | 1 + spec/finders/ci/pipeline_schedules_finder_spec.rb | 2 +- spec/finders/feature_flags_finder_spec.rb | 2 +- .../states/mr_widget_squash_before_merge_spec.js | 51 ++-------- .../http_integration/destroy_spec.rb | 2 +- .../http_integration/reset_token_spec.rb | 2 +- .../prometheus_integration/reset_token_spec.rb | 2 +- .../alert_management/update_alert_status_spec.rb | 2 +- .../boards/issues/issue_move_list_spec.rb | 6 +- .../container_expiration_policies/update_spec.rb | 2 +- .../mutations/discussions/toggle_resolve_spec.rb | 2 +- spec/graphql/mutations/issues/create_spec.rb | 8 +- spec/graphql/mutations/labels/create_spec.rb | 2 +- .../notes/reposition_image_diff_note_spec.rb | 2 +- spec/helpers/application_helper_spec.rb | 4 +- spec/helpers/button_helper_spec.rb | 2 +- spec/helpers/search_helper_spec.rb | 31 ++++++ spec/lib/gitlab/cleanup/project_uploads_spec.rb | 18 ++-- spec/lib/gitlab/database/batch_count_spec.rb | 23 +++++ .../gitlab/gitaly_client/commit_service_spec.rb | 2 +- .../ensure_u2f_registrations_migrated_spec.rb | 41 ++++++++ spec/requests/api/ci/runner/jobs_artifacts_spec.rb | 2 +- spec/requests/api/go_proxy_spec.rb | 4 +- spec/services/event_create_service_spec.rb | 4 +- spec/services/projects/move_access_service_spec.rb | 6 +- .../move_deploy_keys_projects_service_spec.rb | 2 +- .../move_lfs_objects_projects_service_spec.rb | 2 +- .../move_notification_settings_service_spec.rb | 2 +- .../move_project_authorizations_service_spec.rb | 2 +- .../move_project_group_links_service_spec.rb | 2 +- .../projects/move_project_members_service_spec.rb | 2 +- spec/services/suggestions/apply_service_spec.rb | 2 +- .../user_git_access_wiki_page_shared_examples.rb | 27 +++++ 74 files changed, 632 insertions(+), 636 deletions(-) create mode 100644 app/assets/javascripts/clone_panel.js create mode 100644 changelogs/unreleased/207869-fix-wiki-clone-panel.yml create mode 100644 changelogs/unreleased/225275-add-glcheckbox-to-squah-commits.yml create mode 100644 changelogs/unreleased/232670-steal-webauthn-background-migration.yml create mode 100644 changelogs/unreleased/284602-remove-issue-box-static.yml create mode 100644 changelogs/unreleased/duplicate_autocomplete_suggestions.yml delete mode 100644 config/feature_flags/development/usage_data_design_action.yml create mode 100644 data/whats_new/202011230001_13_06.yml create mode 100644 db/migrate/20201117075742_change_webauthn_xid_length.rb create mode 100644 db/post_migrate/20201026185514_ensure_u2f_registrations_migrated.rb create mode 100644 db/schema_migrations/20201026185514 create mode 100644 db/schema_migrations/20201117075742 delete mode 100755 scripts/api/cancel_pipeline delete mode 100755 scripts/api/download_job_artifact delete mode 100755 scripts/api/get_job_id delete mode 100755 scripts/api/play_job create mode 100755 scripts/get-job-id delete mode 100644 spec/features/projects/wiki/user_git_access_wiki_page_spec.rb create mode 100644 spec/migrations/ensure_u2f_registrations_migrated_spec.rb create mode 100644 spec/support/shared_examples/features/wiki/user_git_access_wiki_page_shared_examples.rb diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index f1bd173ff6d..d3069657e88 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -38,7 +38,7 @@ review-build-cng: - BUILD_TRIGGER_TOKEN=$REVIEW_APPS_BUILD_TRIGGER_TOKEN ./scripts/trigger-build cng # When the job is manual, review-deploy is also manual and we don't want people # to have to manually start the jobs in sequence, so we do it for them. - - '[ -z $CI_JOB_MANUAL ] || scripts/api/play_job --job-name "review-deploy"' + - '[ -z $CI_JOB_MANUAL ] || play_job "review-deploy"' .review-workflow-base: extends: @@ -78,8 +78,8 @@ review-deploy: - disable_sign_ups || (delete_release && exit 1) # When the job is manual, review-qa-smoke is also manual and we don't want people # to have to manually start the jobs in sequence, so we do it for them. - - '[ -z $CI_JOB_MANUAL ] || scripts/api/play_job --job-name "review-qa-smoke"' - - '[ -z $CI_JOB_MANUAL ] || scripts/api/play_job --job-name "review-performance"' + - '[ -z $CI_JOB_MANUAL ] || play_job "review-qa-smoke"' + - '[ -z $CI_JOB_MANUAL ] || play_job "review-performance"' after_script: # Run seed-dast-test-data.sh only when DAST_RUN is set to true. This is to pupulate review app with data for DAST scan. # Set DAST_RUN to true when jobs are manually scheduled. diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml index aec0a1640f1..e4b7047ef71 100644 --- a/.gitlab/ci/test-metadata.gitlab-ci.yml +++ b/.gitlab/ci/test-metadata.gitlab-ci.yml @@ -1,5 +1,6 @@ .tests-metadata-state: - image: ruby:2.7 + variables: + TESTS_METADATA_S3_BUCKET: "gitlab-ce-cache" before_script: - source scripts/utils.sh artifacts: @@ -16,8 +17,7 @@ retrieve-tests-metadata: - .test-metadata:rules:retrieve-tests-metadata stage: prepare script: - - install_gitlab_gem - - source ./scripts/rspec_helpers.sh + - source scripts/rspec_helpers.sh - retrieve_tests_metadata update-tests-metadata: diff --git a/app/assets/javascripts/clone_panel.js b/app/assets/javascripts/clone_panel.js new file mode 100644 index 00000000000..362e6c5c5ce --- /dev/null +++ b/app/assets/javascripts/clone_panel.js @@ -0,0 +1,42 @@ +import $ from 'jquery'; + +export default function initClonePanel() { + const $cloneOptions = $('ul.clone-options-dropdown'); + if ($cloneOptions.length) { + const $cloneUrlField = $('#clone_url'); + const $cloneBtnLabel = $('.js-git-clone-holder .js-clone-dropdown-label'); + const mobileCloneField = document.querySelector( + '.js-mobile-git-clone .js-clone-dropdown-label', + ); + + const selectedCloneOption = $cloneBtnLabel.text().trim(); + if (selectedCloneOption.length > 0) { + $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active'); + } + + $('a', $cloneOptions).on('click', e => { + e.preventDefault(); + const $this = $(e.currentTarget); + const url = $this.attr('href'); + const cloneType = $this.data('cloneType'); + + $('.is-active', $cloneOptions).removeClass('is-active'); + $(`a[data-clone-type="${cloneType}"]`).each(function switchProtocol() { + const $el = $(this); + const activeText = $el.find('.dropdown-menu-inner-title').text(); + const $container = $el.closest('.js-git-clone-holder, .js-mobile-git-clone'); + const $label = $container.find('.js-clone-dropdown-label'); + + $el.toggleClass('is-active'); + $label.text(activeText); + }); + + if (mobileCloneField) { + mobileCloneField.dataset.clipboardText = url; + } else { + $cloneUrlField.val(url); + } + $('.js-git-empty .js-clone').text(url); + }); + } +} diff --git a/app/assets/javascripts/pages/projects/project.js b/app/assets/javascripts/pages/projects/project.js index 5317093c4cf..8c7aa04a0b6 100644 --- a/app/assets/javascripts/pages/projects/project.js +++ b/app/assets/javascripts/pages/projects/project.js @@ -9,47 +9,11 @@ import axios from '~/lib/utils/axios_utils'; import { deprecatedCreateFlash as flash } from '~/flash'; import projectSelect from '../../project_select'; import initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown'; +import initClonePanel from '~/clone_panel'; export default class Project { constructor() { - const $cloneOptions = $('ul.clone-options-dropdown'); - if ($cloneOptions.length) { - const $projectCloneField = $('#project_clone'); - const $cloneBtnLabel = $('.js-git-clone-holder .js-clone-dropdown-label'); - const mobileCloneField = document.querySelector( - '.js-mobile-git-clone .js-clone-dropdown-label', - ); - - const selectedCloneOption = $cloneBtnLabel.text().trim(); - if (selectedCloneOption.length > 0) { - $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active'); - } - - $('a', $cloneOptions).on('click', e => { - e.preventDefault(); - const $this = $(e.currentTarget); - const url = $this.attr('href'); - const cloneType = $this.data('cloneType'); - - $('.is-active', $cloneOptions).removeClass('is-active'); - $(`a[data-clone-type="${cloneType}"]`).each(function() { - const $el = $(this); - const activeText = $el.find('.dropdown-menu-inner-title').text(); - const $container = $el.closest('.project-clone-holder'); - const $label = $container.find('.js-clone-dropdown-label'); - - $el.toggleClass('is-active'); - $label.text(activeText); - }); - - if (mobileCloneField) { - mobileCloneField.dataset.clipboardText = url; - } else { - $projectCloneField.val(url); - } - $('.js-git-empty .js-clone').text(url); - }); - } + initClonePanel(); // Ref switcher if (document.querySelector('.js-project-refs-dropdown')) { diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/squash_before_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/squash_before_merge.vue index ff0d065c71d..1c9909e7178 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/squash_before_merge.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/squash_before_merge.vue @@ -1,10 +1,11 @@