Skip to content
代码片段 群组 项目
未验证 提交 2b60f7cd 编辑于 作者: Rémy Coutable's avatar Rémy Coutable 提交者: GitLab
浏览文件

Merge branch...

Merge branch '457208-check-that-data-warehouse-label-is-triggered-on-metric-creation' into 'master' 

Add Data Warehouse label when creating a new database metric

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150240



Merged-by: default avatarRémy Coutable <remy@rymai.me>
Approved-by: default avatarSarah Yasonik <syasonik@gitlab.com>
Approved-by: default avatarRémy Coutable <remy@rymai.me>
Reviewed-by: default avatarRémy Coutable <remy@rymai.me>
Co-authored-by: default avatarNiko Belokolodov <nbelokolodov@gitlab.com>
No related branches found
No related tags found
无相关合并请求
...@@ -106,13 +106,28 @@ ...@@ -106,13 +106,28 @@
mr_labels: ['type::maintenance'], mr_labels: ['type::maintenance'],
impacted: false, impacted: false,
impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml] impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with database metric files added' => {
added_files: %w[config/metrics/20210216182127_users_all.yml],
changed_lines: ['+data_source: database'],
mr_labels: ['type::maintenance'],
impacted: true,
impacted_files: %w[config/metrics/20210216182127_users_all.yml]
},
'with non-database metric files added' => {
added_files: %w[config/metrics/20210216182127_users_all.yml],
changed_lines: ['+data_source: internal_events'],
mr_labels: ['type::maintenance'],
impacted: false,
impacted_files: %w[config/metrics/20210216182127_users_all.yml]
} }
} }
end end
with_them do with_them do
before do before do
allow(fake_helper).to receive(:modified_files).and_return(modified_files) allow(fake_helper).to receive(:modified_files).and_return(modified_files || [])
allow(fake_helper).to receive(:added_files).and_return(added_files || [])
allow(fake_helper).to receive(:changed_lines).and_return(changed_lines) allow(fake_helper).to receive(:changed_lines).and_return(changed_lines)
allow(fake_helper).to receive(:mr_labels).and_return(mr_labels) allow(fake_helper).to receive(:mr_labels).and_return(mr_labels)
allow(fake_helper).to receive(:markdown_list).with(impacted_files).and_return(impacted_files.map { |item| "* `#{item}`" }.join("\n")) allow(fake_helper).to receive(:markdown_list).with(impacted_files).and_return(impacted_files.map { |item| "* `#{item}`" }.join("\n"))
......
...@@ -17,6 +17,7 @@ module Datateam ...@@ -17,6 +17,7 @@ module Datateam
PERFORMANCE_INDICATOR_REGEX = %r{gmau|smau|paid_gmau|umau} PERFORMANCE_INDICATOR_REGEX = %r{gmau|smau|paid_gmau|umau}
METRIC_REMOVED = %r{\+status: removed} METRIC_REMOVED = %r{\+status: removed}
DATABASE_REGEX = %r{\Adb/structure\.sql} DATABASE_REGEX = %r{\Adb/structure\.sql}
DATABASE_METRIC_ADDED = %r{\+data_source: database}
DATABASE_LINE_REMOVAL_REGEX = %r{\A-} DATABASE_LINE_REMOVAL_REGEX = %r{\A-}
def build_message def build_message
...@@ -32,13 +33,21 @@ def impacted? ...@@ -32,13 +33,21 @@ def impacted?
private private
def data_warehouse_impact_files def data_warehouse_impact_files
@impacted_files ||= (metrics_changed_files + database_changed_files) @impacted_files ||= (metrics_added_files + metrics_changed_files + database_changed_files)
end end
def labelled_as_datawarehouse? def labelled_as_datawarehouse?
helper.mr_labels.any? { |label| label.start_with?(DATA_WAREHOUSE_SCOPE) } helper.mr_labels.any? { |label| label.start_with?(DATA_WAREHOUSE_SCOPE) }
end end
def metrics_added_files
metrics_definitions_files = helper.added_files.grep(FILE_PATH_REGEX)
metrics_definitions_files.select do |file|
helper.changed_lines(file).any? { |change| database_metric_added?(change) }
end.compact
end
def metrics_changed_files def metrics_changed_files
metrics_definitions_files = helper.modified_files.grep(FILE_PATH_REGEX) metrics_definitions_files = helper.modified_files.grep(FILE_PATH_REGEX)
...@@ -65,6 +74,10 @@ def performance_indicator_changed?(change) ...@@ -65,6 +74,10 @@ def performance_indicator_changed?(change)
def status_removed?(change) def status_removed?(change)
change =~ METRIC_REMOVED change =~ METRIC_REMOVED
end end
def database_metric_added?(change)
change =~ DATABASE_METRIC_ADDED
end
end end
end end
end end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册