diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-16 21:08:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-16 21:08:24 +0000 |
commit | 727b1a890c8e44440414c59611e9ead34d6edc93 (patch) | |
tree | de5f272452d2ee4d3e2edb90936fe7ecca127431 /app | |
parent | aa0f0e992153e84e1cdec8a1c7310d5eb93a9f8f (diff) | |
download | gitlab-ce-727b1a890c8e44440414c59611e9ead34d6edc93.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue | 6 | ||||
-rw-r--r-- | app/assets/javascripts/vue_shared/components/split_button.vue | 6 | ||||
-rw-r--r-- | app/controllers/projects/releases_controller.rb | 2 | ||||
-rw-r--r-- | app/finders/sentry_issue_finder.rb | 23 | ||||
-rw-r--r-- | app/models/merge_request.rb | 4 | ||||
-rw-r--r-- | app/models/namespace.rb | 6 | ||||
-rw-r--r-- | app/models/repository.rb | 8 | ||||
-rw-r--r-- | app/models/sentry_issue.rb | 10 | ||||
-rw-r--r-- | app/services/merge_requests/rebase_service.rb | 5 | ||||
-rw-r--r-- | app/workers/rebase_worker.rb | 4 |
10 files changed, 57 insertions, 17 deletions
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue index d187730030d..3d389cf3db5 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue +++ b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue @@ -149,7 +149,7 @@ export default { roleDropdownHelpText() { return sprintf( s__( - 'ClusterIntegration|Select the IAM Role to allow Amazon EKS and the Kubernetes control plane to manage AWS resources on your behalf. To use a new role name, first create one on %{startLink}Amazon Web Services %{externalLinkIcon} %{endLink}.', + 'ClusterIntegration|Your service role is distinct from the provision role used when authenticating. It will allow Amazon EKS and the Kubernetes control plane to manage AWS resources on your behalf. To use a new role, first create one on %{startLink}Amazon Web Services %{externalLinkIcon} %{endLink}.', ), { startLink: @@ -344,7 +344,7 @@ export default { /> </div> <div class="form-group"> - <label class="label-bold" for="eks-role">{{ s__('ClusterIntegration|Role name') }}</label> + <label class="label-bold" for="eks-role">{{ s__('ClusterIntegration|Service role') }}</label> <cluster-form-dropdown field-id="eks-role" field-name="eks-role" @@ -352,7 +352,7 @@ export default { :items="roles" :loading="isLoadingRoles" :loading-text="s__('ClusterIntegration|Loading IAM Roles')" - :placeholder="s__('ClusterIntergation|Select role name')" + :placeholder="s__('ClusterIntergation|Select service role')" :search-field-placeholder="s__('ClusterIntegration|Search IAM Roles')" :empty-text="s__('ClusterIntegration|No IAM Roles found')" :has-errors="Boolean(loadingRolesError)" diff --git a/app/assets/javascripts/vue_shared/components/split_button.vue b/app/assets/javascripts/vue_shared/components/split_button.vue index 9aacde49264..f02b412e8a1 100644 --- a/app/assets/javascripts/vue_shared/components/split_button.vue +++ b/app/assets/javascripts/vue_shared/components/split_button.vue @@ -49,6 +49,10 @@ export default { triggerEvent() { this.$emit(this.selectedItem.eventName); }, + changeSelectedItem(item) { + this.selectedItem = item; + this.$emit('change', item); + }, }, }; </script> @@ -67,7 +71,7 @@ export default { :key="item.eventName" :active="selectedItem === item" active-class="is-active" - @click="selectedItem = item" + @click="changeSelectedItem(item)" > <strong>{{ item.title }}</strong> <div>{{ item.description }}</div> diff --git a/app/controllers/projects/releases_controller.rb b/app/controllers/projects/releases_controller.rb index d6030a9e455..08a57a9b146 100644 --- a/app/controllers/projects/releases_controller.rb +++ b/app/controllers/projects/releases_controller.rb @@ -7,7 +7,7 @@ class Projects::ReleasesController < Projects::ApplicationController before_action :authorize_read_release! before_action do push_frontend_feature_flag(:release_issue_summary, project) - push_frontend_feature_flag(:release_evidence_collection, project) + push_frontend_feature_flag(:release_evidence_collection, project, default_enabled: true) end before_action :authorize_update_release!, only: %i[edit update] before_action :authorize_read_release_evidence!, only: [:evidence] diff --git a/app/finders/sentry_issue_finder.rb b/app/finders/sentry_issue_finder.rb new file mode 100644 index 00000000000..8b3e7105211 --- /dev/null +++ b/app/finders/sentry_issue_finder.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class SentryIssueFinder + attr_accessor :project, :current_user + + def initialize(project, current_user: nil) + @project = project + @current_user = current_user + end + + def execute(identifier) + return unless authorized? + + SentryIssue + .for_project_and_identifier(project, identifier) + end + + private + + def authorized? + Ability.allowed?(current_user, :read_sentry_issue, project) + end +end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 1f7760276bc..7162ba08a76 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -449,7 +449,7 @@ class MergeRequest < ApplicationRecord # Set off a rebase asynchronously, atomically updating the `rebase_jid` of # the MR so that the status of the operation can be tracked. - def rebase_async(user_id) + def rebase_async(user_id, skip_ci: false) with_rebase_lock do raise ActiveRecord::StaleObjectError if !open? || rebase_in_progress? @@ -458,7 +458,7 @@ class MergeRequest < ApplicationRecord # attribute is set *and* that the sidekiq job is still running. So a JID # for a completed RebaseWorker is equivalent to a nil JID. jid = Sidekiq::Worker.skipping_transaction_check do - RebaseWorker.perform_async(id, user_id) + RebaseWorker.perform_async(id, user_id, skip_ci) end update_column(:rebase_jid, jid) diff --git a/app/models/namespace.rb b/app/models/namespace.rb index 74774a22a37..621a98e9ab6 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -186,7 +186,11 @@ class Namespace < ApplicationRecord # any ancestor can disable emails for all descendants def emails_disabled? strong_memoize(:emails_disabled) do - self_and_ancestors.where(emails_disabled: true).exists? + if parent_id + self_and_ancestors.where(emails_disabled: true).exists? + else + !!emails_disabled + end end end diff --git a/app/models/repository.rb b/app/models/repository.rb index e620a097d1e..c53b2fc5340 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -1062,18 +1062,22 @@ class Repository rebase_sha end - def rebase(user, merge_request) + def rebase(user, merge_request, skip_ci: false) if Feature.disabled?(:two_step_rebase, default_enabled: true) return rebase_deprecated(user, merge_request) end + push_options = [] + push_options << Gitlab::PushOptions::CI_SKIP if skip_ci + raw.rebase( user, merge_request.id, branch: merge_request.source_branch, branch_sha: merge_request.source_branch_sha, remote_repository: merge_request.target_project.repository.raw, - remote_branch: merge_request.target_branch + remote_branch: merge_request.target_branch, + push_options: push_options ) do |commit_id| merge_request.update!(rebase_commit_sha: commit_id, merge_error: nil) end diff --git a/app/models/sentry_issue.rb b/app/models/sentry_issue.rb index 6be52f99562..e60ad6015a5 100644 --- a/app/models/sentry_issue.rb +++ b/app/models/sentry_issue.rb @@ -4,7 +4,11 @@ class SentryIssue < ApplicationRecord belongs_to :issue validates :issue, uniqueness: true, presence: true - validates :sentry_issue_identifier, - uniqueness: true, - presence: true + validates :sentry_issue_identifier, presence: true + + def self.for_project_and_identifier(project, identifier) + joins(:issue) + .where(issues: { project_id: project.id }) + .find_by_sentry_issue_identifier(identifier) + end end diff --git a/app/services/merge_requests/rebase_service.rb b/app/services/merge_requests/rebase_service.rb index 7e9442c0c7c..bc1e97088af 100644 --- a/app/services/merge_requests/rebase_service.rb +++ b/app/services/merge_requests/rebase_service.rb @@ -8,8 +8,9 @@ module MergeRequests attr_reader :merge_request - def execute(merge_request) + def execute(merge_request, skip_ci: false) @merge_request = merge_request + @skip_ci = skip_ci if rebase success @@ -25,7 +26,7 @@ module MergeRequests return false end - repository.rebase(current_user, merge_request) + repository.rebase(current_user, merge_request, skip_ci: @skip_ci) true rescue => e diff --git a/app/workers/rebase_worker.rb b/app/workers/rebase_worker.rb index 7343226fdcd..fd182125c07 100644 --- a/app/workers/rebase_worker.rb +++ b/app/workers/rebase_worker.rb @@ -7,12 +7,12 @@ class RebaseWorker feature_category :source_code_management - def perform(merge_request_id, current_user_id) + def perform(merge_request_id, current_user_id, skip_ci = false) current_user = User.find(current_user_id) merge_request = MergeRequest.find(merge_request_id) MergeRequests::RebaseService .new(merge_request.source_project, current_user) - .execute(merge_request) + .execute(merge_request, skip_ci: skip_ci) end end |