From 9bc1df90b30d2d14a02c5855be35842ccf646d49 Mon Sep 17 00:00:00 2001 From: Abdurahman Abdelgany Date: Tue, 7 Apr 2026 16:34:57 -0400 Subject: [PATCH 1/4] Update stack.go --- stack.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stack.go b/stack.go index 0e70bb719..bffef59d5 100644 --- a/stack.go +++ b/stack.go @@ -166,6 +166,8 @@ type StackCreateOptions struct { VCSRepo *StackVCSRepoOptions `jsonapi:"attr,vcs-repo"` Project *Project `jsonapi:"relation,project"` AgentPool *AgentPool `jsonapi:"relation,agent-pool"` + WorkingDirectory *string `jsonapi:"attr,working-directory,omitempty"` + TriggerPatterns []string `jsonapi:"attr,trigger-patterns"` } // StackUpdateOptions represents the options for updating a stack. @@ -175,6 +177,8 @@ type StackUpdateOptions struct { SpeculativeEnabled *bool `jsonapi:"attr,speculative-enabled,omitempty"` VCSRepo *StackVCSRepoOptions `jsonapi:"attr,vcs-repo"` AgentPool *AgentPool `jsonapi:"relation,agent-pool"` + WorkingDirectory *string `jsonapi:"attr,working-directory,omitempty"` + TriggerPatterns []string `jsonapi:"attr,trigger-patterns"` } // WaitForStatusResult is the data structure that is sent over the channel From e6a23a29294629e6183fedf30c632598278db8a7 Mon Sep 17 00:00:00 2001 From: Abdurahman Abdelgany Date: Tue, 7 Apr 2026 17:21:39 -0400 Subject: [PATCH 2/4] add fields to test --- stack.go | 2 ++ stack_integration_test.go | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/stack.go b/stack.go index bffef59d5..a85f58666 100644 --- a/stack.go +++ b/stack.go @@ -95,6 +95,8 @@ type Stack struct { InputsCount int `jsonapi:"attr,inputs-count"` OutputsCount int `jsonapi:"attr,outputs-count"` CreationSource string `jsonapi:"attr,creation-source"` + WorkingDirectory string `jsonapi:"attr,working-directory,omitempty"` + TriggerPatterns []string `jsonapi:"attr,trigger-patterns,omitempty"` // Relationships Project *Project `jsonapi:"relation,project"` diff --git a/stack_integration_test.go b/stack_integration_test.go index c6eb94256..8239fc713 100644 --- a/stack_integration_test.go +++ b/stack_integration_test.go @@ -164,7 +164,9 @@ func TestStackReadUpdateDelete(t *testing.T) { Project: &Project{ ID: orgTest.DefaultProject.ID, }, - AgentPool: initialPool, + AgentPool: initialPool, + WorkingDirectory: String("envs"), + TriggerPatterns: []string{"/**/*"}, }) require.NoError(t, err) @@ -175,12 +177,15 @@ func TestStackReadUpdateDelete(t *testing.T) { require.False(t, stack.SpeculativeEnabled) stackRead, err := client.Stacks.Read(ctx, stack.ID) + require.NoError(t, err) require.Equal(t, stack.VCSRepo.Identifier, stackRead.VCSRepo.Identifier) require.Equal(t, stack.VCSRepo.OAuthTokenID, stackRead.VCSRepo.OAuthTokenID) require.Equal(t, stack.VCSRepo.Branch, stackRead.VCSRepo.Branch) require.Equal(t, stack.AgentPool.ID, stackRead.AgentPool.ID) assert.Equal(t, stack, stackRead) + assert.Equal(t, stackRead.WorkingDirectory, "envs") + assert.Equal(t, stackRead.TriggerPatterns, []string{"/**/*"}) assert.False(t, stackRead.SpeculativeEnabled) updatedPool, err := client.AgentPools.Create(ctx, orgTest.Name, AgentPoolCreateOptions{ @@ -197,6 +202,8 @@ func TestStackReadUpdateDelete(t *testing.T) { }, AgentPool: updatedPool, SpeculativeEnabled: Bool(true), + WorkingDirectory: String(""), + TriggerPatterns: []string{""}, }) require.NoError(t, err) @@ -207,6 +214,8 @@ func TestStackReadUpdateDelete(t *testing.T) { stackUpdatedConfig, err := client.Stacks.FetchLatestFromVcs(ctx, stack.ID) require.NoError(t, err) require.Equal(t, stack.Name, stackUpdatedConfig.Name) + require.Equal(t, stackUpdated.WorkingDirectory, "") + require.Equal(t, stackUpdated.TriggerPatterns, []string{""}) err = client.Stacks.Delete(ctx, stack.ID) require.NoError(t, err) From fca525c355859f71dba7b12fb9eea06e35557614 Mon Sep 17 00:00:00 2001 From: Abdurahman Abdelgany Date: Tue, 7 Apr 2026 17:24:37 -0400 Subject: [PATCH 3/4] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b5f42ecb..5ad0902c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Bug Fixes * Improve API error handling to decode both JSON:API error objects and regular JSON errors arrays by @uk1288 [#1304](https://github.com/hashicorp/go-tfe/pull/1304) +* Add support for trigger patterns and working directories to stacks by @aaabdelgany [#1305](https://github.com/hashicorp/go-tfe/pull/1305) ## Enhancements * Adds the `ProviderType` field to `AdminSAMLSetting` and `AdminSAMLSettingsUpdateOptions` to support the `provider-type` SAML setting. From 16191cf14d2ef6ce705f1ed5e03f6e4168cdd4cd Mon Sep 17 00:00:00 2001 From: Abdurahman Abdelgany Date: Mon, 13 Apr 2026 10:49:46 -0400 Subject: [PATCH 4/4] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ad0902c1..483011dbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,10 @@ ## Bug Fixes * Improve API error handling to decode both JSON:API error objects and regular JSON errors arrays by @uk1288 [#1304](https://github.com/hashicorp/go-tfe/pull/1304) -* Add support for trigger patterns and working directories to stacks by @aaabdelgany [#1305](https://github.com/hashicorp/go-tfe/pull/1305) ## Enhancements * Adds the `ProviderType` field to `AdminSAMLSetting` and `AdminSAMLSettingsUpdateOptions` to support the `provider-type` SAML setting. +* Add support for trigger patterns and working directories to stacks by @aaabdelgany [#1305](https://github.com/hashicorp/go-tfe/pull/1305) # v1.103.0