MCPcopy Create free account
hub / github.com/github/gh-aw / parseAssignToAgentConfig

Method parseAssignToAgentConfig

pkg/workflow/assign_to_agent.go:25–58  ·  view source on GitHub ↗

parseAssignToAgentConfig handles assign-to-agent configuration

(outputMap map[string]any)

Source from the content-addressed store, hash-verified

23
24// parseAssignToAgentConfig handles assign-to-agent configuration
25func (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}

Callers 1

Calls 4

parseConfigScaffoldFunction · 0.85
defaultIntStrFunction · 0.85
PrintfMethod · 0.45

Tested by

no test coverage detected