forked from tangled.org/core
this repo has no description

guard: rewrite resolveToDid to resolveIdentity

returns an identity instead, this can be passed along as env vars to
hooks.

Signed-off-by: oppiliappan <me@oppi.li>

authored by oppi.li and committed by Tangled 80e7baff b5fe3db4

Changed files
+10 -5
guard
+10 -5
guard/guard.go
··· 10 10 "os/exec" 11 11 "strings" 12 12 13 + "github.com/bluesky-social/indigo/atproto/identity" 13 14 securejoin "github.com/cyphar/filepath-securejoin" 14 15 "github.com/urfave/cli/v3" 15 16 "tangled.sh/tangled.sh/core/appview/idresolver" ··· 113 114 } 114 115 115 116 didOrHandle := components[0] 116 - did := resolveToDid(ctx, l, didOrHandle) 117 + identity := resolveIdentity(ctx, l, didOrHandle) 118 + did := identity.DID.String() 117 119 repoName := components[1] 118 120 qualifiedRepoName, _ := securejoin.SecureJoin(did, repoName) 119 121 ··· 173 175 return nil 174 176 } 175 177 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 { 177 179 resolver := idresolver.DefaultResolver() 178 180 ident, err := resolver.ResolveIdent(ctx, didOrHandle) 179 181 if err != nil { ··· 181 183 fmt.Fprintf(os.Stderr, "error resolving handle: %v\n", err) 182 184 os.Exit(1) 183 185 } 184 - 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") 189 + os.Exit(1) 190 + } 191 + return ident 187 192 } 188 193 189 194 func isPushPermitted(l *slog.Logger, user, qualifiedRepoName, endpoint string) bool {