{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":17728164,"defaultBranch":"main","name":"terraform","ownerLogin":"hashicorp","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-03-13T22:25:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/761456?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715993350.0","currentOid":""},"activityList":{"items":[{"before":"13d3651fbeae05f7dbb305652fe4700dae807fe1","after":"60e06c2fb88a95deb1101f63035f841272ef8bbf","ref":"refs/heads/nf/may24-data-planned-deferred-changes","pushedAt":"2024-05-18T01:25:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nfagerlund","name":"Nick Fagerlund","path":"/nfagerlund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/484309?s=80&v=4"},"commit":{"message":"Update output values in context_apply_deferred_test\n\nAt this point, expressions that refer to deferred resources or data sources end\nup resolving to the \"planned change\" value from the reported deferral, per the\nchanges to the `GetResource` function from a few commits back.\n\nThe fields of a resource body often end up being a null value of the appropriate\ntype. Sometimes there's enough known about the plan to produce a real value, and\nsometimes (due to partial expansion) the object keys or tuple slots are unknown\nand an entire field or resource body has to become\n`cty.NullVal(cty.DynamicPseudoType)`.\n\nThis commit updates the deferred actions tests to expect the appropriate output\nvalues based on this new behavior.","shortMessageHtmlLink":"Update output values in context_apply_deferred_test"}},{"before":null,"after":"36007f1c45f99e3088496ac01ee3f62eb7e9bdf6","ref":"refs/heads/f-upgrade-go-versions","pushedAt":"2024-05-18T00:49:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"apparentlymart","name":"Martin Atkins","path":"/apparentlymart","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20180?s=80&v=4"},"commit":{"message":"go.mod: go get github.com/apparentlymart/go-versions@v1.0.2\n\nThis includes a fix in the handling of conflicting constraints referring\nto prereleases, like \"1.0.0-beta.1, !1.0.0-beta.1\".\n\nPreviously the library would incorrectly treat that as a positive match,\nrather than having the negative override the positive as happens in all\nother cases.","shortMessageHtmlLink":"go.mod: go get github.com/apparentlymart/go-versions@v1.0.2"}},{"before":"7012371d1f9af3e6b4a1b7b9c96185726f11df61","after":"ee5cda700060b823d319a3d9d78d6c72255273be","ref":"refs/heads/main","pushedAt":"2024-05-17T23:59:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjyocca","name":"Michael Yocca","path":"/mjyocca","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19916665?s=80&v=4"},"commit":{"message":"feat(stacks): add CLI config in RPC API handshake (#35146)\n\nAdds support for including fields typically found in the Terraform CLI configuration in the RPC API handshake. This allows us to include global configuration arguments that impact the RPC API session without requiring instrumentation for each RPC service. The new Config struct currently supports only service discovery credentials, but it can be expanded in the future.","shortMessageHtmlLink":"feat(stacks): add CLI config in RPC API handshake (#35146)"}},{"before":"b4e45af1c1c4a32359da6c11ae5cfa94b8272ecd","after":"6c9fa6e0db9ca6a05338b05af4315368e5a09b8b","ref":"refs/heads/mjyocca/stacks-rpcapi-package-service","pushedAt":"2024-05-17T23:28:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mjyocca","name":"Michael Yocca","path":"/mjyocca","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19916665?s=80&v=4"},"commit":{"message":"chore: change cliConfig arg name to config","shortMessageHtmlLink":"chore: change cliConfig arg name to config"}},{"before":"e43c8c482908292a90b7defaf15a7be452bb84d9","after":"b4e45af1c1c4a32359da6c11ae5cfa94b8272ecd","ref":"refs/heads/mjyocca/stacks-rpcapi-package-service","pushedAt":"2024-05-17T23:16:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mjyocca","name":"Michael Yocca","path":"/mjyocca","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19916665?s=80&v=4"},"commit":{"message":"refactor: change func signature to receive handshake","shortMessageHtmlLink":"refactor: change func signature to receive handshake"}},{"before":null,"after":"4080ec7f8f149c19c14f99ad1e38c3c2222c4356","ref":"refs/heads/b-templatefile-sensitive-path-crash","pushedAt":"2024-05-17T23:10:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"apparentlymart","name":"Martin Atkins","path":"/apparentlymart","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20180?s=80&v=4"},"commit":{"message":"funcs: Don't panic if templatefile path is sensitive\n\nPreviously we were partially propagating any marks from the path, but not\ngoing all the way so we still ran into trouble when trying to use the\nstring containing the file contents.\n\nNow we'll have loadTmpl also return the marks it had to read through to\nactually parse the template, and then we'll use those (instead of the\noriginal path marks) to mark the result. In practice the pathMarks and\nthe tmplMarks should always match today, but this is intentionally\nstructured to make the data flow clearer -- the marks always travel along\nwith whatever they related to -- so we're less likely to break this\naccidentally under future maintenence.","shortMessageHtmlLink":"funcs: Don't panic if templatefile path is sensitive"}},{"before":"9448845e911fc51390dbd3d3d8f540b2abe13beb","after":"7012371d1f9af3e6b4a1b7b9c96185726f11df61","ref":"refs/heads/main","pushedAt":"2024-05-17T19:01:14.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"sebasslash","name":"Sebastian Rivera","path":"/sebasslash","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7086531?s=80&v=4"},"commit":{"message":"Merge pull request #35176 from hashicorp/sebasslash/tf-15302_modifiable-snapshot-interval\n\nAdd `TF_STATE_PERSIST_INTERVAL` environment variable.","shortMessageHtmlLink":"Merge pull request #35176 from hashicorp/sebasslash/tf-15302_modifiab…"}},{"before":"5a625a3ca35591d718926c4d1a4c7f38d3f5a306","after":"b28c8bff091c3cb0ee0d88cfcba0713aa892a05b","ref":"refs/heads/sebasslash/tf-15302_modifiable-snapshot-interval","pushedAt":"2024-05-17T18:55:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sebasslash","name":"Sebastian Rivera","path":"/sebasslash","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7086531?s=80&v=4"},"commit":{"message":"Document TF_STATE_PERSIST_INTERVAL usage","shortMessageHtmlLink":"Document TF_STATE_PERSIST_INTERVAL usage"}},{"before":"2c03feada87d636120d8dba73ebb9f7d2178c40a","after":"5a625a3ca35591d718926c4d1a4c7f38d3f5a306","ref":"refs/heads/sebasslash/tf-15302_modifiable-snapshot-interval","pushedAt":"2024-05-17T18:16:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sebasslash","name":"Sebastian Rivera","path":"/sebasslash","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7086531?s=80&v=4"},"commit":{"message":"Document TF_STATE_PERSIST_INTERVAL usage","shortMessageHtmlLink":"Document TF_STATE_PERSIST_INTERVAL usage"}},{"before":"2993d8b9a15b4415e0646a9f01fc7be7f04e8923","after":"2c03feada87d636120d8dba73ebb9f7d2178c40a","ref":"refs/heads/sebasslash/tf-15302_modifiable-snapshot-interval","pushedAt":"2024-05-17T18:08:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sebasslash","name":"Sebastian Rivera","path":"/sebasslash","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7086531?s=80&v=4"},"commit":{"message":"Document TF_STATE_PERSIST_INTERVAL usage","shortMessageHtmlLink":"Document TF_STATE_PERSIST_INTERVAL usage"}},{"before":"d84a7530e8e34fbde05d9f3bdf804f1089a78b1f","after":"2993d8b9a15b4415e0646a9f01fc7be7f04e8923","ref":"refs/heads/sebasslash/tf-15302_modifiable-snapshot-interval","pushedAt":"2024-05-17T15:59:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sebasslash","name":"Sebastian Rivera","path":"/sebasslash","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7086531?s=80&v=4"},"commit":{"message":"Unit test env var handling","shortMessageHtmlLink":"Unit test env var handling"}},{"before":"1e590e2f2c31d07afddfc61edfd9b2582e76620c","after":"13d3651fbeae05f7dbb305652fe4700dae807fe1","ref":"refs/heads/nf/may24-data-planned-deferred-changes","pushedAt":"2024-05-17T01:13:56.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nfagerlund","name":"Nick Fagerlund","path":"/nfagerlund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/484309?s=80&v=4"},"commit":{"message":"nodeApplyableDeferredInstance: During apply, re-report deferred data sources too\n\nOutputs will want these too.","shortMessageHtmlLink":"nodeApplyableDeferredInstance: During apply, re-report deferred data …"}},{"before":"740fccc66262707fde8012fb7b13c785edd47e6d","after":null,"ref":"refs/heads/f-stacks-promise-names","pushedAt":"2024-05-16T23:10:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"apparentlymart","name":"Martin Atkins","path":"/apparentlymart","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20180?s=80&v=4"}},{"before":"43ba8a147c638dd8338e14f4b0c16060a032ff1e","after":"9448845e911fc51390dbd3d3d8f540b2abe13beb","ref":"refs/heads/main","pushedAt":"2024-05-16T23:10:49.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"apparentlymart","name":"Martin Atkins","path":"/apparentlymart","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20180?s=80&v=4"},"commit":{"message":"stackeval: Improve coverage of namedPromiseReporter impls\n\nThe \"namedPromiseReporter\" interface is a helper we use to collect\nuser-friendly names for promises when we need to report a promise\nself-reference error to the user.\n\nWe collect names for promises reactively on error, rather than proactively\nin the normal course of work, because proactively maintaining a suitable\ndata structure for this cross-cutting concern would be both expensive and\ncomplicated due to it being a cross-cutting concern.\n\nThis compromise therefore allows us to pay the cost of walking over all\nof the promise-owning objects only in the exceptional case where we need\nto report a self-reference error, but it does come at the expense of it\nbeing possible for us to forget to implement this interface for certain\ntypes and thus be unable to name a subset of the affected promises.\n\nThis commit implements reportNamedPromises for all promise-owning types\nthat are reachable from a stackeval.Main, although there is a notable gap\nhere where we can't actually report promises from the individual instances\nof a multi-instance object (e.g. a component) because the promising API\ndoesn't let us peek into a promising.Once to see if it's resolved without\nblocking until it becomes resolved. There are FIXME comments for that\nlimitation in all of the places where it's relevant, and so hopefully in a\nfuture commit we'll devise a suitable way to perform a fallible\nnon-blocking peek of a promise so that we can report promises nested in its\nresult only if they are already present.","shortMessageHtmlLink":"stackeval: Improve coverage of namedPromiseReporter impls"}},{"before":null,"after":"d84a7530e8e34fbde05d9f3bdf804f1089a78b1f","ref":"refs/heads/sebasslash/tf-15302_modifiable-snapshot-interval","pushedAt":"2024-05-16T22:53:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sebasslash","name":"Sebastian Rivera","path":"/sebasslash","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7086531?s=80&v=4"},"commit":{"message":"Refactor how interval env var is passed","shortMessageHtmlLink":"Refactor how interval env var is passed"}},{"before":"7a876e3b2c37a2ff4dad7754449c77ca9e07ecac","after":null,"ref":"refs/heads/bflad-patch-1","pushedAt":"2024-05-16T21:15:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"}},{"before":"0cbab0f06ab234bee42cde039c42ebe2ea1ce6b4","after":"43ba8a147c638dd8338e14f4b0c16060a032ff1e","ref":"refs/heads/main","pushedAt":"2024-05-16T21:15:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md (#35171)","shortMessageHtmlLink":"Update CHANGELOG.md (#35171)"}},{"before":null,"after":"7a876e3b2c37a2ff4dad7754449c77ca9e07ecac","ref":"refs/heads/bflad-patch-1","pushedAt":"2024-05-16T19:56:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"721ffea0e148c815abd916c43cb0e41f5c6c8a51","after":null,"ref":"refs/heads/bflad/move_null_resource","pushedAt":"2024-05-16T19:54:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"}},{"before":"d346432dd0dd6f20dcd4ce0645e0f16ca2c31cb7","after":"0cbab0f06ab234bee42cde039c42ebe2ea1ce6b4","ref":"refs/heads/main","pushedAt":"2024-05-16T19:54:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bflad","name":"Brian Flad","path":"/bflad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/189114?s=80&v=4"},"commit":{"message":"Support moving from null_resource to terraform_data (#35163)\n\nThis change enables the built-in provider's `terraform_data` managed resource to work with the `moved` configuration block where the `from` address is a `null_resource` managed resource type from the official `hashicorp/null` provider. It produces no plan differences for typical configurations and specifically helps practitioners from re-running provisioners while moving resource types.\r\n\r\nIn addition to the unit testing, this was manually tested with the following configurations and outputs:\r\n\r\nInitial configuration (no `triggers`):\r\n\r\n```terraform\r\nterraform {\r\n required_providers {\r\n null = {\r\n source = \"hashicorp/null\"\r\n version = \"3.2.2\"\r\n }\r\n }\r\n}\r\n\r\nresource \"null_resource\" \"example\" {\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n```\r\n\r\nMoved configuration (no `triggers`):\r\n\r\n```terraform\r\nresource \"terraform_data\" \"example\" {\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n\r\nmoved {\r\n from = null_resource.example\r\n to = terraform_data.example\r\n}\r\n```\r\n\r\nMoved output (no `triggers`):\r\n\r\n```console\r\n$ terraform apply\r\nterraform_data.example: Refreshing state... [id=892002337455008838]\r\n\r\nTerraform will perform the following actions:\r\n\r\n # null_resource.example has moved to terraform_data.example\r\n resource \"terraform_data\" \"example\" {\r\n id = \"892002337455008838\"\r\n }\r\n\r\nPlan: 0 to add, 0 to change, 0 to destroy.\r\n\r\nDo you want to perform these actions?\r\n Terraform will perform the actions described above.\r\n Only 'yes' will be accepted to approve.\r\n\r\n Enter a value: yes\r\n\r\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\r\n```\r\n\r\nInitial configuration (with `triggers`):\r\n\r\n```terraform\r\nterraform {\r\n required_providers {\r\n null = {\r\n source = \"hashicorp/null\"\r\n version = \"3.2.2\"\r\n }\r\n }\r\n}\r\n\r\nresource \"null_resource\" \"example\" {\r\n triggers = {\r\n examplekey = \"examplevalue\"\r\n }\r\n\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n```\r\n\r\nMoved configuration (with `triggers`):\r\n\r\n```terraform\r\nresource \"terraform_data\" \"example\" {\r\n triggers_replace = {\r\n examplekey = \"examplevalue\"\r\n }\r\n\r\n provisioner \"local-exec\" {\r\n command = \"echo 'Hello, World!'\"\r\n }\r\n}\r\n\r\nmoved {\r\n from = null_resource.example\r\n to = terraform_data.example\r\n}\r\n```\r\n\r\nMoved output (with `triggers`):\r\n\r\n```console\r\n$ terraform apply\r\nterraform_data.example: Refreshing state... [id=1651348367769440250]\r\n\r\nTerraform will perform the following actions:\r\n\r\n # null_resource.example has moved to terraform_data.example\r\n resource \"terraform_data\" \"example\" {\r\n id = \"1651348367769440250\"\r\n # (1 unchanged attribute hidden)\r\n }\r\n\r\nPlan: 0 to add, 0 to change, 0 to destroy.\r\n\r\nDo you want to perform these actions?\r\n Terraform will perform the actions described above.\r\n Only 'yes' will be accepted to approve.\r\n\r\n Enter a value: yes\r\n\r\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\r\n```","shortMessageHtmlLink":"Support moving from null_resource to terraform_data (#35163)"}},{"before":"94ab59c5b6bd70ce702fc3bc9937e6fcb7c5b370","after":"d346432dd0dd6f20dcd4ce0645e0f16ca2c31cb7","ref":"refs/heads/main","pushedAt":"2024-05-16T14:50:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mutahhir","name":"Mutahhir Hayat","path":"/mutahhir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/573531?s=80&v=4"},"commit":{"message":"version: Clean up after 1.9.0-alpha20240516 release","shortMessageHtmlLink":"version: Clean up after 1.9.0-alpha20240516 release"}},{"before":"72c25974c87682fcafdc934dda730a08a21ad2d5","after":"94ab59c5b6bd70ce702fc3bc9937e6fcb7c5b370","ref":"refs/heads/main","pushedAt":"2024-05-16T12:51:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"update CHANGELOG.md","shortMessageHtmlLink":"update CHANGELOG.md"}},{"before":"e8119cced39bdd9edf0944f35a8c980336c2c6d1","after":null,"ref":"refs/heads/jbardin/remove-state-copies","pushedAt":"2024-05-16T12:50:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"}},{"before":"619c5f172044a89c121e15ba6f772ea5e71e7c9e","after":"72c25974c87682fcafdc934dda730a08a21ad2d5","ref":"refs/heads/main","pushedAt":"2024-05-16T12:50:05.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jbardin","name":"James Bardin","path":"/jbardin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35067?s=80&v=4"},"commit":{"message":"Merge pull request #35164 from hashicorp/jbardin/remove-state-copies\n\nremove extra state.DeepCopy from updateStateHook","shortMessageHtmlLink":"Merge pull request #35164 from hashicorp/jbardin/remove-state-copies"}},{"before":"5956767627c78597e665765f793ee9de01acfd57","after":"619c5f172044a89c121e15ba6f772ea5e71e7c9e","ref":"refs/heads/main","pushedAt":"2024-05-16T12:41:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mutahhir","name":"Mutahhir Hayat","path":"/mutahhir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/573531?s=80&v=4"},"commit":{"message":"version: Prepare for 1.9.0-alpha20240516 release","shortMessageHtmlLink":"version: Prepare for 1.9.0-alpha20240516 release"}},{"before":null,"after":"0b44869874885546f057ab87f2ebcc258e80180c","ref":"refs/heads/liamcervante/enable-deferrals-in-stack-tests","pushedAt":"2024-05-16T11:43:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"stacks: Enable resource deferrals within stack tests","shortMessageHtmlLink":"stacks: Enable resource deferrals within stack tests"}},{"before":"48fc2d3ac7c24cb9e29a54b370de858e0c98f0cc","after":"5956767627c78597e665765f793ee9de01acfd57","ref":"refs/heads/main","pushedAt":"2024-05-16T11:17:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"7a3a12cb1cbfe28b458f75ae1fff13308a7bfea6","after":null,"ref":"refs/heads/liamcervante/35160","pushedAt":"2024-05-16T11:15:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"}},{"before":"7a8ffff66ee026dc425311d494fc9fb4bcdb5add","after":"48fc2d3ac7c24cb9e29a54b370de858e0c98f0cc","ref":"refs/heads/main","pushedAt":"2024-05-16T11:15:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"terraform test: Disallow version constraints within test files (#35161)","shortMessageHtmlLink":"terraform test: Disallow version constraints within test files (#35161)"}},{"before":"3845aa1a7d58628eb3456574937b19f48e1f8abb","after":"7a8ffff66ee026dc425311d494fc9fb4bcdb5add","ref":"refs/heads/main","pushedAt":"2024-05-16T11:06:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"liamcervante","name":"Liam Cervante","path":"/liamcervante","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56838463?s=80&v=4"},"commit":{"message":"stacks: Fix unknown provider values crashing validation phase (#35155)\n\n* test to reproduce\r\n\r\n* stacks: Fix unknown provider values crashing validation phase\r\n\r\n* remove extra type information\r\n\r\n---------\r\n\r\nCo-authored-by: CJ Horton ","shortMessageHtmlLink":"stacks: Fix unknown provider values crashing validation phase (#35155)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETWYQrwA","startCursor":null,"endCursor":null}},"title":"Activity · hashicorp/terraform"}