diff --git a/internal/model/update.go b/internal/model/update.go index 251631f0..00286503 100644 --- a/internal/model/update.go +++ b/internal/model/update.go @@ -55,6 +55,10 @@ type RecordEcosystemVersions struct { EcosystemVersions map[string]any `json:"ecosystem_versions" yaml:"ecosystem_versions"` } +type RecordEcosystemMeta struct { + Ecosystem Ecosystem `json:"ecosystem" yaml:"ecosystem"` +} + type RecordUpdateJobError struct { ErrorType string `json:"error-type" yaml:"error-type"` ErrorDetails map[string]any `json:"error-details" yaml:"error-details"` @@ -69,3 +73,16 @@ type IncrementMetric struct { Metric string `json:"metric" yaml:"metric"` Tags map[string]any `json:"tags" yaml:"tags"` } + +type Ecosystem struct { + Name string `json:"name" yaml:"name"` + PackageManager VersionManager `json:"package_manager,omitempty" yaml:"package_manager,omitempty"` + Language VersionManager `json:"language,omitempty" yaml:"language,omitempty"` +} + +type VersionManager struct { + Name string `json:"name" yaml:"name"` + Version string `json:"version" yaml:"version"` + RawVersion string `json:"raw_version" yaml:"raw_version"` + Requirement map[string]any `json:"requirement,omitempty" yaml:"requirement,omitempty"` +} diff --git a/internal/server/api.go b/internal/server/api.go index af29374a..d3dd02f2 100644 --- a/internal/server/api.go +++ b/internal/server/api.go @@ -235,6 +235,8 @@ func decodeWrapper(kind string, data []byte) (actual *model.UpdateWrapper, err e actual.Data, err = decode[model.MarkAsProcessed](data) case "record_ecosystem_versions": actual.Data, err = decode[model.RecordEcosystemVersions](data) + case "record_ecosystem_meta": + actual.Data, err = decode[[]model.RecordEcosystemMeta](data) case "record_update_job_error": actual.Data, err = decode[model.RecordUpdateJobError](data) case "record_update_job_unknown_error":