From 65f5f75e3a3b0b9f4ea6035294f81977fa8a2bb5 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 25 Jun 2020 15:08:37 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../javascripts/notes/stores/actions.js | 26 ++ .../notes/stores/mutation_types.js | 1 + .../javascripts/notes/stores/mutations.js | 4 + app/assets/javascripts/notes/stores/utils.js | 8 + .../pipelines/components/dag/dag.vue | 2 +- .../confidential_issue_sidebar.vue | 24 +- .../components/confidential/edit_form.vue | 9 +- .../confidential/edit_form_buttons.vue | 53 +++- ...update_issue_confidential.mutation.graphql | 7 + .../javascripts/sidebar/mount_sidebar.js | 24 +- app/assets/stylesheets/framework/common.scss | 1 - app/controllers/projects/issues_controller.rb | 2 + app/models/ci/pipeline.rb | 16 +- app/models/ci/pipeline_enums.rb | 3 +- app/models/ci/ref.rb | 2 +- app/models/commit_collection.rb | 31 +-- app/models/project.rb | 6 +- app/services/ci/create_pipeline_service.rb | 27 +- .../projects/alerting/notify_service.rb | 2 +- ...y-state-banner-for-dag-visualization-t.yml | 5 + .../224470-mixed-case-pages-url.yml | 5 + ...dd-static-source-to-ci-pipeline-218685.yml | 5 + .../graphql/reference/gitlab_schema.graphql | 81 ++++++ doc/api/graphql/reference/gitlab_schema.json | 237 ++++++++++++++++++ doc/api/graphql/reference/index.md | 8 + doc/development/sidekiq_style_guide.md | 41 +++ lib/api/entities/commit_detail.rb | 5 +- lib/api/search.rb | 6 +- lib/gitlab/alert_management/alert_params.rb | 2 +- lib/gitlab/alert_management/fingerprint.rb | 16 +- .../alerting/notification_payload_parser.rb | 11 +- lib/gitlab/ci/pipeline/chain/command.rb | 2 +- .../ci/pipeline/chain/config/content.rb | 1 + .../chain/config/content/parameter.rb | 27 ++ .../pipeline/chain/config/content/source.rb | 2 + locale/gitlab.pot | 9 +- package.json | 4 +- spec/frontend/notes/stores/actions_spec.js | 55 ++++ spec/frontend/notes/stores/mutation_spec.js | 14 ++ .../confidential_issue_sidebar_spec.js.snap | 6 + .../confidential/edit_form_buttons_spec.js | 130 +++++++++- .../sidebar/confidential/edit_form_spec.js | 2 + .../confidential_issue_sidebar_spec.js | 28 ++- .../alert_management/fingerprint_spec.rb | 68 +++-- .../notification_payload_parser_spec.rb | 4 +- .../ci/pipeline/chain/config/content_spec.rb | 22 +- spec/models/ci/pipeline_spec.rb | 48 ++++ spec/models/ci/ref_spec.rb | 29 +++ spec/models/project_spec.rb | 8 + .../parameter_content_spec.rb | 51 ++++ yarn.lock | 16 +- 51 files changed, 1072 insertions(+), 124 deletions(-) create mode 100644 app/assets/javascripts/sidebar/components/confidential/queries/update_issue_confidential.mutation.graphql create mode 100644 changelogs/unreleased/223251-edit-the-message-in-the-empty-state-banner-for-dag-visualization-t.yml create mode 100644 changelogs/unreleased/224470-mixed-case-pages-url.yml create mode 100644 changelogs/unreleased/add-static-source-to-ci-pipeline-218685.yml create mode 100644 lib/gitlab/ci/pipeline/chain/config/content/parameter.rb create mode 100644 spec/services/ci/create_pipeline_service/parameter_content_spec.rb diff --git a/app/assets/javascripts/notes/stores/actions.js b/app/assets/javascripts/notes/stores/actions.js index b3094070251..32af62fe6f1 100644 --- a/app/assets/javascripts/notes/stores/actions.js +++ b/app/assets/javascripts/notes/stores/actions.js @@ -13,11 +13,35 @@ import sidebarTimeTrackingEventHub from '../../sidebar/event_hub'; import { isInViewport, scrollToElement, isInMRPage } from '../../lib/utils/common_utils'; import { mergeUrlParams } from '../../lib/utils/url_utility'; import mrWidgetEventHub from '../../vue_merge_request_widget/event_hub'; +import updateIssueConfidentialMutation from '~/sidebar/components/confidential/queries/update_issue_confidential.mutation.graphql'; import { __, sprintf } from '~/locale'; import Api from '~/api'; let eTagPoll; +export const updateConfidentialityOnIssue = ({ commit, getters }, { confidential, fullPath }) => { + const { iid } = getters.getNoteableData; + + return utils.gqClient + .mutate({ + mutation: updateIssueConfidentialMutation, + variables: { + input: { + projectPath: fullPath, + iid: String(iid), + confidential, + }, + }, + }) + .then(({ data }) => { + const { + issueSetConfidential: { issue }, + } = data; + + commit(types.SET_ISSUE_CONFIDENTIAL, issue.confidential); + }); +}; + export const expandDiscussion = ({ commit, dispatch }, data) => { if (data.discussionId) { dispatch('diffs/renderFileForDiscussionId', data.discussionId, { root: true }); @@ -32,6 +56,8 @@ export const setNotesData = ({ commit }, data) => commit(types.SET_NOTES_DATA, d export const setNoteableData = ({ commit }, data) => commit(types.SET_NOTEABLE_DATA, data); +export const setConfidentiality = ({ commit }, data) => commit(types.SET_ISSUE_CONFIDENTIAL, data); + export const setUserData = ({ commit }, data) => commit(types.SET_USER_DATA, data); export const setLastFetchedAt = ({ commit }, data) => commit(types.SET_LAST_FETCHED_AT, data); diff --git a/app/assets/javascripts/notes/stores/mutation_types.js b/app/assets/javascripts/notes/stores/mutation_types.js index 538774ee467..efb24479f7c 100644 --- a/app/assets/javascripts/notes/stores/mutation_types.js +++ b/app/assets/javascripts/notes/stores/mutation_types.js @@ -39,6 +39,7 @@ export const CLOSE_ISSUE = 'CLOSE_ISSUE'; export const REOPEN_ISSUE = 'REOPEN_ISSUE'; export const TOGGLE_STATE_BUTTON_LOADING = 'TOGGLE_STATE_BUTTON_LOADING'; export const TOGGLE_BLOCKED_ISSUE_WARNING = 'TOGGLE_BLOCKED_ISSUE_WARNING'; +export const SET_ISSUE_CONFIDENTIAL = 'SET_ISSUE_CONFIDENTIAL'; // Description version export const REQUEST_DESCRIPTION_VERSION = 'REQUEST_DESCRIPTION_VERSION'; diff --git a/app/assets/javascripts/notes/stores/mutations.js b/app/assets/javascripts/notes/stores/mutations.js index 2aeadcb2da1..7ed0dd84b65 100644 --- a/app/assets/javascripts/notes/stores/mutations.js +++ b/app/assets/javascripts/notes/stores/mutations.js @@ -95,6 +95,10 @@ export default { Object.assign(state, { noteableData: data }); }, + [types.SET_ISSUE_CONFIDENTIAL](state, data) { + state.noteableData.confidential = data; + }, + [types.SET_USER_DATA](state, data) { Object.assign(state, { userData: data }); }, diff --git a/app/assets/javascripts/notes/stores/utils.js b/app/assets/javascripts/notes/stores/utils.js index 97dcd54fe88..10faac0c32b 100644 --- a/app/assets/javascripts/notes/stores/utils.js +++ b/app/assets/javascripts/notes/stores/utils.js @@ -1,6 +1,7 @@ import AjaxCache from '~/lib/utils/ajax_cache'; import { trimFirstCharOfLineContent } from '~/diffs/store/utils'; import { sprintf, __ } from '~/locale'; +import createGqClient, { fetchPolicies } from '~/lib/graphql'; // factory function because global flag makes RegExp stateful const createQuickActionsRegex = () => /^\/\w+.*$/gm; @@ -34,3 +35,10 @@ export const stripQuickActions = note => note.replace(createQuickActionsRegex(), export const prepareDiffLines = diffLines => diffLines.map(line => ({ ...trimFirstCharOfLineContent(line) })); + +export const gqClient = createGqClient( + {}, + { + fetchPolicy: fetchPolicies.NO_CACHE, + }, +); diff --git a/app/assets/javascripts/pipelines/components/dag/dag.vue b/app/assets/javascripts/pipelines/components/dag/dag.vue index 6e0d23ef87f..f614040c676 100644 --- a/app/assets/javascripts/pipelines/components/dag/dag.vue +++ b/app/assets/javascripts/pipelines/components/dag/dag.vue @@ -33,7 +33,7 @@ export default { errorTexts: { [LOAD_FAILURE]: __('We are currently unable to fetch data for this graph.'), [PARSE_FAILURE]: __('There was an error parsing the data for this graph.'), - [UNSUPPORTED_DATA]: __('A DAG must have two dependent jobs to be visualized on this tab.'), + [UNSUPPORTED_DATA]: __('DAG visualization requires at least 3 dependent jobs.'), [DEFAULT]: __('An unknown error occurred while loading this graph.'), }, computed: { diff --git a/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue b/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue index 550a1be1e64..0987603cafd 100644 --- a/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue +++ b/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue @@ -1,5 +1,5 @@