+10
-40
appview/issues/issues.go
+10
-40
appview/issues/issues.go
···
119
120
rp.pages.RepoSingleIssue(w, pages.RepoSingleIssueParams{
121
LoggedInUser: user,
122
-
RepoInfo: f.RepoInfo(user),
123
Issue: issue,
124
CommentList: issue.CommentList(),
125
OrderedReactionKinds: models.OrderedReactionKinds,
···
132
func (rp *Issues) EditIssue(w http.ResponseWriter, r *http.Request) {
133
l := rp.logger.With("handler", "EditIssue")
134
user := rp.oauth.GetUser(r)
135
-
f, err := rp.repoResolver.Resolve(r)
136
-
if err != nil {
137
-
l.Error("failed to get repo and knot", "err", err)
138
-
return
139
-
}
140
141
issue, ok := r.Context().Value("issue").(*models.Issue)
142
if !ok {
···
149
case http.MethodGet:
150
rp.pages.EditIssueFragment(w, pages.EditIssueParams{
151
LoggedInUser: user,
152
-
RepoInfo: f.RepoInfo(user),
153
Issue: issue,
154
})
155
case http.MethodPost:
···
470
func (rp *Issues) IssueComment(w http.ResponseWriter, r *http.Request) {
471
l := rp.logger.With("handler", "IssueComment")
472
user := rp.oauth.GetUser(r)
473
-
f, err := rp.repoResolver.Resolve(r)
474
-
if err != nil {
475
-
l.Error("failed to get repo and knot", "err", err)
476
-
return
477
-
}
478
479
issue, ok := r.Context().Value("issue").(*models.Issue)
480
if !ok {
···
502
503
rp.pages.IssueCommentBodyFragment(w, pages.IssueCommentBodyParams{
504
LoggedInUser: user,
505
-
RepoInfo: f.RepoInfo(user),
506
Issue: issue,
507
Comment: &comment,
508
})
···
511
func (rp *Issues) EditIssueComment(w http.ResponseWriter, r *http.Request) {
512
l := rp.logger.With("handler", "EditIssueComment")
513
user := rp.oauth.GetUser(r)
514
-
f, err := rp.repoResolver.Resolve(r)
515
-
if err != nil {
516
-
l.Error("failed to get repo and knot", "err", err)
517
-
return
518
-
}
519
520
issue, ok := r.Context().Value("issue").(*models.Issue)
521
if !ok {
···
551
case http.MethodGet:
552
rp.pages.EditIssueCommentFragment(w, pages.EditIssueCommentParams{
553
LoggedInUser: user,
554
-
RepoInfo: f.RepoInfo(user),
555
Issue: issue,
556
Comment: &comment,
557
})
···
605
// return new comment body with htmx
606
rp.pages.IssueCommentBodyFragment(w, pages.IssueCommentBodyParams{
607
LoggedInUser: user,
608
-
RepoInfo: f.RepoInfo(user),
609
Issue: issue,
610
Comment: &newComment,
611
})
···
615
func (rp *Issues) ReplyIssueCommentPlaceholder(w http.ResponseWriter, r *http.Request) {
616
l := rp.logger.With("handler", "ReplyIssueCommentPlaceholder")
617
user := rp.oauth.GetUser(r)
618
-
f, err := rp.repoResolver.Resolve(r)
619
-
if err != nil {
620
-
l.Error("failed to get repo and knot", "err", err)
621
-
return
622
-
}
623
624
issue, ok := r.Context().Value("issue").(*models.Issue)
625
if !ok {
···
647
648
rp.pages.ReplyIssueCommentPlaceholderFragment(w, pages.ReplyIssueCommentPlaceholderParams{
649
LoggedInUser: user,
650
-
RepoInfo: f.RepoInfo(user),
651
Issue: issue,
652
Comment: &comment,
653
})
···
656
func (rp *Issues) ReplyIssueComment(w http.ResponseWriter, r *http.Request) {
657
l := rp.logger.With("handler", "ReplyIssueComment")
658
user := rp.oauth.GetUser(r)
659
-
f, err := rp.repoResolver.Resolve(r)
660
-
if err != nil {
661
-
l.Error("failed to get repo and knot", "err", err)
662
-
return
663
-
}
664
665
issue, ok := r.Context().Value("issue").(*models.Issue)
666
if !ok {
···
688
689
rp.pages.ReplyIssueCommentFragment(w, pages.ReplyIssueCommentParams{
690
LoggedInUser: user,
691
-
RepoInfo: f.RepoInfo(user),
692
Issue: issue,
693
Comment: &comment,
694
})
···
697
func (rp *Issues) DeleteIssueComment(w http.ResponseWriter, r *http.Request) {
698
l := rp.logger.With("handler", "DeleteIssueComment")
699
user := rp.oauth.GetUser(r)
700
-
f, err := rp.repoResolver.Resolve(r)
701
-
if err != nil {
702
-
l.Error("failed to get repo and knot", "err", err)
703
-
return
704
-
}
705
706
issue, ok := r.Context().Value("issue").(*models.Issue)
707
if !ok {
···
772
// htmx fragment of comment after deletion
773
rp.pages.IssueCommentBodyFragment(w, pages.IssueCommentBodyParams{
774
LoggedInUser: user,
775
-
RepoInfo: f.RepoInfo(user),
776
Issue: issue,
777
Comment: &comment,
778
})
···
873
874
rp.pages.RepoIssues(w, pages.RepoIssuesParams{
875
LoggedInUser: rp.oauth.GetUser(r),
876
-
RepoInfo: f.RepoInfo(user),
877
Issues: issues,
878
IssueCount: totalIssues,
879
LabelDefs: defs,
···
897
case http.MethodGet:
898
rp.pages.RepoNewIssue(w, pages.RepoNewIssueParams{
899
LoggedInUser: user,
900
-
RepoInfo: f.RepoInfo(user),
901
})
902
case http.MethodPost:
903
issue := &models.Issue{
···
119
120
rp.pages.RepoSingleIssue(w, pages.RepoSingleIssueParams{
121
LoggedInUser: user,
122
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
123
Issue: issue,
124
CommentList: issue.CommentList(),
125
OrderedReactionKinds: models.OrderedReactionKinds,
···
132
func (rp *Issues) EditIssue(w http.ResponseWriter, r *http.Request) {
133
l := rp.logger.With("handler", "EditIssue")
134
user := rp.oauth.GetUser(r)
135
136
issue, ok := r.Context().Value("issue").(*models.Issue)
137
if !ok {
···
144
case http.MethodGet:
145
rp.pages.EditIssueFragment(w, pages.EditIssueParams{
146
LoggedInUser: user,
147
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
148
Issue: issue,
149
})
150
case http.MethodPost:
···
465
func (rp *Issues) IssueComment(w http.ResponseWriter, r *http.Request) {
466
l := rp.logger.With("handler", "IssueComment")
467
user := rp.oauth.GetUser(r)
468
469
issue, ok := r.Context().Value("issue").(*models.Issue)
470
if !ok {
···
492
493
rp.pages.IssueCommentBodyFragment(w, pages.IssueCommentBodyParams{
494
LoggedInUser: user,
495
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
496
Issue: issue,
497
Comment: &comment,
498
})
···
501
func (rp *Issues) EditIssueComment(w http.ResponseWriter, r *http.Request) {
502
l := rp.logger.With("handler", "EditIssueComment")
503
user := rp.oauth.GetUser(r)
504
505
issue, ok := r.Context().Value("issue").(*models.Issue)
506
if !ok {
···
536
case http.MethodGet:
537
rp.pages.EditIssueCommentFragment(w, pages.EditIssueCommentParams{
538
LoggedInUser: user,
539
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
540
Issue: issue,
541
Comment: &comment,
542
})
···
590
// return new comment body with htmx
591
rp.pages.IssueCommentBodyFragment(w, pages.IssueCommentBodyParams{
592
LoggedInUser: user,
593
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
594
Issue: issue,
595
Comment: &newComment,
596
})
···
600
func (rp *Issues) ReplyIssueCommentPlaceholder(w http.ResponseWriter, r *http.Request) {
601
l := rp.logger.With("handler", "ReplyIssueCommentPlaceholder")
602
user := rp.oauth.GetUser(r)
603
604
issue, ok := r.Context().Value("issue").(*models.Issue)
605
if !ok {
···
627
628
rp.pages.ReplyIssueCommentPlaceholderFragment(w, pages.ReplyIssueCommentPlaceholderParams{
629
LoggedInUser: user,
630
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
631
Issue: issue,
632
Comment: &comment,
633
})
···
636
func (rp *Issues) ReplyIssueComment(w http.ResponseWriter, r *http.Request) {
637
l := rp.logger.With("handler", "ReplyIssueComment")
638
user := rp.oauth.GetUser(r)
639
640
issue, ok := r.Context().Value("issue").(*models.Issue)
641
if !ok {
···
663
664
rp.pages.ReplyIssueCommentFragment(w, pages.ReplyIssueCommentParams{
665
LoggedInUser: user,
666
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
667
Issue: issue,
668
Comment: &comment,
669
})
···
672
func (rp *Issues) DeleteIssueComment(w http.ResponseWriter, r *http.Request) {
673
l := rp.logger.With("handler", "DeleteIssueComment")
674
user := rp.oauth.GetUser(r)
675
676
issue, ok := r.Context().Value("issue").(*models.Issue)
677
if !ok {
···
742
// htmx fragment of comment after deletion
743
rp.pages.IssueCommentBodyFragment(w, pages.IssueCommentBodyParams{
744
LoggedInUser: user,
745
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
746
Issue: issue,
747
Comment: &comment,
748
})
···
843
844
rp.pages.RepoIssues(w, pages.RepoIssuesParams{
845
LoggedInUser: rp.oauth.GetUser(r),
846
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
847
Issues: issues,
848
IssueCount: totalIssues,
849
LabelDefs: defs,
···
867
case http.MethodGet:
868
rp.pages.RepoNewIssue(w, pages.RepoNewIssueParams{
869
LoggedInUser: user,
870
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
871
})
872
case http.MethodPost:
873
issue := &models.Issue{
+2
-2
appview/pipelines/pipelines.go
+2
-2
appview/pipelines/pipelines.go
···
92
93
p.pages.Pipelines(w, pages.PipelinesParams{
94
LoggedInUser: user,
95
-
RepoInfo: f.RepoInfo(user),
96
Pipelines: ps,
97
})
98
}
···
141
142
p.pages.Workflow(w, pages.WorkflowParams{
143
LoggedInUser: user,
144
-
RepoInfo: f.RepoInfo(user),
145
Pipeline: singlePipeline,
146
Workflow: workflow,
147
})
···
92
93
p.pages.Pipelines(w, pages.PipelinesParams{
94
LoggedInUser: user,
95
+
RepoInfo: p.repoResolver.GetRepoInfo(r, user),
96
Pipelines: ps,
97
})
98
}
···
141
142
p.pages.Workflow(w, pages.WorkflowParams{
143
LoggedInUser: user,
144
+
RepoInfo: p.repoResolver.GetRepoInfo(r, user),
145
Pipeline: singlePipeline,
146
Workflow: workflow,
147
})
+12
-38
appview/pulls/pulls.go
+12
-38
appview/pulls/pulls.go
···
124
125
s.pages.PullActionsFragment(w, pages.PullActionsParams{
126
LoggedInUser: user,
127
-
RepoInfo: f.RepoInfo(user),
128
Pull: pull,
129
RoundNumber: roundNumber,
130
MergeCheck: mergeCheckResponse,
···
221
222
s.pages.RepoSinglePull(w, pages.RepoSinglePullParams{
223
LoggedInUser: user,
224
-
RepoInfo: f.RepoInfo(user),
225
Pull: pull,
226
Stack: stack,
227
AbandonedPulls: abandonedPulls,
···
421
422
func (s *Pulls) RepoPullPatch(w http.ResponseWriter, r *http.Request) {
423
user := s.oauth.GetUser(r)
424
-
f, err := s.repoResolver.Resolve(r)
425
-
if err != nil {
426
-
log.Println("failed to get repo and knot", err)
427
-
return
428
-
}
429
430
var diffOpts types.DiffOpts
431
if d := r.URL.Query().Get("diff"); d == "split" {
···
454
455
s.pages.RepoPullPatchPage(w, pages.RepoPullPatchParams{
456
LoggedInUser: user,
457
-
RepoInfo: f.RepoInfo(user),
458
Pull: pull,
459
Stack: stack,
460
Round: roundIdInt,
···
468
func (s *Pulls) RepoPullInterdiff(w http.ResponseWriter, r *http.Request) {
469
user := s.oauth.GetUser(r)
470
471
-
f, err := s.repoResolver.Resolve(r)
472
-
if err != nil {
473
-
log.Println("failed to get repo and knot", err)
474
-
return
475
-
}
476
-
477
var diffOpts types.DiffOpts
478
if d := r.URL.Query().Get("diff"); d == "split" {
479
diffOpts.Split = true
···
518
519
s.pages.RepoPullInterdiffPage(w, pages.RepoPullInterdiffParams{
520
LoggedInUser: s.oauth.GetUser(r),
521
-
RepoInfo: f.RepoInfo(user),
522
Pull: pull,
523
Round: roundIdInt,
524
Interdiff: interdiff,
···
678
679
s.pages.RepoPulls(w, pages.RepoPullsParams{
680
LoggedInUser: s.oauth.GetUser(r),
681
-
RepoInfo: f.RepoInfo(user),
682
Pulls: pulls,
683
LabelDefs: defs,
684
FilteringBy: state,
···
716
case http.MethodGet:
717
s.pages.PullNewCommentFragment(w, pages.PullNewCommentParams{
718
LoggedInUser: user,
719
-
RepoInfo: f.RepoInfo(user),
720
Pull: pull,
721
RoundNumber: roundNumber,
722
})
···
850
851
s.pages.RepoNewPull(w, pages.RepoNewPullParams{
852
LoggedInUser: user,
853
-
RepoInfo: f.RepoInfo(user),
854
Branches: result.Branches,
855
Strategy: strategy,
856
SourceBranch: sourceBranch,
···
1405
1406
func (s *Pulls) PatchUploadFragment(w http.ResponseWriter, r *http.Request) {
1407
user := s.oauth.GetUser(r)
1408
-
f, err := s.repoResolver.Resolve(r)
1409
-
if err != nil {
1410
-
log.Println("failed to get repo and knot", err)
1411
-
return
1412
-
}
1413
1414
s.pages.PullPatchUploadFragment(w, pages.PullPatchUploadParams{
1415
-
RepoInfo: f.RepoInfo(user),
1416
})
1417
}
1418
···
1466
}
1467
1468
s.pages.PullCompareBranchesFragment(w, pages.PullCompareBranchesParams{
1469
-
RepoInfo: f.RepoInfo(user),
1470
Branches: withoutDefault,
1471
})
1472
}
1473
1474
func (s *Pulls) CompareForksFragment(w http.ResponseWriter, r *http.Request) {
1475
user := s.oauth.GetUser(r)
1476
-
f, err := s.repoResolver.Resolve(r)
1477
-
if err != nil {
1478
-
log.Println("failed to get repo and knot", err)
1479
-
return
1480
-
}
1481
1482
forks, err := db.GetForksByDid(s.db, user.Did)
1483
if err != nil {
···
1486
}
1487
1488
s.pages.PullCompareForkFragment(w, pages.PullCompareForkParams{
1489
-
RepoInfo: f.RepoInfo(user),
1490
Forks: forks,
1491
Selected: r.URL.Query().Get("fork"),
1492
})
···
1579
})
1580
1581
s.pages.PullCompareForkBranchesFragment(w, pages.PullCompareForkBranchesParams{
1582
-
RepoInfo: f.RepoInfo(user),
1583
SourceBranches: sourceBranches.Branches,
1584
TargetBranches: targetBranches.Branches,
1585
})
···
1587
1588
func (s *Pulls) ResubmitPull(w http.ResponseWriter, r *http.Request) {
1589
user := s.oauth.GetUser(r)
1590
-
f, err := s.repoResolver.Resolve(r)
1591
-
if err != nil {
1592
-
log.Println("failed to get repo and knot", err)
1593
-
return
1594
-
}
1595
1596
pull, ok := r.Context().Value("pull").(*models.Pull)
1597
if !ok {
···
1603
switch r.Method {
1604
case http.MethodGet:
1605
s.pages.PullResubmitFragment(w, pages.PullResubmitParams{
1606
-
RepoInfo: f.RepoInfo(user),
1607
Pull: pull,
1608
})
1609
return
···
124
125
s.pages.PullActionsFragment(w, pages.PullActionsParams{
126
LoggedInUser: user,
127
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
128
Pull: pull,
129
RoundNumber: roundNumber,
130
MergeCheck: mergeCheckResponse,
···
221
222
s.pages.RepoSinglePull(w, pages.RepoSinglePullParams{
223
LoggedInUser: user,
224
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
225
Pull: pull,
226
Stack: stack,
227
AbandonedPulls: abandonedPulls,
···
421
422
func (s *Pulls) RepoPullPatch(w http.ResponseWriter, r *http.Request) {
423
user := s.oauth.GetUser(r)
424
425
var diffOpts types.DiffOpts
426
if d := r.URL.Query().Get("diff"); d == "split" {
···
449
450
s.pages.RepoPullPatchPage(w, pages.RepoPullPatchParams{
451
LoggedInUser: user,
452
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
453
Pull: pull,
454
Stack: stack,
455
Round: roundIdInt,
···
463
func (s *Pulls) RepoPullInterdiff(w http.ResponseWriter, r *http.Request) {
464
user := s.oauth.GetUser(r)
465
466
var diffOpts types.DiffOpts
467
if d := r.URL.Query().Get("diff"); d == "split" {
468
diffOpts.Split = true
···
507
508
s.pages.RepoPullInterdiffPage(w, pages.RepoPullInterdiffParams{
509
LoggedInUser: s.oauth.GetUser(r),
510
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
511
Pull: pull,
512
Round: roundIdInt,
513
Interdiff: interdiff,
···
667
668
s.pages.RepoPulls(w, pages.RepoPullsParams{
669
LoggedInUser: s.oauth.GetUser(r),
670
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
671
Pulls: pulls,
672
LabelDefs: defs,
673
FilteringBy: state,
···
705
case http.MethodGet:
706
s.pages.PullNewCommentFragment(w, pages.PullNewCommentParams{
707
LoggedInUser: user,
708
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
709
Pull: pull,
710
RoundNumber: roundNumber,
711
})
···
839
840
s.pages.RepoNewPull(w, pages.RepoNewPullParams{
841
LoggedInUser: user,
842
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
843
Branches: result.Branches,
844
Strategy: strategy,
845
SourceBranch: sourceBranch,
···
1394
1395
func (s *Pulls) PatchUploadFragment(w http.ResponseWriter, r *http.Request) {
1396
user := s.oauth.GetUser(r)
1397
1398
s.pages.PullPatchUploadFragment(w, pages.PullPatchUploadParams{
1399
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1400
})
1401
}
1402
···
1450
}
1451
1452
s.pages.PullCompareBranchesFragment(w, pages.PullCompareBranchesParams{
1453
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1454
Branches: withoutDefault,
1455
})
1456
}
1457
1458
func (s *Pulls) CompareForksFragment(w http.ResponseWriter, r *http.Request) {
1459
user := s.oauth.GetUser(r)
1460
1461
forks, err := db.GetForksByDid(s.db, user.Did)
1462
if err != nil {
···
1465
}
1466
1467
s.pages.PullCompareForkFragment(w, pages.PullCompareForkParams{
1468
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1469
Forks: forks,
1470
Selected: r.URL.Query().Get("fork"),
1471
})
···
1558
})
1559
1560
s.pages.PullCompareForkBranchesFragment(w, pages.PullCompareForkBranchesParams{
1561
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1562
SourceBranches: sourceBranches.Branches,
1563
TargetBranches: targetBranches.Branches,
1564
})
···
1566
1567
func (s *Pulls) ResubmitPull(w http.ResponseWriter, r *http.Request) {
1568
user := s.oauth.GetUser(r)
1569
1570
pull, ok := r.Context().Value("pull").(*models.Pull)
1571
if !ok {
···
1577
switch r.Method {
1578
case http.MethodGet:
1579
s.pages.PullResubmitFragment(w, pages.PullResubmitParams{
1580
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1581
Pull: pull,
1582
})
1583
return
+1
-1
appview/repo/artifact.go
+1
-1
appview/repo/artifact.go
+1
-1
appview/repo/blob.go
+1
-1
appview/repo/blob.go
+1
-1
appview/repo/branches.go
+1
-1
appview/repo/branches.go
+2
-2
appview/repo/compare.go
+2
-2
appview/repo/compare.go
···
90
91
rp.pages.RepoCompareNew(w, pages.RepoCompareNewParams{
92
LoggedInUser: user,
93
-
RepoInfo: f.RepoInfo(user),
94
Branches: branches,
95
Tags: tags.Tags,
96
Base: base,
···
202
203
rp.pages.RepoCompare(w, pages.RepoCompareParams{
204
LoggedInUser: user,
205
-
RepoInfo: f.RepoInfo(user),
206
Branches: branches.Branches,
207
Tags: tags.Tags,
208
Base: base,
···
90
91
rp.pages.RepoCompareNew(w, pages.RepoCompareNewParams{
92
LoggedInUser: user,
93
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
94
Branches: branches,
95
Tags: tags.Tags,
96
Base: base,
···
202
203
rp.pages.RepoCompare(w, pages.RepoCompareParams{
204
LoggedInUser: user,
205
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
206
Branches: branches.Branches,
207
Tags: tags.Tags,
208
Base: base,
+2
-2
appview/repo/index.go
+2
-2
appview/repo/index.go
···
60
rp.pages.RepoIndexPage(w, pages.RepoIndexParams{
61
LoggedInUser: user,
62
NeedsKnotUpgrade: true,
63
-
RepoInfo: f.RepoInfo(user),
64
})
65
return
66
}
···
146
147
rp.pages.RepoIndexPage(w, pages.RepoIndexParams{
148
LoggedInUser: user,
149
-
RepoInfo: f.RepoInfo(user),
150
TagMap: tagMap,
151
RepoIndexResponse: *result,
152
CommitsTrunc: commitsTrunc,
···
60
rp.pages.RepoIndexPage(w, pages.RepoIndexParams{
61
LoggedInUser: user,
62
NeedsKnotUpgrade: true,
63
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
64
})
65
return
66
}
···
146
147
rp.pages.RepoIndexPage(w, pages.RepoIndexParams{
148
LoggedInUser: user,
149
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
150
TagMap: tagMap,
151
RepoIndexResponse: *result,
152
CommitsTrunc: commitsTrunc,
+2
-2
appview/repo/log.go
+2
-2
appview/repo/log.go
···
134
rp.pages.RepoLog(w, pages.RepoLogParams{
135
LoggedInUser: user,
136
TagMap: tagMap,
137
-
RepoInfo: f.RepoInfo(user),
138
RepoLogResponse: xrpcResp,
139
EmailToDid: emailToDidMap,
140
VerifiedCommits: vc,
···
210
211
rp.pages.RepoCommit(w, pages.RepoCommitParams{
212
LoggedInUser: user,
213
-
RepoInfo: f.RepoInfo(user),
214
RepoCommitResponse: result,
215
EmailToDid: emailToDidMap,
216
VerifiedCommit: vc,
···
134
rp.pages.RepoLog(w, pages.RepoLogParams{
135
LoggedInUser: user,
136
TagMap: tagMap,
137
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
138
RepoLogResponse: xrpcResp,
139
EmailToDid: emailToDidMap,
140
VerifiedCommits: vc,
···
210
211
rp.pages.RepoCommit(w, pages.RepoCommitParams{
212
LoggedInUser: user,
213
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
214
RepoCommitResponse: result,
215
EmailToDid: emailToDidMap,
216
VerifiedCommit: vc,
+3
-3
appview/repo/repo.go
+3
-3
appview/repo/repo.go
···
635
user := rp.oauth.GetUser(r)
636
rp.pages.LabelPanel(w, pages.LabelPanelParams{
637
LoggedInUser: user,
638
-
RepoInfo: f.RepoInfo(user),
639
Defs: defs,
640
Subject: subject.String(),
641
State: state,
···
683
user := rp.oauth.GetUser(r)
684
rp.pages.EditLabelPanel(w, pages.EditLabelPanelParams{
685
LoggedInUser: user,
686
-
RepoInfo: f.RepoInfo(user),
687
Defs: defs,
688
Subject: subject.String(),
689
State: state,
···
1006
rp.pages.ForkRepo(w, pages.ForkRepoParams{
1007
LoggedInUser: user,
1008
Knots: knots,
1009
-
RepoInfo: f.RepoInfo(user),
1010
})
1011
1012
case http.MethodPost:
···
635
user := rp.oauth.GetUser(r)
636
rp.pages.LabelPanel(w, pages.LabelPanelParams{
637
LoggedInUser: user,
638
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
639
Defs: defs,
640
Subject: subject.String(),
641
State: state,
···
683
user := rp.oauth.GetUser(r)
684
rp.pages.EditLabelPanel(w, pages.EditLabelPanelParams{
685
LoggedInUser: user,
686
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
687
Defs: defs,
688
Subject: subject.String(),
689
State: state,
···
1006
rp.pages.ForkRepo(w, pages.ForkRepoParams{
1007
LoggedInUser: user,
1008
Knots: knots,
1009
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
1010
})
1011
1012
case http.MethodPost:
+3
-3
appview/repo/settings.go
+3
-3
appview/repo/settings.go
···
255
256
rp.pages.RepoGeneralSettings(w, pages.RepoGeneralSettingsParams{
257
LoggedInUser: user,
258
-
RepoInfo: f.RepoInfo(user),
259
Branches: result.Branches,
260
Labels: labels,
261
DefaultLabels: defaultLabels,
···
306
307
rp.pages.RepoAccessSettings(w, pages.RepoAccessSettingsParams{
308
LoggedInUser: user,
309
-
RepoInfo: f.RepoInfo(user),
310
Tabs: settingsTabs,
311
Tab: "access",
312
Collaborators: collaborators,
···
367
368
rp.pages.RepoPipelineSettings(w, pages.RepoPipelineSettingsParams{
369
LoggedInUser: user,
370
-
RepoInfo: f.RepoInfo(user),
371
Tabs: settingsTabs,
372
Tab: "pipelines",
373
Spindles: spindles,
···
255
256
rp.pages.RepoGeneralSettings(w, pages.RepoGeneralSettingsParams{
257
LoggedInUser: user,
258
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
259
Branches: result.Branches,
260
Labels: labels,
261
DefaultLabels: defaultLabels,
···
306
307
rp.pages.RepoAccessSettings(w, pages.RepoAccessSettingsParams{
308
LoggedInUser: user,
309
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
310
Tabs: settingsTabs,
311
Tab: "access",
312
Collaborators: collaborators,
···
367
368
rp.pages.RepoPipelineSettings(w, pages.RepoPipelineSettingsParams{
369
LoggedInUser: user,
370
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
371
Tabs: settingsTabs,
372
Tab: "pipelines",
373
Spindles: spindles,
+1
-1
appview/repo/tree.go
+1
-1
appview/repo/tree.go
+43
-43
appview/reporesolver/resolver.go
+43
-43
appview/reporesolver/resolver.go
···
20
21
type ResolvedRepo struct {
22
models.Repo
23
-
OwnerId identity.Identity
24
-
CurrentDir string
25
-
Ref string
26
-
27
-
rr *RepoResolver
28
}
29
30
type RepoResolver struct {
···
49
return path.Join(user, name)
50
}
51
52
func (rr *RepoResolver) Resolve(r *http.Request) (*ResolvedRepo, error) {
53
repo, ok := r.Context().Value("repo").(*models.Repo)
54
if !ok {
55
log.Println("malformed middleware: `repo` not exist in context")
56
return nil, fmt.Errorf("malformed middleware")
57
}
58
-
id, ok := r.Context().Value("resolvedId").(identity.Identity)
59
-
if !ok {
60
-
log.Println("malformed middleware")
61
-
return nil, fmt.Errorf("malformed middleware")
62
}
63
64
currentDir := path.Dir(extractPathAfterRef(r.URL.EscapedPath()))
65
ref := chi.URLParam(r, "ref")
66
67
-
return &ResolvedRepo{
68
-
Repo: *repo,
69
-
OwnerId: id,
70
-
CurrentDir: currentDir,
71
-
Ref: ref,
72
-
73
-
rr: rr,
74
-
}, nil
75
-
}
76
-
77
-
// this function is a bit weird since it now returns RepoInfo from an entirely different
78
-
// package. we should refactor this or get rid of RepoInfo entirely.
79
-
func (f *ResolvedRepo) RepoInfo(user *oauth.User) repoinfo.RepoInfo {
80
-
repoAt := f.RepoAt()
81
isStarred := false
82
roles := repoinfo.RolesInRepo{}
83
if user != nil {
84
-
isStarred = db.GetStarStatus(f.rr.execer, user.Did, repoAt)
85
-
roles.Roles = f.rr.enforcer.GetPermissionsInRepo(user.Did, f.Knot, f.DidSlashRepo())
86
}
87
88
-
stats := f.RepoStats
89
if stats == nil {
90
-
starCount, err := db.GetStarCount(f.rr.execer, repoAt)
91
if err != nil {
92
log.Println("failed to get star count for ", repoAt)
93
}
94
-
issueCount, err := db.GetIssueCount(f.rr.execer, repoAt)
95
if err != nil {
96
log.Println("failed to get issue count for ", repoAt)
97
}
98
-
pullCount, err := db.GetPullCount(f.rr.execer, repoAt)
99
if err != nil {
100
log.Println("failed to get pull count for ", repoAt)
101
}
···
106
}
107
}
108
109
-
sourceRepo, err := db.GetRepoSourceRepo(f.rr.execer, repoAt)
110
-
if err != nil {
111
-
log.Println("failed to get repo by at uri", err)
112
}
113
114
repoInfo := repoinfo.RepoInfo{
115
// this is basically a models.Repo
116
-
OwnerDid: f.OwnerId.DID.String(),
117
-
OwnerHandle: f.OwnerId.Handle.String(),
118
-
Name: f.Name,
119
-
Rkey: f.Rkey,
120
-
Description: f.Description,
121
-
Website: f.Website,
122
-
Topics: f.Topics,
123
-
Knot: f.Knot,
124
-
Spindle: f.Spindle,
125
Stats: *stats,
126
127
// fork repo upstream
128
Source: sourceRepo,
129
130
-
CurrentDir: f.CurrentDir,
131
-
Ref: f.Ref,
132
133
// info related to the session
134
IsStarred: isStarred,
···
20
21
type ResolvedRepo struct {
22
models.Repo
23
}
24
25
type RepoResolver struct {
···
44
return path.Join(user, name)
45
}
46
47
+
// TODO: move this out of `RepoResolver` struct
48
func (rr *RepoResolver) Resolve(r *http.Request) (*ResolvedRepo, error) {
49
repo, ok := r.Context().Value("repo").(*models.Repo)
50
if !ok {
51
log.Println("malformed middleware: `repo` not exist in context")
52
return nil, fmt.Errorf("malformed middleware")
53
}
54
+
55
+
return &ResolvedRepo{
56
+
Repo: *repo,
57
+
}, nil
58
+
}
59
+
60
+
// 1. [x] replace `RepoInfo` to `reporesolver.GetRepoInfo(r *http.Request, repo, user)`
61
+
// 2. [x] remove `rr`, `CurrentDir`, `Ref` fields from `ResolvedRepo`
62
+
// 3. [ ] remove `ResolvedRepo`
63
+
// 4. [ ] replace reporesolver to reposervice
64
+
func (rr *RepoResolver) GetRepoInfo(r *http.Request, user *oauth.User) repoinfo.RepoInfo {
65
+
ownerId, ook := r.Context().Value("resolvedId").(identity.Identity)
66
+
repo, rok := r.Context().Value("repo").(*models.Repo)
67
+
if !ook || !rok {
68
+
log.Println("malformed request, failed to get repo from context")
69
}
70
71
+
// get dir/ref
72
currentDir := path.Dir(extractPathAfterRef(r.URL.EscapedPath()))
73
ref := chi.URLParam(r, "ref")
74
75
+
repoAt := repo.RepoAt()
76
isStarred := false
77
roles := repoinfo.RolesInRepo{}
78
if user != nil {
79
+
isStarred = db.GetStarStatus(rr.execer, user.Did, repoAt)
80
+
roles.Roles = rr.enforcer.GetPermissionsInRepo(user.Did, repo.Knot, repo.DidSlashRepo())
81
}
82
83
+
stats := repo.RepoStats
84
if stats == nil {
85
+
starCount, err := db.GetStarCount(rr.execer, repoAt)
86
if err != nil {
87
log.Println("failed to get star count for ", repoAt)
88
}
89
+
issueCount, err := db.GetIssueCount(rr.execer, repoAt)
90
if err != nil {
91
log.Println("failed to get issue count for ", repoAt)
92
}
93
+
pullCount, err := db.GetPullCount(rr.execer, repoAt)
94
if err != nil {
95
log.Println("failed to get pull count for ", repoAt)
96
}
···
101
}
102
}
103
104
+
var sourceRepo *models.Repo
105
+
var err error
106
+
if repo.Source != "" {
107
+
sourceRepo, err = db.GetRepoByAtUri(rr.execer, repo.Source)
108
+
if err != nil {
109
+
log.Println("failed to get repo by at uri", err)
110
+
}
111
}
112
113
repoInfo := repoinfo.RepoInfo{
114
// this is basically a models.Repo
115
+
OwnerDid: ownerId.DID.String(),
116
+
OwnerHandle: ownerId.Handle.String(),
117
+
Name: repo.Name,
118
+
Rkey: repo.Rkey,
119
+
Description: repo.Description,
120
+
Website: repo.Website,
121
+
Topics: repo.Topics,
122
+
Knot: repo.Knot,
123
+
Spindle: repo.Spindle,
124
Stats: *stats,
125
126
// fork repo upstream
127
Source: sourceRepo,
128
129
+
// page context
130
+
CurrentDir: currentDir,
131
+
Ref: ref,
132
133
// info related to the session
134
IsStarred: isStarred,