From a8f5aaa7081cc2d400fbac1106d9e94d02d70ab4 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 21 Jul 2021 15:08:52 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/reports.gitlab-ci.yml | 16 + GITALY_SERVER_VERSION | 2 +- .../queries/get_users_projects.query.graphql | 28 ++ .../components/details/app.vue | 74 ++- .../components/details/package_title.vue | 133 ++++++ .../package_registry/constants.js | 46 ++ .../package_registry/graphql/index.js | 14 + .../queries/get_package_details.query.graphql | 35 ++ .../package_registry/pages/details.js | 4 +- .../package_registry/utils.js | 40 ++ .../javascripts/persistent_user_callouts.js | 1 - .../project_selector/project_selector.vue | 7 +- app/controllers/admin/services_controller.rb | 47 -- .../boards/issues/issue_move_list.rb | 10 +- app/helpers/packages_helper.rb | 5 +- app/helpers/user_callouts_helper.rb | 8 - app/models/application_record.rb | 13 + app/models/group.rb | 2 +- app/models/integration.rb | 38 +- app/models/milestone.rb | 30 +- app/models/project.rb | 14 +- app/models/user_callout.rb | 1 - .../admin/propagate_service_template.rb | 4 +- app/services/boards/base_item_move_service.rb | 14 +- app/services/projects/create_service.rb | 2 +- app/views/admin/services/_form.html.haml | 9 - ...rvice_templates_deprecated_alert.html.haml | 10 - app/views/admin/services/edit.html.haml | 6 - app/views/admin/services/index.html.haml | 43 -- app/views/layouts/_page.html.haml | 1 - ...ce_templates_deprecation_callout.html.haml | 21 - .../projects/packages/packages/show.html.haml | 4 +- .../milestone_reference_pattern.yml | 8 + .../active_record_subtransactions_counter.yml | 8 + ...210702140138_collected_data_categories.yml | 1 + config/routes/admin.rb | 1 - ..._null_constraint_from_security_findings.rb | 11 + db/schema_migrations/20210713223941 | 1 + db/structure.sql | 2 +- .../reference_architectures/3k_users.md | 3 + doc/api/graphql/reference/index.md | 1 - doc/development/service_ping/index.md | 17 +- .../service_ping/metrics_instrumentation.md | 15 + .../service_ping/review_guidelines.md | 3 + ...hed_background_migrations_queued_v14_0.png | Bin doc/update/index.md | 22 +- .../monitoring/background_migrations.md | 9 +- .../filter/references/reference_cache.rb | 57 ++- lib/gitlab/database/load_balancing/host.rb | 4 +- lib/gitlab/database/metrics.rb | 26 ++ lib/gitlab/database/postgres_index.rb | 7 +- lib/gitlab/database/reindexing.rb | 27 +- .../reindexing/reindex_concurrently.rb | 7 - .../metrics/instrumentations/base_metric.rb | 4 + .../collected_data_categories_metric.rb | 2 +- .../instrumentations/database_metric.rb | 4 + .../instrumentations/generic_metric.rb | 13 +- .../instrumentations/redis_hll_metric.rb | 9 +- .../metrics/names_suggestions/generator.rb | 6 + lib/gitlab/usage_data.rb | 13 +- lib/gitlab/usage_data_non_sql_metrics.rb | 6 + lib/gitlab/usage_data_queries.rb | 6 + lib/gitlab/utils/usage_data.rb | 6 + lib/tasks/gitlab/db.rake | 5 +- locale/gitlab.pot | 50 +-- scripts/review_apps/base-config.yaml | 20 + .../admin/services_controller_spec.rb | 75 ---- spec/factories/usage_data.rb | 1 - .../admin_visits_service_templates_spec.rb | 53 --- .../service_templates_deprecation_spec.rb | 59 --- .../__snapshots__/package_title_spec.js.snap | 177 ++++++++ .../components/details/app_spec.js | 55 ++- .../components/details/package_title_spec.js | 176 ++++++++ .../package_registry/mock_data.js | 70 +++ .../package_registry/utils_spec.js | 23 + spec/helpers/packages_helper_spec.rb | 21 + spec/helpers/user_callouts_helper_spec.rb | 28 -- .../milestone_reference_filter_spec.rb | 5 + .../gitlab/database/postgres_index_spec.rb | 31 ++ spec/lib/gitlab/database/reindexing_spec.rb | 29 +- .../names_suggestions/generator_spec.rb | 8 + spec/lib/gitlab/usage_data_metrics_spec.rb | 4 + .../gitlab/usage_data_non_sql_metrics_spec.rb | 8 + spec/lib/gitlab/usage_data_queries_spec.rb | 8 + spec/lib/gitlab/usage_data_spec.rb | 1 - spec/lib/gitlab/utils/usage_data_spec.rb | 8 + spec/models/application_record_spec.rb | 44 ++ spec/models/integration_spec.rb | 423 +++++++----------- spec/models/milestone_spec.rb | 9 + spec/models/project_spec.rb | 15 +- .../admin/propagate_service_template_spec.rb | 60 --- .../bulk_create_integration_service_spec.rb | 14 - spec/services/projects/create_service_spec.rb | 76 ++-- .../issues_move_service_shared_examples.rb | 4 +- spec/tasks/gitlab/db_rake_spec.rb | 10 +- .../propagate_integration_worker_spec.rb | 3 +- .../propagate_service_template_worker_spec.rb | 31 -- workhorse/Makefile | 2 +- workhorse/_support/fmt.sh | 2 +- workhorse/authorization_test.go | 10 +- workhorse/cable_test.go | 6 +- workhorse/channel_test.go | 2 +- workhorse/cmd/gitlab-resize-image/main.go | 2 +- workhorse/cmd/gitlab-zip-cat/main.go | 2 +- workhorse/cmd/gitlab-zip-metadata/main.go | 4 +- workhorse/config_test.go | 6 +- workhorse/doc/development/new_features.md | 2 +- workhorse/gitaly_integration_test.go | 6 +- workhorse/gitaly_test.go | 12 +- workhorse/go.mod | 2 +- workhorse/internal/api/api.go | 10 +- workhorse/internal/api/api_test.go | 9 +- workhorse/internal/api/block.go | 2 +- workhorse/internal/api/channel_settings.go | 2 +- .../artifacts/artifacts_store_test.go | 6 +- .../internal/artifacts/artifacts_test.go | 2 +- .../internal/artifacts/artifacts_upload.go | 10 +- .../artifacts/artifacts_upload_test.go | 16 +- workhorse/internal/artifacts/entry.go | 6 +- workhorse/internal/artifacts/entry_test.go | 2 +- workhorse/internal/badgateway/roundtripper.go | 2 +- workhorse/internal/builds/register.go | 4 +- workhorse/internal/builds/register_test.go | 2 +- workhorse/internal/channel/auth_checker.go | 2 +- .../internal/channel/auth_checker_test.go | 2 +- workhorse/internal/channel/channel.go | 4 +- workhorse/internal/filestore/file_handler.go | 6 +- .../internal/filestore/file_handler_test.go | 8 +- .../internal/filestore/save_file_opts.go | 4 +- .../internal/filestore/save_file_opts_test.go | 8 +- workhorse/internal/git/archive.go | 10 +- workhorse/internal/git/archive_test.go | 2 +- workhorse/internal/git/blob.go | 6 +- workhorse/internal/git/diff.go | 8 +- workhorse/internal/git/format-patch.go | 8 +- workhorse/internal/git/git-http.go | 4 +- workhorse/internal/git/info-refs.go | 6 +- workhorse/internal/git/receive-pack.go | 6 +- workhorse/internal/git/responsewriter.go | 2 +- workhorse/internal/git/snapshot.go | 8 +- workhorse/internal/git/upload-pack.go | 6 +- workhorse/internal/git/upload-pack_test.go | 4 +- workhorse/internal/gitaly/gitaly.go | 9 +- workhorse/internal/headers/content_headers.go | 2 +- workhorse/internal/headers/headers.go | 2 +- .../internal/imageresizer/image_resizer.go | 8 +- .../imageresizer/image_resizer_test.go | 4 +- workhorse/internal/lfs/lfs.go | 8 +- workhorse/internal/lfs/lfs_test.go | 8 +- workhorse/internal/log/logging.go | 2 +- .../objectstore/gocloud_object_test.go | 6 +- .../internal/objectstore/multipart_test.go | 4 +- workhorse/internal/objectstore/object_test.go | 4 +- workhorse/internal/objectstore/s3_object.go | 2 +- .../internal/objectstore/s3_object_test.go | 8 +- workhorse/internal/objectstore/s3_session.go | 2 +- .../internal/objectstore/s3_session_test.go | 2 +- .../objectstore/test/objectstore_stub.go | 2 +- .../internal/objectstore/test/s3_stub.go | 2 +- workhorse/internal/proxy/proxy.go | 2 +- workhorse/internal/queueing/requests.go | 2 +- workhorse/internal/redis/keywatcher.go | 2 +- workhorse/internal/redis/redis.go | 4 +- workhorse/internal/redis/redis_test.go | 4 +- .../contentprocessor/contentprocessor.go | 2 +- .../contentprocessor/contentprocessor_test.go | 4 +- workhorse/internal/senddata/senddata.go | 6 +- workhorse/internal/senddata/writer_test.go | 2 +- workhorse/internal/sendfile/sendfile.go | 4 +- workhorse/internal/sendfile/sendfile_test.go | 2 +- workhorse/internal/sendurl/sendurl.go | 6 +- workhorse/internal/sendurl/sendurl_test.go | 2 +- workhorse/internal/staticpages/deploy_page.go | 2 +- .../internal/staticpages/deploy_page_test.go | 2 +- workhorse/internal/staticpages/error_pages.go | 2 +- .../internal/staticpages/error_pages_test.go | 2 +- workhorse/internal/staticpages/servefile.go | 6 +- .../internal/staticpages/servefile_test.go | 2 +- workhorse/internal/testhelper/gitaly.go | 9 +- workhorse/internal/testhelper/testhelper.go | 2 +- workhorse/internal/upload/accelerate.go | 4 +- workhorse/internal/upload/body_uploader.go | 6 +- .../internal/upload/body_uploader_test.go | 6 +- .../upload/object_storage_preparer.go | 6 +- .../upload/object_storage_preparer_test.go | 6 +- workhorse/internal/upload/rewrite.go | 8 +- .../internal/upload/saved_file_tracker.go | 4 +- .../upload/saved_file_tracker_test.go | 4 +- .../internal/upload/skip_rails_authorizer.go | 2 +- workhorse/internal/upload/uploads.go | 10 +- workhorse/internal/upload/uploads_test.go | 14 +- workhorse/internal/upstream/handlers.go | 2 +- .../upstream/roundtripper/roundtripper.go | 2 +- workhorse/internal/upstream/routes.go | 38 +- workhorse/internal/upstream/upstream.go | 19 +- workhorse/internal/upstream/upstream_test.go | 2 +- .../internal/zipartifacts/metadata_test.go | 2 +- .../internal/zipartifacts/open_archive.go | 2 +- workhorse/main.go | 10 +- workhorse/main_test.go | 14 +- workhorse/proxy_test.go | 10 +- workhorse/raven.go | 2 +- workhorse/upload_test.go | 8 +- 203 files changed, 1887 insertions(+), 1258 deletions(-) create mode 100644 app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/details/package_title.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/constants.js create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/graphql/index.js create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_details.query.graphql create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/utils.js delete mode 100644 app/controllers/admin/services_controller.rb delete mode 100644 app/views/admin/services/_form.html.haml delete mode 100644 app/views/admin/services/_service_templates_deprecated_alert.html.haml delete mode 100644 app/views/admin/services/edit.html.haml delete mode 100644 app/views/admin/services/index.html.haml delete mode 100644 app/views/layouts/header/_service_templates_deprecation_callout.html.haml create mode 100644 config/feature_flags/development/milestone_reference_pattern.yml create mode 100644 config/feature_flags/ops/active_record_subtransactions_counter.yml create mode 100644 db/migrate/20210713223941_remove_null_constraint_from_security_findings.rb create mode 100644 db/schema_migrations/20210713223941 rename doc/{user/admin_area/monitoring => update}/img/batched_background_migrations_queued_v14_0.png (100%) create mode 100644 lib/gitlab/database/metrics.rb delete mode 100644 spec/controllers/admin/services_controller_spec.rb delete mode 100644 spec/features/admin/services/admin_visits_service_templates_spec.rb delete mode 100644 spec/features/callouts/service_templates_deprecation_spec.rb create mode 100644 spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/package_title_spec.js.snap create mode 100644 spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js create mode 100644 spec/frontend/packages_and_registries/package_registry/mock_data.js create mode 100644 spec/frontend/packages_and_registries/package_registry/utils_spec.js delete mode 100644 spec/services/admin/propagate_service_template_spec.rb delete mode 100644 spec/workers/propagate_service_template_worker_spec.rb diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 690a971927c..7fb4e54c4d6 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -41,6 +41,22 @@ nodejs-scan-sast: semgrep-sast: rules: !reference [".reports:rules:sast", rules] +gosec-sast: + variables: + GOPATH: "$CI_PROJECT_DIR/vendor/go" + COMPILE: "false" + GOSEC_GO_PKG_PATH: "$CI_PROJECT_DIR" + SECURE_LOG_LEVEL: "debug" + before_script: + - mkdir -p $GOPATH + - cd workhorse + - go get -d ./... + - cd .. + cache: + paths: + - vendor/go + rules: !reference [".reports:rules:sast", rules] + .secret-analyzer: extends: .default-retry needs: [] diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index ca7f61518d0..eb5cb835516 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -499b72a41063d61dbb8a73ed7ffa7aa42f1584fd +996a4adda765e8ced18c72eca0ebd27848afa3c9 diff --git a/app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql b/app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql new file mode 100644 index 00000000000..58b7b4c898d --- /dev/null +++ b/app/assets/javascripts/graphql_shared/queries/get_users_projects.query.graphql @@ -0,0 +1,28 @@ +#import "~/graphql_shared/fragments/pageInfo.fragment.graphql" + +query getProjects( + $search: String! + $after: String = "" + $first: Int! + $searchNamespaces: Boolean = false + $sort: String + $membership: Boolean = true +) { + projects( + search: $search + after: $after + first: $first + membership: $membership + searchNamespaces: $searchNamespaces + sort: $sort + ) { + nodes { + id + name + nameWithNamespace + } + pageInfo { + ...PageInfo + } + } +} diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue index e2a2fb1430d..6041384a244 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue @@ -14,6 +14,8 @@ import { GlTabs, GlSprintf, } from '@gitlab/ui'; +import createFlash from '~/flash'; +import { convertToGraphQLId } from '~/graphql_shared/utils'; import { numberToHumanSize } from '~/lib/utils/number_utils'; import { objectToQuery } from '~/lib/utils/url_utility'; import { s__, __ } from '~/locale'; @@ -24,12 +26,21 @@ import { s__, __ } from '~/locale'; // import PackageHistory from '~/packages/details/components/package_history.vue'; // import PackageListRow from '~/packages/shared/components/package_list_row.vue'; import PackagesListLoader from '~/packages/shared/components/packages_list_loader.vue'; -import { - PackageType, - TrackingActions, - SHOW_DELETE_SUCCESS_ALERT, -} from '~/packages/shared/constants'; import { packageTypeToTrackCategory } from '~/packages/shared/utils'; +import { + PACKAGE_TYPE_NUGET, + PACKAGE_TYPE_COMPOSER, + DELETE_PACKAGE_TRACKING_ACTION, + REQUEST_DELETE_PACKAGE_TRACKING_ACTION, + CANCEL_DELETE_PACKAGE_TRACKING_ACTION, + PULL_PACKAGE_TRACKING_ACTION, + DELETE_PACKAGE_FILE_TRACKING_ACTION, + REQUEST_DELETE_PACKAGE_FILE_TRACKING_ACTION, + CANCEL_DELETE_PACKAGE_FILE_TRACKING_ACTION, + SHOW_DELETE_SUCCESS_ALERT, + FETCH_PACKAGE_DETAILS_ERROR_MESSAGE, +} from '~/packages_and_registries/package_registry/constants'; +import getPackageDetails from '~/packages_and_registries/package_registry/graphql/queries/get_package_details.query.graphql'; import Tracking from '~/tracking'; export default { @@ -42,7 +53,8 @@ export default { GlTab, GlTabs, GlSprintf, - PackageTitle: () => import('~/packages/details/components/package_title.vue'), + PackageTitle: () => + import('~/packages_and_registries/package_registry/components/details/package_title.vue'), TerraformTitle: () => import('~/packages_and_registries/infrastructure_registry/components/details_title.vue'), PackagesListLoader, @@ -59,6 +71,7 @@ export default { }, mixins: [Tracking.mixin()], inject: [ + 'packageId', 'titleComponent', 'projectName', 'canDelete', @@ -68,22 +81,53 @@ export default { 'projectListUrl', 'groupListUrl', ], - trackingActions: { ...TrackingActions }, + trackingActions: { + DELETE_PACKAGE_TRACKING_ACTION, + REQUEST_DELETE_PACKAGE_TRACKING_ACTION, + CANCEL_DELETE_PACKAGE_TRACKING_ACTION, + PULL_PACKAGE_TRACKING_ACTION, + DELETE_PACKAGE_FILE_TRACKING_ACTION, + REQUEST_DELETE_PACKAGE_FILE_TRACKING_ACTION, + CANCEL_DELETE_PACKAGE_FILE_TRACKING_ACTION, + }, data() { return { fileToDelete: null, packageEntity: {}, }; }, + apollo: { + packageEntity: { + query: getPackageDetails, + variables() { + return this.queryVariables; + }, + update(data) { + return data.package; + }, + error(error) { + createFlash({ + message: FETCH_PACKAGE_DETAILS_ERROR_MESSAGE, + captureError: true, + error, + }); + }, + }, + }, computed: { + queryVariables() { + return { + id: convertToGraphQLId('Packages::Package', this.packageId), + }; + }, packageFiles() { return this.packageEntity.packageFiles; }, isLoading() { - return false; + return this.$apollo.queries.package; }, isValidPackage() { - return Boolean(this.packageEntity.name); + return Boolean(this.packageEntity?.name); }, tracking() { return { @@ -97,10 +141,10 @@ export default { return this.packageEntity.dependency_links || []; }, showDependencies() { - return this.packageEntity.package_type === PackageType.NUGET; + return this.packageEntity.package_type === PACKAGE_TYPE_NUGET; }, showFiles() { - return this.packageEntity?.package_type !== PackageType.COMPOSER; + return this.packageEntity?.package_type !== PACKAGE_TYPE_COMPOSER; }, }, methods: { @@ -113,7 +157,7 @@ export default { } }, async confirmPackageDeletion() { - this.track(TrackingActions.DELETE_PACKAGE); + this.track(DELETE_PACKAGE_TRACKING_ACTION); await this.deletePackage(); @@ -127,12 +171,12 @@ export default { window.location.replace(`${returnTo}?${modalQuery}`); }, handleFileDelete(file) { - this.track(TrackingActions.REQUEST_DELETE_PACKAGE_FILE); + this.track(REQUEST_DELETE_PACKAGE_FILE_TRACKING_ACTION); this.fileToDelete = { ...file }; this.$refs.deleteFileModal.show(); }, confirmFileDelete() { - this.track(TrackingActions.DELETE_PACKAGE_FILE); + this.track(DELETE_PACKAGE_FILE_TRACKING_ACTION); // this.deletePackageFile(this.fileToDelete.id); this.fileToDelete = null; }, @@ -176,7 +220,7 @@ export default { />
- +