func buildTitleByComponents()

in internal/changelog/renderer.go [200:235]


func buildTitleByComponents(entries []Entry) string {
	configComponents := viper.GetStringSlice("components")

	switch len(configComponents) {
	case 0:
		return ""
	case 1:
		c := configComponents[0]
		for _, e := range entries {
			if c != e.Component && len(e.Component) > 0 {
				log.Fatalf("Component [%s] not found in config", e.Component)
			}
		}
		return c
	default:
		var match string
		for _, e := range entries {
			if e.Component == "" {
				log.Fatalf("Component cannot be assumed, choose it from config values: %s", e.File.Name)
			}

			match = ""
			for _, c := range configComponents {
				if e.Component != c {
					continue
				}
				match = e.Component
			}

			if match == "" {
				log.Fatalf("Component [%s] not found in config", e.Component)
			}
		}
		return match
	}
}