diff --git a/cmd/osbuild-worker/jobimpl-koji-finalize.go b/cmd/osbuild-worker/jobimpl-koji-finalize.go index ee432532b..20be960ae 100644 --- a/cmd/osbuild-worker/jobimpl-koji-finalize.go +++ b/cmd/osbuild-worker/jobimpl-koji-finalize.go @@ -119,6 +119,7 @@ func (impl *KojiFinalizeJobImpl) Run(job worker.Job) error { var outputs []koji.BuildOutput // Extra info for each image output is stored using the image filename as the key imgOutputsExtraInfo := map[string]koji.ImageExtraInfo{} + manifestOutputsExtraInfo := map[string]*koji.ManifestExtraInfo{} var osbuildResults []worker.OSBuildJobResult initArgs, osbuildResults, err = extractDynamicArgs(job) @@ -249,6 +250,8 @@ func (impl *KojiFinalizeJobImpl) Run(job worker.Job) error { manifestExtraInfo.Info = manifestInfo } + manifestOutputsExtraInfo[kojiTargetOptions.OSBuildManifest.Filename] = &manifestExtraInfo + outputs = append(outputs, koji.BuildOutput{ BuildRootID: uint64(i), Filename: kojiTargetOptions.OSBuildManifest.Filename, @@ -291,6 +294,7 @@ func (impl *KojiFinalizeJobImpl) Run(job worker.Job) error { TypeInfo: koji.TypeInfoBuild{ Image: imgOutputsExtraInfo, }, + Manifest: manifestOutputsExtraInfo, }, } diff --git a/internal/upload/koji/koji.go b/internal/upload/koji/koji.go index 19b181b46..f652cbbd4 100644 --- a/internal/upload/koji/koji.go +++ b/internal/upload/koji/koji.go @@ -53,6 +53,10 @@ type TypeInfoBuild struct { // It is a free-form map, but must contain at least the 'typeinfo' key. type BuildExtra struct { TypeInfo TypeInfoBuild `json:"typeinfo"` + // Manifest holds extra metadata about osbuild manifests attached to the build. + // It is a map whose keys are the filenames of the manifests, and + // the values are the extra metadata for the manifest. + Manifest map[string]*ManifestExtraInfo `json:"osbuild_manifest,omitempty"` } // Build represents a Koji build and holds metadata about it.