summaryrefslogtreecommitdiff
path: root/lib/api/entities
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-15 06:09:11 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-15 06:09:11 +0000
commita7d1525878904f2f8326baf1c8108f2204ac50cb (patch)
treeda855edafb086adebe33c5eed462d753b58e2836 /lib/api/entities
parentb69f406585ff64b1c5140ebba775cc754fabb358 (diff)
downloadgitlab-ce-a7d1525878904f2f8326baf1c8108f2204ac50cb.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/api/entities')
-rw-r--r--lib/api/entities/feature.rb22
-rw-r--r--lib/api/entities/feature_gate.rb10
-rw-r--r--lib/api/entities/impersonation_token.rb9
-rw-r--r--lib/api/entities/impersonation_token_with_token.rb9
4 files changed, 50 insertions, 0 deletions
diff --git a/lib/api/entities/feature.rb b/lib/api/entities/feature.rb
new file mode 100644
index 00000000000..3c9182340ea
--- /dev/null
+++ b/lib/api/entities/feature.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+module API
+ module Entities
+ class Feature < Grape::Entity
+ expose :name
+ expose :state
+ expose :gates, using: Entities::FeatureGate do |model|
+ model.gates.map do |gate|
+ value = model.gate_values[gate.key]
+
+ # By default all gate values are populated. Only show relevant ones.
+ if (value.is_a?(Integer) && value.zero?) || (value.is_a?(Set) && value.empty?)
+ next
+ end
+
+ { key: gate.key, value: value }
+ end.compact
+ end
+ end
+ end
+end
diff --git a/lib/api/entities/feature_gate.rb b/lib/api/entities/feature_gate.rb
new file mode 100644
index 00000000000..bea9c9474b3
--- /dev/null
+++ b/lib/api/entities/feature_gate.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+module API
+ module Entities
+ class FeatureGate < Grape::Entity
+ expose :key
+ expose :value
+ end
+ end
+end
diff --git a/lib/api/entities/impersonation_token.rb b/lib/api/entities/impersonation_token.rb
new file mode 100644
index 00000000000..9ee8f8bf77b
--- /dev/null
+++ b/lib/api/entities/impersonation_token.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+module API
+ module Entities
+ class ImpersonationToken < Entities::PersonalAccessToken
+ expose :impersonation
+ end
+ end
+end
diff --git a/lib/api/entities/impersonation_token_with_token.rb b/lib/api/entities/impersonation_token_with_token.rb
new file mode 100644
index 00000000000..4904f107628
--- /dev/null
+++ b/lib/api/entities/impersonation_token_with_token.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+module API
+ module Entities
+ class ImpersonationTokenWithToken < Entities::PersonalAccessTokenWithToken
+ expose :impersonation
+ end
+ end
+end