diff --git a/internal/app/run/runner.go b/internal/app/run/runner.go index 5ec9ffcf..845afbda 100644 --- a/internal/app/run/runner.go +++ b/internal/app/run/runner.go @@ -206,8 +206,12 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. taskContext := task.Context.Fields + defaultActionURL := client.BackwardCompatibleContext(task, "default_actions_url") + if defaultActionURL == "" { + return fmt.Errorf("task %v context does not contain a {forgejo,gitea}_default_actions_url key", task.Id) + } log.Infof("task %v repo is %v %v %v", task.Id, taskContext["repository"].GetStringValue(), - taskContext["gitea_default_actions_url"].GetStringValue(), + defaultActionURL, r.client.Address()) preset := &model.GithubContext{ @@ -241,12 +245,12 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. runEnvs[id] = v } - giteaRuntimeToken := taskContext["gitea_runtime_token"].GetStringValue() - if giteaRuntimeToken == "" { + runtimeToken := client.BackwardCompatibleContext(task, "runtime_token") + if runtimeToken == "" { // use task token to action api token for previous Gitea Server Versions - giteaRuntimeToken = preset.Token + runtimeToken = preset.Token } - runEnvs["ACTIONS_RUNTIME_TOKEN"] = giteaRuntimeToken + runEnvs["ACTIONS_RUNTIME_TOKEN"] = runtimeToken // Register the run with the cacheproxy and modify the CACHE_URL if r.cacheProxy != nil { @@ -303,7 +307,7 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. ContainerOptions: r.cfg.Container.Options, ContainerDaemonSocket: r.cfg.Container.DockerHost, Privileged: r.cfg.Container.Privileged, - DefaultActionInstance: taskContext["gitea_default_actions_url"].GetStringValue(), + DefaultActionInstance: defaultActionURL, PlatformPicker: r.labels.PickPlatform, Vars: task.Vars, ValidVolumes: r.cfg.Container.ValidVolumes, diff --git a/internal/pkg/client/backward.go b/internal/pkg/client/backward.go new file mode 100644 index 00000000..f35d3825 --- /dev/null +++ b/internal/pkg/client/backward.go @@ -0,0 +1,18 @@ +// Copyright 2025 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package client + +import ( + runnerv1 "code.gitea.io/actions-proto-go/runner/v1" +) + +func BackwardCompatibleContext(task *runnerv1.Task, suffix string) string { + for _, prefix := range []string{"forgejo_", "gitea_"} { + value := task.Context.Fields[prefix+suffix] + if value != nil { + return value.GetStringValue() + } + } + return "" +} diff --git a/internal/pkg/report/reporter.go b/internal/pkg/report/reporter.go index 1cbe19b4..71d8687c 100644 --- a/internal/pkg/report/reporter.go +++ b/internal/pkg/report/reporter.go @@ -43,12 +43,12 @@ type Reporter struct { stopCommandEndToken string } -func NewReporter(ctx context.Context, cancel context.CancelFunc, client client.Client, task *runnerv1.Task, reportInterval time.Duration) *Reporter { +func NewReporter(ctx context.Context, cancel context.CancelFunc, c client.Client, task *runnerv1.Task, reportInterval time.Duration) *Reporter { var oldnew []string if v := task.Context.Fields["token"].GetStringValue(); v != "" { oldnew = append(oldnew, v, "***") } - if v := task.Context.Fields["gitea_runtime_token"].GetStringValue(); v != "" { + if v := client.BackwardCompatibleContext(task, "runtime_token"); v != "" { oldnew = append(oldnew, v, "***") } for _, v := range task.Secrets { @@ -58,7 +58,7 @@ func NewReporter(ctx context.Context, cancel context.CancelFunc, client client.C rv := &Reporter{ ctx: ctx, cancel: cancel, - client: client, + client: c, oldnew: oldnew, reportInterval: reportInterval, logReplacer: strings.NewReplacer(oldnew...),