+16
-6
appview/state/repo.go
+16
-6
appview/state/repo.go
···
453
453
breadcrumbs = append(breadcrumbs, []string{elem, fmt.Sprintf("%s/%s", breadcrumbs[idx][1], elem)})
454
454
}
455
455
}
456
-
456
+
457
457
showRendered := false
458
458
renderToggle := false
459
459
···
461
461
renderToggle = true
462
462
showRendered = r.URL.Query().Get("code") != "true"
463
463
}
464
-
464
+
465
465
user := s.auth.GetUser(r)
466
466
s.pages.RepoBlob(w, pages.RepoBlobParams{
467
467
LoggedInUser: user,
···
1698
1698
1699
1699
forkName := fmt.Sprintf("%s", f.RepoName)
1700
1700
1701
+
// this check is *only* to see if the forked repo name already exists
1702
+
// in the user's account.
1701
1703
existingRepo, err := db.GetRepo(s.db, user.Did, f.RepoName)
1702
-
if err == nil && existingRepo != nil {
1704
+
if err != nil {
1705
+
if errors.Is(err, sql.ErrNoRows) {
1706
+
// no existing repo with this name found, we can use the name as is
1707
+
} else {
1708
+
log.Println("error fetching existing repo from db", err)
1709
+
s.pages.Notice(w, "repo", "Failed to fork this repository. Try again later.")
1710
+
return
1711
+
}
1712
+
} else if existingRepo != nil {
1713
+
// repo with this name already exists, append random string
1703
1714
forkName = fmt.Sprintf("%s-%s", forkName, randomString(3))
1704
1715
}
1705
-
1706
1716
secret, err := db.GetRegistrationKey(s.db, knot)
1707
1717
if err != nil {
1708
1718
s.pages.Notice(w, "repo", fmt.Sprintf("No registration key found for knot %s.", knot))
···
1711
1721
1712
1722
client, err := NewSignedClient(knot, secret, s.config.Dev)
1713
1723
if err != nil {
1714
-
s.pages.Notice(w, "repo", "Failed to connect to knot server.")
1724
+
s.pages.Notice(w, "repo", "Failed to reach knot server.")
1715
1725
return
1716
1726
}
1717
1727
···
1721
1731
} else {
1722
1732
uri = "https"
1723
1733
}
1724
-
sourceUrl := fmt.Sprintf("%s://%s/%s/%s", uri, knot, f.OwnerDid(), f.RepoName)
1734
+
sourceUrl := fmt.Sprintf("%s://%s/%s/%s", uri, f.Knot, f.OwnerDid(), f.RepoName)
1725
1735
sourceAt := f.RepoAt.String()
1726
1736
1727
1737
rkey := s.TID()