latest generation

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
This commit is contained in:
Alex Goodman 2025-10-27 14:51:14 -04:00
parent 5d182ec5f1
commit abfe73b3da
5 changed files with 44 additions and 16 deletions

View File

@ -497,6 +497,7 @@ tasks:
desc: Add data generation tasks
cmds:
- task: generate-json-schema
- task: generate-capabilities
- task: generate-license-list
- task: generate-cpe-dictionary-index
@ -517,6 +518,12 @@ tasks:
cmds:
- "go generate"
generate-capabilities:
desc: Generate the capabilities data file
cmds:
- "go generate ./internal/capabilities/..."
- "gofmt -s -w ./internal/capabilities"
## Build-related targets #################################

View File

@ -138,6 +138,8 @@ func renderCatalogerInfoJSON(doc *capabilities.Document, catalogers []capabiliti
Ecosystem string `json:"ecosystem,omitempty"`
Name string `json:"name"`
Type string `json:"type"`
Selectors []string `json:"selectors,omitempty"`
Deprecated bool `json:"deprecated,omitempty"`
Patterns []patternInfo `json:"patterns,omitempty"`
Capabilities capabilities.CapabilitySet `json:"capabilities,omitempty"`
Config *configInfo `json:"config,omitempty"`
@ -154,6 +156,15 @@ func renderCatalogerInfoJSON(doc *capabilities.Document, catalogers []capabiliti
Ecosystem: cat.Ecosystem,
Name: cat.Name,
Type: cat.Type,
Selectors: cat.Selectors,
}
// check if cataloger is deprecated based on selectors
for _, selector := range cat.Selectors {
if selector == "deprecated" {
info.Deprecated = true
break
}
}
for _, parser := range cat.Parsers {

View File

@ -546,7 +546,10 @@ func (m *CatalogerMerger) processGenericCataloger(existingEntry *capabilities.Ca
// processCustomCataloger processes an existing custom cataloger entry
func (m *CatalogerMerger) processCustomCataloger(existingEntry *capabilities.CatalogerEntry, info *capabilities.CatalogerInfo) {
entry := *existingEntry
entry.Ecosystem = inferEcosystem(existingEntry.Name)
// only infer ecosystem if not manually set (ecosystem is MANUAL)
if existingEntry.Ecosystem == "" {
entry.Ecosystem = inferEcosystem(existingEntry.Name)
}
entry.Selectors = info.Selectors
// update config field from discovered mappings (AUTO-GENERATED)
@ -631,8 +634,10 @@ func updateEntry(existing *capabilities.CatalogerEntry, discovered DiscoveredCat
updated.Config = ""
}
// always re-infer ecosystem (it's MANUAL so users can override if needed)
updated.Ecosystem = inferEcosystem(discovered.Name)
// only infer ecosystem if not manually set (ecosystem is MANUAL)
if existing.Ecosystem == "" {
updated.Ecosystem = inferEcosystem(discovered.Name)
}
var orphans []orphanInfo
var newParsers []string

View File

@ -313,7 +313,7 @@ configs: # AUTO-GENERATED - config structs and their fields
app_key: python.guess-unpinned-requirements
catalogers:
# alpm (arch / pacman) #################################################################################################
- ecosystem: arch # MANUAL
- ecosystem: alpm # MANUAL
name: alpm-db-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
@ -1400,7 +1400,10 @@ catalogers:
- name: package_manager.files.digests
default: false
- name: package_manager.package_integrity_hash
default: false
default: true
evidence:
- ConanV1LockEntry.Ref
- ConanV2LockEntry.RecipeRevision
- function: parseConanfile # AUTO-GENERATED
detector: # AUTO-GENERATED
method: glob # AUTO-GENERATED
@ -1608,7 +1611,7 @@ catalogers:
- name: package_manager.package_integrity_hash
default: false
# Dpkg (debian) ###################################################################################################
- ecosystem: debian # MANUAL
- ecosystem: dpkg # MANUAL
name: dpkg-db-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
@ -1660,7 +1663,7 @@ catalogers:
- DpkgDBEntry.Files[].Digest
- name: package_manager.package_integrity_hash
default: false
- ecosystem: debian # MANUAL
- ecosystem: dpkg # MANUAL
name: deb-archive-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
@ -3250,7 +3253,7 @@ catalogers:
- name: package_manager.package_integrity_hash
default: false
# Portage (gentoo) ########################################################################################################
- ecosystem: gentoo # MANUAL
- ecosystem: portage # MANUAL
name: portage-cataloger # AUTO-GENERATED
type: generic # AUTO-GENERATED
source: # AUTO-GENERATED
@ -3492,11 +3495,13 @@ catalogers:
- name: license
default: false
- name: dependency.depth
default: []
default:
- direct
- name: dependency.edges
default: ""
- name: dependency.kinds
default: []
default:
- any
- name: package_manager.files.listing
default: false
- name: package_manager.files.digests
@ -3575,13 +3580,11 @@ catalogers:
- name: license
default: true
- name: dependency.depth
default:
- direct
default: []
- name: dependency.edges
default: complete
default: ""
- name: dependency.kinds
default:
- runtime
default: []
- name: package_manager.files.listing
default: true
evidence:
@ -4078,6 +4081,8 @@ catalogers:
default: false
- name: package_manager.package_integrity_hash
default: true
evidence:
- TerraformLockProviderEntry.Hashes
# WordPress ######################################################################################################
- ecosystem: wordpress # MANUAL
name: wordpress-plugins-cataloger # AUTO-GENERATED

View File

@ -1,5 +1,5 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at 2025-10-21 13:02:27.818244 -0400 EDT m=+0.145508668
// This file was generated by robots at 2025-10-26 16:38:06.07048 -0400 EDT m=+0.167648626
// using data from https://spdx.org/licenses/licenses.json
package spdxlicense