Class: Types::Ci::Inputs::RuleType

Inherits:
BaseObject
  • Object
show all
Defined in:
app/graphql/types/ci/inputs/rule_type.rb

Overview

rubocop:disable Graphql/AuthorizeTypes – authorized by parent Ci::Inputs::SpecType

Instance Method Summary collapse

Methods inherited from BaseObject

accepts, assignable?, authorization, authorization_scopes, authorize, authorized?, #current_user, #id

Methods included from Gitlab::Graphql::Present

#present, #unpresented

Instance Method Details

#condition_treeObject



30
31
32
33
34
35
36
37
38
39
40
# File 'app/graphql/types/ci/inputs/rule_type.rb', line 30

def condition_tree
  return @condition_tree if defined?(@condition_tree)

  if_clause = object['if']
  return @condition_tree = nil unless if_clause

  statement = Gitlab::Ci::Pipeline::Expression::Statement.new(if_clause)
  @condition_tree = Gitlab::Ci::Inputs::RulesConverter.new.convert(statement.parse_tree)
rescue Gitlab::Ci::Pipeline::Expression::ExpressionError => e
  raise GraphQL::ExecutionError, "Invalid expression in rule: #{e.message}"
end