From 381189398b869a5f5a069a07b2ff44319e96cf5f Mon Sep 17 00:00:00 2001 From: Vitalijs Date: Wed, 9 Aug 2023 16:07:11 +0300 Subject: [PATCH] fix(projects.deploykey): Add nil check before pointer deref for CreatedAt in controller Signed-off-by: Vitalijs --- pkg/clients/gitlab.go | 10 ++++++++++ pkg/controller/projects/deploykeys/controller.go | 3 +-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/clients/gitlab.go b/pkg/clients/gitlab.go index 1ae69221..9dbdd545 100644 --- a/pkg/clients/gitlab.go +++ b/pkg/clients/gitlab.go @@ -18,11 +18,13 @@ package clients import ( "context" + "time" "github.com/google/go-cmp/cmp" "github.com/pkg/errors" gitlab "github.com/xanzy/go-gitlab" corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client" @@ -209,3 +211,11 @@ func IsResponseNotFound(res *gitlab.Response) bool { } return false } + +// TimeToMetaTime returns nil if parameter is nil, otherwise metav1.Time value +func TimeToMetaTime(t *time.Time) *metav1.Time { + if t == nil { + return nil + } + return &metav1.Time{Time: *t} +} diff --git a/pkg/controller/projects/deploykeys/controller.go b/pkg/controller/projects/deploykeys/controller.go index a5bbfe8c..a02e8b0c 100644 --- a/pkg/controller/projects/deploykeys/controller.go +++ b/pkg/controller/projects/deploykeys/controller.go @@ -15,7 +15,6 @@ import ( "github.com/xanzy/go-gitlab" corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/utils/pointer" controller "sigs.k8s.io/controller-runtime" @@ -118,7 +117,7 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex cr.Status.AtProvider = v1alpha1.DeployKeyObservation{ ID: &dk.ID, - CreatedAt: &metav1.Time{Time: *dk.CreatedAt}, + CreatedAt: clients.TimeToMetaTime(dk.CreatedAt), } cr.Status.SetConditions(xpv1.Available())