1
0
Fork 0
mirror of https://github.com/imjasonh/git-k8s synced 2026-07-17 22:44:43 +00:00
git-k8s/pkg/reconciler/internal/key.go
Claude b122fb297f
Refactor reconcilers to use Knative ReconcileKind pattern
Move the key-splitting, resource-fetching, and not-found handling into a
generic internal.NewReconciler wrapper so that each reconciler only
implements ReconcileKind(ctx, *TypedResource) — matching the Knative
generated reconciler convention. The controller setup wraps the
reconciler with internal.NewReconciler, which bridges Reconcile(ctx, key)
to ReconcileKind(ctx, *T).

This removes duplicated boilerplate from all three reconcilers (push,
sync, resolver), eliminates their Reconcile/LeaderAware methods, and
makes splitKey an unexported implementation detail.

https://claude.ai/code/session_01Eu3LyxX3G1KCcw4aDzmHvp
2026-02-28 05:06:22 +00:00

14 lines
419 B
Go

package internal
import "strings"
// splitKey splits a "namespace/name" key into its components.
// If the key has no slash, the namespace is empty and the whole key is the name.
func splitKey(key string) (namespace, name string) {
namespace, name, _ = strings.Cut(key, "/")
if name == "" {
// No slash found: Cut returns (key, "", false). The key is the name.
return "", namespace
}
return namespace, name
}