@@ -63,7 +63,7 @@ module "repository" {
6363 variables = local. variables
6464 secrets = local. secrets
6565 deploy_keys = var. deploy_keys
66- webhooks = var . webhooks
66+ webhooks = local . webhooks
6767 labels = var. labels
6868 teams = var. teams
6969 users = var. users
@@ -108,6 +108,20 @@ locals {
108108 }
109109 }
110110
111+ webhooks = {
112+ for k , v in coalesce (var. webhooks , {}) : k => {
113+ active = v.active
114+ events = v.events
115+ url = v.url
116+ content_type = v.content_type
117+ insecure_ssl = v.insecure_ssl
118+ secret = v.secret != null ? (
119+ startswith (v. secret , " ssm://" ) ? nonsensitive (data. aws_ssm_parameter . default [v . secret ]. value ) :
120+ startswith (v. secret , " asm://" ) ? nonsensitive (data. aws_secretsmanager_secret_version . default [v . secret ]. secret_string ) : v.secret
121+ ) : null
122+ }
123+ }
124+
111125 ssm_parameters = merge (flatten ([
112126 [
113127 {
@@ -116,6 +130,9 @@ locals {
116130 {
117131 for k , v in coalesce (var. secrets , {}) : v => trimprefix (v, " ssm://" ) if startswith (v, " ssm://" )
118132 },
133+ {
134+ for k , v in coalesce (var. webhooks , {}) : v . secret => trimprefix (v. secret , " ssm://" ) if v . secret != null && startswith (v. secret , " ssm://" )
135+ },
119136 ],
120137 [
121138 for k , v in coalesce (var. environments , {}) : {
@@ -138,6 +155,9 @@ locals {
138155 {
139156 for k , v in coalesce (var. secrets , {}) : v => trimprefix (v, " asm://" ) if startswith (v, " asm://" )
140157 },
158+ {
159+ for k , v in coalesce (var. webhooks , {}) : v . secret => trimprefix (v. secret , " asm://" ) if v . secret != null && startswith (v. secret , " asm://" )
160+ },
141161 ],
142162 [
143163 for k , v in coalesce (var. environments , {}) : {
0 commit comments