Class: GitlabInternalEventsCli::Configuration
- Inherits:
-
Object
- Object
- GitlabInternalEventsCli::Configuration
- Defined in:
- lib/gitlab_internal_events_cli/configuration.rb
Constant Summary collapse
- DEFAULT_STAGES_URL =
'https://gitlab.com/gitlab-com/www-gitlab-com/-/raw/master/data/stages.yml'- DEFAULT_EVENT_SCHEMA_URL =
'https://gitlab.com/gitlab-org/gitlab/-/raw/master/config/events/schema.json'- DEFAULT_METRIC_SCHEMA_URL =
'https://gitlab.com/gitlab-org/gitlab/-/raw/master/config/metrics/schema/base.json'- DEFAULT_FEATURE_CATEGORIES_URL =
'https://gitlab.com/gitlab-org/gitlab/-/raw/master/config/feature_categories.yml'- DEFAULT_VERSION_URL =
'https://gitlab.com/gitlab-org/gitlab/-/raw/master/VERSION'
Instance Attribute Summary collapse
-
#event_paths ⇒ Object
Returns the value of attribute event_paths.
-
#event_schema_url ⇒ Object
Returns the value of attribute event_schema_url.
-
#feature_categories_path ⇒ Object
Returns the value of attribute feature_categories_path.
-
#feature_categories_url ⇒ Object
Returns the value of attribute feature_categories_url.
-
#metric_paths ⇒ Object
Returns the value of attribute metric_paths.
-
#metric_schema_url ⇒ Object
Returns the value of attribute metric_schema_url.
- #milestone ⇒ Object
-
#project_root ⇒ Object
Returns the value of attribute project_root.
-
#stages_url ⇒ Object
Returns the value of attribute stages_url.
Instance Method Summary collapse
- #absolute_path(relative_path) ⇒ Object
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #load_from_file(config_path = nil) ⇒ Object
- #python_project? ⇒ Boolean
- #resolve_event_paths ⇒ Object
- #resolve_metric_paths ⇒ Object
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 26 def initialize @project_root = Dir.pwd @event_paths = [ 'config/events/*.yml', 'ee/config/events/*.yml' ] @metric_paths = [ 'config/metrics/counts_all/*.yml', 'config/metrics/counts_7d/*.yml', 'config/metrics/counts_28d/*.yml', 'ee/config/metrics/counts_all/*.yml', 'ee/config/metrics/counts_7d/*.yml', 'ee/config/metrics/counts_28d/*.yml' ] @feature_categories_path = 'config/feature_categories.yml' @feature_categories_url = DEFAULT_FEATURE_CATEGORIES_URL @event_schema_url = DEFAULT_EVENT_SCHEMA_URL @metric_schema_url = DEFAULT_METRIC_SCHEMA_URL @stages_url = DEFAULT_STAGES_URL @python_filepaths = [ 'poetry.lock', 'pyproject.toml', '.python-version', 'requirements.txt' ] end |
Instance Attribute Details
#event_paths ⇒ Object
Returns the value of attribute event_paths.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def event_paths @event_paths end |
#event_schema_url ⇒ Object
Returns the value of attribute event_schema_url.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def event_schema_url @event_schema_url end |
#feature_categories_path ⇒ Object
Returns the value of attribute feature_categories_path.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def feature_categories_path @feature_categories_path end |
#feature_categories_url ⇒ Object
Returns the value of attribute feature_categories_url.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def feature_categories_url @feature_categories_url end |
#metric_paths ⇒ Object
Returns the value of attribute metric_paths.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def metric_paths @metric_paths end |
#metric_schema_url ⇒ Object
Returns the value of attribute metric_schema_url.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def metric_schema_url @metric_schema_url end |
#milestone ⇒ Object
53 54 55 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 53 def milestone @milestone ||= milestone_from_version_file || milestone_from_remote || 'TODO' end |
#project_root ⇒ Object
Returns the value of attribute project_root.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def project_root @project_root end |
#stages_url ⇒ Object
Returns the value of attribute stages_url.
16 17 18 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 16 def stages_url @stages_url end |
Instance Method Details
#absolute_path(relative_path) ⇒ Object
65 66 67 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 65 def absolute_path(relative_path) File.join(project_root, relative_path) end |
#load_from_file(config_path = nil) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 69 def load_from_file(config_path = nil) config_path ||= File.join(project_root, '.gitlab_internal_events_cli.yml') return unless File.exist?(config_path) config = YAML.safe_load_file(config_path, symbolize_names: true) apply_config(config) end |
#python_project? ⇒ Boolean
77 78 79 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 77 def python_project? @python_filepaths.any? { |f| File.exist?(absolute_path(f)) } end |
#resolve_event_paths ⇒ Object
57 58 59 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 57 def resolve_event_paths event_paths.flat_map { |pattern| Dir[File.join(project_root, pattern)] } end |
#resolve_metric_paths ⇒ Object
61 62 63 |
# File 'lib/gitlab_internal_events_cli/configuration.rb', line 61 def resolve_metric_paths metric_paths.flat_map { |pattern| Dir[File.join(project_root, pattern)] } end |