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

Method parseLinkSubIssueConfig

pkg/workflow/link_sub_issue.go:20–64  ·  view source on GitHub ↗

parseLinkSubIssueConfig handles link-sub-issue configuration

(outputMap map[string]any)

Source from the content-addressed store, hash-verified

18
19// parseLinkSubIssueConfig handles link-sub-issue configuration
20func (c *Compiler) parseLinkSubIssueConfig(outputMap map[string]any) *LinkSubIssueConfig {
21 linkSubIssueLog.Print("Parsing link-sub-issue configuration")
22 if configData, exists := outputMap["link-sub-issue"]; exists {
23 linkSubIssueConfig := &LinkSubIssueConfig{}
24
25 if configMap, ok := configData.(map[string]any); ok {
26 linkSubIssueLog.Print("Found link-sub-issue config map")
27
28 // Parse target config (target-repo) with validation
29 targetConfig, isInvalid := ParseTargetConfig(configMap)
30 if isInvalid {
31 return nil // Invalid configuration (e.g., wildcard target-repo), return nil to cause validation error
32 }
33 linkSubIssueConfig.SafeOutputTargetConfig = targetConfig
34 // Override AllowedRepos with expression-aware parsing (supports GitHub Actions expressions)
35 linkSubIssueConfig.AllowedRepos = ParseStringArrayOrExprFromConfig(configMap, "allowed-repos", linkSubIssueLog)
36
37 // Parse common base fields with default max of 5
38 c.parseBaseSafeOutputConfig(configMap, &linkSubIssueConfig.BaseSafeOutputConfig, 5)
39
40 // Parse parent-required-labels
41 linkSubIssueConfig.ParentRequiredLabels = ParseStringArrayFromConfig(configMap, "parent-required-labels", linkSubIssueLog)
42
43 // Parse parent-title-prefix
44 linkSubIssueConfig.ParentTitlePrefix = extractStringFromMap(configMap, "parent-title-prefix", linkSubIssueLog)
45
46 // Parse sub-required-labels
47 linkSubIssueConfig.SubRequiredLabels = ParseStringArrayFromConfig(configMap, "sub-required-labels", linkSubIssueLog)
48
49 // Parse sub-title-prefix
50 linkSubIssueConfig.SubTitlePrefix = extractStringFromMap(configMap, "sub-title-prefix", linkSubIssueLog)
51
52 linkSubIssueLog.Printf("Parsed link-sub-issue config: max=%d, parent_labels=%d, sub_labels=%d, target_repo=%s",
53 linkSubIssueConfig.Max, len(linkSubIssueConfig.ParentRequiredLabels),
54 len(linkSubIssueConfig.SubRequiredLabels), linkSubIssueConfig.TargetRepoSlug)
55 } else {
56 // If configData is nil or not a map, still set the default max
57 linkSubIssueConfig.Max = defaultIntStr(5)
58 }
59
60 return linkSubIssueConfig
61 }
62
63 return nil
64}

Callers 2

Calls 8

ParseTargetConfigFunction · 0.85
extractStringFromMapFunction · 0.85
defaultIntStrFunction · 0.85
PrintMethod · 0.80
PrintfMethod · 0.45

Tested by 1