aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2023-09-24 13:57:46 -0400
committerXe Iaso <me@xeiaso.net>2023-09-24 13:57:46 -0400
commit9635df5fc6f91b09531caeb632ec795fba99d750 (patch)
tree390493f5cf1ab3d66b0d0830e9e68ba389a179ff
parenta7831ec153308175cc39ce82e9ff936719584041 (diff)
downloadxesite-9635df5fc6f91b09531caeb632ec795fba99d750.tar.xz
xesite-9635df5fc6f91b09531caeb632ec795fba99d750.zip
xesite: 5 minute timeout for rebuilding the site
Signed-off-by: Xe Iaso <me@xeiaso.net>
-rw-r--r--xesite/github.go22
1 files changed, 14 insertions, 8 deletions
diff --git a/xesite/github.go b/xesite/github.go
index 047439c..9d3c484 100644
--- a/xesite/github.go
+++ b/xesite/github.go
@@ -1,11 +1,13 @@
package main
import (
+ "context"
"encoding/json"
+ "log/slog"
"net/http"
+ "time"
"github.com/go-git/go-git/v5"
- "golang.org/x/exp/slog"
"xeiaso.net/v4/internal/github"
"xeiaso.net/v4/internal/lume"
)
@@ -28,12 +30,16 @@ func (gh *GitHubWebhook) ServeHTTP(w http.ResponseWriter, r *http.Request) {
slog.Info("push!", "ref", event.Ref, "author", event.Pusher.Login)
- if err := gh.fs.Update(r.Context()); err != nil {
- if err == git.NoErrAlreadyUpToDate {
- slog.Info("already up to date")
- return
- }
+ go func() {
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute)
+ defer cancel()
+ if err := gh.fs.Update(ctx); err != nil {
+ if err == git.NoErrAlreadyUpToDate {
+ slog.Info("already up to date")
+ return
+ }
- slog.Error("error updating", "error", err)
- }
+ slog.Error("error updating", "error", err)
+ }
+ }()
}