diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-09-24 13:57:46 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-09-24 13:57:46 -0400 |
| commit | 9635df5fc6f91b09531caeb632ec795fba99d750 (patch) | |
| tree | 390493f5cf1ab3d66b0d0830e9e68ba389a179ff | |
| parent | a7831ec153308175cc39ce82e9ff936719584041 (diff) | |
| download | xesite-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.go | 22 |
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) + } + }() } |
