package handler import ( "codeberg.org/codeberg/pages/server/cache" "codeberg.org/codeberg/pages/server/context" "codeberg.org/codeberg/pages/server/dns" "codeberg.org/codeberg/pages/server/gitea" "codeberg.org/codeberg/pages/server/upstream" "github.com/rs/zerolog" ) func handleAuth(log zerolog.Logger, ctx *context.Context, giteaClient *gitea.Client, mainDomainSuffix string, trimmedHost string, dnsLookupCache, authCache cache.SetGetKey, ) []string { // Get credentials for a given branch/repo/owner targetOwner, targetRepo, targetBranch := dns.GetTargetFromDNS(trimmedHost, mainDomainSuffix, dnsLookupCache) var credentials []string canonicalLink := false // Try to use the given repo on the given branch or the default branch log.Debug().Msg("auth preparations, trying to get credentials") if targetOpt, works := tryBranch(log, ctx, giteaClient, &upstream.Options{ TargetOwner: targetOwner, TargetRepo: targetRepo, TargetBranch: targetBranch, }, canonicalLink); works { credentials = targetOpt.CheckAuth(giteaClient, authCache) } return credentials }