mirror of
https://github.com/imjasonh/git-k8s
synced 2026-07-08 06:45:12 +00:00
Introduces a fourth controller that watches GitRepository resources and polls their remotes via git ls-remote on a configurable per-repo interval (spec.pollInterval, defaulting to 30s). It auto-creates, updates, and deletes GitBranch CRDs to reflect the actual state of the remote, enabling fast detection of external pushes to trigger downstream sync. Key changes: - Add PollInterval field to GitRepositorySpec - New pkg/reconciler/repowatcher with controller and reconciler - New cmd/repo-watcher-controller binary - CRD manifest updated for pollInterval - Deployment manifest for the new controller - Unit tests for ref filtering, naming, and poll interval logic - CLAUDE.md updated with new controller docs and Go module workaround https://claude.ai/code/session_01P7xfBqARU5DFS8QJ4uDPVj
473 lines
14 KiB
Go
473 lines
14 KiB
Go
//go:build !ignore_autogenerated
|
|
// +build !ignore_autogenerated
|
|
|
|
// Code generated by deepcopy-gen. DO NOT EDIT.
|
|
|
|
package v1alpha1
|
|
|
|
import (
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
)
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitAuth) DeepCopyInto(out *GitAuth) {
|
|
*out = *in
|
|
if in.SecretRef != nil {
|
|
in, out := &in.SecretRef, &out.SecretRef
|
|
*out = new(SecretRef)
|
|
**out = **in
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitAuth.
|
|
func (in *GitAuth) DeepCopy() *GitAuth {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitAuth)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *SecretRef) DeepCopyInto(out *SecretRef) {
|
|
*out = *in
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef.
|
|
func (in *SecretRef) DeepCopy() *SecretRef {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(SecretRef)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepository) DeepCopyInto(out *GitRepository) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
in.Spec.DeepCopyInto(&out.Spec)
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepository.
|
|
func (in *GitRepository) DeepCopy() *GitRepository {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepository)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitRepository) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepositorySpec) DeepCopyInto(out *GitRepositorySpec) {
|
|
*out = *in
|
|
if in.Auth != nil {
|
|
in, out := &in.Auth, &out.Auth
|
|
*out = new(GitAuth)
|
|
(*in).DeepCopyInto(*out)
|
|
}
|
|
if in.PollInterval != nil {
|
|
in, out := &in.PollInterval, &out.PollInterval
|
|
*out = new(metav1.Duration)
|
|
**out = **in
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositorySpec.
|
|
func (in *GitRepositorySpec) DeepCopy() *GitRepositorySpec {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepositorySpec)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepositoryStatus) DeepCopyInto(out *GitRepositoryStatus) {
|
|
*out = *in
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
if in.LastFetchTime != nil {
|
|
in, out := &in.LastFetchTime, &out.LastFetchTime
|
|
*out = (*in).DeepCopy()
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositoryStatus.
|
|
func (in *GitRepositoryStatus) DeepCopy() *GitRepositoryStatus {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepositoryStatus)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepositoryList) DeepCopyInto(out *GitRepositoryList) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
if in.Items != nil {
|
|
in, out := &in.Items, &out.Items
|
|
*out = make([]GitRepository, len(*in))
|
|
for i := range *in {
|
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
}
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositoryList.
|
|
func (in *GitRepositoryList) DeepCopy() *GitRepositoryList {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepositoryList)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitRepositoryList) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitBranch) DeepCopyInto(out *GitBranch) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
out.Spec = in.Spec
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitBranch.
|
|
func (in *GitBranch) DeepCopy() *GitBranch {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitBranch)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitBranch) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitBranchSpec) DeepCopyInto(out *GitBranchSpec) {
|
|
*out = *in
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitBranchSpec.
|
|
func (in *GitBranchSpec) DeepCopy() *GitBranchSpec {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitBranchSpec)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitBranchStatus) DeepCopyInto(out *GitBranchStatus) {
|
|
*out = *in
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
if in.LastUpdated != nil {
|
|
in, out := &in.LastUpdated, &out.LastUpdated
|
|
*out = (*in).DeepCopy()
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitBranchStatus.
|
|
func (in *GitBranchStatus) DeepCopy() *GitBranchStatus {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitBranchStatus)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitBranchList) DeepCopyInto(out *GitBranchList) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
if in.Items != nil {
|
|
in, out := &in.Items, &out.Items
|
|
*out = make([]GitBranch, len(*in))
|
|
for i := range *in {
|
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
}
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitBranchList.
|
|
func (in *GitBranchList) DeepCopy() *GitBranchList {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitBranchList)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitBranchList) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitPushTransaction) DeepCopyInto(out *GitPushTransaction) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
in.Spec.DeepCopyInto(&out.Spec)
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitPushTransaction.
|
|
func (in *GitPushTransaction) DeepCopy() *GitPushTransaction {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitPushTransaction)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitPushTransaction) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitPushTransactionSpec) DeepCopyInto(out *GitPushTransactionSpec) {
|
|
*out = *in
|
|
if in.RefSpecs != nil {
|
|
in, out := &in.RefSpecs, &out.RefSpecs
|
|
*out = make([]PushRefSpec, len(*in))
|
|
copy(*out, *in)
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitPushTransactionSpec.
|
|
func (in *GitPushTransactionSpec) DeepCopy() *GitPushTransactionSpec {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitPushTransactionSpec)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitPushTransactionStatus) DeepCopyInto(out *GitPushTransactionStatus) {
|
|
*out = *in
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
if in.StartTime != nil {
|
|
in, out := &in.StartTime, &out.StartTime
|
|
*out = (*in).DeepCopy()
|
|
}
|
|
if in.CompletionTime != nil {
|
|
in, out := &in.CompletionTime, &out.CompletionTime
|
|
*out = (*in).DeepCopy()
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitPushTransactionStatus.
|
|
func (in *GitPushTransactionStatus) DeepCopy() *GitPushTransactionStatus {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitPushTransactionStatus)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitPushTransactionList) DeepCopyInto(out *GitPushTransactionList) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
if in.Items != nil {
|
|
in, out := &in.Items, &out.Items
|
|
*out = make([]GitPushTransaction, len(*in))
|
|
for i := range *in {
|
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
}
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitPushTransactionList.
|
|
func (in *GitPushTransactionList) DeepCopy() *GitPushTransactionList {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitPushTransactionList)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitPushTransactionList) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *PushRefSpec) DeepCopyInto(out *PushRefSpec) {
|
|
*out = *in
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PushRefSpec.
|
|
func (in *PushRefSpec) DeepCopy() *PushRefSpec {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(PushRefSpec)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepoSync) DeepCopyInto(out *GitRepoSync) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
out.Spec = in.Spec
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepoSync.
|
|
func (in *GitRepoSync) DeepCopy() *GitRepoSync {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepoSync)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitRepoSync) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepoSyncSpec) DeepCopyInto(out *GitRepoSyncSpec) {
|
|
*out = *in
|
|
out.RepoA = in.RepoA
|
|
out.RepoB = in.RepoB
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepoSyncSpec.
|
|
func (in *GitRepoSyncSpec) DeepCopy() *GitRepoSyncSpec {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepoSyncSpec)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepoSyncStatus) DeepCopyInto(out *GitRepoSyncStatus) {
|
|
*out = *in
|
|
in.Status.DeepCopyInto(&out.Status)
|
|
if in.LastSyncTime != nil {
|
|
in, out := &in.LastSyncTime, &out.LastSyncTime
|
|
*out = (*in).DeepCopy()
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepoSyncStatus.
|
|
func (in *GitRepoSyncStatus) DeepCopy() *GitRepoSyncStatus {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepoSyncStatus)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *GitRepoSyncList) DeepCopyInto(out *GitRepoSyncList) {
|
|
*out = *in
|
|
out.TypeMeta = in.TypeMeta
|
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
if in.Items != nil {
|
|
in, out := &in.Items, &out.Items
|
|
*out = make([]GitRepoSync, len(*in))
|
|
for i := range *in {
|
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
}
|
|
}
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepoSyncList.
|
|
func (in *GitRepoSyncList) DeepCopy() *GitRepoSyncList {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(GitRepoSyncList)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|
|
|
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
func (in *GitRepoSyncList) DeepCopyObject() runtime.Object {
|
|
if c := in.DeepCopy(); c != nil {
|
|
return c
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
func (in *SyncRepoRef) DeepCopyInto(out *SyncRepoRef) {
|
|
*out = *in
|
|
}
|
|
|
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncRepoRef.
|
|
func (in *SyncRepoRef) DeepCopy() *SyncRepoRef {
|
|
if in == nil {
|
|
return nil
|
|
}
|
|
out := new(SyncRepoRef)
|
|
in.DeepCopyInto(out)
|
|
return out
|
|
}
|