From fca89bb73ff5b1d14c98c72481f9268fee107ea0 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 11 Mar 2020 21:09:19 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- app/assets/javascripts/boards/index.js | 12 +- .../javascripts/boards/models/assignee.js | 4 +- app/assets/javascripts/boards/models/issue.js | 8 +- app/assets/javascripts/boards/models/list.js | 5 +- .../javascripts/boards/stores/boards_store.js | 8 +- .../ide/components/new_dropdown/upload.vue | 21 +-- app/assets/javascripts/ide/utils.js | 53 +++++++ .../monitoring/components/panel_type.vue | 16 +- app/helpers/boards_helper.rb | 1 - app/policies/group_policy.rb | 1 + .../lfs_download_link_list_service.rb | 30 +++- ...10007-optimize-services_usage-counters.yml | 5 + ...art-appears-twice-for-different-embeds.yml | 5 + .../21811-group-create-deploy-tokens.yml | 5 + .../unreleased/26113-file-type-issue.yml | 6 + .../28725-paginate-lfs-object-import.yml | 5 + .../jivanvl-add-edit-custom-metric-link.yml | 5 + ...airgap-in-dependency-scanning-template.yml | 5 + config/routes/project.rb | 2 +- doc/api/deploy_tokens.md | 39 +++++ .../testing_guide/testing_migrations_guide.md | 8 +- doc/user/group/saml_sso/index.md | 2 +- lib/api/deploy_tokens.rb | 25 +++- lib/banzai/filter/inline_embeds_filter.rb | 5 +- .../Dependency-Scanning.gitlab-ci.yml | 5 +- lib/gitlab/usage_data.rb | 6 +- locale/gitlab.pot | 4 +- spec/features/markdown/metrics_spec.rb | 23 +++ spec/frontend/boards/issue_card_spec.js | 19 ++- spec/frontend/ide/utils_spec.js | 60 +++++++- .../monitoring/components/panel_type_spec.js | 76 ++++++++++ .../collapsed_sidebar_todo_spec.js | 6 +- .../dirty_submit/dirty_submit_form_spec.js | 6 +- spec/javascripts/labels_issue_sidebar_spec.js | 4 +- .../releases/components/app_index_spec.js | 4 +- spec/javascripts/smart_interval_spec.js | 4 +- ...d_merge_request_diff_commits_count_spec.rb | 2 +- .../archive_legacy_traces_spec.rb | 2 +- ...ckfill_hashed_project_repositories_spec.rb | 2 +- ...ckfill_legacy_project_repositories_spec.rb | 2 +- ...ll_project_fullpath_in_repo_config_spec.rb | 2 +- .../backfill_project_repositories_spec.rb | 2 +- .../backfill_project_settings_spec.rb | 2 +- .../digest_column_spec.rb | 2 +- .../encrypt_columns_spec.rb | 2 +- .../encrypt_runners_tokens_spec.rb | 2 +- .../fix_cross_project_label_links_spec.rb | 2 +- ...x_projects_without_project_feature_spec.rb | 2 +- .../fix_promoted_epics_discussion_ids_spec.rb | 2 +- .../fix_user_namespace_names_spec.rb | 2 +- .../fix_user_project_route_names_spec.rb | 2 +- .../legacy_upload_mover_spec.rb | 2 +- .../legacy_uploads_migrator_spec.rb | 2 +- ...assignees_migration_progress_check_spec.rb | 2 +- .../migrate_build_stage_spec.rb | 2 +- ...ate_fingerprint_sha256_within_keys_spec.rb | 2 +- ...rate_issue_trackers_sensitive_data_spec.rb | 2 +- .../migrate_legacy_artifacts_spec.rb | 2 +- ...rate_null_private_profile_to_false_spec.rb | 2 +- .../migrate_pages_metadata_spec.rb | 2 +- .../migrate_stage_index_spec.rb | 2 +- ...cluster_kubernetes_namespace_table_spec.rb | 2 +- ...late_merge_request_assignees_table_spec.rb | 2 +- .../untracked_file_spec.rb | 2 +- .../populate_untracked_uploads_spec.rb | 2 +- .../prepare_untracked_uploads_spec.rb | 2 +- ...recalculate_project_authorizations_spec.rb | 2 +- ...uthorizations_with_min_max_user_id_spec.rb | 2 +- .../remove_restricted_todos_spec.rb | 2 +- .../reset_merge_status_spec.rb | 2 +- .../schedule_calculate_wiki_sizes_spec.rb | 2 +- ...nfidential_note_events_on_services_spec.rb | 2 +- ...nfidential_note_events_on_webhooks_spec.rb | 2 +- ...o_match_visibility_level_of_parent_spec.rb | 2 +- spec/lib/gitlab/background_migration_spec.rb | 2 +- ...152703_migrate_issue_trackers_data_spec.rb | 2 +- ..._code_owner_approval_from_projects_spec.rb | 2 +- ...4345_add_admin_mode_protected_path_spec.rb | 2 +- ...91204114127_delete_legacy_triggers_spec.rb | 2 +- ...d_timestamp_softwarelicensespolicy_spec.rb | 2 +- ...22123016_backfill_project_settings_spec.rb | 2 +- ...123155929_remove_invalid_jira_data_spec.rb | 2 +- ..._remove_invalid_issue_tracker_data_spec.rb | 2 +- ...hedule_migrate_issue_trackers_data_spec.rb | 2 +- ...nfidential_note_events_on_services_spec.rb | 2 +- spec/migrations/active_record/schema_spec.rb | 2 +- .../add_default_and_free_plans_spec.rb | 2 +- ...deploy_token_type_to_deploy_tokens_spec.rb | 2 +- ...rom_notification_settings_to_users_spec.rb | 2 +- .../add_foreign_keys_to_todos_spec.rb | 2 +- ...to_project_mirror_data_foreign_key_spec.rb | 2 +- ...es_access_level_to_project_feature_spec.rb | 2 +- .../add_pipeline_build_foreign_key_spec.rb | 2 +- ...al_index_on_project_id_to_services_spec.rb | 2 +- ...ovals_user_id_and_merge_request_id_spec.rb | 2 +- ...int_to_project_features_project_id_spec.rb | 2 +- ...mmits_count_for_merge_request_diff_spec.rb | 2 +- ...leased_at_column_on_releases_table_spec.rb | 2 +- ...ll_operations_feature_flags_active_spec.rb | 2 +- ...kfill_operations_feature_flags_iid_spec.rb | 2 +- ...ckfill_releases_name_with_tag_name_spec.rb | 2 +- ...not_null_constraints_to_timestamps_spec.rb | 2 +- ...ll_store_project_full_path_in_repo_spec.rb | 2 +- .../backport_enterprise_schema_spec.rb | 2 +- ...ault_value_for_dsa_key_restriction_spec.rb | 2 +- ...d_local_requests_whitelist_default_spec.rb | 2 +- ...ize_defaults_in_project_statistics_spec.rb | 2 +- spec/migrations/clean_grafana_url_spec.rb | 2 +- ...p_noteable_id_for_notes_on_commits_spec.rb | 2 +- .../cleanup_build_stage_migration_spec.rb | 2 +- .../cleanup_environments_external_url_spec.rb | 2 +- .../cleanup_legacy_artifact_migration_spec.rb | 2 +- .../cleanup_optimistic_locking_nulls_spec.rb | 2 +- .../cleanup_stages_position_migration_spec.rb | 2 +- ...onment_for_self_monitoring_project_spec.rb | 2 +- ...ssing_namespace_for_internal_users_spec.rb | 2 +- ...rnal_ids_where_feature_flags_usage_spec.rb | 2 +- ...mplate_services_duplicated_by_type_spec.rb | 2 +- ...rometheus_services_background_jobs_spec.rb | 2 +- .../drop_background_migration_jobs_spec.rb | 2 +- .../drop_duplicate_protected_tags_spec.rb | 2 +- ...i_cd_settings_merge_trains_enabled_spec.rb | 2 +- .../encrypt_deploy_tokens_tokens_spec.rb | 2 +- ...crypt_feature_flags_clients_tokens_spec.rb | 2 +- ...attributes_on_application_settings_spec.rb | 2 +- ...ueue_reset_merge_status_second_run_spec.rb | 2 +- .../enqueue_reset_merge_status_spec.rb | 2 +- ...nqueue_verify_pages_domain_workers_spec.rb | 2 +- ...l_empty_finished_at_in_deployments_spec.rb | 2 +- spec/migrations/fill_file_store_spec.rb | 2 +- ..._productivity_analytics_start_date_spec.rb | 2 +- spec/migrations/fix_max_pages_size_spec.rb | 2 +- spec/migrations/fix_null_type_labels_spec.rb | 2 +- ..._pool_repository_source_project_id_spec.rb | 2 +- ...x_projects_without_project_feature_spec.rb | 2 +- .../fix_wrong_pages_access_level_spec.rb | 2 +- .../generate_lets_encrypt_private_key_spec.rb | 2 +- .../generate_missing_routes_spec.rb | 2 +- spec/migrations/import_common_metrics_spec.rb | 2 +- .../insert_project_hooks_plan_limits_spec.rb | 2 +- ...o_dev_ops_domain_to_cluster_domain_spec.rb | 2 +- ...s_to_protected_branches_in_batches_spec.rb | 2 +- ...te_discussion_id_on_promoted_epics_spec.rb | 2 +- .../migrate_forbidden_redirect_uris_spec.rb | 2 +- .../migrate_k8s_service_integration_spec.rb | 2 +- ..._legacy_artifacts_to_job_artifacts_spec.rb | 2 +- ...gacy_managed_clusters_to_unmanaged_spec.rb | 2 +- ...lusters_with_no_token_to_unmanaged_spec.rb | 2 +- .../migrate_null_wiki_access_levels_spec.rb | 2 +- ...ature_flags_scopes_target_user_ids_spec.rb | 2 +- .../migrations/move_limits_from_plans_spec.rb | 2 +- spec/migrations/nullify_users_role_spec.rb | 2 +- ...e_project_statistics_packages_size_spec.rb | 2 +- ...pe_on_approval_merge_request_rules_spec.rb | 2 +- ..._empty_extern_uid_auth0_identities_spec.rb | 2 +- ...ove_empty_github_service_templates_spec.rb | 2 +- ...e_packages_deprecated_dependencies_spec.rb | 2 +- .../remove_redundant_pipeline_stages_spec.rb | 2 +- ...ve_security_dashboard_feature_flag_spec.rb | 2 +- ...lag_to_instance_security_dashboard_spec.rb | 2 +- ...reschedule_builds_stages_migration_spec.rb | 2 +- ...mmits_count_for_merge_request_diff_spec.rb | 2 +- ...e_instance_administrators_group_id_spec.rb | 2 +- ...dule_digest_personal_access_tokens_spec.rb | 2 +- ...time_for_pages_domain_certificates_spec.rb | 2 +- .../schedule_migrate_security_scans_spec.rb | 2 +- .../schedule_pages_metadata_migration_spec.rb | 2 +- ...late_merge_request_assignees_table_spec.rb | 2 +- ..._project_authorizations_second_run_spec.rb | 2 +- ...recalculate_project_authorizations_spec.rb | 2 +- .../schedule_runners_token_encryption_spec.rb | 2 +- ...nfidential_note_events_on_webhooks_spec.rb | 2 +- .../schedule_stages_index_migration_spec.rb | 2 +- .../schedule_sync_issuables_state_id_spec.rb | 2 +- ..._sync_issuables_state_id_where_nil_spec.rb | 2 +- .../schedule_to_archive_legacy_traces_spec.rb | 2 +- ...o_match_visibility_level_of_parent_spec.rb | 2 +- ...move_temporary_index_on_project_id_spec.rb | 2 +- .../set_issue_id_for_all_versions_spec.rb | 2 +- .../steal_fill_store_upload_spec.rb | 2 +- .../sync_issuables_state_id_spec.rb | 2 +- .../migrations/truncate_user_fullname_spec.rb | 2 +- ...ackage_requests_forwarding_default_spec.rb | 2 +- ...ate_fingerprint_sha256_within_keys_spec.rb | 2 +- .../update_minimum_password_length_spec.rb | 2 +- ...te_project_import_visibility_level_spec.rb | 2 +- ...e_timestamp_softwarelicensespolicy_spec.rb | 2 +- spec/requests/api/deploy_tokens_spec.rb | 97 +++++++------ spec/routing/project_routing_spec.rb | 1 + .../lfs_download_link_list_service_spec.rb | 137 ++++++++++++++++-- spec/spec_helper.rb | 13 +- 191 files changed, 749 insertions(+), 294 deletions(-) create mode 100644 changelogs/unreleased/210007-optimize-services_usage-counters.yml create mode 100644 changelogs/unreleased/210008-the-same-chart-appears-twice-for-different-embeds.yml create mode 100644 changelogs/unreleased/21811-group-create-deploy-tokens.yml create mode 100644 changelogs/unreleased/26113-file-type-issue.yml create mode 100644 changelogs/unreleased/28725-paginate-lfs-object-import.yml create mode 100644 changelogs/unreleased/jivanvl-add-edit-custom-metric-link.yml create mode 100644 changelogs/unreleased/support-airgap-in-dependency-scanning-template.yml diff --git a/app/assets/javascripts/boards/index.js b/app/assets/javascripts/boards/index.js index f72fc8d54b3..781cb0c1cc9 100644 --- a/app/assets/javascripts/boards/index.js +++ b/app/assets/javascripts/boards/index.js @@ -84,7 +84,6 @@ export default () => { rootPath: $boardApp.dataset.rootPath, bulkUpdatePath: $boardApp.dataset.bulkUpdatePath, detailIssue: boardsStore.detail, - defaultAvatar: $boardApp.dataset.defaultAvatar, }, computed: { detailIssueVisible() { @@ -130,13 +129,10 @@ export default () => { position = -1; } - boardsStore.addList( - { - ...listObj, - position, - }, - this.defaultAvatar, - ); + boardsStore.addList({ + ...listObj, + position, + }); }); boardsStore.addBlankState(); diff --git a/app/assets/javascripts/boards/models/assignee.js b/app/assets/javascripts/boards/models/assignee.js index 4a29b0d0581..5f5758583bb 100644 --- a/app/assets/javascripts/boards/models/assignee.js +++ b/app/assets/javascripts/boards/models/assignee.js @@ -1,9 +1,9 @@ export default class ListAssignee { - constructor(obj, defaultAvatar) { + constructor(obj) { this.id = obj.id; this.name = obj.name; this.username = obj.username; - this.avatar = obj.avatar_url || obj.avatar || defaultAvatar; + this.avatar = obj.avatar_url || obj.avatar || gon.default_avatar_url; this.path = obj.path; this.state = obj.state; this.webUrl = obj.web_url || obj.webUrl; diff --git a/app/assets/javascripts/boards/models/issue.js b/app/assets/javascripts/boards/models/issue.js index 4f5d583e61f..d099c4b930c 100644 --- a/app/assets/javascripts/boards/models/issue.js +++ b/app/assets/javascripts/boards/models/issue.js @@ -10,7 +10,7 @@ import IssueProject from './project'; import boardsStore from '../stores/boards_store'; class ListIssue { - constructor(obj, defaultAvatar) { + constructor(obj) { this.subscribed = obj.subscribed; this.labels = []; this.assignees = []; @@ -22,11 +22,11 @@ class ListIssue { this.closed = obj.closed; this.isLoading = {}; - this.refreshData(obj, defaultAvatar); + this.refreshData(obj); } - refreshData(obj, defaultAvatar) { - boardsStore.refreshIssueData(this, obj, defaultAvatar); + refreshData(obj) { + boardsStore.refreshIssueData(this, obj); } addLabel(label) { diff --git a/app/assets/javascripts/boards/models/list.js b/app/assets/javascripts/boards/models/list.js index ff50b8ed7d1..990b648190a 100644 --- a/app/assets/javascripts/boards/models/list.js +++ b/app/assets/javascripts/boards/models/list.js @@ -36,7 +36,7 @@ const TYPES = { }; class List { - constructor(obj, defaultAvatar) { + constructor(obj) { this.id = obj.id; this._uid = this.guid(); this.position = obj.position; @@ -55,7 +55,6 @@ class List { this.maxIssueCount = Object.hasOwnProperty.call(obj, 'max_issue_count') ? obj.max_issue_count : 0; - this.defaultAvatar = defaultAvatar; if (obj.label) { this.label = new ListLabel(obj.label); @@ -156,7 +155,7 @@ class List { createIssues(data) { data.forEach(issueObj => { - this.addIssue(new ListIssue(issueObj, this.defaultAvatar)); + this.addIssue(new ListIssue(issueObj)); }); } diff --git a/app/assets/javascripts/boards/stores/boards_store.js b/app/assets/javascripts/boards/stores/boards_store.js index 2a2cff3d07d..528dc4ed68e 100644 --- a/app/assets/javascripts/boards/stores/boards_store.js +++ b/app/assets/javascripts/boards/stores/boards_store.js @@ -74,8 +74,8 @@ const boardsStore = { showPage(page) { this.state.currentPage = page; }, - addList(listObj, defaultAvatar) { - const list = new List(listObj, defaultAvatar); + addList(listObj) { + const list = new List(listObj); this.state.lists = _.sortBy([...this.state.lists, list], 'position'); return list; @@ -602,7 +602,7 @@ const boardsStore = { clearMultiSelect() { this.multiSelect.list = []; }, - refreshIssueData(issue, obj, defaultAvatar) { + refreshIssueData(issue, obj) { issue.id = obj.id; issue.iid = obj.iid; issue.title = obj.title; @@ -631,7 +631,7 @@ const boardsStore = { } if (obj.assignees) { - issue.assignees = obj.assignees.map(a => new ListAssignee(a, defaultAvatar)); + issue.assignees = obj.assignees.map(a => new ListAssignee(a)); } }, }; diff --git a/app/assets/javascripts/ide/components/new_dropdown/upload.vue b/app/assets/javascripts/ide/components/new_dropdown/upload.vue index 0efb0012246..7261e0590c8 100644 --- a/app/assets/javascripts/ide/components/new_dropdown/upload.vue +++ b/app/assets/javascripts/ide/components/new_dropdown/upload.vue @@ -1,5 +1,6 @@