···
securejoin "github.com/cyphar/filepath-securejoin"
"github.com/urfave/cli/v3"
"tangled.sh/tangled.sh/core/appview/idresolver"
···
didOrHandle := components[0]
-
did := resolveToDid(ctx, l, didOrHandle)
repoName := components[1]
qualifiedRepoName, _ := securejoin.SecureJoin(did, repoName)
···
-
func resolveToDid(ctx context.Context, l *slog.Logger, didOrHandle string) string {
resolver := idresolver.DefaultResolver()
ident, err := resolver.ResolveIdent(ctx, didOrHandle)
···
fmt.Fprintf(os.Stderr, "error resolving handle: %v\n", err)
-
// did:plc:foobarbaz/repo
-
return ident.DID.String()
func isPushPermitted(l *slog.Logger, user, qualifiedRepoName, endpoint string) bool {
···
+
"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]
+
identity := resolveIdentity(ctx, l, didOrHandle)
+
did := identity.DID.String()
repoName := components[1]
qualifiedRepoName, _ := securejoin.SecureJoin(did, repoName)
···
+
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)
+
if ident.Handle.IsInvalidHandle() {
+
l.Error("Error resolving handle", "invalid handle", didOrHandle)
+
fmt.Fprintf(os.Stderr, "error resolving handle: invalid handle\n")
func isPushPermitted(l *slog.Logger, user, qualifiedRepoName, endpoint string) bool {