diff --git a/CHANGELOG.md b/CHANGELOG.md index 792a056b5..e1d82929c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Unreleased +* Add `invoke-action-addrs` to `CreateRunOptions` by @mutahhir [#1206](https://github.com/hashicorp/go-tfe/pull/1206) + # v1.92.0 ## Enhancements diff --git a/run.go b/run.go index 875cbd764..4f763d006 100644 --- a/run.go +++ b/run.go @@ -140,6 +140,7 @@ type Run struct { ForceCancelAvailableAt time.Time `jsonapi:"attr,force-cancel-available-at,iso8601"` HasChanges bool `jsonapi:"attr,has-changes"` IsDestroy bool `jsonapi:"attr,is-destroy"` + InvokeActionAddrs []string `jsonapi:"attr,invoke-action-addrs,omitempty"` Message string `jsonapi:"attr,message"` Permissions *RunPermissions `jsonapi:"attr,permissions"` PolicyPaths []string `jsonapi:"attr,policy-paths,omitempty"` @@ -403,6 +404,9 @@ type RunCreateOptions struct { // Variables allows you to specify terraform input variables for // a particular run, prioritized over variables defined on the workspace. Variables []*RunVariable `jsonapi:"attr,variables,omitempty"` + + // Action Addresses to invoke. + InvokeActionAddrs []string `jsonapi:"attr,invoke-action-addrs,omitempty"` } // RunApplyOptions represents the options for applying a run. diff --git a/run_integration_test.go b/run_integration_test.go index 52d75e97d..c3067628e 100644 --- a/run_integration_test.go +++ b/run_integration_test.go @@ -371,6 +371,23 @@ func TestRunsCreate(t *testing.T) { assert.Contains(t, r.PolicyPaths, "./path/to/dir1") assert.Contains(t, r.PolicyPaths, "./path/to/dir2") }) + + t.Run("with action invocations", func(t *testing.T) { + skipUnlessBeta(t) + + opts := RunCreateOptions{ + Message: String("creating with policy paths"), + Workspace: wTest, + InvokeActionAddrs: []string{"actions.foo.bar"}, + } + + r, err := client.Runs.Create(ctx, opts) + require.NoError(t, err) + require.NotEmpty(t, r.InvokeActionAddrs) + + assert.Len(t, r.InvokeActionAddrs, 1) + assert.Contains(t, r.InvokeActionAddrs, "actions.foo.bar") + }) } func TestRunsRead_CostEstimate(t *testing.T) {