+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
})
···
856
857
rp.pages.RepoIssues(w, pages.RepoIssuesParams{
858
LoggedInUser: rp.oauth.GetUser(r),
859
-
RepoInfo: f.RepoInfo(user),
860
Issues: issues,
861
LabelDefs: defs,
862
FilteringByOpen: isOpen,
···
879
case http.MethodGet:
880
rp.pages.RepoNewIssue(w, pages.RepoNewIssueParams{
881
LoggedInUser: user,
882
-
RepoInfo: f.RepoInfo(user),
883
})
884
case http.MethodPost:
885
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
})
···
826
827
rp.pages.RepoIssues(w, pages.RepoIssuesParams{
828
LoggedInUser: rp.oauth.GetUser(r),
829
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
830
Issues: issues,
831
LabelDefs: defs,
832
FilteringByOpen: isOpen,
···
849
case http.MethodGet:
850
rp.pages.RepoNewIssue(w, pages.RepoNewIssueParams{
851
LoggedInUser: user,
852
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
853
})
854
case http.MethodPost:
855
issue := &models.Issue{
+2
-2
appview/pipelines/pipelines.go
+2
-2
appview/pipelines/pipelines.go
···
91
92
p.pages.Pipelines(w, pages.PipelinesParams{
93
LoggedInUser: user,
94
-
RepoInfo: f.RepoInfo(user),
95
Pipelines: ps,
96
})
97
}
···
139
140
p.pages.Workflow(w, pages.WorkflowParams{
141
LoggedInUser: user,
142
-
RepoInfo: f.RepoInfo(user),
143
Pipeline: singlePipeline,
144
Workflow: workflow,
145
})
···
91
92
p.pages.Pipelines(w, pages.PipelinesParams{
93
LoggedInUser: user,
94
+
RepoInfo: p.repoResolver.GetRepoInfo(r, user),
95
Pipelines: ps,
96
})
97
}
···
139
140
p.pages.Workflow(w, pages.WorkflowParams{
141
LoggedInUser: user,
142
+
RepoInfo: p.repoResolver.GetRepoInfo(r, user),
143
Pipeline: singlePipeline,
144
Workflow: workflow,
145
})
+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,
···
220
221
s.pages.RepoSinglePull(w, pages.RepoSinglePullParams{
222
LoggedInUser: user,
223
-
RepoInfo: f.RepoInfo(user),
224
Pull: pull,
225
Stack: stack,
226
AbandonedPulls: abandonedPulls,
···
420
421
func (s *Pulls) RepoPullPatch(w http.ResponseWriter, r *http.Request) {
422
user := s.oauth.GetUser(r)
423
-
f, err := s.repoResolver.Resolve(r)
424
-
if err != nil {
425
-
log.Println("failed to get repo and knot", err)
426
-
return
427
-
}
428
429
var diffOpts types.DiffOpts
430
if d := r.URL.Query().Get("diff"); d == "split" {
···
453
454
s.pages.RepoPullPatchPage(w, pages.RepoPullPatchParams{
455
LoggedInUser: user,
456
-
RepoInfo: f.RepoInfo(user),
457
Pull: pull,
458
Stack: stack,
459
Round: roundIdInt,
···
467
func (s *Pulls) RepoPullInterdiff(w http.ResponseWriter, r *http.Request) {
468
user := s.oauth.GetUser(r)
469
470
-
f, err := s.repoResolver.Resolve(r)
471
-
if err != nil {
472
-
log.Println("failed to get repo and knot", err)
473
-
return
474
-
}
475
-
476
var diffOpts types.DiffOpts
477
if d := r.URL.Query().Get("diff"); d == "split" {
478
diffOpts.Split = true
···
517
518
s.pages.RepoPullInterdiffPage(w, pages.RepoPullInterdiffParams{
519
LoggedInUser: s.oauth.GetUser(r),
520
-
RepoInfo: f.RepoInfo(user),
521
Pull: pull,
522
Round: roundIdInt,
523
Interdiff: interdiff,
···
676
677
s.pages.RepoPulls(w, pages.RepoPullsParams{
678
LoggedInUser: s.oauth.GetUser(r),
679
-
RepoInfo: f.RepoInfo(user),
680
Pulls: pulls,
681
LabelDefs: defs,
682
FilteringBy: state,
···
714
case http.MethodGet:
715
s.pages.PullNewCommentFragment(w, pages.PullNewCommentParams{
716
LoggedInUser: user,
717
-
RepoInfo: f.RepoInfo(user),
718
Pull: pull,
719
RoundNumber: roundNumber,
720
})
···
848
849
s.pages.RepoNewPull(w, pages.RepoNewPullParams{
850
LoggedInUser: user,
851
-
RepoInfo: f.RepoInfo(user),
852
Branches: result.Branches,
853
Strategy: strategy,
854
SourceBranch: sourceBranch,
···
1403
1404
func (s *Pulls) PatchUploadFragment(w http.ResponseWriter, r *http.Request) {
1405
user := s.oauth.GetUser(r)
1406
-
f, err := s.repoResolver.Resolve(r)
1407
-
if err != nil {
1408
-
log.Println("failed to get repo and knot", err)
1409
-
return
1410
-
}
1411
1412
s.pages.PullPatchUploadFragment(w, pages.PullPatchUploadParams{
1413
-
RepoInfo: f.RepoInfo(user),
1414
})
1415
}
1416
···
1464
}
1465
1466
s.pages.PullCompareBranchesFragment(w, pages.PullCompareBranchesParams{
1467
-
RepoInfo: f.RepoInfo(user),
1468
Branches: withoutDefault,
1469
})
1470
}
1471
1472
func (s *Pulls) CompareForksFragment(w http.ResponseWriter, r *http.Request) {
1473
user := s.oauth.GetUser(r)
1474
-
f, err := s.repoResolver.Resolve(r)
1475
-
if err != nil {
1476
-
log.Println("failed to get repo and knot", err)
1477
-
return
1478
-
}
1479
1480
forks, err := db.GetForksByDid(s.db, user.Did)
1481
if err != nil {
···
1484
}
1485
1486
s.pages.PullCompareForkFragment(w, pages.PullCompareForkParams{
1487
-
RepoInfo: f.RepoInfo(user),
1488
Forks: forks,
1489
Selected: r.URL.Query().Get("fork"),
1490
})
···
1577
})
1578
1579
s.pages.PullCompareForkBranchesFragment(w, pages.PullCompareForkBranchesParams{
1580
-
RepoInfo: f.RepoInfo(user),
1581
SourceBranches: sourceBranches.Branches,
1582
TargetBranches: targetBranches.Branches,
1583
})
···
1585
1586
func (s *Pulls) ResubmitPull(w http.ResponseWriter, r *http.Request) {
1587
user := s.oauth.GetUser(r)
1588
-
f, err := s.repoResolver.Resolve(r)
1589
-
if err != nil {
1590
-
log.Println("failed to get repo and knot", err)
1591
-
return
1592
-
}
1593
1594
pull, ok := r.Context().Value("pull").(*models.Pull)
1595
if !ok {
···
1601
switch r.Method {
1602
case http.MethodGet:
1603
s.pages.PullResubmitFragment(w, pages.PullResubmitParams{
1604
-
RepoInfo: f.RepoInfo(user),
1605
Pull: pull,
1606
})
1607
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,
···
220
221
s.pages.RepoSinglePull(w, pages.RepoSinglePullParams{
222
LoggedInUser: user,
223
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
224
Pull: pull,
225
Stack: stack,
226
AbandonedPulls: abandonedPulls,
···
420
421
func (s *Pulls) RepoPullPatch(w http.ResponseWriter, r *http.Request) {
422
user := s.oauth.GetUser(r)
423
424
var diffOpts types.DiffOpts
425
if d := r.URL.Query().Get("diff"); d == "split" {
···
448
449
s.pages.RepoPullPatchPage(w, pages.RepoPullPatchParams{
450
LoggedInUser: user,
451
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
452
Pull: pull,
453
Stack: stack,
454
Round: roundIdInt,
···
462
func (s *Pulls) RepoPullInterdiff(w http.ResponseWriter, r *http.Request) {
463
user := s.oauth.GetUser(r)
464
465
var diffOpts types.DiffOpts
466
if d := r.URL.Query().Get("diff"); d == "split" {
467
diffOpts.Split = true
···
506
507
s.pages.RepoPullInterdiffPage(w, pages.RepoPullInterdiffParams{
508
LoggedInUser: s.oauth.GetUser(r),
509
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
510
Pull: pull,
511
Round: roundIdInt,
512
Interdiff: interdiff,
···
665
666
s.pages.RepoPulls(w, pages.RepoPullsParams{
667
LoggedInUser: s.oauth.GetUser(r),
668
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
669
Pulls: pulls,
670
LabelDefs: defs,
671
FilteringBy: state,
···
703
case http.MethodGet:
704
s.pages.PullNewCommentFragment(w, pages.PullNewCommentParams{
705
LoggedInUser: user,
706
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
707
Pull: pull,
708
RoundNumber: roundNumber,
709
})
···
837
838
s.pages.RepoNewPull(w, pages.RepoNewPullParams{
839
LoggedInUser: user,
840
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
841
Branches: result.Branches,
842
Strategy: strategy,
843
SourceBranch: sourceBranch,
···
1392
1393
func (s *Pulls) PatchUploadFragment(w http.ResponseWriter, r *http.Request) {
1394
user := s.oauth.GetUser(r)
1395
1396
s.pages.PullPatchUploadFragment(w, pages.PullPatchUploadParams{
1397
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1398
})
1399
}
1400
···
1448
}
1449
1450
s.pages.PullCompareBranchesFragment(w, pages.PullCompareBranchesParams{
1451
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1452
Branches: withoutDefault,
1453
})
1454
}
1455
1456
func (s *Pulls) CompareForksFragment(w http.ResponseWriter, r *http.Request) {
1457
user := s.oauth.GetUser(r)
1458
1459
forks, err := db.GetForksByDid(s.db, user.Did)
1460
if err != nil {
···
1463
}
1464
1465
s.pages.PullCompareForkFragment(w, pages.PullCompareForkParams{
1466
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1467
Forks: forks,
1468
Selected: r.URL.Query().Get("fork"),
1469
})
···
1556
})
1557
1558
s.pages.PullCompareForkBranchesFragment(w, pages.PullCompareForkBranchesParams{
1559
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1560
SourceBranches: sourceBranches.Branches,
1561
TargetBranches: targetBranches.Branches,
1562
})
···
1564
1565
func (s *Pulls) ResubmitPull(w http.ResponseWriter, r *http.Request) {
1566
user := s.oauth.GetUser(r)
1567
1568
pull, ok := r.Context().Value("pull").(*models.Pull)
1569
if !ok {
···
1575
switch r.Method {
1576
case http.MethodGet:
1577
s.pages.PullResubmitFragment(w, pages.PullResubmitParams{
1578
+
RepoInfo: s.repoResolver.GetRepoInfo(r, user),
1579
Pull: pull,
1580
})
1581
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,
···
198
199
rp.pages.RepoCompare(w, pages.RepoCompareParams{
200
LoggedInUser: user,
201
-
RepoInfo: f.RepoInfo(user),
202
Branches: branches.Branches,
203
Tags: tags.Tags,
204
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,
···
198
199
rp.pages.RepoCompare(w, pages.RepoCompareParams{
200
LoggedInUser: user,
201
+
RepoInfo: rp.repoResolver.GetRepoInfo(r, user),
202
Branches: branches.Branches,
203
Tags: tags.Tags,
204
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,