Class: GitlabQuality::TestTooling::FeatureReadiness::AnalyzedItems::AnalyzedMergeRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_merge_request.rb

Constant Summary collapse

CODE_DIRECTORIES =
%w[app lib config keeps scripts db].freeze
ADDITIONS_THRESHOLD =
5
CODE_FILES_EXT =
"rb|js|vue"
SPEC_FILES_EXT =
"rb|js"
DOC_FILES_EXT =
"tmpl|yaml|yml|md"

Instance Method Summary collapse

Constructor Details

#initialize(merge_request:, token:, project:, group:, dry_run:) ⇒ AnalyzedMergeRequest

Returns a new instance of AnalyzedMergeRequest.



14
15
16
17
18
19
20
# File 'lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_merge_request.rb', line 14

def initialize(merge_request:, token:, project:, group:, dry_run:)
  @merge_request = merge_request
  @token = token
  @project = project
  @group = group
  @dry_run = dry_run
end

Instance Method Details

#analyzeObject



22
23
24
# File 'lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_merge_request.rb', line 22

def analyze
  @files_with_missing_specs ||= fetch_files_with_missing_specs
end

#resultObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/gitlab_quality/test_tooling/feature_readiness/analyzed_items/analyzed_merge_request.rb', line 26

def result
  {
    merge_request_iid: merge_request.iid,
    merge_request_web_url: merge_request.web_url,
    files_with_missing_specs: files_with_missing_specs,
    has_docs: has_docs?,
    has_feature_specs: has_feature_specs?,
    has_e2e_specs: has_e2e_specs?,
    added_feature_flag: added_feature_flag?
  }
end