diff --git a/appview/db/repos.go b/appview/db/repos.go index 61e5029a..9c82b208 100644 --- a/appview/db/repos.go +++ b/appview/db/repos.go @@ -391,7 +391,7 @@ func GetRepo(e Execer, did, name string) (*Repo, error) { var description, spindle sql.NullString row := e.QueryRow(` - select did, name, knot, created, at_uri, description, spindle + select did, name, knot, created, at_uri, description, spindle, rkey from repos where did = ? and name = ? `, @@ -400,7 +400,7 @@ func GetRepo(e Execer, did, name string) (*Repo, error) { ) var createdAt string - if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt, &repo.AtUri, &description, &spindle); err != nil { + if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt, &repo.AtUri, &description, &spindle, &repo.Rkey); err != nil { return nil, err } createdAtTime, _ := time.Parse(time.RFC3339, createdAt) @@ -421,10 +421,10 @@ func GetRepoByAtUri(e Execer, atUri string) (*Repo, error) { var repo Repo var nullableDescription sql.NullString - row := e.QueryRow(`select did, name, knot, created, at_uri, description from repos where at_uri = ?`, atUri) + row := e.QueryRow(`select did, name, knot, created, at_uri, rkey, description from repos where at_uri = ?`, atUri) var createdAt string - if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt, &repo.AtUri, &nullableDescription); err != nil { + if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt, &repo.AtUri, &repo.Rkey, &nullableDescription); err != nil { return nil, err } createdAtTime, _ := time.Parse(time.RFC3339, createdAt) @@ -440,6 +440,9 @@ func GetRepoByAtUri(e Execer, atUri string) (*Repo, error) { } func AddRepo(e Execer, repo *Repo) error { + if repo.AtUri == "" { + repo.AtUri = repo.RepoAt().String() + } _, err := e.Exec( `insert into repos (did, name, knot, rkey, at_uri, description, source) diff --git a/appview/pulls/pulls.go b/appview/pulls/pulls.go index f52bd570..2621bce4 100644 --- a/appview/pulls/pulls.go +++ b/appview/pulls/pulls.go @@ -28,7 +28,6 @@ import ( "github.com/bluekeyes/go-gitdiff/gitdiff" comatproto "github.com/bluesky-social/indigo/api/atproto" - "github.com/bluesky-social/indigo/atproto/syntax" lexutil "github.com/bluesky-social/indigo/lex/util" "github.com/go-chi/chi/v5" "github.com/google/uuid" @@ -918,12 +917,8 @@ func (s *Pulls) handleForkBasedPull(w http.ResponseWriter, r *http.Request, f *r return } - forkAtUri, err := syntax.ParseATURI(fork.AtUri) - if err != nil { - log.Println("failed to parse fork AT URI", err) - s.pages.Notice(w, "pull", "Failed to create pull request. Try again later.") - return - } + forkAtUri := fork.RepoAt() + forkAtUriStr := forkAtUri.String() pullSource := &db.PullSource{ Branch: sourceBranch, @@ -931,7 +926,7 @@ func (s *Pulls) handleForkBasedPull(w http.ResponseWriter, r *http.Request, f *r } recordPullSource := &tangled.RepoPull_Source{ Branch: sourceBranch, - Repo: &fork.AtUri, + Repo: &forkAtUriStr, Sha: sourceRev, } diff --git a/appview/repo/repo.go b/appview/repo/repo.go index 668c573d..dbb94440 100644 --- a/appview/repo/repo.go +++ b/appview/repo/repo.go @@ -1498,7 +1498,6 @@ func (rp *Repo) ForkRepo(w http.ResponseWriter, r *http.Request) { } log.Println("created repo record: ", atresp.Uri) - repo.AtUri = atresp.Uri err = db.AddRepo(tx, repo) if err != nil { log.Println(err) diff --git a/appview/state/state.go b/appview/state/state.go index 8e8e25f0..89a59aae 100644 --- a/appview/state/state.go +++ b/appview/state/state.go @@ -400,7 +400,6 @@ func (s *State) NewRepo(w http.ResponseWriter, r *http.Request) { // continue } - repo.AtUri = atresp.Uri err = db.AddRepo(tx, repo) if err != nil { log.Println(err)