summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-16 21:08:24 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-16 21:08:24 +0000
commit727b1a890c8e44440414c59611e9ead34d6edc93 (patch)
treede5f272452d2ee4d3e2edb90936fe7ecca127431 /app
parentaa0f0e992153e84e1cdec8a1c7310d5eb93a9f8f (diff)
downloadgitlab-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.vue6
-rw-r--r--app/assets/javascripts/vue_shared/components/split_button.vue6
-rw-r--r--app/controllers/projects/releases_controller.rb2
-rw-r--r--app/finders/sentry_issue_finder.rb23
-rw-r--r--app/models/merge_request.rb4
-rw-r--r--app/models/namespace.rb6
-rw-r--r--app/models/repository.rb8
-rw-r--r--app/models/sentry_issue.rb10
-rw-r--r--app/services/merge_requests/rebase_service.rb5
-rw-r--r--app/workers/rebase_worker.rb4
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