diff --git a/go.mod b/go.mod
index 1e7e685da..2db85cb37 100644
--- a/go.mod
+++ b/go.mod
@@ -11,8 +11,8 @@ require (
 	github.com/gorilla/sessions v1.2.0
 	github.com/h2non/gock v1.0.9
 	github.com/hashicorp/go-multierror v1.1.0
-	github.com/hashicorp/golang-lru v0.5.4
 	github.com/jenkins-x/go-scm v1.11.2
+	github.com/karlseguin/ccache/v2 v2.0.8
 	github.com/mattn/go-zglob v0.0.1
 	github.com/onsi/ginkgo v1.14.1
 	github.com/onsi/gomega v1.10.3
diff --git a/go.sum b/go.sum
index 0a5c9abab..03e8ee06e 100644
--- a/go.sum
+++ b/go.sum
@@ -468,6 +468,10 @@ github.com/jstrachan/pipeline v0.21.1-0.20210811150720-45a86a5488af/go.mod h1:m8
 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
+github.com/karlseguin/ccache/v2 v2.0.8 h1:lT38cE//uyf6KcFok0rlgXtGFBWxkI6h/qg4tbFyDnA=
+github.com/karlseguin/ccache/v2 v2.0.8/go.mod h1:2BDThcfQMf/c0jnZowt16eW405XIqZPavt+HoYEtcxQ=
+github.com/karlseguin/expect v1.0.2-0.20190806010014-778a5f0c6003 h1:vJ0Snvo+SLMY72r5J4sEfkuE7AFbixEP2qRbEcum/wA=
+github.com/karlseguin/expect v1.0.2-0.20190806010014-778a5f0c6003/go.mod h1:zNBxMY8P21owkeogJELCLeHIt+voOSduHYTFUbwRAV8=
 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
 github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
 github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
@@ -726,6 +730,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw
 github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
 github.com/vdemeester/k8s-pkg-credentialprovider v1.19.7/go.mod h1:K2nMO14cgZitdwBqdQps9tInJgcaXcU/7q5F59lpbNI=
 github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
+github.com/wsxiaoys/terminal v0.0.0-20160513160801-0940f3fc43a0 h1:3UeQBvD0TFrlVjOeLOBz+CPAI8dnbqNSVwUwRrkp7vQ=
+github.com/wsxiaoys/terminal v0.0.0-20160513160801-0940f3fc43a0/go.mod h1:IXCdmsXIht47RaVFLEdVnh1t+pgYtTAhQGj73kz+2DM=
 github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
diff --git a/pkg/webhook/create_agent.go b/pkg/webhook/create_agent.go
index 5517dce88..b34d1d5e4 100644
--- a/pkg/webhook/create_agent.go
+++ b/pkg/webhook/create_agent.go
@@ -53,8 +53,9 @@ func (s *Server) CreateAgent(l *logrus.Entry, owner, repo, ref string) (plugins.
 
 	key := owner + "/" + repo + "/" + ref
 	c := s.InRepoCache
-	if x, found := c.Get(key); found {
-		pa := x.(*plugins.Agent)
+	if x := c.Get(key); x != nil {
+		value := x.Value()
+		pa := value.(*plugins.Agent)
 		if pa != nil {
 			return *pa, nil
 		}
@@ -63,8 +64,8 @@ func (s *Server) CreateAgent(l *logrus.Entry, owner, repo, ref string) (plugins.
 	if err != nil {
 		return pc, errors.Wrapf(err, "failed to create agent")
 	}
-	c.Add(key, &pc)
-	duration := time.Now().Sub(start)
+	c.Set(key, &pc, time.Minute * 10)
+	duration := time.Since(start)
 	l.WithField("Duration", duration.String()).Info("created configAgent")
 	return pc, nil
 }
diff --git a/pkg/webhook/create_agent_integration_test.go b/pkg/webhook/create_agent_integration_test.go
index fe07fcdda..44164d39d 100644
--- a/pkg/webhook/create_agent_integration_test.go
+++ b/pkg/webhook/create_agent_integration_test.go
@@ -4,7 +4,7 @@ import (
 	"os"
 	"testing"
 
-	lru "github.com/hashicorp/golang-lru"
+	lru "github.com/karlseguin/ccache/v2"
 	"github.com/jenkins-x/go-scm/scm"
 	"github.com/jenkins-x/lighthouse/pkg/clients"
 	"github.com/jenkins-x/lighthouse/pkg/config"
@@ -72,8 +72,7 @@ func TestCreateAgentIntegration(t *testing.T) {
 	s.FileBrowsers, err = filebrowser.NewFileBrowsers(serverURL, fb)
 	assert.NoError(t, err)
 
-	s.InRepoCache, err = lru.New(5000)
-	assert.NoError(t, err)
+	s.InRepoCache = lru.New(lru.Configure())
 
 	s.ClientAgent = &plugins.ClientAgent{
 		BotName:           "test-bot",
diff --git a/pkg/webhook/events.go b/pkg/webhook/events.go
index bfde83670..0fa8862c9 100644
--- a/pkg/webhook/events.go
+++ b/pkg/webhook/events.go
@@ -23,7 +23,7 @@ import (
 	"strconv"
 	"sync"
 
-	lru "github.com/hashicorp/golang-lru"
+	lru "github.com/karlseguin/ccache/v2"
 	"github.com/jenkins-x/go-scm/scm"
 	"github.com/jenkins-x/lighthouse/pkg/config"
 	"github.com/jenkins-x/lighthouse/pkg/filebrowser"
diff --git a/pkg/webhook/webhook.go b/pkg/webhook/webhook.go
index 97e5fc677..ee6561288 100644
--- a/pkg/webhook/webhook.go
+++ b/pkg/webhook/webhook.go
@@ -14,7 +14,6 @@ import (
 
 	"github.com/jenkins-x/lighthouse/pkg/externalplugincfg"
 
-	lru "github.com/hashicorp/golang-lru"
 	"github.com/jenkins-x/go-scm/scm"
 	"github.com/jenkins-x/lighthouse/pkg/clients"
 	"github.com/jenkins-x/lighthouse/pkg/config"
@@ -27,6 +26,7 @@ import (
 	"github.com/jenkins-x/lighthouse/pkg/util"
 	"github.com/jenkins-x/lighthouse/pkg/version"
 	"github.com/jenkins-x/lighthouse/pkg/watcher"
+	lru "github.com/karlseguin/ccache/v2"
 	"github.com/pkg/errors"
 	"github.com/prometheus/client_golang/prometheus/promhttp"
 	"github.com/sirupsen/logrus"
@@ -509,10 +509,7 @@ func (o *WebhooksController) createHookServer() (*Server, error) {
 		return nil, errors.Wrapf(err, "failed to parse server URL %s", o.gitServerURL)
 	}
 
-	cache, err := lru.New(5000)
-	if err != nil {
-		return nil, errors.Wrapf(err, "failed to create in-repo LRU cache")
-	}
+	cache := lru.New(lru.Configure())
 
 	server := &Server{
 		ConfigAgent: configAgent,
@@ -520,7 +517,7 @@ func (o *WebhooksController) createHookServer() (*Server, error) {
 		Metrics:     promMetrics,
 		ServerURL:   serverURL,
 		InRepoCache: cache,
-		//TokenGenerator: secretAgent.GetTokenGenerator(o.webhookSecretFile),
+		// TokenGenerator: secretAgent.GetTokenGenerator(o.webhookSecretFile),
 	}
 	return server, nil
 }