tangled
alpha
login
or
join now
whitequark.org
/
git-pages
10
fork
atom
[mirror] Scalable static site server for Git forges (like GitHub Pages)
10
fork
atom
overview
issues
pulls
pipelines
Factor out `getWebRoot()`. NFCI
whitequark.org
3 months ago
93565e4e
5f1ce5d3
+27
-43
1 changed file
expand all
collapse all
unified
split
src
pages.go
+27
-43
src/pages.go
···
70
70
return fmt.Sprintf("%s/%s", strings.ToLower(host), projectName)
71
71
}
72
72
73
73
+
func getWebRoot(r *http.Request) (string, error) {
74
74
+
host, err := GetHost(r)
75
75
+
if err != nil {
76
76
+
return "", err
77
77
+
}
78
78
+
79
79
+
projectName, err := GetProjectName(r)
80
80
+
if err != nil {
81
81
+
return "", err
82
82
+
}
83
83
+
84
84
+
return makeWebRoot(host, projectName), nil
85
85
+
}
86
86
+
73
87
func writeRedirect(w http.ResponseWriter, code int, path string) {
74
88
w.Header().Set("Location", path)
75
89
w.WriteHeader(code)
···
433
447
}
434
448
}
435
449
436
436
-
host, err := GetHost(r)
450
450
+
webRoot, err := getWebRoot(r)
437
451
if err != nil {
438
452
return err
439
453
}
440
440
-
441
441
-
projectName, err := GetProjectName(r)
442
442
-
if err != nil {
443
443
-
return err
444
444
-
}
445
445
-
446
446
-
webRoot := makeWebRoot(host, projectName)
447
454
448
455
updateCtx, cancel := context.WithTimeout(r.Context(), time.Duration(config.Limits.UpdateTimeout))
449
456
defer cancel()
···
514
521
}
515
522
}
516
523
517
517
-
host, err := GetHost(r)
524
524
+
webRoot, err := getWebRoot(r)
518
525
if err != nil {
519
526
return err
520
527
}
521
528
522
522
-
projectName, err := GetProjectName(r)
523
523
-
if err != nil {
529
529
+
if _, err = AuthorizeUpdateFromArchive(r); err != nil {
524
530
return err
525
531
}
526
532
527
527
-
webRoot := makeWebRoot(host, projectName)
528
528
-
529
529
-
updateCtx, cancel := context.WithTimeout(r.Context(), time.Duration(config.Limits.UpdateTimeout))
530
530
-
defer cancel()
531
531
-
532
532
-
if _, err = AuthorizeUpdateFromArchive(r); err != nil {
533
533
-
return err
533
533
+
if checkDryRun(w, r) {
534
534
+
return nil
534
535
}
535
536
536
537
// Providing atomic compare-and-swap operations might be difficult or impossible depending
···
553
554
return nil
554
555
}
555
556
556
556
-
if checkDryRun(w, r) {
557
557
-
return nil
558
558
-
}
557
557
+
updateCtx, cancel := context.WithTimeout(r.Context(), time.Duration(config.Limits.UpdateTimeout))
558
558
+
defer cancel()
559
559
560
560
contentType := getMediaType(r.Header.Get("Content-Type"))
561
561
reader := http.MaxBytesReader(w, r.Body, int64(config.Limits.MaxSiteSize.Bytes()))
···
613
613
}
614
614
615
615
func deletePage(w http.ResponseWriter, r *http.Request) error {
616
616
-
_, err := AuthorizeUpdateFromRepository(r)
617
617
-
if err != nil {
618
618
-
return err
619
619
-
}
620
620
-
621
621
-
host, err := GetHost(r)
616
616
+
webRoot, err := getWebRoot(r)
622
617
if err != nil {
623
618
return err
624
619
}
625
620
626
626
-
projectName, err := GetProjectName(r)
621
621
+
_, err = AuthorizeUpdateFromRepository(r)
627
622
if err != nil {
628
623
return err
629
624
}
···
632
627
return nil
633
628
}
634
629
635
635
-
err = backend.DeleteManifest(r.Context(), makeWebRoot(host, projectName),
636
636
-
ModifyManifestOptions{})
637
637
-
if err != nil {
630
630
+
if err = backend.DeleteManifest(r.Context(), webRoot, ModifyManifestOptions{}); err != nil {
638
631
w.WriteHeader(http.StatusInternalServerError)
632
632
+
fmt.Fprintln(w, err)
639
633
} else {
640
634
w.Header().Add("Update-Result", "deleted")
641
635
w.WriteHeader(http.StatusOK)
642
636
}
643
643
-
if err != nil {
644
644
-
fmt.Fprintln(w, err)
645
645
-
}
646
637
return err
647
638
}
648
639
···
651
642
requestTimeout := 3 * time.Second
652
643
requestTimer := time.NewTimer(requestTimeout)
653
644
654
654
-
auth, err := AuthorizeUpdateFromRepository(r)
655
655
-
if err != nil {
656
656
-
return err
657
657
-
}
658
658
-
659
659
-
host, err := GetHost(r)
645
645
+
webRoot, err := getWebRoot(r)
660
646
if err != nil {
661
647
return err
662
648
}
663
649
664
664
-
projectName, err := GetProjectName(r)
650
650
+
auth, err := AuthorizeUpdateFromRepository(r)
665
651
if err != nil {
666
652
return err
667
653
}
668
668
-
669
669
-
webRoot := makeWebRoot(host, projectName)
670
654
671
655
eventName := ""
672
656
for _, header := range []string{