diff --git a/actionsrunner/runner.go b/actionsrunner/runner.go index 2e28416..d6960dd 100644 --- a/actionsrunner/runner.go +++ b/actionsrunner/runner.go @@ -434,6 +434,7 @@ type RunnerJobRequestRef struct { ID string `json:"id"` RunnerRequestID string `json:"runner_request_id"` RunServiceURL string `json:"run_service_url"` + BillingOwnerID string `json:"billing_owner_id,omitempty"` } type plainTextFormatter struct{} @@ -493,8 +494,9 @@ func runJob(runnerenv RunnerEnvironment, joblock *sync.Mutex, vssConnection *pro acquirejobURL.Path = path.Join(acquirejobURL.Path, "acquirejob") vssConnection.TenantURL = runServiceURL payload := &runservice.AcquireJobRequest{ - StreamID: rjrr.RunnerRequestID, - JobMessageID: rjrr.RunnerRequestID, + StreamID: rjrr.RunnerRequestID, + JobMessageID: rjrr.RunnerRequestID, + BillingOwnerID: rjrr.BillingOwnerID, } requestErr = vssConnection.RequestWithContext2(jobctx, "POST", acquirejobURL.String(), "", payload, &src) } diff --git a/actionsrunner/worker_context.go b/actionsrunner/worker_context.go index e0526cd..9cba70a 100644 --- a/actionsrunner/worker_context.go +++ b/actionsrunner/worker_context.go @@ -40,10 +40,11 @@ type DefaultWorkerContext struct { func (wc *DefaultWorkerContext) FinishJob(result string, outputs *map[string]protocol.VariableValue) { if strings.EqualFold(wc.Message().MessageType, "RunnerJobRequest") { payload := &run.CompleteJobRequest{ - PlanID: wc.Message().Plan.PlanID, - JobID: wc.Message().JobID, - Conclusion: strings.ToLower(result), - Outputs: nil, + PlanID: wc.Message().Plan.PlanID, + JobID: wc.Message().JobID, + Conclusion: strings.ToLower(result), + Outputs: nil, + BillingOwnerID: wc.Message().BillingOwnerID, } if outputs != nil { payload.Outputs = *outputs diff --git a/protocol/misc.go b/protocol/misc.go index 7bc1b0c..3b8b0fc 100644 --- a/protocol/misc.go +++ b/protocol/misc.go @@ -105,6 +105,7 @@ type AgentJobRequestMessage struct { Variables map[string]VariableValue Steps []ActionStep FileTable []string + BillingOwnerID string `json:"billingOwnerId,omitempty"` } func (jobreq *AgentJobRequestMessage) GetConnection(name string) (*VssConnection, map[string]string, error) { diff --git a/protocol/run/contracts.go b/protocol/run/contracts.go index 7365fd5..d75518f 100644 --- a/protocol/run/contracts.go +++ b/protocol/run/contracts.go @@ -9,17 +9,19 @@ import ( ) type AcquireJobRequest struct { - StreamID string `json:"streamId,omitempty"` // Deprecated: https://github.com/actions/runner/pull/2547 - JobMessageID string `json:"jobMessageId"` + StreamID string `json:"streamId,omitempty"` // Deprecated: https://github.com/actions/runner/pull/2547 + JobMessageID string `json:"jobMessageId"` + BillingOwnerID string `json:"billingOwnerId,omitempty"` } type CompleteJobRequest struct { - PlanID string `json:"planId,omitempty"` - JobID string `json:"jobId,omitempty"` - Conclusion string `json:"conclusion"` - Outputs map[string]protocol.VariableValue `json:"outputs,omitempty"` - StepResults []StepResult `json:"stepResults,omitempty"` - Annotations []Annotation `json:"annotations,omitempty"` + PlanID string `json:"planId,omitempty"` + JobID string `json:"jobId,omitempty"` + Conclusion string `json:"conclusion"` + Outputs map[string]protocol.VariableValue `json:"outputs,omitempty"` + StepResults []StepResult `json:"stepResults,omitempty"` + Annotations []Annotation `json:"annotations,omitempty"` + BillingOwnerID string `json:"billingOwnerId,omitempty"` } type RenewJobRequest struct {