diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-27 21:13:16 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-27 21:13:16 +0300 |
commit | 4c5b7f992f2ee3134409559e35350748425fb467 (patch) | |
tree | edabd5b6b177a0f982d27ecddd45de9dccbe6186 /app | |
parent | f50cb4f63fae6f02a0b8d9c3a95f29b3b4f79516 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
17 files changed, 70 insertions, 39 deletions
diff --git a/app/assets/javascripts/pipeline_editor/components/commit/commit_section.vue b/app/assets/javascripts/pipeline_editor/components/commit/commit_section.vue index 0308cd9c565..e85dfc4df07 100644 --- a/app/assets/javascripts/pipeline_editor/components/commit/commit_section.vue +++ b/app/assets/javascripts/pipeline_editor/components/commit/commit_section.vue @@ -11,7 +11,6 @@ import commitCIFile from '../../graphql/mutations/commit_ci_file.mutation.graphq import updateCurrentBranchMutation from '../../graphql/mutations/update_current_branch.mutation.graphql'; import updateLastCommitBranchMutation from '../../graphql/mutations/update_last_commit_branch.mutation.graphql'; import getCurrentBranch from '../../graphql/queries/client/current_branch.graphql'; -import getIsNewCiConfigFile from '../../graphql/queries/client/is_new_ci_config_file.graphql'; import getPipelineEtag from '../../graphql/queries/client/pipeline_etag.graphql'; import CommitForm from './commit_form.vue'; @@ -41,18 +40,19 @@ export default { required: false, default: '', }, + isNewCiConfigFile: { + type: Boolean, + required: false, + default: false, + }, }, data() { return { commit: {}, - isNewCiConfigFile: false, isSaving: false, }; }, apollo: { - isNewCiConfigFile: { - query: getIsNewCiConfigFile, - }, currentBranch: { query: getCurrentBranch, }, diff --git a/app/assets/javascripts/pipeline_editor/graphql/mutations/update_app_status.mutation.graphql b/app/assets/javascripts/pipeline_editor/graphql/mutations/update_app_status.mutation.graphql new file mode 100644 index 00000000000..7487e328668 --- /dev/null +++ b/app/assets/javascripts/pipeline_editor/graphql/mutations/update_app_status.mutation.graphql @@ -0,0 +1,3 @@ +mutation updateAppStatus($appStatus: String) { + updateAppStatus(appStatus: $appStatus) @client +} diff --git a/app/assets/javascripts/pipeline_editor/graphql/queries/client/is_new_ci_config_file.graphql b/app/assets/javascripts/pipeline_editor/graphql/queries/client/is_new_ci_config_file.graphql deleted file mode 100644 index 8c2ca276f50..00000000000 --- a/app/assets/javascripts/pipeline_editor/graphql/queries/client/is_new_ci_config_file.graphql +++ /dev/null @@ -1,3 +0,0 @@ -query getIsNewCiConfigFile { - isNewCiConfigFile @client -} diff --git a/app/assets/javascripts/pipeline_editor/graphql/resolvers.js b/app/assets/javascripts/pipeline_editor/graphql/resolvers.js index a34652b1495..ab908c234d2 100644 --- a/app/assets/javascripts/pipeline_editor/graphql/resolvers.js +++ b/app/assets/javascripts/pipeline_editor/graphql/resolvers.js @@ -1,5 +1,5 @@ -import produce from 'immer'; import axios from '~/lib/utils/axios_utils'; +import getAppStatus from './queries/client/app_status.graphql'; import getCurrentBranchQuery from './queries/client/current_branch.graphql'; import getLastCommitBranchQuery from './queries/client/last_commit_branch.query.graphql'; @@ -31,20 +31,22 @@ export const resolvers = { __typename: 'CiLintContent', })); }, + updateAppStatus: (_, { appStatus }, { cache }) => { + cache.writeQuery({ + query: getAppStatus, + data: { appStatus }, + }); + }, updateCurrentBranch: (_, { currentBranch }, { cache }) => { cache.writeQuery({ query: getCurrentBranchQuery, - data: produce(cache.readQuery({ query: getCurrentBranchQuery }), (draftData) => { - draftData.currentBranch = currentBranch; - }), + data: { currentBranch }, }); }, updateLastCommitBranch: (_, { lastCommitBranch }, { cache }) => { cache.writeQuery({ query: getLastCommitBranchQuery, - data: produce(cache.readQuery({ query: getLastCommitBranchQuery }), (draftData) => { - draftData.lastCommitBranch = lastCommitBranch; - }), + data: { lastCommitBranch }, }); }, }, diff --git a/app/assets/javascripts/pipeline_editor/index.js b/app/assets/javascripts/pipeline_editor/index.js index 68e4cb8d1f8..58dc71d981f 100644 --- a/app/assets/javascripts/pipeline_editor/index.js +++ b/app/assets/javascripts/pipeline_editor/index.js @@ -3,8 +3,10 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; import { resetServiceWorkersPublicPath } from '../lib/utils/webpack'; +import { EDITOR_APP_STATUS_LOADING } from './constants'; import { CODE_SNIPPET_SOURCE_SETTINGS } from './components/code_snippet_alert/constants'; import getCurrentBranch from './graphql/queries/client/current_branch.graphql'; +import getAppStatus from './graphql/queries/client/app_status.graphql'; import getLastCommitBranchQuery from './graphql/queries/client/last_commit_branch.query.graphql'; import getPipelineEtag from './graphql/queries/client/pipeline_etag.graphql'; import { resolvers } from './graphql/resolvers'; @@ -65,6 +67,13 @@ export const initPipelineEditor = (selector = '#js-pipeline-editor') => { const { cache } = apolloProvider.clients.defaultClient; cache.writeQuery({ + query: getAppStatus, + data: { + appStatus: EDITOR_APP_STATUS_LOADING, + }, + }); + + cache.writeQuery({ query: getCurrentBranch, data: { currentBranch: initialBranchName || defaultBranch, diff --git a/app/assets/javascripts/pipeline_editor/pipeline_editor_app.vue b/app/assets/javascripts/pipeline_editor/pipeline_editor_app.vue index a31e508059c..f820428b25f 100644 --- a/app/assets/javascripts/pipeline_editor/pipeline_editor_app.vue +++ b/app/assets/javascripts/pipeline_editor/pipeline_editor_app.vue @@ -17,11 +17,11 @@ import { LOAD_FAILURE_UNKNOWN, STARTER_TEMPLATE_NAME, } from './constants'; +import updateAppStatus from './graphql/mutations/update_app_status.mutation.graphql'; import getBlobContent from './graphql/queries/blob_content.graphql'; import getCiConfigData from './graphql/queries/ci_config.graphql'; import getAppStatus from './graphql/queries/client/app_status.graphql'; import getCurrentBranch from './graphql/queries/client/current_branch.graphql'; -import getIsNewCiConfigFile from './graphql/queries/client/is_new_ci_config_file.graphql'; import getTemplate from './graphql/queries/get_starter_template.query.graphql'; import getLatestCommitShaQuery from './graphql/queries/latest_commit_sha.query.graphql'; import PipelineEditorHome from './pipeline_editor_home.vue'; @@ -44,20 +44,20 @@ export default { }, data() { return { - starterTemplateName: STARTER_TEMPLATE_NAME, ciConfigData: {}, + currentCiFileContent: '', failureType: null, failureReasons: [], initialCiFileContent: '', isFetchingCommitSha: false, isNewCiConfigFile: false, lastCommittedContent: '', - currentCiFileContent: '', - successType: null, + showFailure: false, showStartScreen: false, showSuccess: false, - showFailure: false, starterTemplate: '', + starterTemplateName: STARTER_TEMPLATE_NAME, + successType: null, }; }, @@ -179,9 +179,6 @@ export default { currentBranch: { query: getCurrentBranch, }, - isNewCiConfigFile: { - query: getIsNewCiConfigFile, - }, starterTemplate: { query: getTemplate, variables() { @@ -261,12 +258,10 @@ export default { this.currentCiFileContent = this.lastCommittedContent; }, setAppStatus(appStatus) { - this.$apollo.getClient().writeQuery({ query: getAppStatus, data: { appStatus } }); + this.$apollo.mutate({ mutation: updateAppStatus, variables: { appStatus } }); }, setNewEmptyCiConfigFile() { - this.$apollo - .getClient() - .writeQuery({ query: getIsNewCiConfigFile, data: { isNewCiConfigFile: true } }); + this.isNewCiConfigFile = true; this.showStartScreen = false; }, showErrorAlert({ type, reasons = [] }) { @@ -283,9 +278,7 @@ export default { this.reportSuccess(type); if (this.isNewCiConfigFile) { - this.$apollo - .getClient() - .writeQuery({ query: getIsNewCiConfigFile, data: { isNewCiConfigFile: false } }); + this.isNewCiConfigFile = false; } // Keep track of the latest committed content to know diff --git a/app/assets/javascripts/pipeline_editor/pipeline_editor_home.vue b/app/assets/javascripts/pipeline_editor/pipeline_editor_home.vue index b82e9faee53..58723e63f3c 100644 --- a/app/assets/javascripts/pipeline_editor/pipeline_editor_home.vue +++ b/app/assets/javascripts/pipeline_editor/pipeline_editor_home.vue @@ -125,6 +125,7 @@ export default { :ref="$options.commitSectionRef" :ci-file-content="ciFileContent" :commit-sha="commitSha" + :is-new-ci-config-file="isNewCiConfigFile" v-on="$listeners" /> <pipeline-editor-drawer /> diff --git a/app/controllers/admin/hook_logs_controller.rb b/app/controllers/admin/hook_logs_controller.rb index 444ad17f86d..4cebfb485e5 100644 --- a/app/controllers/admin/hook_logs_controller.rb +++ b/app/controllers/admin/hook_logs_controller.rb @@ -9,6 +9,7 @@ class Admin::HookLogsController < Admin::ApplicationController respond_to :html feature_category :integrations + urgency :low, [:retry] def show end diff --git a/app/controllers/admin/hooks_controller.rb b/app/controllers/admin/hooks_controller.rb index ca24f671b9d..c2f5e275bb2 100644 --- a/app/controllers/admin/hooks_controller.rb +++ b/app/controllers/admin/hooks_controller.rb @@ -6,6 +6,7 @@ class Admin::HooksController < Admin::ApplicationController before_action :hook_logs, only: :edit feature_category :integrations + urgency :low, [:test] def index @hooks = SystemHook.all diff --git a/app/controllers/concerns/integrations_actions.rb b/app/controllers/concerns/integrations_actions.rb index dd066cc1b02..47d09d7e375 100644 --- a/app/controllers/concerns/integrations_actions.rb +++ b/app/controllers/concerns/integrations_actions.rb @@ -8,6 +8,8 @@ module IntegrationsActions include IntegrationsHelper before_action :integration, only: [:edit, :update, :overrides, :test] + + urgency :low, [:test] end def edit diff --git a/app/controllers/projects/hook_logs_controller.rb b/app/controllers/projects/hook_logs_controller.rb index 99ebe3335c0..959fa97e562 100644 --- a/app/controllers/projects/hook_logs_controller.rb +++ b/app/controllers/projects/hook_logs_controller.rb @@ -13,6 +13,7 @@ class Projects::HookLogsController < Projects::ApplicationController layout 'project_settings' feature_category :integrations + urgency :low, [:retry] def show end diff --git a/app/controllers/projects/hooks_controller.rb b/app/controllers/projects/hooks_controller.rb index b87bfc58f8b..35baf5d0ebb 100644 --- a/app/controllers/projects/hooks_controller.rb +++ b/app/controllers/projects/hooks_controller.rb @@ -13,6 +13,7 @@ class Projects::HooksController < Projects::ApplicationController layout "project_settings" feature_category :integrations + urgency :low, [:test] def index @hooks = @project.hooks diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb index c42d382c4bb..9464826701d 100644 --- a/app/controllers/projects/services_controller.rb +++ b/app/controllers/projects/services_controller.rb @@ -18,6 +18,7 @@ class Projects::ServicesController < Projects::ApplicationController layout "project_settings" feature_category :integrations + urgency :low, [:test] def edit end diff --git a/app/models/analytics/cycle_analytics/issue_stage_event.rb b/app/models/analytics/cycle_analytics/issue_stage_event.rb index 3e6ed86d534..333bd20328c 100644 --- a/app/models/analytics/cycle_analytics/issue_stage_event.rb +++ b/app/models/analytics/cycle_analytics/issue_stage_event.rb @@ -8,6 +8,9 @@ module Analytics validates(*%i[stage_event_hash_id issue_id group_id project_id start_event_timestamp], presence: true) + alias_attribute :state, :state_id + enum state: Issue.available_states, _suffix: true + def self.issuable_id_column :issue_id end diff --git a/app/models/analytics/cycle_analytics/merge_request_stage_event.rb b/app/models/analytics/cycle_analytics/merge_request_stage_event.rb index d0ec3c4e8b9..537e45058aa 100644 --- a/app/models/analytics/cycle_analytics/merge_request_stage_event.rb +++ b/app/models/analytics/cycle_analytics/merge_request_stage_event.rb @@ -8,6 +8,9 @@ module Analytics validates(*%i[stage_event_hash_id merge_request_id group_id project_id start_event_timestamp], presence: true) + alias_attribute :state, :state_id + enum state: MergeRequest.available_states, _suffix: true + def self.issuable_id_column :merge_request_id end diff --git a/app/models/concerns/analytics/cycle_analytics/stage_event_model.rb b/app/models/concerns/analytics/cycle_analytics/stage_event_model.rb index 7462e1e828b..99a205d1574 100644 --- a/app/models/concerns/analytics/cycle_analytics/stage_event_model.rb +++ b/app/models/concerns/analytics/cycle_analytics/stage_event_model.rb @@ -15,6 +15,7 @@ module Analytics :project_id, :author_id, :milestone_id, + :state_id, :start_event_timestamp, :end_event_timestamp ) @@ -31,6 +32,7 @@ module Analytics project_id, milestone_id, author_id, + state_id, start_event_timestamp, end_event_timestamp ) @@ -39,10 +41,11 @@ module Analytics DO UPDATE SET group_id = excluded.group_id, project_id = excluded.project_id, - start_event_timestamp = excluded.start_event_timestamp, - end_event_timestamp = excluded.end_event_timestamp, milestone_id = excluded.milestone_id, - author_id = excluded.author_id + author_id = excluded.author_id, + state_id = excluded.state_id, + start_event_timestamp = excluded.start_event_timestamp, + end_event_timestamp = excluded.end_event_timestamp SQL result = connection.execute(query) diff --git a/app/models/merge_request_diff_commit.rb b/app/models/merge_request_diff_commit.rb index d9a1784cdda..978e3af7fb4 100644 --- a/app/models/merge_request_diff_commit.rb +++ b/app/models/merge_request_diff_commit.rb @@ -6,6 +6,11 @@ class MergeRequestDiffCommit < ApplicationRecord include BulkInsertSafe include ShaAttribute include CachedCommit + include IgnorableColumns + + ignore_column %i[author_name author_email committer_name committer_email], + remove_with: '14.6', + remove_after: '2021-11-22' belongs_to :merge_request_diff @@ -51,9 +56,14 @@ class MergeRequestDiffCommit < ApplicationRecord committer = users[[commit_hash[:committer_name], commit_hash[:committer_email]]] + # These fields are only used to determine the author/committer IDs, we + # don't store them in the DB. + commit_hash = commit_hash + .except(:author_name, :author_email, :committer_name, :committer_email) + commit_hash.merge( - commit_author_id: author&.id, - committer_id: committer&.id, + commit_author_id: author.id, + committer_id: committer.id, merge_request_diff_id: merge_request_diff_id, relative_order: index, sha: Gitlab::Database::ShaAttribute.serialize(sha), # rubocop:disable Cop/ActiveRecordSerialize @@ -104,18 +114,18 @@ class MergeRequestDiffCommit < ApplicationRecord end def author_name - commit_author_id ? commit_author.name : super + commit_author.name end def author_email - commit_author_id ? commit_author.email : super + commit_author.email end def committer_name - committer_id ? committer.name : super + committer.name end def committer_email - committer_id ? committer.email : super + committer.email end end |