Module: SolidAgents::Workflow

Defined in:
lib/solid_agents/workflow.rb

Constant Summary collapse

STAGES =
[
  "received",
  "triaged",
  "repro_test",
  "repro_manual",
  "fixing",
  "verifying",
  "pr_opened",
  "ci_wait",
  "done"
].freeze
STAGE_TO_AGENT =
{
  "received" => "alex",
  "triaged" => "alex",
  "repro_test" => "betty",
  "repro_manual" => "betty",
  "fixing" => "chad",
  "verifying" => "david",
  "pr_opened" => "eddy",
  "ci_wait" => "eddy",
  "done" => "eddy"
}.freeze
FINAL_STAGES =
["done", "failed"].freeze

Class Method Summary collapse

Class Method Details

.final_stage?(stage) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/solid_agents/workflow.rb', line 44

def final_stage?(stage)
  FINAL_STAGES.include?(stage.to_s)
end

.next_stage(current_stage) ⇒ Object



33
34
35
36
37
38
# File 'lib/solid_agents/workflow.rb', line 33

def next_stage(current_stage)
  index = STAGES.index(current_stage)
  return "done" if index.nil? || index == STAGES.length - 1

  STAGES[index + 1]
end

.stage_agent(stage) ⇒ Object



40
41
42
# File 'lib/solid_agents/workflow.rb', line 40

def stage_agent(stage)
  STAGE_TO_AGENT.fetch(stage.to_s, "alex")
end