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:
parent
fccf857bce
commit
d114f3646d
5 changed files with 37 additions and 8 deletions
26
internal/pkg/common/daemon_context.go
Normal file
26
internal/pkg/common/daemon_context.go
Normal 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)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue