Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
Go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091package pulls
import ( "log/slog" "time"
"tangled.org/core/appview/config" "tangled.org/core/appview/db" pulls_indexer "tangled.org/core/appview/indexer/pulls" "tangled.org/core/appview/knotacl" "tangled.org/core/appview/mentions" "tangled.org/core/appview/models" "tangled.org/core/appview/notify" "tangled.org/core/appview/oauth" "tangled.org/core/appview/pages" "tangled.org/core/appview/reporesolver" knotmirror "tangled.org/core/gitmirror/proto/gen" "tangled.org/core/idresolver" "tangled.org/core/ogre" "tangled.org/core/types"
"github.com/bluesky-social/indigo/util" indigoxrpc "github.com/bluesky-social/indigo/xrpc" "github.com/hashicorp/golang-lru/v2/expirable")
const ApplicationGzip = "application/gzip"
const ( diffCacheSize = 128 diffCacheTTL = 15 * time.Minute)
type Pulls struct { oauth *oauth.OAuth repoResolver *reporesolver.RepoResolver pages *pages.Pages idResolver *idresolver.Resolver mentionsResolver *mentions.Resolver db *db.DB config *config.Config notifier notify.Notifier acl *knotacl.Service logger *slog.Logger indexer *pulls_indexer.Indexer ogreClient *ogre.Client diffCache *expirable.LRU[string, types.DiffRenderer] gitmirror knotmirror.GitMirrorServiceClient
knotMirrorXRPC *indigoxrpc.Client}
func New( oauth *oauth.OAuth, repoResolver *reporesolver.RepoResolver, pages *pages.Pages, resolver *idresolver.Resolver, mentionsResolver *mentions.Resolver, db *db.DB, config *config.Config, notifier notify.Notifier, acl *knotacl.Service, indexer *pulls_indexer.Indexer, logger *slog.Logger, gitmirror knotmirror.GitMirrorServiceClient,) *Pulls { return &Pulls{ oauth: oauth, repoResolver: repoResolver, pages: pages, idResolver: resolver, mentionsResolver: mentionsResolver, db: db, config: config, notifier: notifier, acl: acl, logger: logger, indexer: indexer, ogreClient: ogre.NewClient(config.Ogre.Host), diffCache: expirable.NewLRU[string, types.DiffRenderer](diffCacheSize, nil, diffCacheTTL), gitmirror: gitmirror,
knotMirrorXRPC: &indigoxrpc.Client{ Host: config.KnotMirror.Url, Client: util.RobustHTTPClient(), }, }}
func ptrPullState(s models.PullState) *models.PullState { return &s }