Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
a9da349
`docs`: update `rotation_interval` to be GA (#15850)
BBBmau Dec 8, 2025
c7a4309
Multicast group producer activation (#15890)
jgforsberg Dec 8, 2025
518ba7b
fix: IAM Policy 409 concurrent changes error (#15825)
tamir-deep Dec 8, 2025
0308e49
Bump github.com/sirupsen/logrus from 1.8.1 to 1.8.3 (#15911)
zli82016 Dec 9, 2025
053986f
Promote Cross-Site Interconnect to GA (#15830)
NandiniAgrawal15 Dec 9, 2025
a2d8a34
Fixed typo on Router Nat datasource docs (#15917)
melinath Dec 9, 2025
5cbcc92
Added tf-test to instance names in several compute tests (#15883)
shuyama1 Dec 9, 2025
a2a4065
feat: Managed Connection Pooling support for AlloyDB (#15330)
nancynh Dec 9, 2025
e9928ac
Adding in Datasource for `google_compute_storage_pool` (#15737)
NA2047 Dec 9, 2025
a505067
Adding docs for `google_service_networking_peered_dns_domain ` (#15901)
NA2047 Dec 9, 2025
66dac1e
Add deprecation warning for Managed Kafka Connect additionalSubnets (…
benjamin-maynard Dec 9, 2025
d298e62
Add datasource for google_compute_region_security_policy (#15902)
NA2047 Dec 9, 2025
fa323c1
tgc-revival: unskip tests (#15914)
zli82016 Dec 9, 2025
071b8cb
feat(spanner): support totalCPUUtilizationPercent in autoscaling targ…
rahul2393 Dec 10, 2025
13217f3
Fix TestAccInstanceGroupManager_resourcePoliciesWorkloadPolicyUpdate …
slevenick Dec 10, 2025
b4648ac
FIX: Update Description Type in Commitment Resource (#15928)
victorsantos-cit Dec 10, 2025
5d83324
Auto generate import id for IAM resource tests (#15306)
trodge Dec 10, 2025
d5d08cd
tgc-revival: Add google_cloud_tasks_queue to TGC (#15933)
zli82016 Dec 10, 2025
064ba1a
Ignore new metadata tag (#15929)
slevenick Dec 11, 2025
1e50597
Improve Dataplex Entry support for first party entries. (#15861)
mll Dec 11, 2025
abfbd1c
set up review vacation (#15939)
melinath Dec 11, 2025
e19a833
Allow updating Deployment Groups field in Custom Mirroring Security P…
duvni Dec 11, 2025
c6a5da7
Support Post sart up script on runtime templates (#15934)
bcreddy-gcp Dec 11, 2025
4fde73f
fix: add psc service attachment link in the data (#15930)
yyzou-bot Dec 11, 2025
3bf5651
Add plural data source for retrieving Artifact Registry versions (#14…
bestefreund Dec 11, 2025
74d86d6
Add CIG Policy List API support in Terraform (#15812)
gomu18 Dec 11, 2025
7181d98
Multicast domain group (#15899)
jgforsberg Dec 11, 2025
d1f3420
Multicast group consumer activation (#15885)
jgforsberg Dec 11, 2025
b87553c
Changes to modify the google_sql_database_instance resource behavior …
aditikumarii-google Dec 11, 2025
3e92096
Add new resource RegionHealthSource to terraform-beta (#14956)
jkrish-c Dec 12, 2025
554b907
mark cmek config id as required (#15884)
kefang2 Dec 12, 2025
03cea82
Added a magic modules resource definition for IcebergCatalog resource…
nika-qubit Dec 12, 2025
857fd21
tgc-revival: add google_netapp_active_directory to tgc (#15938)
zli82016 Dec 12, 2025
07012a5
async upload cassettes during pr test (#15874)
iyabchen Dec 12, 2025
5ef1f01
Introduce Customization Rules to google_datastream_stream (#15856)
m-habib Dec 12, 2025
864cf8d
Made metadata.yaml format match serialized output (#15946)
melinath Dec 12, 2025
943d9d6
Cloud Composer - add new XL environment size (#15586)
dilnazanlid Dec 12, 2025
09127da
Remove immutable property from MulticastDomain.yaml (#15900)
jgforsberg Dec 12, 2025
5f1a13f
Switched metadata.yaml generation to marshal-based implementation (#1…
melinath Dec 12, 2025
8d7edf5
boolean fields in `observability_Config` were being incorrectly omitt…
vkanishk15 Dec 15, 2025
0dabc2d
Rename custom_import_state_id_funcs (#15935)
trodge Dec 15, 2025
7c110b7
tgc-revival: Add tgc ha vpn gateway, storage pool and privateca resou…
zli82016 Dec 15, 2025
f556e7e
Always sort resources by name (#15907)
nicdumz Dec 15, 2025
4652855
Feature gap: Add `guestFlush` to Snapshot (#15813)
Cezarus27 Dec 15, 2025
8d105ed
Cleaned up and fixed Lineage methods (#15949)
melinath Dec 15, 2025
bd047d1
feat: (storage) update signed_url to virtual style (#15832)
gurusai-voleti Dec 15, 2025
05d7498
fix: added EmptyOrUnsetBlockDiffSuppress to the `scalingMode` field i…
tamir-deep Dec 15, 2025
30bd951
vertexai: add `psc_automation_configs` to resource `google_vertex_ai_…
ramonvermeulen Dec 15, 2025
f62dc03
Marked name field as not a URL param (#15957)
melinath Dec 16, 2025
47e9bc8
Corrected metadata generation for Map fields (#15960)
melinath Dec 16, 2025
68b27b4
Mark the psa_write_endpoint field as Computed and relax the constrain…
sanmahapatra Dec 16, 2025
d0cfc66
Promotes custom ranges field to GA (#15943)
YashTayal04 Dec 16, 2025
af2416b
fix TestAccComputeRegionBackendService_withNetworkPassThroughLbTraffi…
shuyama1 Dec 16, 2025
688001f
updates docs for hybridReplicationParameters in google_netapp_volume …
okrause Dec 16, 2025
a29c901
Upgrade google.golang.org/api to v0.257.0 (#15958)
schen59 Dec 16, 2025
d78da3c
Cloud sql documentation changes (#15953)
aditikumarii-google Dec 16, 2025
0e36f17
Fix issue for empty metadata in service directory resources (#15971)
slevenick Dec 16, 2025
664fce2
adding feedback resource (#15886)
kigesui Dec 16, 2025
a47faa1
Added / fixed field metadata (#15964)
melinath Dec 16, 2025
e1e096b
Collapsed IAM resources + parent for multiple resources check (#15973)
melinath Dec 17, 2025
fcd18cd
Revert "fix: IAM Policy 409 concurrent changes error (#15825)" (#15972)
slevenick Dec 17, 2025
87ac068
Add attributes to google_backup_dr_backup datasource (#15980)
rileykarson Dec 17, 2025
8256b8e
Vertexai feature online store bigtable (#15963)
piyush123 Dec 17, 2025
d8b9cce
Corrected underscores in field names (#15979)
melinath Dec 17, 2025
4827ca2
tgc-revival: adjust max attempts to 5 (#15983)
zli82016 Dec 18, 2025
cbc3d5f
tgc-revival: Modify the handwritten test file name (#15959)
zli82016 Dec 18, 2025
4a681fa
Fix TestAccNotebooksInstance_create_container (#15992)
hao-nan-li Dec 18, 2025
3e02bdd
tgc_revival: add tgc compute node and route (#15974)
zli82016 Dec 18, 2025
ed43b8c
Add MulticloudDataTransferConfig Resource (#15988)
sreemoyee-basu Dec 18, 2025
416e04c
Add periodic export configuration to Instance.yaml (#15759)
efeelaiho Dec 18, 2025
9cc210e
Use a separate network in TestAccContainerCluster_networkingModeRoute…
Michcioperz Dec 18, 2025
8704db2
tgc-revival: Set the fields to state and then read state to hcl data …
zli82016 Dec 18, 2025
e8de273
Replace unused, deprecated disk_size_gb field with disk_size_gib fiel…
andreigurau Dec 19, 2025
513c50b
Adding `access_rules_options` to `google_lustre_instance` (#15898)
NA2047 Dec 19, 2025
e706e96
decoupling from filesystem ops: phase 2 (#15833)
nicdumz Dec 19, 2025
2e26cb9
Adding automated tests for gcbdr managed instances (#15977)
aditikumarii-google Dec 19, 2025
367bba5
Revert "tgc-revival: Set the fields to state and then read state to h…
zli82016 Dec 19, 2025
b4135cb
Fix a bug where for the update network endpoints are sending empty in…
Cheriit Dec 19, 2025
67f09bb
tgc-revival: add google_monitoring_alert_policy to TGC (#16003)
zli82016 Dec 19, 2025
ccd9f4f
Fixed some compute api field mappings (#15994)
melinath Dec 20, 2025
ba22696
test(pubsub): Use unique service account IDs in BQ and GCS subscripti…
michaelpri10 Dec 22, 2025
2bb5f61
Update enrolled_teams.yml (#16016)
shuyama1 Dec 22, 2025
6214b6f
Multicast consumer association documentation update (#15897)
jgforsberg Dec 22, 2025
24cf896
Make defaultLanguage consistent across Dialogflow Agents (#16006)
shang-jason Dec 22, 2025
20d08e8
tgc-revival: set the value to unknown for required fields missing in …
zli82016 Dec 22, 2025
d792fa9
Promote DNS Threat Detector to GA. (#16010)
rosmo Dec 22, 2025
957c8cc
Add documentation missing from PR #15679. (#16015)
hankfreund Dec 23, 2025
44bb3c2
fix TestAccIAMBetaWorkloadIdentityPool_beta_update (#16019)
shuyama1 Dec 23, 2025
9e84eab
Added IAM support for the IcebergCatalog resource. (#15950)
nika-qubit Dec 23, 2025
93705bc
Add support for labels for Memorystore Redis clusters (#15991)
nshah-google Dec 23, 2025
bf7fa1c
Add new resource Boundary for AppHub (#15891)
diegomguzman-google Dec 23, 2025
b2bd992
tgc: remove the automatic support of IAM resources (#16004)
zli82016 Dec 23, 2025
fa248d7
Skip scratch disks in disk delete checks (#16023)
rileykarson Dec 23, 2025
371ab41
Create Interconnect in other z2z Location to fix TestAccComputeInterc…
NandiniAgrawal15 Dec 23, 2025
12d83d2
Bump Cloud Armor Hierchical Policies - Security Policy Associations …
maxi-cit Dec 23, 2025
fc825ab
Creating dev environment to be used by product (#16022)
rickygodoy Dec 23, 2025
57e2a04
tgc-revival: add google_memcache_instance to TGC (#16025)
zli82016 Dec 24, 2025
8f91a7c
Update dataset id in Entry.yaml to fix TestAccDataplexEntry_dataplexE…
sushilchaskar28 Dec 29, 2025
dbf1af3
Allow empty fields for serviceDiscovery, userInfo, groupInfo and dev…
Chi-Pin Dec 29, 2025
bd7208e
Add `prefix_length` to `google_compute_addresses` plural data source …
bestefreund Dec 29, 2025
52ed9b8
Refactor GCS force delete to separate object and anywhere cache delet…
rileykarson Dec 29, 2025
29bccc0
Add support for hard delete in Workforce Pool Provider SCIM Tenant De…
jaideoka Dec 29, 2025
068adcf
Correcting strict cipher (#15866)
Gorlami96 Dec 29, 2025
19b6842
Update looker_instance PSC example for service_attachments (#15799)
shubhechha-google Dec 30, 2025
47da2ac
feat: add support for zip deploys to cloudrunv2 services (beta) (#16005)
akerekes Dec 30, 2025
807c7ee
Agent Engine: add source based deployment documentation. (#16011)
LucaPrete Dec 30, 2025
837b46b
Lustre increase timeout for update and delete async operations (#16046)
stephanecharite Dec 30, 2025
0b4839b
tgc-revival: Add more handwritten tests (#15937)
trodge Dec 30, 2025
dac6b8e
Introduce Destination resource (#16002)
sreemoyee-basu Dec 30, 2025
cba1159
Support x-google-lro (#16028)
nicdumz Dec 30, 2025
24275ef
Fix a broken documentation link for the `fast_socket` block in `googl…
GiuseppeTT Jan 2, 2026
78cc0d5
Fix the failing TestAccBigqueryDataTransferConfig (#16042)
wj-chen Jan 2, 2026
3d2c5f6
feat: added support for ssl_config for postgresql_profile (#15768)
pete-layerhealth Jan 2, 2026
76b870b
Enable async upload in vcr nightly (#16069)
iyabchen Jan 5, 2026
0d351bc
Added ignore_read to encryption_config field in google_backup_dr_back…
mizanali-04 Jan 5, 2026
95e9340
Retire `{{override_path}}` (#16068)
nicdumz Jan 5, 2026
75161fb
feat: Add etag support for bigtable SchemaBundle resource (#16074)
trollyxia Jan 5, 2026
d3ea28e
Add deprecation message to the custom audience field in WorkerPools, …
kminsu-google Jan 5, 2026
c9e35ee
fix cgroup test (#16062)
cwangVT Jan 6, 2026
1a2738b
feat: Implement OneTime trigger for Dataplex Datascan (#16024)
sushilchaskar28 Jan 6, 2026
fd5bf3e
Add `default_from_api: true` to `auditIntervalSeconds` field in gkehu…
komei-nkmt Jan 6, 2026
33ffdcc
Upgrade google.golang.org/api to v0.258.0 (#16063)
cwangVT Jan 6, 2026
70b0fb6
add location support (eu,us) for ProjectNotificationConfig SCCV2 (#15…
LittleSalkin1806 Jan 6, 2026
3702625
Fixed mapping for partnerMetadata fields (#16085)
melinath Jan 6, 2026
84f157e
tgc-revival: fix test and skip one test (#16086)
zli82016 Jan 7, 2026
c9e6a52
[Network Services] Update LbRouteExtension to v1, add new fields, an…
JamesDuncanNz Jan 7, 2026
73134ef
Add activity journal feature for google_storage_insights_dataset_conf…
sameer-google Jan 7, 2026
1b91938
Add max_custom_on_demand_retention_days to BackupPlan (#16071)
Megha-Bose Jan 7, 2026
ab851d2
Capture commit sha during test data ingestion (#16077)
shuyama1 Jan 7, 2026
502e00e
Add registry hosts to containerd config (#15931)
VeraQin Jan 7, 2026
368e40b
FEAT: add support to EXT_AUTHZ_GRPC in Google Network Service Authz E…
victorsantos-cit Jan 7, 2026
eabb121
Temporarily skip 100% failing tests in VCR (Part 1) (#16091)
shuyama1 Jan 7, 2026
0f5408b
Temporarily skip 100% failing tests in VCR (Part 2) (#16092)
shuyama1 Jan 7, 2026
e7bc3c1
Temporarily skip 100% failing tests in VCR (Part 3) (#16093)
shuyama1 Jan 7, 2026
3baa402
Merge branch 'FEATURE-BRANCH-resource-identity' into sync-main-jan-7-…
BBBmau Jan 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .ci/gcb-pr-downstream-generation-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ steps:
- $BUILD_ID
- $PROJECT_ID
- "23" # Build step
- "true"

- name: 'gcr.io/graphite-docker-images/go-plus'
entrypoint: '/workspace/.ci/scripts/go-plus/magician/exec.sh'
Expand Down
2 changes: 1 addition & 1 deletion .ci/magician/cmd/check_cassettes.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ var checkCassettesCmd = &cobra.Command{

ctlr := source.NewController(env["GOPATH"], "modular-magician", githubToken, rnr)

vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "vcr-check-cassettes", rnr)
vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "vcr-check-cassettes", rnr, false)
if err != nil {
return fmt.Errorf("error creating VCR tester: %w", err)
}
Expand Down
2 changes: 2 additions & 0 deletions .ci/magician/cmd/collect_nightly_test_status.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ type TestInfo struct {
Status string `json:"status"`
Service string `json:"service"`
Resource string `json:"resource"`
CommitSha string `json:"commit_sha"`
ErrorMessage string `json:"error_message"`
LogLink string `json:"log_link"`
ProviderVersion string `json:"provider_version"`
Expand Down Expand Up @@ -189,6 +190,7 @@ func createTestReport(pVersion provider.Version, tc TeamcityClient, gcs Cloudsto
Status: testResult.Status,
Service: serviceName,
Resource: convertTestNameToResource(testResult.Name),
CommitSha: build.Number,
ErrorMessage: errorMessage,
LogLink: logLink,
ProviderVersion: strings.ToUpper(pVersion.String()),
Expand Down
39 changes: 35 additions & 4 deletions .ci/magician/cmd/generate_comment.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ type diffCommentData struct {
MissingServiceLabels []string
MissingTests map[string]*MissingTestInfo
MissingDocs *MissingDocsSummary
AddedResources []string
MultipleResources []string
Errors []Errors
}

Expand Down Expand Up @@ -377,7 +377,8 @@ func execGenerateComment(prNumber int, ghTokenMagicModules, buildId, buildStep,

// Check if multiple resources were added.
multipleResourcesState := "success"
if len(uniqueAddedResources) > 1 {
data.MultipleResources = multipleResources(maps.Keys(uniqueAddedResources))
if len(data.MultipleResources) > 1 {
multipleResourcesState = "failure"
for _, label := range pullRequest.Labels {
if label.Name == allowMultipleResourcesLabel {
Expand All @@ -391,8 +392,6 @@ func execGenerateComment(prNumber int, ghTokenMagicModules, buildId, buildStep,
fmt.Printf("Error posting terraform-provider-multiple-resources build status for pr %d commit %s: %v\n", prNumber, commitSha, err)
errors["Other"] = append(errors["Other"], "Failed to update missing-service-labels status check with state: "+multipleResourcesState)
}
data.AddedResources = maps.Keys(uniqueAddedResources)
slices.Sort(data.AddedResources)

// Compute affected resources based on changed files
changedFilesAffectedResources := map[string]struct{}{}
Expand Down Expand Up @@ -642,6 +641,38 @@ func formatDiffComment(data diffCommentData) (string, error) {
return sb.String(), nil
}

// addedMultipleResources returns a sorted slice of resource names that are considered "separate" resources.
// In particular, IAM resources are merged with the parent resource as part of this check.
func multipleResources(resources []string) []string {
if len(resources) == 0 {
return nil
}
iam := map[string]struct{}{}
final := map[string]struct{}{}

for _, r := range resources {
if k, found := strings.CutSuffix(r, "_iam_member"); found {
iam[k] = struct{}{}
} else if k, found := strings.CutSuffix(r, "_iam_binding"); found {
iam[k] = struct{}{}
} else if k, found := strings.CutSuffix(r, "_iam_policy"); found {
iam[k] = struct{}{}
} else {
final[k] = struct{}{}
}
}

for r, _ := range iam {
if _, ok := final[r]; !ok {
final[r+"_iam_*"] = struct{}{}
}
}

ret := maps.Keys(final)
slices.Sort(ret)
return ret
}

var resourceFileRegexp = regexp.MustCompile(`^.*/services/[^/]+/(?:data_source_|resource_|iam_)(.*?)(?:_test|_sweeper|_iam_test|_generated_test|_internal_test)?.go`)
var resourceDocsRegexp = regexp.MustCompile(`^.*website/docs/(?:r|d)/(.*).html.markdown`)

Expand Down
68 changes: 67 additions & 1 deletion .ci/magician/cmd/generate_comment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ func TestFormatDiffComment(t *testing.T) {
},
"multiple resources are displayed": {
data: diffCommentData{
AddedResources: []string{"google_redis_instance", "google_alloydb_cluster"},
MultipleResources: []string{"google_redis_instance", "google_alloydb_cluster"},
},
expectedStrings: []string{
"## Diff report",
Expand Down Expand Up @@ -352,6 +352,72 @@ func TestFormatDiffComment(t *testing.T) {
}
}

func TestMultipleResources(t *testing.T) {
cases := []struct {
name string
resources []string
want []string
}{
{
name: "no resources",
},
{
name: "single non-iam",
resources: []string{"google_redis_instance"},
want: []string{"google_redis_instance"},
},
{
name: "multiple non-iam",
resources: []string{"google_redis_instance", "google_alloydb_cluster"},
want: []string{"google_alloydb_cluster", "google_redis_instance"},
},
{
name: "single iam only",
resources: []string{"google_redis_instance_iam_member", "google_redis_instance_iam_policy", "google_redis_instance_iam_binding"},
want: []string{"google_redis_instance_iam_*"},
},
{
name: "single iam with parent",
resources: []string{"google_redis_instance_iam_member", "google_redis_instance_iam_policy", "google_redis_instance_iam_binding", "google_redis_instance"},
want: []string{"google_redis_instance"},
},
{
name: "multiple iam",
resources: []string{
"google_redis_instance_iam_member",
"google_redis_instance_iam_policy",
"google_redis_instance_iam_binding",
"google_alloydb_cluster_iam_member",
"google_alloydb_cluster_iam_policy",
"google_alloydb_cluster_iam_binding",
},
want: []string{"google_alloydb_cluster_iam_*", "google_redis_instance_iam_*"},
},
{
name: "multiple iam with parent",
resources: []string{
"google_redis_instance_iam_member",
"google_redis_instance_iam_policy",
"google_redis_instance_iam_binding",
"google_alloydb_cluster_iam_member",
"google_alloydb_cluster_iam_policy",
"google_alloydb_cluster_iam_binding",
"google_redis_instance",
},
want: []string{"google_alloydb_cluster_iam_*", "google_redis_instance"},
},
}

for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
t.Parallel()

got := multipleResources(tc.resources)
assert.Equal(t, tc.want, got)
})
}
}

func TestFileToResource(t *testing.T) {
cases := map[string]struct {
path string
Expand Down
4 changes: 2 additions & 2 deletions .ci/magician/cmd/templates/DIFF_COMMENT.md.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ If you believe this detection to be incorrect please raise the concern with your
An `override-missing-service-label` label can be added to allow merging.
{{end}}

{{- if gt (len .AddedResources) 1 }}
{{- if gt (len .MultipleResources) 1 }}
## Multiple resources added

This PR adds multiple new resources: {{range $i, $resource := .AddedResources}}{{ if gt $i 0}}, {{end}}`{{$resource}}`{{end}}. This makes review significantly more difficult. Please split it into multiple PRs, one per resource.
This PR adds multiple new resources: {{range $i, $resource := .MultipleResources}}{{ if gt $i 0}}, {{end}}`{{$resource}}`{{end}}. This makes review significantly more difficult. Please split it into multiple PRs, one per resource.
An `override-multiple-resources` label can be added to allow merging.
{{end}}

Expand Down
2 changes: 1 addition & 1 deletion .ci/magician/cmd/test_eap_vcr.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ The following environment variables are required:
if err != nil {
return err
}
vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "ci-vcr-logs", rnr)
vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "ci-vcr-logs", rnr, false)
if err != nil {
return err
}
Expand Down
26 changes: 16 additions & 10 deletions .ci/magician/cmd/test_terraform_vcr.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ It expects the following arguments:
3. Build ID
4. Project ID where Cloud Builds are located
5. Build step number

6. Enable async upload cassettes

The following environment variables are required:
` + listTTVRequiredEnvironmentVariables(),
RunE: func(cmd *cobra.Command, args []string) error {
Expand Down Expand Up @@ -134,13 +135,17 @@ The following environment variables are required:
}
ctlr := source.NewController(env["GOPATH"], "modular-magician", env["GITHUB_TOKEN_DOWNSTREAMS"], rnr)

vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "ci-vcr-logs", rnr)
if err != nil {
return fmt.Errorf("error creating VCR tester: %w", err)
if len(args) < 5 {
return fmt.Errorf("wrong number of arguments %d, expected >=5", len(args))
}
enableAsyncUploadCassettes := false
if len(args) > 5 {
enableAsyncUploadCassettes = strings.ToLower(args[5]) == "true"
}

if len(args) != 5 {
return fmt.Errorf("wrong number of arguments %d, expected 5", len(args))
vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "ci-vcr-logs", rnr, enableAsyncUploadCassettes)
if err != nil {
return fmt.Errorf("error creating VCR tester: %w", err)
}

return execTestTerraformVCR(args[0], args[1], args[2], args[3], args[4], baseBranch, gh, rnr, ctlr, vt)
Expand Down Expand Up @@ -260,10 +265,11 @@ func execTestTerraformVCR(prNumber, mmCommitSha, buildID, projectID, buildStep,
}
if len(replayingResult.FailedTests) > 0 {
recordingResult, recordingErr := vt.RunParallel(vcr.RunOptions{
Mode: vcr.Recording,
Version: provider.Beta,
TestDirs: testDirs,
Tests: replayingResult.FailedTests,
Mode: vcr.Recording,
Version: provider.Beta,
TestDirs: testDirs,
Tests: replayingResult.FailedTests,
UploadBranchName: newBranch,
})
if recordingErr != nil {
testState = "failure"
Expand Down
2 changes: 1 addition & 1 deletion .ci/magician/cmd/vcr_cassette_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ var vcrCassetteUpdateCmd = &cobra.Command{
}
ctlr := source.NewController(env["GOPATH"], "hashicorp", env["GITHUB_TOKEN_CLASSIC"], rnr)

vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "", rnr)
vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "", rnr, true)
if err != nil {
return fmt.Errorf("error creating VCR tester: %w", err)
}
Expand Down
2 changes: 1 addition & 1 deletion .ci/magician/cmd/vcr_cassette_update_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ func TestExecVCRCassetteUpdate(t *testing.T) {
ctlr := source.NewController("gopath", "hashicorp", "token", rnr)
vt, err := vcr.NewTester(map[string]string{
"SA_KEY": "sa_key",
}, "ci-vcr-cassettes", "", rnr)
}, "ci-vcr-cassettes", "", rnr, false)
if err != nil {
t.Fatalf("Failed to create new tester: %v", err)
}
Expand Down
4 changes: 2 additions & 2 deletions .ci/magician/github/membership_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ var (
"melinath": {
vacations: []Vacation{
{
startDate: newDate(2025, 9, 17),
endDate: newDate(2025, 9, 22),
startDate: newDate(2025, 12, 18),
endDate: newDate(2026, 1, 6),
},
},
},
Expand Down
1 change: 1 addition & 0 deletions .ci/magician/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ require (

require (
cloud.google.com/go/storage v1.50.0
github.com/fsnotify/fsnotify v1.9.0
github.com/google/go-cmp v0.6.0
github.com/google/go-github/v68 v68.0.0
github.com/otiai10/copy v1.12.0
Expand Down
2 changes: 2 additions & 0 deletions .ci/magician/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6
github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
Expand Down
Loading
Loading