class Fastlane::Helper::GitlabLintLine
Attributes
basename[RW]
character[RW]
commit[RW]
line[RW]
new_path[RW]
old_path[RW]
reason[RW]
rule_id[RW]
severity[RW]
type[RW]
Public Class Methods
from_discussion(discussion)
click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 88 def from_discussion(discussion) rt = discussion.match(/swiftlint\|(.*)\|(.*)\|(.*)/) return nil unless rt line = LintLine.new({}) line.reason = rt[1] line.commit = rt[3] ru_info = rt[2] rt2 = ru_info.match(/\[(.*).*\]/) line.rule_id = rt2[1] line end
new(args)
click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 9 def initialize(args) @character = args['character'] @new_path = args['new_path'] @basename = File.basename(@new_path) if @new_path @old_path = args['old_path'] @line = args['line'] @reason = args['reason'] @rule_id = args['rule_id'] @type = args['type'] @severity = args['severity'] @commit = args['commit'] end
Public Instance Methods
equal_to_position?(position)
click to toggle source
@param position {
"base_sha": "16692b5cfa1d4dba9a6d060368942992ffba3680", "start_sha": "16692b5cfa1d4dba9a6d060368942992ffba3680", "head_sha": "6216046ac5a36d0273754c22b06b08236ec6c133", "old_path": "ZHCoreHybrid/Classes/Haha.swift", "new_path": "ZHCoreHybrid/Classes/Haha.swift", "position_type": "text", "old_line": null, "new_line": 18
}
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 33 def equal_to_position?(position) position_base_sha = position['base_sha'] position_start_sha = position['start_sha'] position_head_sha = position['head_sha'] position_old_path = position['old_path'] position_new_path = position['new_path'] position_old_line = position['old_line'] position_new_line = position['new_line'] # puts line == position_new_line # puts basename == File.basename(position_new_path) # puts commit == position_head_sha # if line == position_new_line && basename == File.basename(position_new_path) && commit == position_head_sha if line == position_new_line && basename == File.basename(position_new_path) true else false end end
line_in_positons?(positions)
click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 54 def line_in_positons?(positions) positions.each do |position| return true if equal_to_position?(position) end false end
to_discussion()
click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 61 def to_discussion # eg: "swiftlint|ZHModuleCreationObjecs.swift|Function should have complexity 10 or less: currently complexity equals 11|101|21dc9ccdc021f0f489f9b9fa50b76d60cee3f04e" # "swiftlint|%s|%s|%s|%s" % [basename, reason, line, commit] # 不需要保存 line、basename # (line、basename 都可以直接从 note/position/new_line 或 old_line 获取到) rule_id_str = rule_id.gsub('_', '-') rule_info = "[#{rule_id}](https://github.com/realm/SwiftLint/blob/master/Rules.md##{rule_id_str})" "swiftlint|%s|%s|%s" % [reason, rule_info, commit] end
to_hash()
click to toggle source
# File lib/fastlane/plugin/gitlab_increate_line_notes/helper/gitlab_lint_line_parser.rb, line 72 def to_hash { basename: @basename, character: @character, commit: @commit, line: @line, new_path: @new_path, old_path: @old_path, reason: @reason, rule_id: @rule_id, severity: @severity, type: @type } end