mirror of
https://github.com/actions/actions-runner-controller.git
synced 2025-12-11 20:21:02 +00:00
Co-authored-by: Cory Miller <cory-miller@github.com> Co-authored-by: Nikola Jokic <nikola-jokic@github.com> Co-authored-by: Ava Stancu <AvaStancu@github.com> Co-authored-by: Ferenc Hammerl <fhammerl@github.com> Co-authored-by: Francesco Renzi <rentziass@github.com> Co-authored-by: Bassem Dghaidi <Link-@github.com>
23 lines
509 B
Go
23 lines
509 B
Go
package actionsgithubcom
|
|
|
|
import (
|
|
"context"
|
|
|
|
kclient "sigs.k8s.io/controller-runtime/pkg/client"
|
|
)
|
|
|
|
type object[T kclient.Object] interface {
|
|
kclient.Object
|
|
DeepCopy() T
|
|
}
|
|
|
|
type patcher interface {
|
|
Patch(ctx context.Context, obj kclient.Object, patch kclient.Patch, opts ...kclient.PatchOption) error
|
|
}
|
|
|
|
func patch[T object[T]](ctx context.Context, client patcher, obj T, update func(obj T)) error {
|
|
original := obj.DeepCopy()
|
|
update(obj)
|
|
return client.Patch(ctx, obj, kclient.MergeFrom(original))
|
|
}
|