@@ -12,19 +12,11 @@ import (
1212 "sync"
1313 "time"
1414
15+ alpha1 "github.com/argoproj/argo-cd/v3/pkg/client/listers/application/v1alpha1"
1516 bb "github.com/ktrysmt/go-bitbucket"
17+ "k8s.io/apimachinery/pkg/labels"
1618
1719 "github.com/Masterminds/semver/v3"
18- "github.com/go-playground/webhooks/v6/azuredevops"
19- "github.com/go-playground/webhooks/v6/bitbucket"
20- bitbucketserver "github.com/go-playground/webhooks/v6/bitbucket-server"
21- "github.com/go-playground/webhooks/v6/github"
22- "github.com/go-playground/webhooks/v6/gitlab"
23- "github.com/go-playground/webhooks/v6/gogs"
24- gogsclient "github.com/gogits/go-gogs-client"
25- log "github.com/sirupsen/logrus"
26- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27-
2820 "github.com/argoproj/argo-cd/v3/common"
2921 "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1"
3022 appclientset "github.com/argoproj/argo-cd/v3/pkg/client/clientset/versioned"
@@ -36,6 +28,14 @@ import (
3628 "github.com/argoproj/argo-cd/v3/util/git"
3729 "github.com/argoproj/argo-cd/v3/util/glob"
3830 "github.com/argoproj/argo-cd/v3/util/settings"
31+ "github.com/go-playground/webhooks/v6/azuredevops"
32+ "github.com/go-playground/webhooks/v6/bitbucket"
33+ bitbucketserver "github.com/go-playground/webhooks/v6/bitbucket-server"
34+ "github.com/go-playground/webhooks/v6/github"
35+ "github.com/go-playground/webhooks/v6/gitlab"
36+ "github.com/go-playground/webhooks/v6/gogs"
37+ gogsclient "github.com/gogits/go-gogs-client"
38+ log "github.com/sirupsen/logrus"
3939)
4040
4141type settingsSource interface {
@@ -60,6 +60,7 @@ type ArgoCDWebhookHandler struct {
6060 ns string
6161 appNs []string
6262 appClientset appclientset.Interface
63+ appsLister alpha1.ApplicationLister
6364 github * github.Webhook
6465 gitlab * gitlab.Webhook
6566 bitbucket * bitbucket.Webhook
@@ -72,7 +73,7 @@ type ArgoCDWebhookHandler struct {
7273 maxWebhookPayloadSizeB int64
7374}
7475
75- func NewHandler (namespace string , applicationNamespaces []string , webhookParallelism int , appClientset appclientset.Interface , set * settings.ArgoCDSettings , settingsSrc settingsSource , repoCache * cache.Cache , serverCache * servercache.Cache , argoDB db.ArgoDB , maxWebhookPayloadSizeB int64 ) * ArgoCDWebhookHandler {
76+ func NewHandler (namespace string , applicationNamespaces []string , webhookParallelism int , appClientset appclientset.Interface , appsLister alpha1. ApplicationLister , set * settings.ArgoCDSettings , settingsSrc settingsSource , repoCache * cache.Cache , serverCache * servercache.Cache , argoDB db.ArgoDB , maxWebhookPayloadSizeB int64 ) * ArgoCDWebhookHandler {
7677 githubWebhook , err := github .New (github .Options .Secret (set .GetWebhookGitHubSecret ()))
7778 if err != nil {
7879 log .Warnf ("Unable to init the GitHub webhook" )
@@ -115,6 +116,7 @@ func NewHandler(namespace string, applicationNamespaces []string, webhookParalle
115116 db : argoDB ,
116117 queue : make (chan any , payloadQueueSize ),
117118 maxWebhookPayloadSizeB : maxWebhookPayloadSizeB ,
119+ appsLister : appsLister ,
118120 }
119121
120122 acdWebhook .startWorkerPool (webhookParallelism )
@@ -313,8 +315,8 @@ func (a *ArgoCDWebhookHandler) HandleEvent(payload any) {
313315 nsFilter = ""
314316 }
315317
316- appIf := a .appClientset . ArgoprojV1alpha1 () .Applications (nsFilter )
317- apps , err := appIf .List (context . Background (), metav1. ListOptions {} )
318+ appIf := a .appsLister .Applications (nsFilter )
319+ apps , err := appIf .List (labels . Everything () )
318320 if err != nil {
319321 log .Warnf ("Failed to list applications: %v" , err )
320322 return
@@ -339,9 +341,9 @@ func (a *ArgoCDWebhookHandler) HandleEvent(payload any) {
339341 // Skip any application that is neither in the control plane's namespace
340342 // nor in the list of enabled namespaces.
341343 var filteredApps []v1alpha1.Application
342- for _ , app := range apps . Items {
344+ for _ , app := range apps {
343345 if app .Namespace == a .ns || glob .MatchStringInList (a .appNs , app .Namespace , glob .REGEXP ) {
344- filteredApps = append (filteredApps , app )
346+ filteredApps = append (filteredApps , * app )
345347 }
346348 }
347349
0 commit comments