···
13
+
"github.com/bluesky-social/indigo/atproto/identity"
securejoin "github.com/cyphar/filepath-securejoin"
"github.com/urfave/cli/v3"
"tangled.sh/tangled.sh/core/appview/idresolver"
···
didOrHandle := components[0]
116
-
did := resolveToDid(ctx, l, didOrHandle)
117
+
identity := resolveIdentity(ctx, l, didOrHandle)
118
+
did := identity.DID.String()
repoName := components[1]
qualifiedRepoName, _ := securejoin.SecureJoin(did, repoName)
···
176
-
func resolveToDid(ctx context.Context, l *slog.Logger, didOrHandle string) string {
178
+
func resolveIdentity(ctx context.Context, l *slog.Logger, didOrHandle string) *identity.Identity {
resolver := idresolver.DefaultResolver()
ident, err := resolver.ResolveIdent(ctx, didOrHandle)
···
fmt.Fprintf(os.Stderr, "error resolving handle: %v\n", err)
185
-
// did:plc:foobarbaz/repo
186
-
return ident.DID.String()
186
+
if ident.Handle.IsInvalidHandle() {
187
+
l.Error("Error resolving handle", "invalid handle", didOrHandle)
188
+
fmt.Fprintf(os.Stderr, "error resolving handle: invalid handle\n")
func isPushPermitted(l *slog.Logger, user, qualifiedRepoName, endpoint string) bool {