@@ -189,6 +189,10 @@ var resourceGitLabProjectSchema = map[string]*schema.Schema{
189
189
Type : schema .TypeBool ,
190
190
Optional : true ,
191
191
},
192
+ "remove_source_branch_after_merge" : {
193
+ Type : schema .TypeBool ,
194
+ Optional : true ,
195
+ },
192
196
}
193
197
194
198
func resourceGitlabProject () * schema.Resource {
@@ -232,6 +236,7 @@ func resourceGitlabProjectSetToState(d *schema.ResourceData, project *gitlab.Pro
232
236
d .Set ("shared_with_groups" , flattenSharedWithGroupsOptions (project ))
233
237
d .Set ("tags" , project .TagList )
234
238
d .Set ("archived" , project .Archived )
239
+ d .Set ("remove_source_branch_after_merge" , project .RemoveSourceBranchAfterMerge )
235
240
}
236
241
237
242
func resourceGitlabProjectCreate (d * schema.ResourceData , meta interface {}) error {
@@ -253,6 +258,7 @@ func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error
253
258
OnlyAllowMergeIfPipelineSucceeds : gitlab .Bool (d .Get ("only_allow_merge_if_pipeline_succeeds" ).(bool )),
254
259
OnlyAllowMergeIfAllDiscussionsAreResolved : gitlab .Bool (d .Get ("only_allow_merge_if_all_discussions_are_resolved" ).(bool )),
255
260
SharedRunnersEnabled : gitlab .Bool (d .Get ("shared_runners_enabled" ).(bool )),
261
+ RemoveSourceBranchAfterMerge : gitlab .Bool (d .Get ("remove_source_branch_after_merge" ).(bool )),
256
262
}
257
263
258
264
// need to manage partial state since project creation may require
@@ -275,6 +281,7 @@ func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error
275
281
"only_allow_merge_if_pipeline_succeeds" ,
276
282
"only_allow_merge_if_all_discussions_are_resolved" ,
277
283
"shared_runners_enabled" ,
284
+ "remove_source_branch_after_merge" ,
278
285
}
279
286
280
287
if v , ok := d .GetOk ("path" ); ok {
@@ -473,6 +480,11 @@ func resourceGitlabProjectUpdate(d *schema.ResourceData, meta interface{}) error
473
480
updatedProperties = append (updatedProperties , "lfs_enabled" )
474
481
}
475
482
483
+ if d .HasChange ("remove_source_branch_after_merge" ) {
484
+ options .RemoveSourceBranchAfterMerge = gitlab .Bool (d .Get ("remove_source_branch_after_merge" ).(bool ))
485
+ updatedProperties = append (updatedProperties , "remove_source_branch_after_merge" )
486
+ }
487
+
476
488
if * options != (gitlab.EditProjectOptions {}) {
477
489
log .Printf ("[DEBUG] update gitlab project %s" , d .Id ())
478
490
_ , _ , err := client .Projects .EditProject (d .Id (), options )
0 commit comments