pages-server/server/handler/handler_auth.go

34 lines
1.1 KiB
Go
Raw Normal View History

2023-01-31 15:14:31 -05:00
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
}