parseAssignToAgentConfig handles assign-to-agent configuration
(outputMap map[string]any)
| 23 | |
| 24 | // parseAssignToAgentConfig handles assign-to-agent configuration |
| 25 | func (c *Compiler) parseAssignToAgentConfig(outputMap map[string]any) *AssignToAgentConfig { |
| 26 | // Check key existence first so we can preprocess templatable fields before YAML unmarshaling |
| 27 | if _, exists := outputMap["assign-to-agent"]; !exists { |
| 28 | return nil |
| 29 | } |
| 30 | |
| 31 | // Get config data for pre-processing before YAML unmarshaling |
| 32 | configData, _ := outputMap["assign-to-agent"].(map[string]any) |
| 33 | |
| 34 | // Pre-process templatable int fields |
| 35 | if err := preprocessIntFieldAsString(configData, "max", assignToAgentLog); err != nil { |
| 36 | assignToAgentLog.Printf("Invalid max value: %v", err) |
| 37 | return nil |
| 38 | } |
| 39 | |
| 40 | config := parseConfigScaffold(outputMap, "assign-to-agent", assignToAgentLog, func(err error) *AssignToAgentConfig { |
| 41 | assignToAgentLog.Printf("Failed to unmarshal config: %v", err) |
| 42 | // Handle null case: create empty config |
| 43 | return &AssignToAgentConfig{} |
| 44 | }) |
| 45 | if config == nil { |
| 46 | return nil |
| 47 | } |
| 48 | |
| 49 | // Set default max if not specified |
| 50 | if config.Max == nil { |
| 51 | config.Max = defaultIntStr(1) |
| 52 | } |
| 53 | |
| 54 | assignToAgentLog.Printf("Parsed assign-to-agent config: default_agent=%s, default_model=%s, default_custom_agent=%s, allowed_count=%d, target=%s, max=%s, pull_request_repo=%s, base_branch=%s", |
| 55 | config.DefaultAgent, config.DefaultModel, config.DefaultCustomAgent, len(config.Allowed), config.Target, *config.Max, config.PullRequestRepoSlug, config.BaseBranch) |
| 56 | |
| 57 | return config |
| 58 | } |
no test coverage detected