From 36eff6e5089629619cc55f4771fa949d6ae2b29b Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 28 Feb 2023 18:08:32 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/CODEOWNERS | 3 +- .../behaviors/copy_to_clipboard.js | 4 +- .../admin_register_runner_app.vue | 81 +++++ .../ci/runner/admin_register_runner/index.js | 33 +- .../components/registration/cli_command.vue | 42 +++ .../registration_instructions.vue | 142 ++++++++ .../runner/components/registration/utils.js | 43 +++ app/assets/javascripts/ci/runner/constants.js | 4 + .../runner_for_registration.query.graphql | 7 + .../components/related_merge_requests.vue | 6 +- .../components/related_issues_block.vue | 2 +- .../super_sidebar/components/help_center.vue | 2 +- .../super_sidebar/components/user_menu.vue | 99 +++++- .../components/extensions/base.vue | 6 +- .../components/widget/widget.vue | 2 +- .../upload_dropzone/upload_dropzone.vue | 2 +- .../work_items/components/widget_wrapper.vue | 2 +- .../components/related_items_list.scss | 2 + .../stylesheets/framework/super_sidebar.scss | 28 +- .../stylesheets/framework/variables.scss | 5 + .../page_bundles/merge_requests.scss | 9 +- app/graphql/mutations/projects/sync_fork.rb | 58 ++++ .../projects/fork_details_resolver.rb | 11 +- app/graphql/types/mutation_type.rb | 1 + .../types/projects/fork_details_type.rb | 26 ++ app/helpers/nav_helper.rb | 20 +- app/helpers/users/callouts_helper.rb | 5 + .../{divergence_counts.rb => details.rb} | 50 ++- app/services/notes/create_service.rb | 9 +- app/services/projects/forks/sync_service.rb | 113 +++++++ .../projects/lfs_pointers/lfs_link_service.rb | 12 +- app/views/admin/runners/register.html.haml | 5 +- app/views/projects/edit.html.haml | 8 +- app/workers/all_queues.yml | 9 + app/workers/projects/forks/sync_worker.rb | 22 ++ .../notes_create_service_tracking.yml | 8 - config/sidekiq_queues.yml | 2 + .../14-10-old-search-migration-removal.yml | 2 +- ...emove-embed-grafana-panels-in-markdown.yml | 15 + ...ex_on_merge_request_diffs_external_diff.rb | 15 + db/schema_migrations/20230216232404 | 1 + db/structure.sql | 2 + .../geo/replication/configuration.md | 3 + .../monitoring/prometheus/gitlab_metrics.md | 1 + doc/api/graphql/reference/index.md | 26 ++ doc/api/protected_tags.md | 63 ++-- .../{elasticsearch.md => advanced_search.md} | 305 +---------------- doc/development/changelog.md | 2 +- doc/development/feature_development.md | 2 +- .../advanced_search_migration_styleguide.md | 306 ++++++++++++++++++ doc/integration/jira/troubleshooting.md | 4 +- doc/update/removals.md | 12 + doc/user/group/import/index.md | 44 ++- lib/gitlab/application_rate_limiter.rb | 1 + lib/gitlab/ci/components/header.rb | 42 +++ lib/gitlab/ci/input/arguments/base.rb | 62 ++++ lib/gitlab/ci/input/arguments/default.rb | 44 +++ lib/gitlab/ci/input/arguments/options.rb | 52 +++ lib/gitlab/ci/input/arguments/required.rb | 46 +++ lib/gitlab/ci/input/arguments/unknown.rb | 31 ++ lib/gitlab/ci/input/inputs.rb | 73 +++++ lib/gitlab/instrumentation/redis_base.rb | 13 + .../instrumentation/redis_interceptor.rb | 7 +- locale/gitlab.pot | 51 ++- package.json | 2 +- public/500.html | 2 +- public/502.html | 2 +- public/503.html | 2 +- .../migration/gitlab_migration_issue_spec.rb | 4 +- .../gitlab_migration_project_spec.rb | 2 +- .../behaviors/copy_to_clipboard_spec.js | 2 +- .../admin_register_runner_app_spec.js | 108 +++++++ .../__snapshots__/utils_spec.js.snap | 61 ++++ .../registration/cli_command_spec.js | 39 +++ .../registration_instructions_spec.js | 94 ++++++ .../components/registration/utils_spec.js | 54 ++++ spec/frontend/ci/runner/mock_data.js | 4 + spec/frontend/fixtures/runner.rb | 16 + .../components/user_menu_spec.js | 151 ++++++++- spec/frontend/super_sidebar/mock_data.js | 16 + .../tokens/label_token_spec.js | 133 ++++---- .../upload_dropzone_spec.js.snap | 14 +- .../types/projects/fork_details_type_spec.rb | 2 + spec/helpers/sidebars_helper_spec.rb | 16 +- spec/helpers/users/callouts_helper_spec.rb | 20 ++ spec/lib/gitlab/ci/components/header_spec.rb | 50 +++ .../gitlab/ci/input/arguments/base_spec.rb | 19 ++ .../gitlab/ci/input/arguments/default_spec.rb | 45 +++ .../gitlab/ci/input/arguments/options_spec.rb | 52 +++ .../ci/input/arguments/required_spec.rb | 41 +++ .../gitlab/ci/input/arguments/unknown_spec.rb | 18 ++ spec/lib/gitlab/ci/input/inputs_spec.rb | 126 ++++++++ .../instrumentation/redis_interceptor_spec.rb | 36 ++- ...ergence_counts_spec.rb => details_spec.rb} | 78 ++++- .../mutations/projects/sync_fork_spec.rb | 113 +++++++ .../api/graphql/project/fork_details_spec.rb | 35 +- spec/services/notes/create_service_spec.rb | 4 - .../projects/forks/sync_service_spec.rb | 185 +++++++++++ .../lfs_pointers/lfs_link_service_spec.rb | 21 +- .../api/discussions_shared_examples.rb | 12 - spec/views/projects/edit.html.haml_spec.rb | 24 ++ yarn.lock | 8 +- 102 files changed, 3173 insertions(+), 546 deletions(-) create mode 100644 app/assets/javascripts/ci/runner/admin_register_runner/admin_register_runner_app.vue create mode 100644 app/assets/javascripts/ci/runner/components/registration/cli_command.vue create mode 100644 app/assets/javascripts/ci/runner/components/registration/registration_instructions.vue create mode 100644 app/assets/javascripts/ci/runner/components/registration/utils.js create mode 100644 app/assets/javascripts/ci/runner/graphql/register/runner_for_registration.query.graphql create mode 100644 app/graphql/mutations/projects/sync_fork.rb rename app/models/projects/forks/{divergence_counts.rb => details.rb} (61%) create mode 100644 app/services/projects/forks/sync_service.rb create mode 100644 app/workers/projects/forks/sync_worker.rb delete mode 100644 config/feature_flags/development/notes_create_service_tracking.yml create mode 100644 data/removals/16_0/16-0-remove-embed-grafana-panels-in-markdown.yml create mode 100644 db/post_migrate/20230216232404_add_sync_index_on_merge_request_diffs_external_diff.rb create mode 100644 db/schema_migrations/20230216232404 rename doc/development/{elasticsearch.md => advanced_search.md} (61%) create mode 100644 doc/development/search/advanced_search_migration_styleguide.md create mode 100644 lib/gitlab/ci/components/header.rb create mode 100644 lib/gitlab/ci/input/arguments/base.rb create mode 100644 lib/gitlab/ci/input/arguments/default.rb create mode 100644 lib/gitlab/ci/input/arguments/options.rb create mode 100644 lib/gitlab/ci/input/arguments/required.rb create mode 100644 lib/gitlab/ci/input/arguments/unknown.rb create mode 100644 lib/gitlab/ci/input/inputs.rb create mode 100644 spec/frontend/ci/runner/admin_register_runner/admin_register_runner_app_spec.js create mode 100644 spec/frontend/ci/runner/components/registration/__snapshots__/utils_spec.js.snap create mode 100644 spec/frontend/ci/runner/components/registration/cli_command_spec.js create mode 100644 spec/frontend/ci/runner/components/registration/registration_instructions_spec.js create mode 100644 spec/frontend/ci/runner/components/registration/utils_spec.js create mode 100644 spec/lib/gitlab/ci/components/header_spec.rb create mode 100644 spec/lib/gitlab/ci/input/arguments/base_spec.rb create mode 100644 spec/lib/gitlab/ci/input/arguments/default_spec.rb create mode 100644 spec/lib/gitlab/ci/input/arguments/options_spec.rb create mode 100644 spec/lib/gitlab/ci/input/arguments/required_spec.rb create mode 100644 spec/lib/gitlab/ci/input/arguments/unknown_spec.rb create mode 100644 spec/lib/gitlab/ci/input/inputs_spec.rb rename spec/models/projects/forks/{divergence_counts_spec.rb => details_spec.rb} (50%) create mode 100644 spec/requests/api/graphql/mutations/projects/sync_fork_spec.rb create mode 100644 spec/services/projects/forks/sync_service_spec.rb diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 72cdaf77f52..67bd749d3e0 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -715,6 +715,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/distributed_tracing.md @msedlakjakubowski /doc/development/documentation/ @sselhorn /doc/development/elasticsearch.md @ashrafkhamis +/doc/development/search/advanced_search_migration_styleguide.md @ashrafkhamis /doc/development/experiment_guide/ @phillipwells /doc/development/export_csv.md @eread /doc/development/fe_guide/content_editor.md @ashrafkhamis @@ -1431,4 +1432,4 @@ ee/lib/ee/api/entities/project.rb @gitlab-org/manage/manage-workspace/backend-ap [Manage::Foundations] /lib/sidebars/ @gitlab/ @gitlab-org/manage/foundations/engineering -/ee/lib/sidebars/ @gitlab-org/manage/foundations/engineering \ No newline at end of file +/ee/lib/sidebars/ @gitlab-org/manage/foundations/engineering diff --git a/app/assets/javascripts/behaviors/copy_to_clipboard.js b/app/assets/javascripts/behaviors/copy_to_clipboard.js index 4b337dce8f3..834defe336b 100644 --- a/app/assets/javascripts/behaviors/copy_to_clipboard.js +++ b/app/assets/javascripts/behaviors/copy_to_clipboard.js @@ -10,10 +10,10 @@ const CLIPBOARD_ERROR_EVENT = 'clipboard-error'; const I18N_ERROR_MESSAGE = __('Copy failed. Please manually copy the value.'); function showTooltip(target, title) { - const { title: originalTitle } = target.dataset; + const { originalTitle } = target.dataset; once('hidden', (tooltip) => { - if (tooltip.target === target) { + if (originalTitle && tooltip.target === target) { target.setAttribute('title', originalTitle); target.setAttribute('aria-label', originalTitle); fixTitle(target); diff --git a/app/assets/javascripts/ci/runner/admin_register_runner/admin_register_runner_app.vue b/app/assets/javascripts/ci/runner/admin_register_runner/admin_register_runner_app.vue new file mode 100644 index 00000000000..b291be41203 --- /dev/null +++ b/app/assets/javascripts/ci/runner/admin_register_runner/admin_register_runner_app.vue @@ -0,0 +1,81 @@ + + diff --git a/app/assets/javascripts/ci/runner/admin_register_runner/index.js b/app/assets/javascripts/ci/runner/admin_register_runner/index.js index edb2ec65e98..bd43a5e8ce9 100644 --- a/app/assets/javascripts/ci/runner/admin_register_runner/index.js +++ b/app/assets/javascripts/ci/runner/admin_register_runner/index.js @@ -1,5 +1,36 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createDefaultClient from '~/lib/graphql'; import { showAlertFromLocalStorage } from '../local_storage_alert/show_alert_from_local_storage'; +import AdminRegisterRunnerApp from './admin_register_runner_app.vue'; -export const initAdminRegisterRunner = () => { +Vue.use(VueApollo); + +export const initAdminRegisterRunner = (selector = '#js-admin-register-runner') => { showAlertFromLocalStorage(); + + const el = document.querySelector(selector); + + if (!el) { + return null; + } + + const { runnerId, runnersPath } = el.dataset; + + const apolloProvider = new VueApollo({ + defaultClient: createDefaultClient(), + }); + + return new Vue({ + el, + apolloProvider, + render(h) { + return h(AdminRegisterRunnerApp, { + props: { + runnerId, + runnersPath, + }, + }); + }, + }); }; diff --git a/app/assets/javascripts/ci/runner/components/registration/cli_command.vue b/app/assets/javascripts/ci/runner/components/registration/cli_command.vue new file mode 100644 index 00000000000..95b135c83a7 --- /dev/null +++ b/app/assets/javascripts/ci/runner/components/registration/cli_command.vue @@ -0,0 +1,42 @@ + + diff --git a/app/assets/javascripts/ci/runner/components/registration/registration_instructions.vue b/app/assets/javascripts/ci/runner/components/registration/registration_instructions.vue new file mode 100644 index 00000000000..e01d8b64839 --- /dev/null +++ b/app/assets/javascripts/ci/runner/components/registration/registration_instructions.vue @@ -0,0 +1,142 @@ + + diff --git a/app/assets/javascripts/ci/runner/components/registration/utils.js b/app/assets/javascripts/ci/runner/components/registration/utils.js new file mode 100644 index 00000000000..32fb8eac5e9 --- /dev/null +++ b/app/assets/javascripts/ci/runner/components/registration/utils.js @@ -0,0 +1,43 @@ +import { + DEFAULT_PLATFORM, + LINUX_PLATFORM, + MACOS_PLATFORM, + WINDOWS_PLATFORM, +} from '../../constants'; + +/* eslint-disable @gitlab/require-i18n-strings */ +const OS = { + [LINUX_PLATFORM]: { + commandPrompt: '$', + executable: 'gitlab-runner', + }, + [MACOS_PLATFORM]: { + commandPrompt: '$', + executable: 'gitlab-runner', + }, + [WINDOWS_PLATFORM]: { + commandPrompt: '>', + executable: '.\\gitlab-runner.exe', + }, +}; + +export const commandPrompt = ({ platform }) => { + return (OS[platform] || OS[DEFAULT_PLATFORM]).commandPrompt; +}; + +export const executable = ({ platform }) => { + return (OS[platform] || OS[DEFAULT_PLATFORM]).executable; +}; + +export const registerCommand = ({ platform, url = gon.gitlab_url, registrationToken }) => { + return [ + `${executable({ platform })} register`, + ` --url ${url}`, + ` --registration-token ${registrationToken}`, + ]; +}; + +export const runCommand = ({ platform }) => { + return `${executable({ platform })} run`; +}; +/* eslint-enable @gitlab/require-i18n-strings */ diff --git a/app/assets/javascripts/ci/runner/constants.js b/app/assets/javascripts/ci/runner/constants.js index 27c02420036..1db4ff68872 100644 --- a/app/assets/javascripts/ci/runner/constants.js +++ b/app/assets/javascripts/ci/runner/constants.js @@ -188,5 +188,9 @@ export const DEFAULT_PLATFORM = LINUX_PLATFORM; // Runner docs are in a separate repository and are not shipped with GitLab // they are rendered as external URLs. +export const INSTALL_HELP_URL = 'https://docs.gitlab.com/runner/install'; +export const EXECUTORS_HELP_URL = 'https://docs.gitlab.com/runner/executors/'; +export const SERVICE_COMMANDS_HELP_URL = + 'https://docs.gitlab.com/runner/commands/#service-related-commands'; export const DOCKER_HELP_URL = 'https://docs.gitlab.com/runner/install/docker.html'; export const KUBERNETES_HELP_URL = 'https://docs.gitlab.com/runner/install/kubernetes.html'; diff --git a/app/assets/javascripts/ci/runner/graphql/register/runner_for_registration.query.graphql b/app/assets/javascripts/ci/runner/graphql/register/runner_for_registration.query.graphql new file mode 100644 index 00000000000..a26d43c3729 --- /dev/null +++ b/app/assets/javascripts/ci/runner/graphql/register/runner_for_registration.query.graphql @@ -0,0 +1,7 @@ +query getRunnerForRegistration($id: CiRunnerID!) { + runner(id: $id) { + id + description + ephemeralAuthenticationToken + } +} diff --git a/app/assets/javascripts/issues/related_merge_requests/components/related_merge_requests.vue b/app/assets/javascripts/issues/related_merge_requests/components/related_merge_requests.vue index 149049247fb..accf4e77043 100644 --- a/app/assets/javascripts/issues/related_merge_requests/components/related_merge_requests.vue +++ b/app/assets/javascripts/issues/related_merge_requests/components/related_merge_requests.vue @@ -66,7 +66,7 @@ export default {