func()

in providers/flexera/schema/convert.go [28:74]


func (item *Advisory) Convert() (*nvd.NVDCVEFeedJSON10DefCVEItem, error) {
	if item.Products == nil {
		return nil, fmt.Errorf("no products associated with advisory")
	}

	var cpes []string
	for _, product := range item.Products {
		if productCPEs, err := findCPEs(product); err == nil {
			cpes = append(cpes, productCPEs...)
		}
	}
	if len(cpes) == 0 {
		return nil, fmt.Errorf("no cpes associated with advisory")
	}

	lastModifiedDate, err := convertTime(item.ModifiedDate)
	if err != nil {
		return nil, err
	}

	publishedDate, err := convertTime(item.Released)
	if err != nil {
		return nil, err
	}

	return &nvd.NVDCVEFeedJSON10DefCVEItem{
		CVE: &nvd.CVEJSON40{
			CVEDataMeta: &nvd.CVEJSON40CVEDataMeta{
				ID:       item.ID(),
				ASSIGNER: "flexera",
			},
			DataFormat:  "MITRE",
			DataType:    "CVE",
			DataVersion: cveDataVersion,
			Description: &nvd.CVEJSON40Description{
				DescriptionData: []*nvd.CVEJSON40LangString{
					{Lang: "en", Value: item.Description},
				},
			},
			References: item.makeReferences(),
		},
		Configurations:   makeConfigurations(cpes),
		Impact:           item.makeImpact(),
		LastModifiedDate: lastModifiedDate,
		PublishedDate:    publishedDate,
	}, nil
}