The compare forks option dropdown now shows repos in which you are a collaborator on instead of just repos you own.
+8
-5
appview/db/repos.go
+8
-5
appview/db/repos.go
···
466
var repos []Repo
467
468
rows, err := e.Query(
469
+
`select distinct r.did, r.name, r.knot, r.rkey, r.description, r.created, r.source
470
+
from repos r
471
+
left join collaborators c on r.at_uri = c.repo_at
472
+
where (r.did = ? or c.subject_did = ?)
473
+
and r.source is not null
474
+
and r.source != ''
475
+
order by r.created desc`,
476
+
did, did,
477
)
478
if err != nil {
479
return nil, err
+2
-2
appview/pages/templates/repo/pulls/fragments/pullCompareForks.html
+2
-2
appview/pages/templates/repo/pulls/fragments/pullCompareForks.html
+1
-1
appview/pages/templates/repo/pulls/fragments/pullHeader.html
+1
-1
appview/pages/templates/repo/pulls/fragments/pullHeader.html
+10
-5
appview/pulls/pulls.go
+10
-5
appview/pulls/pulls.go
···
850
}
851
852
func (s *Pulls) handleForkBasedPull(w http.ResponseWriter, r *http.Request, f *reporesolver.ResolvedRepo, user *oauth.User, forkRepo string, title, body, targetBranch, sourceBranch string, isStacked bool) {
853
-
fork, err := db.GetForkByDid(s.db, user.Did, forkRepo)
854
if errors.Is(err, sql.ErrNoRows) {
855
s.pages.Notice(w, "pull", "No such fork.")
856
return
···
908
// hiddenRef: hidden/feature-1/main (on repo-fork)
909
// targetBranch: main (on repo-1)
910
// sourceBranch: feature-1 (on repo-fork)
911
-
comparison, err := us.Compare(user.Did, fork.Name, hiddenRef, sourceBranch)
912
if err != nil {
913
log.Println("failed to compare across branches", err)
914
s.pages.Notice(w, "pull", err.Error())
···
1271
}
1272
1273
forkVal := r.URL.Query().Get("fork")
1274
-
1275
// fork repo
1276
-
repo, err := db.GetRepo(s.db, user.Did, forkVal)
1277
if err != nil {
1278
log.Println("failed to get repo", user.Did, forkVal)
1279
return
···
1286
return
1287
}
1288
1289
-
sourceResult, err := sourceBranchesClient.Branches(user.Did, repo.Name)
1290
if err != nil {
1291
log.Println("failed to reach knotserver for source branches", err)
1292
return
···
850
}
851
852
func (s *Pulls) handleForkBasedPull(w http.ResponseWriter, r *http.Request, f *reporesolver.ResolvedRepo, user *oauth.User, forkRepo string, title, body, targetBranch, sourceBranch string, isStacked bool) {
853
+
repoString := strings.SplitN(forkRepo, "/", 2)
854
+
forkOwnerDid := repoString[0]
855
+
repoName := repoString[1]
856
+
fork, err := db.GetForkByDid(s.db, forkOwnerDid, repoName)
857
if errors.Is(err, sql.ErrNoRows) {
858
s.pages.Notice(w, "pull", "No such fork.")
859
return
···
911
// hiddenRef: hidden/feature-1/main (on repo-fork)
912
// targetBranch: main (on repo-1)
913
// sourceBranch: feature-1 (on repo-fork)
914
+
comparison, err := us.Compare(fork.Did, fork.Name, hiddenRef, sourceBranch)
915
if err != nil {
916
log.Println("failed to compare across branches", err)
917
s.pages.Notice(w, "pull", err.Error())
···
1274
}
1275
1276
forkVal := r.URL.Query().Get("fork")
1277
+
repoString := strings.SplitN(forkVal, "/", 2)
1278
+
forkOwnerDid := repoString[0]
1279
+
forkName := repoString[1]
1280
// fork repo
1281
+
repo, err := db.GetRepo(s.db, forkOwnerDid, forkName)
1282
if err != nil {
1283
log.Println("failed to get repo", user.Did, forkVal)
1284
return
···
1291
return
1292
}
1293
1294
+
sourceResult, err := sourceBranchesClient.Branches(forkOwnerDid, repo.Name)
1295
if err != nil {
1296
log.Println("failed to reach knotserver for source branches", err)
1297
return