Sha256: 296934650330ce1691fcf9b4f0ec277e94d4be16952e00e76b88ebbd3c950c0b
Contents?: true
Size: 901 Bytes
Versions: 7
Compression:
Stored size: 901 Bytes
Contents
# frozen_string_literal: true module CiToolkit # Utility class to parse a Jira ticket from a string class Jira attr_reader :ticket def initialize( github_pr = CiToolkit::DvcsPrFactory.create(CiToolkit::BitriseEnv.new), git = CiToolkit::Git.new, ticket_regex_keys = ENV.fetch("SUPPORTED_JIRA_PROJECT_KEYS_REGEX", nil) ) @ticket_regex_keys = ticket_regex_keys @ticket = parse_ticket(github_pr.nil? ? "" : github_pr.title) || parse_ticket(git.nil? ? "" : git.branch) end private def parse_ticket(string) matches = string.match(ticket_regex) key = matches&.[](:project_key) number = matches&.[](:ticket_number) "#{key}-#{number}" unless key.nil? || key.empty? || number.nil? || number.empty? end def ticket_regex /.*?(?<project_key>#{@ticket_regex_keys})[- ]?(?<ticket_number>[0-9]+)/i end end end
Version data entries
7 entries across 7 versions & 1 rubygems