class Issuer::Sites::GitHub
def convert_issue_to_site_params issue, proj, dry_run: false, post_validation: false
def convert_issue_to_site_params issue, proj, dry_run: false, post_validation: false params = { title: issue.summ, body: issue.body || '' } # Handle tags -> labels if issue.tags && !issue.tags.empty? params[:labels] = issue.tags.map(&:strip).reject(&:empty?) end # Handle user -> assignee if issue.user && !issue.user.strip.empty? params[:assignee] = issue.user.strip end # Handle vrsn -> milestone if issue.vrsn if dry_run # In dry-run mode, just show the milestone name without API lookup params[:milestone] = issue.vrsn else # In normal mode, resolve milestone name to number milestone = find_milestone(proj, issue.vrsn) if milestone params[:milestone] = milestone.number elsif post_validation # If we're in post-validation mode and milestone still not found, # this indicates a serious problem with the validation flow puts "⚠️ Warning: Milestone '#{issue.vrsn}' not found even after validation for issue '#{issue.summ}'" end end end # Handle type if issue.type && !issue.type.strip.empty? params[:type] = issue.type.strip end params end