Sha256: d8312f3cd41fa323447f28b71ed5be63285f8b2aa19c0eda8d34c11c6a6f9986
Contents?: true
Size: 855 Bytes
Versions: 40
Compression:
Stored size: 855 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::GithubPr.new, git = CiToolkit::Git.new, ticket_regex_keys = ENV["SUPPORTED_JIRA_PROJECT_KEYS_REGEX"] ) @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
40 entries across 40 versions & 1 rubygems