Signed-off-by: Shalabh Agarwal me@serendipty01.dev
+6
-2
appview/issues/issues.go
+6
-2
appview/issues/issues.go
···
101
101
)
102
102
if err != nil {
103
103
l.Error("failed to fetch labels", "err", err)
104
-
rp.pages.Error503(w)
104
+
rp.pages.Error503(w, pages.ErrorPageParams{
105
+
LoggedInUser: user,
106
+
})
105
107
return
106
108
}
107
109
···
826
828
)
827
829
if err != nil {
828
830
l.Error("failed to fetch labels", "err", err)
829
-
rp.pages.Error503(w)
831
+
rp.pages.Error503(w, pages.ErrorPageParams{
832
+
LoggedInUser: user,
833
+
})
830
834
return
831
835
}
832
836
+2
-2
appview/pages/pages.go
+2
-2
appview/pages/pages.go
···
1534
1534
return p.execute("errors/knot404", w, params)
1535
1535
}
1536
1536
1537
-
func (p *Pages) Error503(w io.Writer) error {
1538
-
return p.execute("errors/503", w, nil)
1537
+
func (p *Pages) Error503(w io.Writer, params ErrorPageParams) error {
1538
+
return p.execute("errors/503", w, params)
1539
1539
}
+30
-10
appview/pulls/pulls.go
+30
-10
appview/pulls/pulls.go
···
205
205
)
206
206
if err != nil {
207
207
log.Println("failed to fetch labels", err)
208
-
s.pages.Error503(w)
208
+
s.pages.Error503(w, pages.ErrorPageParams{
209
+
LoggedInUser: user,
210
+
})
209
211
return
210
212
}
211
213
···
636
638
)
637
639
if err != nil {
638
640
log.Println("failed to fetch labels", err)
639
-
s.pages.Error503(w)
641
+
s.pages.Error503(w, pages.ErrorPageParams{
642
+
LoggedInUser: user,
643
+
})
640
644
return
641
645
}
642
646
···
785
789
if err != nil {
786
790
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
787
791
log.Println("failed to call XRPC repo.branches", xrpcerr)
788
-
s.pages.Error503(w)
792
+
s.pages.Error503(w, pages.ErrorPageParams{
793
+
LoggedInUser: user,
794
+
})
789
795
return
790
796
}
791
797
log.Println("failed to fetch branches", err)
···
795
801
var result types.RepoBranchesResponse
796
802
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
797
803
log.Println("failed to decode XRPC response", err)
798
-
s.pages.Error503(w)
804
+
s.pages.Error503(w, pages.ErrorPageParams{
805
+
LoggedInUser: user,
806
+
})
799
807
return
800
808
}
801
809
···
1392
1400
if err != nil {
1393
1401
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
1394
1402
log.Println("failed to call XRPC repo.branches", xrpcerr)
1395
-
s.pages.Error503(w)
1403
+
s.pages.Error503(w, pages.ErrorPageParams{
1404
+
LoggedInUser: user,
1405
+
})
1396
1406
return
1397
1407
}
1398
1408
log.Println("failed to fetch branches", err)
···
1402
1412
var result types.RepoBranchesResponse
1403
1413
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
1404
1414
log.Println("failed to decode XRPC response", err)
1405
-
s.pages.Error503(w)
1415
+
s.pages.Error503(w, pages.ErrorPageParams{
1416
+
LoggedInUser: user,
1417
+
})
1406
1418
return
1407
1419
}
1408
1420
···
1484
1496
if err != nil {
1485
1497
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
1486
1498
log.Println("failed to call XRPC repo.branches for source", xrpcerr)
1487
-
s.pages.Error503(w)
1499
+
s.pages.Error503(w, pages.ErrorPageParams{
1500
+
LoggedInUser: user,
1501
+
})
1488
1502
return
1489
1503
}
1490
1504
log.Println("failed to fetch source branches", err)
···
1495
1509
var sourceBranches types.RepoBranchesResponse
1496
1510
if err := json.Unmarshal(sourceXrpcBytes, &sourceBranches); err != nil {
1497
1511
log.Println("failed to decode source branches XRPC response", err)
1498
-
s.pages.Error503(w)
1512
+
s.pages.Error503(w, pages.ErrorPageParams{
1513
+
LoggedInUser: user,
1514
+
})
1499
1515
return
1500
1516
}
1501
1517
···
1513
1529
if err != nil {
1514
1530
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
1515
1531
log.Println("failed to call XRPC repo.branches for target", xrpcerr)
1516
-
s.pages.Error503(w)
1532
+
s.pages.Error503(w, pages.ErrorPageParams{
1533
+
LoggedInUser: user,
1534
+
})
1517
1535
return
1518
1536
}
1519
1537
log.Println("failed to fetch target branches", err)
···
1524
1542
var targetBranches types.RepoBranchesResponse
1525
1543
if err := json.Unmarshal(targetXrpcBytes, &targetBranches); err != nil {
1526
1544
log.Println("failed to decode target branches XRPC response", err)
1527
-
s.pages.Error503(w)
1545
+
s.pages.Error503(w, pages.ErrorPageParams{
1546
+
LoggedInUser: user,
1547
+
})
1528
1548
return
1529
1549
}
1530
1550
+3
-1
appview/repo/index.go
+3
-1
appview/repo/index.go
+76
-31
appview/repo/repo.go
+76
-31
appview/repo/repo.go
···
90
90
91
91
func (rp *Repo) DownloadArchive(w http.ResponseWriter, r *http.Request) {
92
92
l := rp.logger.With("handler", "DownloadArchive")
93
+
user := rp.oauth.GetUser(r)
93
94
94
95
ref := chi.URLParam(r, "ref")
95
96
ref, _ = url.PathUnescape(ref)
···
113
114
archiveBytes, err := tangled.RepoArchive(r.Context(), xrpcc, "tar.gz", "", ref, repo)
114
115
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
115
116
l.Error("failed to call XRPC repo.archive", "err", xrpcerr)
116
-
rp.pages.Error503(w)
117
+
rp.pages.Error503(w, pages.ErrorPageParams{
118
+
LoggedInUser: user,
119
+
})
117
120
return
118
121
}
119
122
···
130
133
131
134
func (rp *Repo) RepoLog(w http.ResponseWriter, r *http.Request) {
132
135
l := rp.logger.With("handler", "RepoLog")
136
+
user := rp.oauth.GetUser(r)
133
137
134
138
f, err := rp.repoResolver.Resolve(r)
135
139
if err != nil {
···
169
173
xrpcBytes, err := tangled.RepoLog(r.Context(), xrpcc, cursor, limit, "", ref, repo)
170
174
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
171
175
l.Error("failed to call XRPC repo.log", "err", xrpcerr)
172
-
rp.pages.Error503(w)
176
+
rp.pages.Error503(w, pages.ErrorPageParams{
177
+
LoggedInUser: user,
178
+
})
173
179
return
174
180
}
175
181
176
182
var xrpcResp types.RepoLogResponse
177
183
if err := json.Unmarshal(xrpcBytes, &xrpcResp); err != nil {
178
184
l.Error("failed to decode XRPC response", "err", err)
179
-
rp.pages.Error503(w)
185
+
rp.pages.Error503(w, pages.ErrorPageParams{
186
+
LoggedInUser: user,
187
+
})
180
188
return
181
189
}
182
190
183
191
tagBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
184
192
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
185
193
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
186
-
rp.pages.Error503(w)
194
+
rp.pages.Error503(w, pages.ErrorPageParams{
195
+
LoggedInUser: user,
196
+
})
187
197
return
188
198
}
189
199
···
204
214
branchBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
205
215
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
206
216
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
207
-
rp.pages.Error503(w)
217
+
rp.pages.Error503(w, pages.ErrorPageParams{
218
+
LoggedInUser: user,
219
+
})
208
220
return
209
221
}
210
222
···
217
229
}
218
230
}
219
231
220
-
user := rp.oauth.GetUser(r)
221
-
222
232
emailToDidMap, err := db.GetEmailToDid(rp.db, uniqueEmails(xrpcResp.Commits), true)
223
233
if err != nil {
224
234
l.Error("failed to fetch email to did mapping", "err", err)
···
388
398
xrpcBytes, err := tangled.RepoDiff(r.Context(), xrpcc, ref, repo)
389
399
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
390
400
l.Error("failed to call XRPC repo.diff", "err", xrpcerr)
391
-
rp.pages.Error503(w)
401
+
rp.pages.Error503(w, pages.ErrorPageParams{
402
+
LoggedInUser: user,
403
+
})
392
404
return
393
405
}
394
406
395
407
var result types.RepoCommitResponse
396
408
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
397
409
l.Error("failed to decode XRPC response", "err", err)
398
-
rp.pages.Error503(w)
410
+
rp.pages.Error503(w, pages.ErrorPageParams{
411
+
LoggedInUser: user,
412
+
})
399
413
return
400
414
}
401
415
···
433
447
434
448
func (rp *Repo) RepoTree(w http.ResponseWriter, r *http.Request) {
435
449
l := rp.logger.With("handler", "RepoTree")
450
+
user := rp.oauth.GetUser(r)
436
451
437
452
f, err := rp.repoResolver.Resolve(r)
438
453
if err != nil {
···
462
477
xrpcResp, err := tangled.RepoTree(r.Context(), xrpcc, treePath, ref, repo)
463
478
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
464
479
l.Error("failed to call XRPC repo.tree", "err", xrpcerr)
465
-
rp.pages.Error503(w)
480
+
rp.pages.Error503(w, pages.ErrorPageParams{
481
+
LoggedInUser: user,
482
+
})
466
483
return
467
484
}
468
485
···
514
531
return
515
532
}
516
533
517
-
user := rp.oauth.GetUser(r)
518
-
519
534
var breadcrumbs [][]string
520
535
breadcrumbs = append(breadcrumbs, []string{f.Name, fmt.Sprintf("/%s/tree/%s", f.OwnerSlashRepo(), url.PathEscape(ref))})
521
536
if treePath != "" {
···
537
552
538
553
func (rp *Repo) RepoTags(w http.ResponseWriter, r *http.Request) {
539
554
l := rp.logger.With("handler", "RepoTags")
555
+
user := rp.oauth.GetUser(r)
540
556
541
557
f, err := rp.repoResolver.Resolve(r)
542
558
if err != nil {
···
557
573
xrpcBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
558
574
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
559
575
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
560
-
rp.pages.Error503(w)
576
+
rp.pages.Error503(w, pages.ErrorPageParams{
577
+
LoggedInUser: user,
578
+
})
561
579
return
562
580
}
563
581
564
582
var result types.RepoTagsResponse
565
583
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
566
584
l.Error("failed to decode XRPC response", "err", err)
567
-
rp.pages.Error503(w)
585
+
rp.pages.Error503(w, pages.ErrorPageParams{
586
+
LoggedInUser: user,
587
+
})
568
588
return
569
589
}
570
590
···
596
616
}
597
617
}
598
618
599
-
user := rp.oauth.GetUser(r)
600
619
rp.pages.RepoTags(w, pages.RepoTagsParams{
601
620
LoggedInUser: user,
602
621
RepoInfo: f.RepoInfo(user),
···
608
627
609
628
func (rp *Repo) RepoBranches(w http.ResponseWriter, r *http.Request) {
610
629
l := rp.logger.With("handler", "RepoBranches")
630
+
user := rp.oauth.GetUser(r)
611
631
612
632
f, err := rp.repoResolver.Resolve(r)
613
633
if err != nil {
···
628
648
xrpcBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
629
649
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
630
650
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
631
-
rp.pages.Error503(w)
651
+
rp.pages.Error503(w, pages.ErrorPageParams{
652
+
LoggedInUser: user,
653
+
})
632
654
return
633
655
}
634
656
635
657
var result types.RepoBranchesResponse
636
658
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
637
659
l.Error("failed to decode XRPC response", "err", err)
638
-
rp.pages.Error503(w)
660
+
rp.pages.Error503(w, pages.ErrorPageParams{
661
+
LoggedInUser: user,
662
+
})
639
663
return
640
664
}
641
665
642
666
sortBranches(result.Branches)
643
667
644
-
user := rp.oauth.GetUser(r)
645
668
rp.pages.RepoBranches(w, pages.RepoBranchesParams{
646
669
LoggedInUser: user,
647
670
RepoInfo: f.RepoInfo(user),
···
700
723
701
724
func (rp *Repo) RepoBlob(w http.ResponseWriter, r *http.Request) {
702
725
l := rp.logger.With("handler", "RepoBlob")
726
+
user := rp.oauth.GetUser(r)
703
727
704
728
f, err := rp.repoResolver.Resolve(r)
705
729
if err != nil {
···
726
750
resp, err := tangled.RepoBlob(r.Context(), xrpcc, filePath, false, ref, repo)
727
751
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
728
752
l.Error("failed to call XRPC repo.blob", "err", xrpcerr)
729
-
rp.pages.Error503(w)
753
+
rp.pages.Error503(w, pages.ErrorPageParams{
754
+
LoggedInUser: user,
755
+
})
730
756
return
731
757
}
732
758
···
798
824
sizeHint = uint64(len(resp.Content))
799
825
}
800
826
801
-
user := rp.oauth.GetUser(r)
802
-
803
827
// Determine if content is binary (dereference pointer)
804
828
isBinary := false
805
829
if resp.IsBinary != nil {
···
826
850
827
851
func (rp *Repo) RepoBlobRaw(w http.ResponseWriter, r *http.Request) {
828
852
l := rp.logger.With("handler", "RepoBlobRaw")
853
+
user := rp.oauth.GetUser(r)
829
854
830
855
f, err := rp.repoResolver.Resolve(r)
831
856
if err != nil {
···
874
899
resp, err := client.Do(req)
875
900
if err != nil {
876
901
l.Error("failed to reach knotserver", "err", err)
877
-
rp.pages.Error503(w)
902
+
rp.pages.Error503(w, pages.ErrorPageParams{
903
+
LoggedInUser: user,
904
+
})
878
905
return
879
906
}
880
907
defer resp.Body.Close()
···
1965
1992
xrpcBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
1966
1993
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
1967
1994
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
1968
-
rp.pages.Error503(w)
1995
+
rp.pages.Error503(w, pages.ErrorPageParams{
1996
+
LoggedInUser: user,
1997
+
})
1969
1998
return
1970
1999
}
1971
2000
1972
2001
var result types.RepoBranchesResponse
1973
2002
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
1974
2003
l.Error("failed to decode XRPC response", "err", err)
1975
-
rp.pages.Error503(w)
2004
+
rp.pages.Error503(w, pages.ErrorPageParams{
2005
+
LoggedInUser: user,
2006
+
})
1976
2007
return
1977
2008
}
1978
2009
1979
2010
defaultLabels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", models.DefaultLabelDefs()))
1980
2011
if err != nil {
1981
2012
l.Error("failed to fetch labels", "err", err)
1982
-
rp.pages.Error503(w)
2013
+
rp.pages.Error503(w, pages.ErrorPageParams{
2014
+
LoggedInUser: user,
2015
+
})
1983
2016
return
1984
2017
}
1985
2018
1986
2019
labels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels))
1987
2020
if err != nil {
1988
2021
l.Error("failed to fetch labels", "err", err)
1989
-
rp.pages.Error503(w)
2022
+
rp.pages.Error503(w, pages.ErrorPageParams{
2023
+
LoggedInUser: user,
2024
+
})
1990
2025
return
1991
2026
}
1992
2027
// remove default labels from the labels list, if present
···
2420
2455
branchBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
2421
2456
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2422
2457
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
2423
-
rp.pages.Error503(w)
2458
+
rp.pages.Error503(w, pages.ErrorPageParams{
2459
+
LoggedInUser: user,
2460
+
})
2424
2461
return
2425
2462
}
2426
2463
···
2457
2494
tagBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
2458
2495
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2459
2496
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
2460
-
rp.pages.Error503(w)
2497
+
rp.pages.Error503(w, pages.ErrorPageParams{
2498
+
LoggedInUser: user,
2499
+
})
2461
2500
return
2462
2501
}
2463
2502
···
2534
2573
branchBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
2535
2574
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2536
2575
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
2537
-
rp.pages.Error503(w)
2576
+
rp.pages.Error503(w, pages.ErrorPageParams{
2577
+
LoggedInUser: user,
2578
+
})
2538
2579
return
2539
2580
}
2540
2581
···
2548
2589
tagBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
2549
2590
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2550
2591
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
2551
-
rp.pages.Error503(w)
2592
+
rp.pages.Error503(w, pages.ErrorPageParams{
2593
+
LoggedInUser: user,
2594
+
})
2552
2595
return
2553
2596
}
2554
2597
···
2562
2605
compareBytes, err := tangled.RepoCompare(r.Context(), xrpcc, repo, base, head)
2563
2606
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2564
2607
l.Error("failed to call XRPC repo.compare", "err", xrpcerr)
2565
-
rp.pages.Error503(w)
2608
+
rp.pages.Error503(w, pages.ErrorPageParams{
2609
+
LoggedInUser: user,
2610
+
})
2566
2611
return
2567
2612
}
2568
2613
+6
-2
appview/state/gfi.go
+6
-2
appview/state/gfi.go
···
28
28
repoLabels, err := db.GetRepoLabels(s.db, db.FilterEq("label_at", goodFirstIssueLabel))
29
29
if err != nil {
30
30
log.Println("failed to get repo labels", err)
31
-
s.pages.Error503(w)
31
+
s.pages.Error503(w, pages.ErrorPageParams{
32
+
LoggedInUser: user,
33
+
})
32
34
return
33
35
}
34
36
···
57
59
)
58
60
if err != nil {
59
61
log.Println("failed to get issues", err)
60
-
s.pages.Error503(w)
62
+
s.pages.Error503(w, pages.ErrorPageParams{
63
+
LoggedInUser: user,
64
+
})
61
65
return
62
66
}
63
67