diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-20 18:38:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-20 18:38:24 +0000 |
commit | 983a0bba5d2a042c4a3bbb22432ec192c7501d82 (patch) | |
tree | b153cd387c14ba23bd5a07514c7c01fddf6a78a0 /lib/api/entities | |
parent | a2bddee2cdb38673df0e004d5b32d9f77797de64 (diff) | |
download | gitlab-ce-983a0bba5d2a042c4a3bbb22432ec192c7501d82.tar.gz |
Add latest changes from gitlab-org/gitlab@12-10-stable-ee
Diffstat (limited to 'lib/api/entities')
-rw-r--r-- | lib/api/entities/container_expiration_policy.rb | 1 | ||||
-rw-r--r-- | lib/api/entities/merge_request.rb | 10 | ||||
-rw-r--r-- | lib/api/entities/merge_request_basic.rb | 2 | ||||
-rw-r--r-- | lib/api/entities/project_import_failed_relation.rb | 11 | ||||
-rw-r--r-- | lib/api/entities/project_import_status.rb | 4 | ||||
-rw-r--r-- | lib/api/entities/user.rb | 4 |
6 files changed, 31 insertions, 1 deletions
diff --git a/lib/api/entities/container_expiration_policy.rb b/lib/api/entities/container_expiration_policy.rb index 853bbb9b76b..b2240704b99 100644 --- a/lib/api/entities/container_expiration_policy.rb +++ b/lib/api/entities/container_expiration_policy.rb @@ -8,6 +8,7 @@ module API expose :keep_n expose :older_than expose :name_regex + expose :name_regex_keep expose :next_run_at end end diff --git a/lib/api/entities/merge_request.rb b/lib/api/entities/merge_request.rb index 9ff8e20ced1..7fc76a4071e 100644 --- a/lib/api/entities/merge_request.rb +++ b/lib/api/entities/merge_request.rb @@ -39,6 +39,16 @@ module API expose :diverged_commits_count, as: :diverged_commits_count, if: -> (_, options) { options[:include_diverged_commits_count] } + # We put this into an option because list of TODOs API will attach their + # targets with Entities::MergeRequest instead of + # Entities::MergeRequestBasic, but this attribute cannot be eagerly + # loaded in batch for now. The list of merge requests API will + # use Entities::MergeRequestBasic which does not support this, and + # we always enable this for the single merge request API. This way + # we avoid N+1 queries in the TODOs API and can still enable it for + # the single merge request API. + expose :first_contribution?, as: :first_contribution, if: -> (_, options) { options[:include_first_contribution] } + def build_available?(options) options[:project]&.feature_available?(:builds, options[:current_user]) end diff --git a/lib/api/entities/merge_request_basic.rb b/lib/api/entities/merge_request_basic.rb index 8cec2c1a97e..4610220e4f6 100644 --- a/lib/api/entities/merge_request_basic.rb +++ b/lib/api/entities/merge_request_basic.rb @@ -52,7 +52,7 @@ module API # information. expose :merge_status do |merge_request| merge_request.check_mergeability(async: true) - merge_request.merge_status + merge_request.public_merge_status end expose :diff_head_sha, as: :sha expose :merge_commit_sha diff --git a/lib/api/entities/project_import_failed_relation.rb b/lib/api/entities/project_import_failed_relation.rb new file mode 100644 index 00000000000..16b26ad0efa --- /dev/null +++ b/lib/api/entities/project_import_failed_relation.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module API + module Entities + class ProjectImportFailedRelation < Grape::Entity + expose :id, :created_at, :exception_class, :exception_message, :source + + expose :relation_key, as: :relation_name + end + end +end diff --git a/lib/api/entities/project_import_status.rb b/lib/api/entities/project_import_status.rb index de7b4b998be..5ef5600259f 100644 --- a/lib/api/entities/project_import_status.rb +++ b/lib/api/entities/project_import_status.rb @@ -8,6 +8,10 @@ module API project.import_state&.correlation_id end + expose :failed_relations, using: Entities::ProjectImportFailedRelation do |project, _options| + project.import_state.relation_hard_failures(limit: 100) + end + # TODO: Use `expose_nil` once we upgrade the grape-entity gem expose :import_error, if: lambda { |project, _ops| project.import_state&.last_error } do |project| project.import_state.last_error diff --git a/lib/api/entities/user.rb b/lib/api/entities/user.rb index 4a1f570c3f0..adf954ab02d 100644 --- a/lib/api/entities/user.rb +++ b/lib/api/entities/user.rb @@ -3,8 +3,12 @@ module API module Entities class User < UserBasic + include UsersHelper expose :created_at, if: ->(user, opts) { Ability.allowed?(opts[:current_user], :read_user_profile, user) } expose :bio, :location, :public_email, :skype, :linkedin, :twitter, :website_url, :organization, :job_title + expose :work_information do |user| + work_information(user) + end end end end |