class Issuer::Sites::GitHub

def convert_issue_to_site_params issue, proj, dry_run: false, post_validation: false

Convert IMYML issue to GitHub-specific parameters
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