require 'shellwords'
require_relative 'helpers/pretty_table'
require_relative 'helpers/git'
require_relative 'helpers/github'

before_all do
  if is_ci
    skip_docs
  end
end

lane :status do |options|
  desc "Check status of all subtrees"

  subtrees_status(
    pr_number: options[:pr_number]
  )
end

lane :pull do |options|
  desc "Pull new commits from source repos into subtrees"

  subtrees_pull(
    pr_number: options[:pr_number]
  )
end

lane :push do |options|
  desc "Push local commits from subtrees to source repos"

  subtrees_push(
    pr_number: options[:pr_number]
  )
end

lane :sync do |options|
  if is_ci
    ref_name = Github.env[:ref_name]

    if ref_name.start_with?('refs/pull/')
      pr_number = ref_name.split('/').last
      subtrees_sync(pr_number: pr_number)
    else
      UI.user_error!('GITHUB_REF_NAME is not a pull request ref')
    end
  end
end

lane :workflow_analytics do |options|
  desc "Generate workflow performance analytics graph"

  github_workflow_analytics(
    repo: options[:repo],
    workflow: options[:workflow],
    start_date: options[:start_date],
    end_date: options[:end_date],
    output_file: options[:output_file]
  )
end
