diff options
Diffstat (limited to 'lib/gitlab/ci/variables/builder')
-rw-r--r-- | lib/gitlab/ci/variables/builder/instance.rb | 23 | ||||
-rw-r--r-- | lib/gitlab/ci/variables/builder/project.rb | 25 |
2 files changed, 48 insertions, 0 deletions
diff --git a/lib/gitlab/ci/variables/builder/instance.rb b/lib/gitlab/ci/variables/builder/instance.rb new file mode 100644 index 00000000000..db4d54b9692 --- /dev/null +++ b/lib/gitlab/ci/variables/builder/instance.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module Gitlab + module Ci + module Variables + class Builder + class Instance + include Gitlab::Utils::StrongMemoize + + def secret_variables(protected_ref: false) + variables = if protected_ref + ::Ci::InstanceVariable.all_cached + else + ::Ci::InstanceVariable.unprotected_cached + end + + Gitlab::Ci::Variables::Collection.new(variables) + end + end + end + end + end +end diff --git a/lib/gitlab/ci/variables/builder/project.rb b/lib/gitlab/ci/variables/builder/project.rb new file mode 100644 index 00000000000..832e68ea6a2 --- /dev/null +++ b/lib/gitlab/ci/variables/builder/project.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Gitlab + module Ci + module Variables + class Builder + class Project + include Gitlab::Utils::StrongMemoize + + def initialize(project) + @project = project + end + + def secret_variables(environment:, protected_ref: false) + variables = @project.variables + variables = variables.unprotected unless protected_ref + variables = variables.for_environment(environment) + + Gitlab::Ci::Variables::Collection.new(variables) + end + end + end + end + end +end |