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

Method parseCreateProjectsConfig

pkg/workflow/create_project.go:18–65  ·  view source on GitHub ↗

parseCreateProjectsConfig handles create-project configuration

(outputMap map[string]any)

Source from the content-addressed store, hash-verified

16
17// parseCreateProjectsConfig handles create-project configuration
18func (c *Compiler) parseCreateProjectsConfig(outputMap map[string]any) *CreateProjectsConfig {
19 if configData, exists := outputMap["create-project"]; exists {
20 createProjectLog.Print("Parsing create-project configuration")
21 createProjectsConfig := &CreateProjectsConfig{}
22 createProjectsConfig.Max = defaultIntStr(1) // Default max is 1
23
24 if configMap, ok := configData.(map[string]any); ok {
25 // Parse base config (max, github-token)
26 c.parseBaseSafeOutputConfig(configMap, &createProjectsConfig.BaseSafeOutputConfig, 1)
27
28 // Parse github-token override if specified
29 if token, exists := configMap["github-token"]; exists {
30 if tokenStr, ok := token.(string); ok {
31 createProjectsConfig.GitHubToken = tokenStr
32 createProjectLog.Print("Using custom GitHub token for create-project")
33 }
34 }
35
36 // Parse target-owner if specified
37 if targetOwner, exists := configMap["target-owner"]; exists {
38 if targetOwnerStr, ok := targetOwner.(string); ok {
39 createProjectsConfig.TargetOwner = targetOwnerStr
40 createProjectLog.Printf("Default target owner configured: %s", targetOwnerStr)
41 }
42 }
43
44 // Parse title-prefix if specified
45 if titlePrefix, exists := configMap["title-prefix"]; exists {
46 if titlePrefixStr, ok := titlePrefix.(string); ok {
47 createProjectsConfig.TitlePrefix = titlePrefixStr
48 createProjectLog.Printf("Title prefix configured: %s", titlePrefixStr)
49 }
50 }
51
52 // Parse views if specified
53 createProjectsConfig.Views = parseProjectViews(configMap, createProjectLog)
54
55 // Parse field-definitions if specified
56 createProjectsConfig.FieldDefinitions = parseProjectFieldDefinitions(configMap, createProjectLog)
57 }
58
59 createProjectLog.Printf("Parsed create-project config: max=%d, hasCustomToken=%v, hasTargetOwner=%v, hasTitlePrefix=%v, viewCount=%d, fieldDefinitionCount=%d",
60 createProjectsConfig.Max, createProjectsConfig.GitHubToken != "", createProjectsConfig.TargetOwner != "", createProjectsConfig.TitlePrefix != "", len(createProjectsConfig.Views), len(createProjectsConfig.FieldDefinitions))
61 return createProjectsConfig
62 }
63 createProjectLog.Print("No create-project configuration found")
64 return nil
65}

Calls 6

defaultIntStrFunction · 0.85
parseProjectViewsFunction · 0.85
PrintMethod · 0.80
PrintfMethod · 0.45