1
0
Fork 0
mirror of https://code.forgejo.org/forgejo/runner.git synced 2025-09-05 18:40:59 +00:00

feat: insert the daemon context in the poller context

The daemon context is needed when the context of a job or the poller
is done. Otherwise it is no longer possible to send a conclusion
report to Forgejo, short of creating a context.Background() which
poses its own set of problems.

- WithDaemonContext is used to store the daemon context
- The poller uses the daemon context instead of context.Background
This commit is contained in:
Earl Warren 2025-08-16 19:13:32 +02:00
parent fccf857bce
commit d114f3646d
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
5 changed files with 37 additions and 8 deletions

View file

@ -0,0 +1,26 @@
// Copyright 2025 The Forgejo Authors
// SPDX-License-Identifier: MIT
package common
import (
"context"
)
type daemonContextKey string
const daemonContextKeyVal = daemonContextKey("daemon")
func DaemonContext(ctx context.Context) context.Context {
val := ctx.Value(daemonContextKeyVal)
if val != nil {
if daemon, ok := val.(context.Context); ok {
return daemon
}
}
return context.Background()
}
func WithDaemonContext(ctx, daemon context.Context) context.Context {
return context.WithValue(ctx, daemonContextKeyVal, daemon)
}