From 45a4f872e589200e09f8f087d738a49a25e5ad1c Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Tue, 7 Feb 2023 12:03:00 +0100 Subject: [PATCH 1/2] Notify on container image create. --- routers/api/packages/container/manifest.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/routers/api/packages/container/manifest.go b/routers/api/packages/container/manifest.go index 6167d00f311a9..41207acf2b9ba 100644 --- a/routers/api/packages/container/manifest.go +++ b/routers/api/packages/container/manifest.go @@ -17,6 +17,7 @@ import ( user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/json" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/notification" packages_module "code.gitea.io/gitea/modules/packages" container_module "code.gitea.io/gitea/modules/packages/container" "code.gitea.io/gitea/modules/util" @@ -71,11 +72,9 @@ func processManifest(mci *manifestCreationInfo, buf *packages_module.HashedBuffe } if isImageManifestMediaType(mci.MediaType) { - d, err := processImageManifest(mci, buf) - return d, err + return processImageManifest(mci, buf) } else if isImageIndexMediaType(mci.MediaType) { - d, err := processImageManifestIndex(mci, buf) - return d, err + return processImageManifestIndex(mci, buf) } return "", errManifestInvalid } @@ -182,6 +181,8 @@ func processImageManifest(mci *manifestCreationInfo, buf *packages_module.Hashed return err } + notifyPackageCreate(mci.Creator, pv) + manifestDigest = digest return nil @@ -271,6 +272,8 @@ func processImageManifestIndex(mci *manifestCreationInfo, buf *packages_module.H return err } + notifyPackageCreate(mci.Creator, pv) + manifestDigest = digest return nil @@ -282,6 +285,17 @@ func processImageManifestIndex(mci *manifestCreationInfo, buf *packages_module.H return manifestDigest, nil } +func notifyPackageCreate(doer *user_model.User, pv *packages_model.PackageVersion) error { + pd, err := packages_model.GetPackageDescriptor(db.DefaultContext, pv) + if err != nil { + return err + } + + notification.NotifyPackageCreate(db.DefaultContext, doer, pd) + + return nil +} + func createPackageAndVersion(ctx context.Context, mci *manifestCreationInfo, metadata *container_module.Metadata) (*packages_model.PackageVersion, error) { created := true p := &packages_model.Package{ From 13215de75fc2b79eb87cfdbe058bd00711ce45f7 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Tue, 7 Feb 2023 12:08:02 +0000 Subject: [PATCH 2/2] lint --- routers/api/packages/container/manifest.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/routers/api/packages/container/manifest.go b/routers/api/packages/container/manifest.go index 41207acf2b9ba..e36c6a851bf03 100644 --- a/routers/api/packages/container/manifest.go +++ b/routers/api/packages/container/manifest.go @@ -181,7 +181,9 @@ func processImageManifest(mci *manifestCreationInfo, buf *packages_module.Hashed return err } - notifyPackageCreate(mci.Creator, pv) + if err := notifyPackageCreate(mci.Creator, pv); err != nil { + return err + } manifestDigest = digest @@ -272,7 +274,9 @@ func processImageManifestIndex(mci *manifestCreationInfo, buf *packages_module.H return err } - notifyPackageCreate(mci.Creator, pv) + if err := notifyPackageCreate(mci.Creator, pv); err != nil { + return err + } manifestDigest = digest