parseCreateProjectsConfig handles create-project configuration
(outputMap map[string]any)
| 16 | |
| 17 | // parseCreateProjectsConfig handles create-project configuration |
| 18 | func (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 | } |