1
0
Fork 0
mirror of https://code.forgejo.org/forgejo/runner.git synced 2025-09-05 18:40:59 +00:00
forgejo-runner/internal/pkg/common/daemon_context.go
Earl Warren d114f3646d
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
2025-08-16 19:13:32 +02:00

26 lines
545 B
Go

// 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)
}